heikowtb
(Heikowtb)
April 16, 2025, 6:45pm
1
Hi,
I have a Proxon/Zimmermann T300 Water Heater connected via Modbus.
There is a legionalla-function which heats to 70°C every week when enabled. There are registers 59 and 60 counting the seconds when this happened last.
- name: "T300 Legionellenfunktion Zähler"
unique_id: t300_legionellenfunkt_zaehler
slave: 20
address: 59
input_type: input
scale: 1
precision: 0
data_type: uint32
swap: word
device_class: duration
state_class: measurement
unit_of_measurement: s
It works, but the readings don’t make sense: after about 24 hours ist should read ca. 24 * 60 * 60 = 86400 seconds, Hi should be 1 (2^16) and Lo 20864. But I get 11 and 6887 (8.3 days approx.)
What am I missing here?
When I’m done and everything works, I will share my setup here.
Regards,
Heiko
Karosm
(Karosm)
April 16, 2025, 11:17pm
2
Read the protocol sheet of your device. Adjust data_type and swap according to that.
heikowtb
(Heikowtb)
April 17, 2025, 5:35am
3
The spec says uint16 for both registers, so is uint32 wrong?
Karosm
(Karosm)
April 17, 2025, 5:51am
4
Quite likely, without swap.
heikowtb
(Heikowtb)
April 17, 2025, 6:15am
5
When I don’t use swap, the values get even weirder.
The calculation in HA is correct, 2^16 * Hi + Lo, as delivered by modbus.
The question is, how to interpret (and convert) it to the real time
Karosm
(Karosm)
April 18, 2025, 2:51pm
6
Try if it’s counting 0.1s units, that comes more close to the numbers you posted…
heikowtb:
The calculation in HA is correct, 2^16 * Hi + Lo, as delivered by modbus.
The question is, how to interpret (and convert) it to the real time
I don’t know what you mean now…
heikowtb
(Heikowtb)
April 18, 2025, 3:46pm
7
Thats right, perhaps the documentation I got is wrong here
heikowtb
(Heikowtb)
April 19, 2025, 9:44am
8
It is! I monitored just the Low-“Word” and it jumps to Zero after about 7100 Seconds (7168 = 1024 * 8 maybe?)
So the documentation is wrong here, I am not yet finished with my integration, when done, I will share it here.