pyFroniusReg/examples/reset_charge.py

44 lines
1.3 KiB
Python
Executable file

#!/usr/bin/env python3
from pyfroniusreg import gen24_registers as froniusreg
from pymodbus.client.tcp import ModbusTcpClient
fronius1 = ModbusTcpClient("172.19.107.211", port=502, timeout=10)
fronius1.connect()
soc = froniusreg.scaledStateOfCharge.getValue(fronius1)
print(" SOC: %s%%" % soc)
discharge = froniusreg.scaledOutWRte.getValue(fronius1)
print("Pre DRate: %d%%" % discharge)
charge = froniusreg.scaledInWRte.getValue(fronius1)
print("Pre CRate: %d%%" % charge)
mode = froniusreg.StorCtl_Mode.getValue(fronius1)
print("Pre Mode: %d" % mode)
reserve = froniusreg.scaledReserve.getValue(fronius1)
print("Pre Res: %d" % reserve)
# This should be 'no limits' mode
err = froniusreg.StorCtl_Mode.setValue(fronius1, 0)
# discharge at 100% allowed charge rate
err = froniusreg.scaledOutWRte.setValue(fronius1, 100)
err = froniusreg.scaledInWRte.setValue(fronius1, 100)
# charge to 7%
err = froniusreg.scaledReserve.setValue(fronius1, 7)
discharge = froniusreg.scaledOutWRte.getValue(fronius1)
print("Post DRate: %d%%" % discharge)
charge = froniusreg.scaledInWRte.getValue(fronius1)
print("Post CRate: %d%%" % charge)
mode = froniusreg.StorCtl_Mode.getValue(fronius1)
print("Post Mode: %d" % mode)
reserve = froniusreg.scaledReserve.getValue(fronius1)
print("Post Res: %d" % reserve)