Hallo,
vielleicht sind hier mehr pymodus-Nutzer:
Möchte bei meiner Ladesäule über pymodbus das Register 1000 mit einem Wert (Stromstärke, hier 14) beschreiben. Alles hat, bis zum Crash und Funktionsverlust der SD-Karte auch mal funktioniert. Das Backup war natürlich nicht aktuell und nun bastle ich es mir nochmals zusammen...
Hier der Code von write.py:
Python
#!/usr/bin/python3
from pymodbus.client.sync import ModbusSerialClient
client = ModbusSerialClient(method = "rtu", port="/dev/ttyUSB0", baudrate=9600, stopbits=1, bytesize=8, timeout=1)
rq = client.write_registers(1000,14,unit=1)
rq = client.read_holding_registers(1000,1,unit=1)
print(rq.registers)
Und hier die Fehlermeldung:
Code
Traceback (most recent call last):
File "write.py", line 4, in <module>
rq = client.write_registers(1000,14,unit=1)
File "build/bdist.linux-armv7l/egg/pymodbus/client/common.py", line 97, in write_registers
File "build/bdist.linux-armv7l/egg/pymodbus/register_write_message.py", line 138, in __init__
TypeError: object of type 'int' has no len()
Nehme ich die Zeile
raus, kommt keine Fehlermeldung und der Wert im Register 1000 wird angezeigt (Wert stimmt auch). Auch wenn ich andere Werte der Register 1001 und 1002 abfrage passt es. So gesehen sollte die Kommunikation mit der Ladesäule funktionieren, nur das Schreiben klappt nicht...