rohdaten plotten
This commit is contained in:
16
main.py
16
main.py
@@ -2,9 +2,6 @@ from pymodbus.client import ModbusTcpClient
|
|||||||
import struct
|
import struct
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from pymodbus.constants import Endian
|
|
||||||
from pymodbus.payload import BinaryPayloadDecoder
|
|
||||||
|
|
||||||
# Verbindung zur Wärmepumpe
|
# Verbindung zur Wärmepumpe
|
||||||
ip = '10.0.0.10'
|
ip = '10.0.0.10'
|
||||||
port = 502
|
port = 502
|
||||||
@@ -33,13 +30,14 @@ try:
|
|||||||
print(f"Fehler beim Lesen von Adresse {address}: {result}")
|
print(f"Fehler beim Lesen von Adresse {address}: {result}")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
print(f"Adresse {address} - Rohdaten: {result.registers}")
|
||||||
|
|
||||||
if reg_type == 'REAL':
|
if reg_type == 'REAL':
|
||||||
decoder = BinaryPayloadDecoder.fromRegisters(
|
reg_high = result.registers[0]
|
||||||
result.registers,
|
reg_low = result.registers[1]
|
||||||
byteorder=Endian.BIG,
|
# Oder falls dein Gerät Low-Word zuerst sendet:
|
||||||
wordorder=Endian.LITTLE # ← Das ist der Trick!
|
decoder = struct.pack('>HH', reg_low, reg_high)
|
||||||
)
|
value = struct.unpack('>f', decoder)[0]
|
||||||
value = decoder.decode_32bit_float()
|
|
||||||
else:
|
else:
|
||||||
value = result.registers[0]
|
value = result.registers[0]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user