[APP][Pro] Fronius Control

Fronius Control — control a Fronius inverter and its battery from Homey over Modbus TCP.

Solar power is worth the most when it is used, not when it is sold. This app lets Homey decide what your Fronius system does with it: charge the battery when electricity is cheap, discharge it when it is expensive, keep imports below your fuse rating, and hold production back on the hours when feeding the grid costs you money instead of paying you.

App Store:
Test version:

What it works with

  • GEN24 inverters, with or without a battery. A GEN24 with a battery is added as two devices, a battery and a solar panel, so Homey Energy counts production and storage separately.
  • SnapINverter models on a Datamanager 2.0: Symo, Primo and relatives. Production reading, production limiting and zero export.
  • A Fronius Smart Meter is needed for anything that reacts to what passes the grid connection: peak shaving, import-capped charging, zero export.

Before you add a device

Modbus is switched off on a new Fronius inverter and no app can turn it on for you. Open the inverter’s web interface first.

GEN24, under Communication - Modbus:

  • Mode: TCP Server
  • SunSpec Model Type: int + SF
  • Modbus Port: 502
  • Meter Address Offset: 200
  • Allow Control: on
  • Restrict Control: off, or add Homey’s IP address

Two of those decide whether it works at all. int + SF is not what Fronius ships with, and the battery device reads a fixed set of addresses that only exist in that mode. On float you get “Modbus polling failed” and nothing else. Allow Control is what permits the inverter to accept a command instead of only answering questions.

Datamanager 2.0, under Settings - Modbus:

  • Data output via Modbus: tcp
  • Modbus port: 502
  • Sunspec Model Type: either one, the app detects which is in use
  • Inverter control via Modbus: on, if you want production or export limiting

Then add the device, enter the IP address and press Test connection. The app reads the model, serial number and power ratings out of the inverter itself, so there is nothing to look up in a datasheet. Unit ID is 1 on a GEN24. On a Datamanager it is the inverter number shown on the inverter’s own display, which is also 1 unless several inverters share one Datamanager.

What it can do

Battery: charge and discharge limits in watts, forced charge and discharge, hold (solar charge only), charging capped by grid import and by per-phase fuse size, peak shaving.

Production: production limit in watts, zero export, and handing control back to the inverter’s own export limit.

Known limits, and what is untested

  • The zero-export loop has never been run against real export. It needs actual surplus to test honestly.
  • Float mode is handled for SnapINverter but not for the GEN24 battery device. Use int + SF there.
  • Primo is handled in the code but has never been tested against real hardware.
  • Multiple Inverter Control writes to the same registers as this app. Don’t run both.
  • A Fronius inverter accepts roughly two Modbus connections at a time, so another Modbus master competing for them will cause trouble.

Reports are welcome, particularly from hardware I don’t have.

Great and thanks! within a few days I am going try it with my Gen24 12, smartmeter and Reserva battery.
1 question: You mention ‘multiple inverter control’: i don’t know what that means and how I could check if, and where, it could be running.

Good question — it almost certainly doesn’t apply to you.

Multiple Inverter Control is a Fronius feature, not part of this app. It’s for
sites with several inverters behind one smart meter: one inverter acts as master
and writes the production limit to the others. That limit uses the same Modbus
register (WMaxLimPct, 40233) as this app’s export and zero-export cards, which is
why both can’t be active at once. With a single GEN24 12 there’s nothing to
collide with, so you can ignore it.

What is worth checking on your setup: in the inverter’s web interface (browse to
its IP address) go to Safety and grid regulation → Feed-in limit. If Fronius’ own
Export Limit Control (Soft Limit) is enabled there — for example a cap required by
your grid operator — it regulates that same register continuously and will fight
the app’s export cards. Battery charge/discharge cards are unaffected either way;
this only concerns export limiting.

For the record, the app does support several inverters — you’d add one device per
inverter, each with its own IP.

New testversion out Fronius Control | Homey