From 30c785221ef0178b0316d51e7b7275e59b7d5e97 Mon Sep 17 00:00:00 2001 From: Xavier Beaudouin Date: Sat, 23 Sep 2023 16:28:04 +0200 Subject: [PATCH] Fix for pymodbus 3.5.x --- plugin.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/plugin.py b/plugin.py index 02c631f..efc7e25 100644 --- a/plugin.py +++ b/plugin.py @@ -332,14 +332,16 @@ def getmodbus32(register, client): try: data = client.read_holding_registers(register, 2) Domoticz.Debug("Data from register "+str(register)+": "+str(data)) - decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.Big, wordorder=Endian.Big) + #decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.Big, wordorder=Endian.Big) + decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.BIG, wordorder=Endian.BIG) value = decoder.decode_32bit_int() except: Domoticz.Error("Error getting data from "+str(register) + ", try 1") try: data = client.read_holding_registers(register, 2) Domoticz.Debug("Data from register "+str(register)+": "+str(data)) - decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.Big, wordorder=Endian.Big) + #decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.Big, wordorder=Endian.Big) + decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.BIG, wordorder=Endian.BIG) value = decoder.decode_32bit_int() except: Domoticz.Error("Error getting data from "+str(register) + ", try 2") @@ -352,14 +354,16 @@ def getmodbus16(register, client): try: data = client.read_holding_registers(register, 1) Domoticz.Debug("Data from register "+str(register)+": "+str(data)) - decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.Big, wordorder=Endian.Big) + #decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.Big, wordorder=Endian.Big) + decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.BIG, wordorder=Endian.BIG) value = decoder.decode_16bit_int() except: Domoticz.Error("Error getting data from "+str(register) + ", try 1") try: data = client.read_holding_registers(register, 1) Domoticz.Debug("Data from register "+str(register)+": "+str(data)) - decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.Big, wordorder=Endian.Big) + #decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.Big, wordorder=Endian.Big) + decoder = BinaryPayloadDecoder.fromRegisters(data, byteorder=Endian.BIG, wordorder=Endian.BIG) value = decoder.decode_16bit_int() except: Domoticz.Error("Error getting data from "+str(register) + ", try 2")