Fronius Modbus Integration

Keeping documentation updated is always a challenge :slight_smile: I’ll review it for the next release.

Considered this before but have not gotten round to implement it. Added it to list for a future release:

Minimum Reserve is the same as ‘Reserve Capacity’ in the web interface. And as far as I tell from the documentation it is not possible to set ‘Soc Minimum’ through modbus. Which indeed is good so that a battery can’t be totally discharged by accident.

I haven’t tested this either, but just to be sure I’ll add a caution to the documentation to disable the charging schedule to avoid unexpected behavior.

2 Likes

From UI perspective it is indeed confusing and have to look at documentation to see which controls are ignored or is not intuitive. I’ll look into if I can disable the controls to make it more user friendly.

As far as the behavior it should only change setting if it is zero. When it is 10% it should work.

1 Like

With Gen24/BYD batteries, what is the minimum charge rate you can set the battery down to? It’s it 6A like an EV or can you literally crank down to 1W?

You can you down to 0.01% of the maximum charge rate, so indeed 1W for 10KW inverter.

1 Like

Version 0.1.4 is out!

BREAKING CHANGES:

Other changes:

3 Likes

Hi! Is there an option to read mpp1 and mpp2 seperately by HA? I have a Fronius Symo 4.5-3-M inverter. I can’t find an entity in the official implementation nor a modbus register in the documentation.

Yes through modbus mpp trackers can be read individually. The integration supports this:

Thank you for your message. You have a GEN24 inverter, whereas mine is an older or more affordable model. It seems that MPP1 and MPP2 are not supported with my inverter and the official integration. That’s why I’m looking for an alternative way to implement them.

The current Symo models do support modbus TCP. Just try if you can enable the modbus interface in the inverter web control.

It is possible to read out the 2 strings from an older fronius (my inverter: Fronius Symo 7.0-3-M)
see my post for more details:

Hi @redpomodoro, thanks for this integration, very easy to use!!!
I wonder if you could implement a control to put the inverter into standby, should work with the
“Immediate Controls Model (123)”
by sending a 0 to “Conn (5)”

Why is this usefull? If it is night and I restrict the battery to not discharge (e.g. to keep some energy for the morning or for backup), then the inverter is unemployed but still connected and thus using some ~40W from the grid to be active. Putting the inverter to standby during those periods would save quite some energy…

Many thanks in advance!

1 Like

@redpomodoro i’m probably missing something.
I’ve set the charge from grid to 1000 W from 3:00 am to 6:00 am
I was willing to charge the battery with 3kWh
But It charged only half… see picture where the Power absorbed from the grid never exceeds 0,5 kWh
I remember a similar behaviour in the webUI of setting the max charged Power. Instead I used to set a min charge Power of 1 kW and that worked effectively.

Is this expected or do I have to change something in my settings?

Screenshot_20250128_114305_io.homeassistant.companion.android

Update following day: this time I’ve set 1500 W charged from grid but again It never exceeded 500 Wh

Thank you for creating this!

Integration set up just fine (Symo24 10 + HVM 13.8) and gives a lovely amount of entities that I will (maybe) use to replace some helpers I had to infer from the fronius solarweb integration… or maybe replace the solarweb thing altogether (I fear that’ll screw up my energy dashboard because the totals won’t match).

Haven’t tried the manual battery control yet, but am confident I’ll get some price-optimization automations going with my tariff (regular TOU with 3 zones per day) as well as be prepared for the upcoming changes in German PV feed-in regulation (zero feed-in compensation at certain times proposed).

Edit: little fiddle with block charge and discharge works just as expected.

Is it possible to add multiple integrations. I have two Fronius Symo Gen24 10 on different IP addresses (Both Modbus enabled). Only 1 energy meter and BYD batteries off the main inverter (the one with the energy meter). When I try to add the second inverter it over writes the entities of the first?

I have Fronius Primo 5.0-1 with Datacard and Fronius Smart Meter 63A-1.
Inverter is Ethernet connected.
Modbus TCP enabled, Solarnet work fine.

Debug log shows many f these errors (I filtered down, and order changed):


DEBUG (MainThread) [custom_components.fronius_modbus.hub] Init done. data: {'i_manufacturer': 'Fronius', 'i_model': 'Primo 5.0-1', 'i_options': '3.31.1-7', 'i_sw_version': '0.3.30.2', 'i_serial': '3******0', 'i_unit_id': 1, 'WHRtg': 32768, 'MaxChaRte': 65534, 'MaxDisChaRte': 32768}
DEBUG (MainThread) [custom_components.fronius_modbus.hub] Init done. data: {'i_manufacturer': 'Fronius', 'i_model': 'Primo 5.0-1', 'i_options': '3.31.1-7', 'i_sw_version': '0.3.30.2', 'i_serial': '3******0', 'i_unit_id': 1, 'm1_manufacturer': 'Fronius', 'm1_model': 'Smart Meter 63A-1', 'm1_options': '3.31.1-7', 'm1_sw_version': '1.9', 'm1_serial': '2******5', 'm1_unit_id': 240, 'WHRtg': 32768, 'MaxChaRte': 65534, 'MaxDisChaRte': 32768}
DEBUG (MainThread) [custom_components.fronius_modbus.hub] read registers a: 40004 s: 1 c 65
DEBUG (MainThread) [custom_components.fronius_modbus.hub] read registers a: 40255 s: 1 c 88
DEBUG (MainThread) [custom_components.fronius_modbus.hub] read registers a: 40123 s: 1 c 120
DEBUG (MainThread) [custom_components.fronius_modbus.hub] read registers a: 40004 s: 240 c 65
DEBUG (SyncWorker_X) [custom_components.fronius_modbus.hub] read registers a: 40071 s: 1 c 50
ERROR (SyncWorker_X) [custom_components.fronius_modbus.hub] Error reading inverter data
DEBUG (SyncWorker_X) [custom_components.fronius_modbus.hub] read registers a: 40183 s: 1 c 44
ERROR (SyncWorker_X) [custom_components.fronius_modbus.hub] Error reading inverter status data
DEBUG (SyncWorker_X) [custom_components.fronius_modbus.hub] read registers a: 40151 s: 1 c 30
DEBUG (SyncWorker_X) [custom_components.fronius_modbus.hub] read registers a: 40229 s: 1 c 24
ERROR (SyncWorker_X) [custom_components.fronius_modbus.hub] Error reading inverter model settings data
DEBUG (SyncWorker_X) [custom_components.fronius_modbus.hub] read registers a: 40071 s: 240 c 103

Hi @redpomodoro - thanks a lot for the integration, I was eagerly waiting for something like this since I did not want to risk screwing up my configuration :wink:

I do have 2 (maybe dumb) questions:

  • What is the default mode / setting a fronius inverter and byd battery is running before I start using the integration (in case I want to revert to the state before)?
  • My main use case is to “just” block discharging the battery in case I want to charge my car overnight and afterwards to enable discharching again; I don’t want to manually change any limits, ideally I just toggle something like “block discharge” on and off to prevent the car from loading from the battery (or e.g. heating a sauna, etc).

Sorry if these questions would be easy to trial-and-error by “just doing” it, but since this is not a virtual machine :wink: I am reluctant of doing this with a running PV system. Thanks in advance!

Hi @redpomodoro. I just received a battery for my solar system, and this integration is incredibly useful. Thank you for this work.

Now, I have small problem: Some of the controls seem to incompletely work.

For example if I switch to Block discharging, I cannot change the parameter. More to the point, I can type, but the value never seems to be validated. If I go out/in, it reverts to default.

I updated my inverter software, but no effect.

I searched the forums,but did not see any clue. Any idea bout this problem?

Thanks in advance, take care.

Hi @redpomodoro. Until yesterday I was totally happy to use your integration. Thanks a lot for your great work on that. But since last night somehow the setting of the control mode in combination with the values doesn’t work anymore.
I set the mode to “Charge from Grid” and the value of “Grid Charge power” to 3300 W. In the Logbook the change of the mode is confirmed but 3s later the logbook tells that the mode changed to “Discharge” and another 10 seconds later the logbook tells the mode changed to “Holding”. In this mode ist stays
untill I set it backt to “Auto” which is changed then immediatley.
The setting of the “Grid Charge Power” seems not change, when I enter the values.
Do you have a clue what went wrong, or what I should try out to test?
Best regards from South Germany.



Same problem with the core version 2025.3.1 - switching back to 2025.2.5 let me work again. The main problem was that “Cahrge to grid” was not working anymore. Maybe it is a phyton problem…

I had some problems after upgrading my inverter firmware to latest 1.35 version - my EV charger refused to work with it afterwards, maybe that could also be part of the problem?