#!/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)