Skip to content

akleber/fronius-json-tools

Repository files navigation

fronius-json-tools

Python tools to work with the json data of the Fronius Solar API.

These are miscellaneous scripts I wrote while working with the Solar API. They mostly lack documentation right now and are sometimes incomplete. Nevertheless my goal is to continously work on them until they fit my needs.

Goals

  • Understand and document the Solar API
  • Python cron script that fetches all available live data of the datalogger and saves it into a sqlite db
  • Python script that import the datalogger archive data into the sqlite db
  • Generate relevant graphs from db
  • iOS app and today widget that shows live data from datalogger

TODOs

  • document setup/getting started

Relevant Graphs

  • Battery Charge throughout the day
  • Overview
    • P_Load (area)
    • P_Grid (line)
    • P (line)
    • SOC (line)

API Links

Notes on Data

  • ActiveDeviceInfo: Dependent on the hardware, should never change
  • InverterInfo: Mostly dependend on Hardware, Configuration, should seldome change, except status and error code
  • InverterRealtimeData: All data also available from PowerFlowRealtimeData.
    • PAC = abs(P_Load + P_Grid)
  • LoggerInfo: Mostly dependend on Hardware, Configuration, should seldom change
  • LoggerLEDInfo: Some minor status infos, should seldom change
  • MeterRealimeData: Interesting Data is here
  • PowerFlowRealtimeData: Summary of most important data. Faster then all other endpoints (fcgi)
    • If Inverter is in Standby P_Akku and P_PV is "null", if only the Battery is in Standby but the Inverter is providing PV power then P_Akku is "0"
  • StorageRealtimeData: Interesting stuff about the battery

API Changes

1.2.3-1 -> 1.3.2-3

  • GetActiveDeviceInfo.json
    • Body.Data.Ohmpilot added
  • GetMeterRealtimeData.json
    • Body.Data.0.Details.Model: "Fronius Smart Meter 63A" change to "Smart Meter 63A"
    • Body.Data.0.PowerApparent_S_Phase_1 added
    • Body.Data.0.PowerApparent_S_Phase_2 added
    • Body.Data.0.PowerApparent_S_Phase_3 added
  • GetPowerFlowRealtimeData.json
    • Body.Data.Inverters.1.E_Day added
    • Body.Data.Inverters.1.E_Total added
    • Body.Data.Inverters.1.E_Year added
    • Body.Data.Site.rel_Autonomy added
    • Body.Data.Site.rel_SelfConsumption added
  • GetStorageRealtimeData.json
    • Body.Data.0.Controller.DesignedCapacity removed
      • also in Body.Data.0.Modules removed
    • Body.Data.0.Controller.Capacity_Maximum added
      • also in Body.Data.0.Modules removed

1.3.2-3 -> 1.4.1-11

  • GetInverterRealtimeData.json
    • Head.RequestArguments.DataCollection removed
  • GetPowerFlowRealtimeData.json
    • Body.Data.Site.BatteryStandby added
  • GetStorageRealtimeData.json
    • Body.Data.0.Controller.Details.Menufacturer: "Sony" changed to "Fronius International"
    • Body.Data.0.Controller.Details.Model: "C5" changed to "Fronius Solar Battery"
  • Float values now have a lot more digits

1.4.1-11 -> 1.6.1-6

  • GetStorageRealtimeData.json
    • Body.Data.0.Controller.DesignedCapacity added, sum of all battery modules DesignedCapacity
    • Body.Data.0.Modules.DesignedCapacity added, displays capacity of one battery module
    • Body.Data.0.Modules.Details.Model now shows "unknown" instead of "P49936860R" for my Sony Battery

1.6.1-6 -> 1.7.2-5

  • GetInverterRealtimeData.json
    • Head.RequestArguments.DeviceClass: Inverter added

1.7.2-5 -> 1.8.1-9 no changes

About

Python tools to work with the json data of the Fronius Solar API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages