Skip to main content
Technical Preview

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 at http://<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.
This connector talks to the device directly. For fleet-wide or historic data across sites, use the Fronius Solar.web Query API (cloud) 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 404 with “Solar API disabled by customer config”.
  • The device address in BASE_ADDRESS (for example http://192.168.1.50, no trailing slash). Give the inverter a fixed IP or DHCP reservation.
  • The device ids you want (from active-device/get with device_class System): inverter 1 and primary meter 0 on 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 an https:// base and USE_SSL "true" only when the broker trusts that certificate.
  • One connector per inverter. On GEN24 / Tauro / Verto the System scope 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 200 even when the request fails. Always check Head.Status.Code in 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

Set BASE_ADDRESS to your inverter or Datamanager before deploying.

Testing

See TEST.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-api
  • feat/docs-rest-api-fronius-solar-api
Hugo owns GitHub pushes. Nothing was pushed from the factory.
Last modified on October 21, 2026