Johannes_FS hat geschrieben: ↑Mi Aug 11, 2021 1:56 pm
Zeile 14 und 26: Duplikate -> eine entfernen
Zeile 26: client = ModbusTcpClient(ipaddress, port=502
, unit_id=1)
Zeile 27: "unit=1" entfernen
zw. Zeile 26 und 27 einfügen: time.sleep(2)
Zeile 4: import time -> Kommentar entfernen
Irgendwie hatte ich dann auch Probleme bei der Hex Umwandlung in Zeile 33, aber das habe ich nicht weiter untersucht.
Argh, das wichtigste vergessen: Vor die neue Zeile "time.sleep(2)" muss noch ein "client.connect()"
Hier mal der Code, der zumindest wenn man ihn manuell ausführt das korrekte Ergebnis in Register[1] liefert.
Wie gesagt das formatieren unten und das in die Datei schreiben hab ich aktuell noch nicht angeschaut.
Code: Alles auswählen
#!/usr/bin/python
import sys
import time
import struct
from pymodbus.client.sync import ModbusTcpClient
ipaddress = str(sys.argv[1])
client = ModbusTcpClient(ipaddress, port=502, unit_id=1)
client.connect()
time.sleep(2)
resp= client.read_holding_registers(32080,2)
value1 = resp.registers[0]
value2 = resp.registers[1]
print(str(value1))
print(str(value2))
#all = format(value1, '04x') + format(value2, '04x')
#final = int(struct.unpack('>i', all.decode('hex'))[0])*-1
#f = open('/var/www/html/openWB/ramdisk/pvwatt', 'w')
#f.write(str(final))
#f.close()
# print(str(final))