Hallo,
ich möchte für meinen Growatt SPH Wechselrichter ein Modbus Modul erstellen.
Dabei frage ich mich, wie ich innerhalb des Moduls die High-Byte, Low-Byte Werte berechnen kann.
Ein Beispiel, im Register 1 steht Input Power (Low-Byte) und in Register 2 Input Power (High Byte).
Zusammen also beispielsweise "00000190".
Wie kann ich jetzt innerhalb des parsers diese Werte korrekt berechnen ?
In python habe ich die register einzeln verwendet und summiert.
float((register[1] << 16) + register[2])
Kann mir hier jemand helfen ?
Danke und Gruß
LuFi
Hi,
ich berechne in einem userReading die Datenmenge der Fritzbox die auch in High und Low Byte geliefert wird.
ReadingsVal($name,".box_TodayBytesSentLow",0) + ReadingsVal($name,".box_TodayBytesSentHigh",0) * 2**32
Meintest Du so etwas?
Gruß Otto
Danke dir,
ich habe es im Modbus jetzt wie folgt gelöst:
'i1046' => { reading => 'EnergyToUserTotal',
name => 'Etouser_total',
unpack => 's>',
expr => '$val / 10',
format => '%.1f',
len => 2,
revRegs => 1,
poll => 1,
},
unpack als 16 bit "s>" und in umgekehrter Reihenfolge "revRegs"
Gruß
LuFi