Request monitoring data from a Fronius PV inverter's Rest API foreward and store it in an InfluxDB for visualization in Grafana. The current application collects the most fundamental Fronius inverter data serving for a basic setup. If your installation is much different or more advanced, some extra work may be reqired, though.
Furthermore, weather forecasts, i.e. the "Surface short-wave (solar) radiation downwards", are downloaded from the European Centre for Medium-Range Weather Forecasts (ECMWF), in order to predict the (day-by-day) energy to be expected by the PV installation for the upcoming 10 days.
This application collects data from the following endpoints (Symo GEN24 6.0). For further reading see the appropriate API. Adjust fronius host and path accordingly (see parameter.json)
"http://<host-ip>/<path>/GetInverterRealtimeData.cgi?Scope=Device&DataCollection=CommonInverterData&DeviceId=1"
"http://<host-ip>/<path>/GetStorageRealtimeData.cgi?Scope=Device&DeviceId=0"
"http://<host-ip>/<path>/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0"
All monitoring data is stored in bucket "Fronius", comprising the following measurements:
- "DeviceStatus": status of inverter (no dashboard available in Grafana).
- "CommonInverterData": values which are cumulated to generate a system overview
- "Battery": charging status, (dis-)charging demand (voltage and current), temperature
- "SmartMeter": detailed information about Meter devices.
- "SolarData": calculated energy on each panel group, as function of the geolocation of the PV installation, solar position, and attenuation owing to airmass.
- "Forecast": predicted solar flux (units of kWh) on all PV panels as cumulated over the step size provided by ECMWF for the next 10 days. ECMWF data is updated 4 times a day - according to the cron job in docker.
Moreover, in bucket "aggregates" the measurement "daily" represents a materialized view over all energy data aggregated to one day, such as:
- Battery (dis-)charged
- Net (from/to)
- Power consumed
- Power solar
- Produced In
- Usage Direct
The dashboards "Aggregates Daily and Monthly" query on this measurement. The task for the creation of the materialized view runs once a day triggered by an influxDB scheduler.
The current installation runs on a Raspberry Pi 4 B (with 4 GB RAM and a
64 GB SD card) inside a Docker infrastructure, comprising four containers.
cd docker
docker-compose build
docker-compose up -d
Please create the token files inside docker/data/secrets appropriately. The tokens for read and write access to the influxDB are visible in the docker-compose logs after first initialization.
available via Grafana dashboards and influxDB flux.
Thanks to Wattpilot we implemented parts of their coding to account for monitoring the wallbox.
The current setup considers photovoltaic modules on either side of the rooftop. For other cases, adjust the FLUX statements (in Grafana) appropriately, i.e. the setup is not generic.
Current README will be updated in more detail.