fronius-json-tools
Python tools to work with the json data of the Fronius Solar API
fronius-json-tools: personal scripts for the Solar API
Scratch scripts for the Fronius Solar API that pull datalogger data into sqlite, draw battery and power graphs, and keep a running log of how the API drifts between versions.
Honest about itself
The author calls these miscellaneous scripts written while working with the Fronius Solar API, and freely admits they mostly lack documentation and are sometimes incomplete. The stated plan is to keep working on them until they fit his own needs. It is a personal toolkit first, and that is exactly how the README introduces it.
What it is for
The goals list covers the whole scope: understand and document the Solar API, run a Python cron script that fetches all available live data from the datalogger and saves it into a sqlite database, import the datalogger's archive data the same way, generate graphs from the database, and build an iOS app with a today widget that shows the live data.
Reading the data fields
A notes section separates stable fields from volatile ones. ActiveDeviceInfo depends on the hardware and should never change, while InverterInfo mostly tracks configuration and only shifts on status or error codes. PowerFlowRealtimeData is called the fastest summary endpoint, faster than the others since it runs on fcgi, with PAC computed as the absolute value of P Load plus P Grid. One quirk: if the inverter is in standby, P Akku and P PV come back as null, but if only the battery is idle while the inverter still produces PV power, P Akku reads as zero.
The changelog as a diary
The API Changes section logs field-level drift across firmware versions: an Ohmpilot field appears in GetActiveDeviceInfo, the smart meter model string changes from Fronius Smart Meter 63A to Smart Meter 63A, PowerApparent S phases are added, a DataCollection request argument disappears, and the storage controller gains a designed capacity while its manufacturer flips from Sony to Fronius International. It reads like field notes on an API that keeps moving.
Community notes