Heatpump monitor

This guide details how to build a heatpump monitor that monitors the power consumed by a heatpump and the main system temperatures:  flow, return, source inlet, ambient, hot water.

For context on this heatpump monitor have a look at this blog post by John Cantor on heatpump monitoring and the work he has been doing with this system.

System overview


The top-left unit called the emontx, is the hardware unit that performs the temperature and power measurements.

Temperature measurements are performed with one-wire DS18B20 digital temperature sensors, which are small thermometers with built in 12bit ADC's and microcontroller. The sensor communicates over a one-wire bus via the one-wire serial protocol and requires little in the way of additional components. The sensors have an accuracy of +/-0.5 deg C in the range -10 deg C to +85 deg C. [Building blocks: DS18B20 Temperature sensing]

Power measurement is performed with a clip-on current transformer (CT) which measures AC current and a plug in AC to AC power adapter which measures AC voltage. AC power is then calculated onboard the emontx. See the AC power theory section of the building blocks documentation for more detail [building blocks]

The rate at which power and temperature measurements are taken can be set in the emontx firmware, but is usually around 10s per set of measurements.

RF transmission

Because it is not always possible to get Ethernet to the location of the measurement hardware the system is divided into separate modules that communicate together wirelessly using low cost 433Mhz or 868Mhz radio transceivers. The EmonTx which performs the measurements can transmit its data to the emonBase which can then forward the data to emoncms. The emonglcd wireless display can also receive the measurement data from the emontx.

Datalogging and visualisation in emoncms

Once the measurements are performed on the emontx the next step is to send them to emoncms for storage and visualisation. At present the easiest option is to use the online hosted service that has been developed as part of the openenergymonitor project called emoncms.org [emoncms.org] For this option the emonbase shown in the diagram above just forwards the data received from the emontx up to emoncms.org.

Emoncms can also be installed on your own server and can even be ran on the emonbase itself if it is a raspberrypi. There is full documentation available on setting up emoncms on the raspberrypi or your own server whether linux or windows here:

What you will need

To build the Simple Heatpump monitor you will need the following hardware units:
These can be bought in kit form from the openenergymonitor shop.

1x CT Sensors
1x AC-AC Voltage adapter
5x DS18B20 Temperature sensors
1x EmonTx
1x EmonBase
1x EmonGLCD (optional)

Following the OpenEnergyMonitor guide

At this point its best to follow the main getting started guide. It details there choosing a suitable basestation, and links through to documentation on building the emontx, setting up the arduino programming environment, uploading firmware and using emoncms.

When you get to the "Upload the configuration specific firmware" section follow the following steps to upload the temperature plus power monitoring firmware needed for the heatpump monitor to the emontx:

  1. First select and upload the emonTx_temperature_examples > temperature_search sketch, use this to get the unique addresses of your one-wire temperature sensors. Copy the printed addresses.
  2. Select the emontx_temperature_power sketch (make sure emontx_lib and print_to_serial opened as tabs), paste your addresses in the place of the address list in the sketch (line 50 to 53)
  3. Set the frequency of your emontx to that of the rfm12 hardware type that you have:
        #define freq RF12_433MHZ - default setting
        #define freq RF12_868MHZ - change to 868 if you have the 868MHz version
  4. Upload to the emontx

With the basestation setup as in the getstarted guide and either a local installation of emoncms or an account on emoncms.org up and running you should now see temperature and power data being received in emoncms ready for visualisation and analysis.

Using your heatpump monitoring system

The best place to start with making use of your heatpump monitor is to understand exactly how a heatpump works, when it is most efficient, so that you can compare a theoretical understanding with the data being generated from your heatpump monitor.

John Cantor's book on heatpumps has several useful chapters on a heatpump's operation that I (Trystan) would highly recommend, here's his website: http://heatpumps.co.uk/

We're currently working on tools that model a heatpumps operation theoretically, making it possible to explore how different heating profiles and external and internal conditions affect its operation:

Theory: Heatpump model

Web App: http://www.emoncms.org/openbem/heatpumpexplorer

If you build a heatpump monitor and can add your experience to this documentation please get in contact on the forums.

Best of luck with your build!