Fix for pymodbus 3.5

This module will works ONLY with pymodbus 3.5+
This commit is contained in:
2023-09-23 16:11:50 +02:00
parent 971398505c
commit ecb2810c3b

View File

@ -229,14 +229,16 @@ def getmodbus16(register, client):
try: try:
data = client.read_holding_registers(register, 1) data = client.read_holding_registers(register, 1)
Domoticz.Debug("Data from register "+str(register)+": "+str(data)) 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() value = decoder.decode_16bit_int()
except: except:
Domoticz.Error("Error getting data from "+str(register) + ", try 1") Domoticz.Error("Error getting data from "+str(register) + ", try 1")
try: try:
data = client.read_holding_registers(register, 1) data = client.read_holding_registers(register, 1)
Domoticz.Debug("Data from register "+str(register)+": "+str(data)) 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() value = decoder.decode_16bit_int()
except: except:
Domoticz.Error("Error getting data from "+str(register) + ", try 2") Domoticz.Error("Error getting data from "+str(register) + ", try 2")