45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import 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)
|