Mit Sleep 1 läuft es bei mir nicht zuverlässig, manchmal klappt die Abfrage manchmal nicht. Mich stören die 2 Sekunden auch nicht
![Wink ;)](./images/smilies/icon_e_wink.gif)
Mit Sleep 1 läuft es bei mir nicht zuverlässig, manchmal klappt die Abfrage manchmal nicht. Mich stören die 2 Sekunden auch nicht
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_pv= client.read_holding_registers(32080,2)
resp_evu= client.read_holding_registers(37113,2)
value_pv1 = resp_pv.registers[0]
value_pv2 = resp_pv.registers[1]
value_evu1 = resp_evu.registers[0]
value_evu2 = resp_evu.registers[1]
f = open('/var/www/html/openWB/ramdisk/pvwatt', 'w')
value_pv2 = value_pv2 * -1
f.write(str(value_pv2))
f.close()
f = open('/var/www/html/openWB/ramdisk/wattbezug', 'w')
value_evu2 = value_evu2 * -1
f.write(str(value_evu2))
f.close()
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_pv= client.read_holding_registers(32080,2)
resp_evu= client.read_holding_registers(37113,2)
value_pv1 = resp_pv.registers[0]
value_pv2 = resp_pv.registers[1]
value_evu1 = resp_evu.registers[0]
value_evu2 = resp_evu.registers[1]
f = open('/var/www/html/openWB/ramdisk/pvwatt', 'w')
value_pv2 = value_pv2 * -1
f.write(str(value_pv2))
f.close()
f = open('/var/www/html/openWB/ramdisk/wattbezug', 'w')
if value_evu2 > 32768:
value_evu2 = value_evu2 - 65535
value_evu2 = value_evu2 * -1
f.write(str(value_evu2))
f.close()
Johannes_FS hat geschrieben: ↑Mi Aug 11, 2021 3:00 pm
Ich habe alles im PV Modul gemacht, ich vermute, dass ein eigenes EVU Modul mehr Sinn macht, aber dafür kenne ich mich zu wenig aus mit der openWB Architektur.