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 :))
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!