Hallo,
Ich habe mehrere Wärmezähler, die per MBus ihre Daten liefern. Um die Daten auslesen zu können, müssen Raw-Daten interpretiert werden. Dabei ist folgendes Problem aufgetaucht:
Bei der Interpretation von 32Bit Integer-Werten im little Endian-Format per
1,686e6e68x69uuUUUUUU@1,Test,Test,0
hat das nur bis zur 16Bit-Grenze funktioniert. Bei größeren Werten wurde dort 0 zurückgeliefert. Da die Option nicht dokumentiert ist und aus einem Forumsbeitrag stammt, würde mich nicht wundern, wenn die nicht offiziell unterstützt ist und möglichwerweise fehlerbehaftet. Mit:
1,686e6e68x69uuUUuuUU@1,Test,Test,0
kamen zwar Werte, die aber Low- und High-Word vertauscht hatten. Ist das inzwischen gefixt? Um dort trotzdem Werte auszulesen musste ich 2 16Bit-Werte lesen und dann im Anschluss das High-Word mit 65536 multiplizieren und auf das Low-Word addieren. Das funktioniert ist aber eigentlich unnötig aufwendig.
Das Problem mit einem TTL-Sensor ist ja mit Fírmware-Version 14.3.0 gefixt. Dort wurden falsche Werte ausgelesen, obwohl im Debug korrekte Datenpakete angezeigt wurden. Mit dem oben beschriebenen Workaround und Firmware 14.3.0 klappt jetzt das Auslesen von 2 MBus-Wärmezählern mit einem Stromleser-Wifi+Stromleser-TTL.