Central Heating Monitor

I’ve been trying for a while to understand the operation of my central heating system – mainly to see if it is running unnecessarily at times and how efficiently it does its job.  I have thought about a few off-the-shelf solutions (OWL hot-water thermostat, Nest, Hive, Danfoss Z-Wave TRVs, etc) but each seems to have limitations for the kind of system I have (two zones + hot water, basic TRVs on all radiators, Z-Wave TRVs on two radiators).

So I’ve decided to put together a basic monitoring box myself and record all the data I can get my hands on to see what is really happening.

Source code for the MBED is here

The box acts as both a web server (not the most beautiful UI :))

gasusemonitor

And broadcasts UDP messages with data collected in senml format, for example:

{"e":
     [
         {"n":"gasCount","v":893,"u":"count"},
         {"n":"gasPulseRateMs","v":0,"u":"ms"},
         {"n":"temp_28e8c2150300006a","v":25.0,"u":"degC"},
         {"n":"temp_2804096604000036","v":24.9,"u":"degC"},
         {"n":"temp_28ffe31503000081","v":24.8,"u":"degC"},
         {"n":"pump_1","bv":0},
         {"n":"pump_2","bv":0},
         {"n":"pump_3","bv":0}
     ],
"bt":1443386249
}

Data is also logged in the same format to an SD card on the MBED unit. This can be accessed through the web server using the following uri:

http://RdGasUseMonitor.local/Data_YYYYMMDD.txt

Where YYYY is 4 digit year, MM is 2 digit month and DD is 2 digit date.

A watchdog is implemented to, hopefully, handle the situations where the box fails – I have had it running for a little while and it hasn’t failed yet but you never know!

Gas Use Monitor ConnectorsGas Use Monitor