Ever since getting a heat pump installed in September last year, I have been monitoring it using Home Assistant. However, HA never really felt like the right heat pump monitoring tool so when I recently discovered Emoncms, I simply had to try it out. Unfortunately, it turned out to be somewhat of a struggle to get everything up and running so I figured it would be worthwhile to share my findings.
Background info:
- Heat pump hardware: NIBE VVM S320 (indoor) + NIBE S2125 (outdoor)
- Sensors: Internal heat pump sensors
- Communication protocol: Modbus/TCP (Wi-Fi)
- Emoncms HW: Raspberry Pi 4 (I initially tried with an old Raspberry Pi 1, but it couldn’t start the Apache server due to an insufficient amount of memory)
- Location: Silkeborg, Denmark
In short, I had to do the following to get everything up and running:
- Fixing a bug in EmonModbusTcpInterfacer.py [1].
- Changing EmonModbusTcpInterfacer.py from reading holding registers to reading input registers.
- Removing the subtraction by 1 of the register number when reading data (I am not sure why the -1 is there in the first place, but maybe it is needed for some Manufacturers). Alternatively, the specified addresses in the emonhub configuration can also be incremented by 1.
- Making sure I did not have too many open connections with the heat pump since it only allows 5 simultaneous connections [2]. It took me a long time to figure out that this was the reason why reading data kept failing, even though I had an open connection.
My impression is that the Modbus/TCP interfacer in Emonhub is not used by a lot of users, but I still hope this information might be useful to some. Now, I look forward to start tracking metrics and optimise the heat pump settings. I also hope that the internal sensors provides reasonable accurate data (I got hope from [3]) so that I do not feel the urge to go invest in some MID certified sensors
Thanks for making such a great piece of SW open source!
[1] Change Endian.Big to Endian.BIG as per pymodbus change · Issue #213 · openenergymonitor/emonhub · GitHub
[2] See changelog of SW 2.27.5: https://www.nibe.eu/webdav/files/myuplink_changelog/nibe-n.pdf
[3] Search for nibe-onboard-monitoring-accuracy/25598 in this forum (new users can only include two links in a post so I cannot provide a direct link)