Grab them here https://www.smartmotion.life/wp-content/uploads/2023/09/Fronius_Inverter_Register_Map_with_IntegerSF_Inverter_Model.xlsx
Here is another Fronius video that provides a solution for dynamic power reduction with ywo inverters. https://m.youtube.com/watch?v=pWThly26bos&pp=2AEAkAIB[https://m.youtube.com/watch?v=pWThly26bos&pp=2AEAkAIB](https://m.youtube.com/watch?v=pWThly26bos&pp=2AEAkAIB)
Thanks @grahamam107. I took a quick look but some of the key issues I encountered with it when I first tried it are still there.
I ended up rolling my own using HA automations addressing the the modbus registers which works pretty effectively.
Hi,
I found this thread really useful, to understand the mechanics - thanks a lot!
I needed a solution for the new german law ‘Solarspitzengesetz’, that requires a limited feed into the grid by max. 60% of the installed kWp. It calculates the current site consumption and adds this to the inverter max power limit.
The second automation is to turn back to 100% once the inverter goes below 10W. Just if anybody would be interested as well.
Happy to hear any feedback for improvements as well.
My configuration.yaml:
template:
- sensor:
- name: "fronius_symo_pwr_limit"
# Solarspitzengesetz: maximum grid feed is 60% of kWp installed
# i.e. 5220 * 60% = 3120 W
# inverter max power is 5000 W
# value to control inverter power is in percent scaled by 100, i.e. 10000 = 100%
state: >
{% set max_power = 5000 %}
{% set scaling = 10000 %}
{% set installed_Wp = 5220 %}
{% set max_grid_feed = (installed_Wp * 0.60) %}
{{ (( [ ((states("sensor.shellypro3_total_active_power") | float(0) )
+ (states("sensor.fronius_symo_5_0_leistung_ac") | float(0) )
+ max_grid_feed), max_power] | min)
/ max_power * scaling) | int
}}
and my autiomation.yaml:
- id: '1743520805814'
alias: Froinuis Symo limit output power
description: ''
triggers:
- trigger: state
entity_id:
- sensor.shellypro3_total_active_power
conditions:
- condition: numeric_state
entity_id: sensor.fronius_symo_5_0_leistung_ac
above: 3100
- condition: numeric_state
entity_id: sensor.fronius_symo_pwr_limit
below: 10000
actions:
- action: modbus.write_register
data:
hub: mb_symo
address: 40242
value:
- '{{ states("sensor.fronius_symo_pwr_limit") }}'
- 0
- 0
- 0
- 1
mode: single
- id: '1743613179878'
alias: Fronius Reset max Power
description: ''
triggers:
- trigger: numeric_state
entity_id:
- sensor.fronius_symo_5_0_leistung_ac
below: 3000
conditions: []
actions:
- action: modbus.write_register
data:
hub: mb_symo
address: 40242
value:
- 10000
- 0
- 0
- 0
- 1
mode: single
EDIT: improved the conditions in the first automation and increased the trigger value in the second compared to my original post.
Thank you good man, I was wondering why it doesn’t work
For my Symo this toggle to ‘0’ and back to ‘1’ is actually not needed (s. automation above).
What I experience however, is a quite slow regulation of 10-20sec. I assume that the modbus isn’t accessed more frequently? Haven’t investigated if this can be tuned from defaults.
Have read through a lot of this, and my brain keeps breaking :(.
I’m simply wanting to create an entity for my snap Primo 3.0. So as I can set the soft limit from HA with automations.
I have primo setup in MG50, have set primo tcp and Sunspec int +SF.
Been using Musk’s Grok to create the code but failing badly…
I have added the fronius integration, which works.
Any one feel like helping my out ?
Are these addresses the same for a Snap Primo 3.0?