Skip to content

pmihairo/fronius-modbus

Repository files navigation

Fronius Gen24 Modbus-MQTT Bridge

Reads data from a Fronius Gen24 inverter via Modbus TCP and publishes it to an MQTT broker with Home Assistant auto-discovery. Also allows controlling the inverter (power limiting, battery charge/discharge) via MQTT commands from HA.

Note: this has been tested with Symo Gen24 Plus running 1.38.7-1 software.

Features

  • Polls all SunSpec models: inverter AC/DC data, MPPT strings, nameplate, status
  • Battery/storage support (charge state, charge/discharge control)
  • Home Assistant MQTT Discovery (sensors + controls appear automatically)
  • Writable controls: power limiting, power factor, reactive power, storage charge/discharge
  • Docker-ready

Quick Start

  1. Enable Modbus TCP on your Fronius Gen24 inverter (via the web UI under Communication > Modbus)

  2. Configure:

    cp .env.example .env
    # Edit .env with your inverter IP, MQTT broker IP, etc.
  3. Run with Docker:

    docker compose up -d --build

    Or run directly:

    pip install -r requirements.txt
    python -m src
  4. Entities appear automatically in Home Assistant under the Fronius device.

Configuration

All settings via environment variables (or .env file):

Variable Default Description
MODBUS_HOST 192.168.1.100 Inverter IP address
MODBUS_PORT 502 Modbus TCP port
MODBUS_UNIT_ID 1 Modbus slave ID
MQTT_HOST 192.168.1.50 MQTT broker address
MQTT_PORT 1883 MQTT broker port
MQTT_USERNAME MQTT username (optional)
MQTT_PASSWORD MQTT password (optional)
POLL_INTERVAL 5 Seconds between polls
MQTT_BASE_TOPIC fronius Base MQTT topic
HA_DISCOVERY_PREFIX homeassistant HA discovery prefix
HAS_STORAGE false Set true if battery is connected

MQTT Topics

  • State: fronius/<model>/state — JSON with all register values for that model
  • Commands: fronius/command/<register_name> — send a numeric value to write
  • Availability: fronius/statusonline/offline

Controlling the Inverter

Example: limit power output to 50%:

Topic: fronius/command/w_max_lim_pct
Payload: 50

Topic: fronius/command/w_max_lim_ena
Payload: 1

Example: force battery to charge at 100% rate:

Topic: fronius/command/storage_ctrl_mode
Payload: 1

Topic: fronius/command/storage_in_w_rte
Payload: 100

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors