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:

2 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