I have been writing in Finnish about my journey on replacing district heating with an air-to-water heat pump. This post will cover technical details about monitoring this Daikin Altherma 3 R W – EHBX-E9W.
Daikin is selling a modbus control box (Daikin DCOM-LT/MB) as add-on for the heat pump. I’m currently using it to read and archive operational values from the heat pump. It should be also possible to control the heat pump but that one I haven’t yet used.
I’m reading the data using Raspberry Pi with RS 485 add-on board and Nodered using node-red-contrib-modbus and node-red-contrib-prometheus-exporter. Data is then passed to the Prometheus database and presented with the Grafana, as I have written before.

In the above Nodered flow values are read from the modbus registers every 5 seconds and the published for the Prometheus. As an example the input register for domestic hot water temperature is read with the following function.
const buff = Buffer.from(msg.payload.buffer)
msg.payload = {
"op": "set",
"val": buff.readInt16BE(44) / 100
}
return msg;
Resulting data is then enriched with data from electricity meters (one for compressor and another for backup heater). One example of result is shown below. I’m using the data to for example monitor (and alert) for too low flow rate, calculate COP and control defrost of the drip tray (more on that on another post).
