HeatpumpMonitor.org

HeatpumpMonitor.org is a great initiative to counter the view from some quarters that ‘heat pumps don’t work in normal buildings’ with research and facts. It shows a dashboard of real-world performance data from a modest but ever-increasing list of heat pump installations.

Currently, all the systems listed are in the United Kingdom and most are Air Source Heat Pumps in Retrofit (rather than New-Build) installations – but a recent addition is a certain new-build with a Ground Source Heat Pump.

HeatmpumpMonitor is built on top of emoncms (which I’d be using for internal temperature and humidity monitoring if I hadn’t already gone down the OregonScientific route) and links out to emoncms.org for further detail on each of the installations.

HeatpumpMonitor.org dashboard as of 2022-12-17, sorted by “30 Day COP”

For people already capturing data using a local emoncms installation (such as might run on an emonPi) it’s a simple configuration process to forward that to emoncms.org and publish to the dashboard. Since I’m not using a local emoncms, I run a script (every 2 minutes) to extract the relevant updates from my local InfluxDB database and push those to the emoncms.org API.

Normally, emoncms.org is a chargeable service but the nice folks who run that very kindly waived the fee for inclusion in this dashboard.

NIBE Heat Pump Monitoring using Python instead of Perl

One of the most popular topics on this Blog is using the NIBE Uplink API to retrieve operational data reported by the Internet-connected NIBE heat pumps. That API is protected by OAuth2 authentication, which is a robust solution but which is rather more complicated than other APIs which simply expect an API Key or a non-expiring Token for authentication purposes.

There’s a Technical Articles page dating from 2016 which explains how to use the Perl scripting language on Linux to call the NIBE Uplink API, navigating the multiple steps of the OAuth2 handshake – see NIBE Heat Pump Monitoring via NIBE Uplink API (Perl Version). I originally chose Perl because that’s the language I was familiar with – and there was a Perl Module which handled many of the OAuth2 complexities.

Recently I’ve been learning Python for work and that’s proven to be a bit more friendly for this sort of thing. It’s also a language that more people are familiar with – and it’s rather more commonly used on different platforms, notably Microsoft Windows.

I’ve therefore adapted the original Technical Article to use Python rather than Perl and published that as NIBE Heat Pump Monitoring via NIBE Uplink API (Python Version). The Perl version is still relevant so will remain available too (especially since it has some valuable comments and responses) but my advice is for new users to follow the Python version instead.

I’ve also included some more general updates (such as the new NIBE S-Series heat pumps using an alternative API connected to myUplink.com) and some new screenshots. The script code is also now in a GitHub Repository rather than being embedded in the Blog page – and I intend to add some more comprehensive script examples once I migrate my other scripts from Perl to Python.