I’m trying to read several values from my Remeha Elga Ace heatpump over modbus. I’ve got the basics working well, but there are a few parameters that are a bit more tricky. These parameters describe state by setting different bits in a single register. These parameters are described as having the type ‘ENUM8’ and UNSIGNED16 (not that this is not referred to as an unsigned 16-bit int).
I’m struggling how to get this working in Home Assistant as both ENUM8 and UNSIGNED16 are not listed amongst the supported data types. I have seen from other posts on the forum that the way to handle these registers containing multiple states is to essentially fetch the raw value to a sensor and then create a binary sensors for each individual value that is represented in the bitmasks of the raw sensor data.
But I am stuck defining the base data type of the sensor reading from modbus, and so far unable to get it to work. I have tried int8 for ENUM8 and uint16 for UNSIGNED16, in combination with a template sensor like {{ states('sensor.elga_heating_mode')|int|bitwise_and(1) > 0 }} (this example was intended to read the first value from an ENUM8 represented as an int8). I’m not getting sensible results back though.
Has any one any clue how to do this? Or a similar config to share?
Using this config, the last sensor becomes unavailable. The above two work and get integer values (I’ve seen 2 and 0) that (understandably) don’t correspond with the actual state. I just can’t seem to get the state out.
Hi mate
do you had any luck with this regisrer value? I got always or 0 or invalid value. Just tried all device_class (int16, uint16, float16, etc…). or maybe do you found this information (DHW tank temperature) from other register…
Sure Koen, you need the GTW-08 module installed (you can do this yourself or have an installer do it for you). That then connects to a simple Modbus → Wifi / Ethernet module which you can get off Aliexpress.