pyFroniusReg/examples/check_peak.py

34 lines
888 B
Python
Raw Normal View History

2024-10-16 16:50:16 +11:00
#!/usr/bin/env python3
import statistics
from pyfroniusreg import gen24_registers
from pyfroniusreg.froniusreg import RegisterReadError
from datetime import datetime
from pymodbus.client.tcp import ModbusTcpClient
fronius1 = ModbusTcpClient("172.19.107.211", port=502, timeout=10)
fronius1.connect()
current_time = datetime.now()
2024-10-16 21:33:28 +11:00
soc = gen24_registers.scaledChaState.get(fronius1)
2024-10-16 16:50:16 +11:00
charge_data = []
discharge_data = []
print("Gathering 20 second average of battery Charge")
while( (datetime.now() - current_time).seconds < 20):
2024-10-16 21:33:28 +11:00
charge_data.append(gen24_registers.scaledmodule_3_DCW.get(fronius1))
discharge_data.append(gen24_registers.scaledmodule_4_DCW.get(fronius1))
2024-10-16 16:50:16 +11:00
avg_charge = statistics.mean(charge_data)
avg_discharge = statistics.mean(discharge_data)
print(" Charge: %.2f" % avg_charge)
print("DisCharge: %.2f" % avg_discharge)
print(" SOC: %.2f" % soc)