Repository navigation
Web API
The inverter's local web interface has an API behind it. With a login, the integration uses it to set up the inverter's Modbus and to add battery settings Modbus does not carry. Some of its endpoints answer without a login; the integration reads those in every entry that polls the web interface.
An entry uses exactly one of:
| Role | What it is |
|---|---|
| Customer | The local customer login of the inverter's web interface. |
| Technician | The local technician login. It covers everything the customer role does and adds the export soft limit. |
| Without the web API | No login; the entry runs on Modbus and the endpoints that need no login. |
The role is the login used when you open the inverter's web interface in a browser by its address in your network. Your installer should have provided it. It is not the Solar.web login of Fronius' cloud. To switch the role, use Configure or Reconfigure (see Installation and Setup).
With a role, the setup, a new login and every relevant configuration change:
- switch Modbus TCP on;
- switch the SunSpec model type to
int + SF, the one the integration reads. When the inverter's Modbus is on and usesfloat, the setup asks first: an external device that reads the float models may no longer work after the switch. Declining leaves the inverter as it is and ends the setup; - set the entry's port and inverter address (502 and 1; an entry migrated from callifo 0.2.x keeps the ones it was set up with), the meter address offset 200, and Allow Control, which the Modbus controls need;
- handle Restrict Control by the Modbus IP restriction you chose (see Installation and Setup);
- keep the RS485 ports' master or slave role. An RS485 port that serves Modbus RTU keeps serving it, with Modbus Server via TCP added next to it, and a setup that already serves both stays as it is.
A host that another entry already serves is refused before the inverter is contacted. The check runs again right before the Modbus settings are written, so an entry that takes the host until then stops the setup there.
- The battery settings of the inverter's own battery management:
Self-consumption optimisationandTarget feed in,Web API SoC modewithSoC MaximumandSoC Minimum (Web API),Backup reserve, and theCharge from gridandCharge from ACtoggles (see Battery Control). - Selecting
Charge from Gridalso allows charging from the grid in the inverter's battery configuration (see Battery Control). - The
Solar APIswitch and theReset Modbus Controlbutton. - The export soft limit, a number and a sensor. They work with the technician role; with the customer role they exist but stay unavailable.
- The Modbus service settings as diagnostic sensors.
- A repair notice on firmware below 1.40.7-1 with the Solar API switched on, which offers to switch the Solar API off (see Troubleshooting and Diagnostics).
The inverter's component and event endpoints answer without a login, so every entry reads them, also one without the web API:
- the component sensors: module temperatures, fans, per-phase AC power, output power limit, grid validity, battery state of health and cell temperatures and more (see Entities);
- the inverter's event log (see Events and Throttling);
- the limit flags behind the throttle reason;
- from 1.4.0b3, the state of the energy management outputs;
- the list of smart meters and where each one is installed, which the
Loadsensor needs.
These come with the Web API poll.
An entry that has a role but no stored login yet, for example after a migration or when the token is missing, polls none of this until you log in again: the component sensors and event entities are not created (ones from earlier starts show unavailable), the throttle reason misses its limit flags, and only the first smart meter is read.
The integration does not keep the password in the config entry. It stores a derived digest token in Home Assistant's storage, readable by Home Assistant only.
- The password is asked for only when no token exists for the host and role, or the token must be refreshed. Configure always offers the password step, so a stored token can be replaced.
- The token is deleted when no entry uses its host and role any more: on removing the entry, or on moving it to another host or role.
- When discovery follows the inverter to a new address, the token moves with it.
- When the inverter refuses the token, for example after the password was changed on the inverter, Home Assistant asks for a new login on the integration (Reauthentication required). Enter the role's password again, or choose Without the web API. Until then the entities that need the login stay, unavailable. An entry that starts without a valid token does not poll the web interface at all until then (see above).
Choose Without the web API as the role to run the entry on Modbus alone. No
password is asked for and no token is stored. Set the inverter's Modbus by
hand first (see Installation and Setup);
without a login the setup cannot set any of it. It reports Modbus did not
answer until Modbus TCP and int + SF are set, and the controls fail while
Allow Control is off.
What stays:
- all Modbus sensors and controls:
Storage Control Mode, charge and discharge limits, grid charge and discharge power,Modbus storage reserve, AC limit, power factor, inverter connection; - the component sensors, the event log and the list of smart meters, since those endpoints answer without a login.
What is not there:
-
Web API SoC mode,SoC Maximum,SoC Minimum (Web API),Backup reserve,Self-consumption optimisationandTarget feed in; - the
Charge from gridandCharge from ACtoggles, theSolar APIswitch, the export soft limit,Reset Modbus Control; - the Modbus service diagnostics, enabling Modbus TCP during setup, and the repair notice for firmware below 1.40.7-1.
Charge from Grid then stops at around 500 W unless grid charging is allowed
in the inverter's own battery configuration; allow it once in the inverter's
web interface (see Battery Control).
Switching an existing entry to Without the web API deletes its stored token and removes the entities that need the web API; their recorded history stays in Home Assistant. The removal waits for a start at which the list of smart meters can be read, like every cleanup; if the inverter reports no meter at all, delete those entities yourself.
Switching back to a role creates them again and writes the Modbus settings, the IP restriction choice included, since nothing wrote them without the login.
An entry that keeps a role but lost its login is not the same: its web entities stay, unavailable, and Home Assistant asks for a new login.
The Web API cannot be reached through an IPv6 address. Set the entry up with an IPv4 address or a host name.