Overview
Fronius inverters (GEN24 Plus, Tauro, Verto) and the Fronius Datamanager 2.0 / Hybridmanager (SnapINverter, Symo Hybrid) serve the Fronius Solar API V1: a read-only JSON API on the plant LAN athttp://<device-ip>/solar_api/v1/. It is documented in the Fronius Solar API V1 operating instructions and Fronius ships an OpenAPI 3.0 file for GEN24 / Tauro / Verto.
The FroniusSolarApi connector maps 17 MQTT topics onto that API. Typical uses are putting live PV, grid, load and battery power on the broker every few seconds, feeding smart-meter values into energy dashboards and load control, and alarming on inverter status and error codes, all without the Solar.web cloud. Each event publishes the device reply on <topic>/response.
Every event is a
GET. The Solar API has no write operations: to control an inverter (export limits, battery charge) use Modbus TCP (SunSpec) instead.
Prerequisites
- A Fronius GEN24 / Tauro / Verto inverter or a Datamanager 2.0 / Hybridmanager reachable from the broker over the plant LAN (default port 80).
- On GEN24 / Tauro / Verto: the Solar API switched on in the inverter WebUI under Communication > Solar API. New devices (and factory resets) from bundle 1.14.1 ship with it off; a disabled API answers
404with “Solar API disabled by customer config”. - The device address in
BASE_ADDRESS(for examplehttp://192.168.1.50, no trailing slash). Give the inverter a fixed IP or DHCP reservation. - The device ids you want (from
active-device/getwithdevice_classSystem): inverter1and primary meter0on most single-inverter sites.
Connection and security
- No authentication. Anyone on the network can read the Solar API, so keep the inverter on the OT VLAN and do not expose it to the internet.
- HTTP vs HTTPS. Private addresses (10/8, 172.16/12, 192.168/16) answer over plain HTTP, so the connector ships with
USE_SSL "false". GEN24 / Tauro / Verto from firmware 1.35 also serve HTTPS with a Fronius self-signed certificate and redirect non-private addresses to HTTPS. Switch to anhttps://base andUSE_SSL "true"only when the broker trusts that certificate. - One connector per inverter. On GEN24 / Tauro / Verto the
Systemscope only covers the inverter you call. Copy the connector with another name and base address for each additional inverter.
Pacing and errors
- At most 2 realtime requests in parallel, with about 4 seconds between calls. Archive requests run one at a time, 120 seconds apart. Poll power flow every 5 to 10 seconds and slower for everything else.
- Realtime data only exists while the devices are awake: expect missing inverter values at night.
- The HTTP status is
200even when the request fails. Always checkHead.Status.Codein the response:
Platform support
Payload
Events without fields accept any payload, for example
{}.
Example actions
These actions poll power flow every 10 seconds, the inverter and meters every 30 seconds and the inverter list every 5 minutes, well inside the Solar API pacing rules. No secrets are needed.Deployable connector
SetBASE_ADDRESS to your inverter or Datamanager before deploying.
Testing
SeeTEST.md in the package. Static checks against the Fronius PDF and GEN24 OpenAPI, a local Datamanager-like mock and the error controls all pass. A live run needs a Fronius device on the broker’s network: FRONIUS_BASE=http://<inverter-ip> python3 smoke_fronius.py.
Suggested branches
feat/rest-api-route-fronius-solar-apifeat/docs-rest-api-fronius-solar-api

