Skip to content

Migration

Varitras edited this page Nov 2, 2026 · 2 revisions

Migration

Coming from callifo/fronius_modbus

The integration uses the same fronius_modbus domain. Install it over the earlier integration (see Installation and Setup) and restart; existing entries are migrated on the first start. What changes is checked against callifo 0.3.4. Breaking changes are listed in the CHANGELOG.

What stays

  • Entity IDs, unique IDs, history and statistics, and existing options.
  • A title you gave the entry.
  • Port and inverter address of an entry set up with callifo 0.2.x.
  • The role you chose, for an entry from callifo 0.3.2 or later. An older entry, or one without a stored role, takes the technician role when a technician token is stored, otherwise the customer role.
  • Both entities where two of them shared a unique id, and the sensors of MPPT strings that are dark at the update.
  • The module temperatures of callifo 0.3.3 and later (AC Module Temperature, DC Module Temperature, Battery Module Temperature); they continue as AC module 1 temperature, DC module temperature (3) and DC or battery module temperature.
  • The entities whose unique ids the callifo 0.3.4-rc2 pre-release wrote in lowercase. Where that version left the earlier entity beside its own, the earlier one is kept with its history; the other goes.

Coming straight from 0.2.7 or older, the MPPT and storage module sensors (mppt1_power, mppt1_lfte and the like) come back under new entity IDs, as they did with callifo 0.2.8.

Enum states are keys now

Select options and sensor states are lowercase keys, shown translated in the interface: Auto became auto, Charge from Grid became charge_from_grid, On grid operating became on_grid_operating, Enabled/Disabled became enabled/disabled. The rule is lowercase with every run of other characters replaced by _. Update automations and templates that compare against the old texts (is_state(..., "Auto"), option: "Charge from Grid").

Connection and data

  • Minimum Home Assistant version 2026.9.0.
  • No Modbus connection of its own: the integration asks Home Assistant's built-in modbus integration for a unit on a shared connection, so it can run beside other integrations that talk to the same inverter.
  • Registers are decoded from the SunSpec model definitions, including sentinel values and scale factors.
  • The Web API is polled on its own interval (default 60 s) instead of once per Modbus poll.
  • An energy total still ignores a drop and an implausible jump, but accepts a genuine counter reset after three readings that agree; the earlier integration refuses every lower value for good.
  • A control set to the value the inverter already holds writes nothing.

Setup and security

  • The checkbox "Restrict Modbus to this IP" became the option Modbus IP restriction with three choices (see Installation and Setup); the default keeps the inverter's setting. The earlier integration lifted the restriction whenever the box was unchecked, and a checked box replaced the allowed hosts with Home Assistant's address; allowing Home Assistant now adds its address to the hosts already allowed while the restriction is on. While it is off, Home Assistant's address becomes the only allowed host. Migrated entries keep their choice: checked becomes "restrict and allow this Home Assistant", unchecked becomes "keep".
  • Enabling Modbus TCP keeps the RS485 ports' roles and Modbus RTU served alongside TCP. The earlier integration wrote a fixed block that moved both RS485 ports to master and turned RTU served alongside TCP into TCP alone.
  • The stored Web API token is readable by Home Assistant only, and deleted once no entry uses its host and role.
  • The Web API login is optional (see Web API).
  • The inverter is discovered over mDNS, and an entry set up by IPv4 address follows it to a new address.

Battery

  • The SoC window follows the inverter's own switch: SoC Maximum and the new SoC Minimum (Web API) are writable while the new Web API SoC mode is Manual. The earlier integration tied them to Self-consumption optimisation.
  • Grid charge power and Grid discharge power scale by their own rate maximum; the earlier integration wrote each against the opposite one.

New entities

  • Component sensors from the inverter's web interface: module temperatures, fans, per-phase AC power, output power limit, grid validity, battery state of health and more.
  • Throttle reason, Web API SoC mode, SoC Minimum (Web API), and the inverter's events (see Events and Throttling).
  • A diagnostics download with the raw SunSpec register map.

Entries without a valid login

Entries created with older Modbus-only versions are migrated with safe defaults and keep working. If an entry has no valid stored Web API token for its host and role, Home Assistant asks for a new login on the integration (Reauthentication required): choose the role and enter its password, or choose Without the web API. Host, intervals and the Modbus IP restriction stay as they are; change them with Reconfigure. Logging in again with a role also writes the inverter's Modbus settings, as the setup does (see Web API), including the Modbus IP restriction the entry has.

Until then such an entry does not poll the inverter's web interface at all: the component sensors and events are missing too, and only the first smart meter is read.

Clone this wiki locally