Integration of a Fronius Symo Gen 24 plus Inverter via Modbus TCP

I just tried to change it by connecting direct to access point on 192.168.250.181 and it still wont let my save changes. I’m logged in as Technician.

Thoughts?

Yeah thats what I have started doing. I dont have a consumption meter so i take my load measures from the powerwall sensors and create a scaling factor that is devided by 2 and sent to both inverters.

I keep my inverters in throttled mode all the time and just send the watt max % scaling factor to my inverters when I am getting charged for FIT
When my solar feed in is at a positive price i send the 100% command

My scaling factor acts as the trigger with a filter setup to stop duplicate scaling factors from triggering the flow.

Have also setup some switches so i can switch between node red limiting my inverters then back to HA automations if needed.
I had to configure dummy sensors to get around the HA compulsory modbus sensor change.

Scaling factor reading from a HA sensor (Used for self consumption of solar, no send to grid):

Close up pics of the flow


2 Likes

Figured it out - Not sure why this worked but it did:

Did it on phone - navigated to the page via IP on Safari, changed the priority, then refreshed as it was spinning its wheel, then tried it again, and it saved.

refreshthepage

1 Like

Edited the wrong post…

1 Like

You are onto it. Worked like a charm. What is with that? Anyway, thanks. Now onto the rest of the setup.

Oh wow this is awesome. This is exactly what I want to be able to do.
I am choosing between this and sungrow system. Fronius seems to really work well with 3 phase which my system is.

Thank you for sharing this info.

Did you work out how to control your byd with home assistant via fronius ?

Hey all, just wanted to post my SUMMER Flow (still in WIP) in case anyone is interested.

2 Likes

Hi I’ve recently just joined this forum is there anyone on this chat that is still active, regarding the topic?

Hi all i am buying a BMS system from China for high voltage battery system for solar storage i am using the Fronius Symo Gen 24 plus inverter, the supplier is asking me for the BMS to Inverter communication Protocol. This is an example of a protocol that they require

Voltronic Power
Inverter and BMS 485 communication Protocol

  1. BMS Pin Definition
    1.1 BMS Card

    Definition
    PIN 4 RS485B
    PIN 5 RS485A

1.2 Remote Box

Definition

PIN 3 RS485B
PIN 5 RS485A

  1. Communication parameter configuration
    Baud rate Start bit Data bit Parity bit Stop bit
    9600 1 8 N 1

  2. Communication frame format
    Device query command format
    Index 1 2 3 4 5
    Function Slave ID Command type Start Address of data Data Length *CRC
    Bytes 1 1 2 2 2
    BMS address Function code MSB LSB MSB LSB LSB MSB
    *The CRC check range is all of the bytes before the CRC field,

Command type table
Index Command type Description
1 0x03 Read Data
2 0x10 Write Data

BMS normal response format
Index 1 2 3 4 5
Function Slave ID Command type Data Length Data information CRC
Bytes 1 1 2 Data length * 2 2
BMS address Function code MSB LSB MSB LSB LSB MSB

BMS abnormal response format
Index 1 2 3 4
Function Slave ID Command type + 128 Error code CRC
Bytes 1 1 1 2

Error code
Index Error code Note
1 0x01 Slave ID should be within 1~16. Slave ID error if out of range
2 0x02 Command type error if command didn’t exist,
3 0x03 CRC error

  1. Command lists
    4.1 Version information
    Data Address Byte Size Parameter Parameter Unit
    0x0001 2 Protocol type
    0x0002 2 Protocol version
    0x0003 4 BMS firmware version
    0x0005 4 BMS hardware version

4.2 BMS general status parameters inquiry
Data Address Byte Size Parameter Parameter Unit
0x0010 2 Number of cell: L pcs
0x0N11 2 Cell N20+1 voltage 0.1V
0x0N12 2 Cell N
20+2 voltage
0x0N13 2 Cell N20+3 voltage
0x0N14 2 Cell N
20+4 voltage
0x0N15 2 Cell N20+5 voltage
0x0N16 2 Cell N
20+6 voltage
0x0N17 2 Cell N20+7 voltage
0x0N18 2 Cell N
20+8 voltage
0x0N19 2 Cell N20+9 voltage
0x0N1A 2 Cell N
20+10 voltage
0x0N1B 2 Cell N20+11 voltage
0x0N1C 2 Cell N
20+12 voltage
0x0N1D 2 Cell N20+13 voltage
0x0N1E 2 Cell N
20+14 voltage
0x0N1F 2 Cell N20+15 voltage
0x0N20 2 Cell N
20+16 voltage
0x0N21 2 Cell N20+17 voltage
0x0N22 2 Cell N
20+18 voltage
0x0N23 2 Cell N20+19 voltage
0x0N24 2 Cell N20+20 voltage
0x0025 2 Number of temperature sensor: M pcs
0x0N26 2 Temperature Sensor N
10+1 0.1K
(Kelvin temperature)
0x0N27 2 Temperature Sensor N10+2
0x0N28 2 Temperature Sensor N
10+3
0x0N29 2 Temperature Sensor N10+4
0x0N2A 2 Temperature Sensor N
10+5
0x0N2B 2 Temperature Sensor N10+6
0x0N2C 2 Temperature Sensor N
10+7
0x0N2D 2 Temperature Sensor N10+8
0x0N2E 2 Temperature Sensor N
10+9
0x0N2F 2 Temperature Sensor N*10+10
0x0030 2 Module charge current 0.1A
0x0031 2 Module discharge current 0.1A
0x0032 2 Module voltage 0.1V
0x0033 2 SOC %
0x0034 4 Module total capacity mAH
*If the parameter doesn’t exist, return 0x0000

4.3 BMS warning information inquiry
Data Address Byte Size Parameter Note
0x0N40 2 Number of cell: L
0x0N41 2 Cell N20+1/ N20+2 voltage state 00H: normal
01H: below lower limit
02H: above higher limit
F0H: other error
0x0N42 2 Cell N20+3/ N20+4 voltage state
0x0N43 2 Cell N20+5/ N20+6 voltage state
0x0N44 2 Cell N20+7/ N20+8 voltage state
0x0N45 2 Cell N20+9/ N20+10 voltage state
0x0N46 2 Cell N20+11/ N20+12 voltage state
0x0N47 2 Cell N20+13/ N20+14 voltage state
0x0N48 2 Cell N20+15/ N20+16 voltage state
0x0N49 2 Cell N20+17/ N20+18 voltage state
0x0N4A 2 Cell N20+19/ N20+20 voltage state
0x0050 2 Number of temperature sensor: M
0x0N51 2 BMS Temperature N10+1/ N10+2 state 00H: normal
01H: below lower limit
02H: above higher limit
F0H: other error
0x0N52 2 BMS Temperature N10+3/ N10+4 state
0x0N53 2 BMS Temperature N10+5/ N10+6 state
0x0N54 2 BMS Temperature N10+7/ N10+8 state
0x0N55 2 BMS Temperature N10+9/ N10+10 state
0x0060 2 Module charge voltage state 00H: normal
01H: below lower limit
02H: above higher limit
F0H: other error
0x0061 2 Module discharge voltage state
0x0062 2 Cell charge voltage state
0x0063 2 Cell discharge voltage state
0x0064 2 Module charge current state
0x0065 2 Module discharge current state
0x0066 2 Module charge temperature state
0x0067 2 Module discharge temperature state
0x0068 2 Cell charge temperature state
0x0069 2 Cell discharge temperature state
*If the parameter didn’t exist, return 0x0000

4.4 BMS charger and discharge information inquiry
Data Address Byte Size Parameter Parameter Unit
0x0070 2 Charge voltage limit 0.1V
0x0071 2 Discharge voltage limit 0.1V
0x0072 2 Charge current limit 0.1A
0x0073 2 Discharge current limit 0.1A
0x0074 2 Charge, discharge status

Charge, discharge status:
Bit Content Note
7 Charge enable 1: yes 0: request stop charge
6 Discharge enable 1: yes 0: request stop discharge
5 Charge immediately 1: request: 0: no request
4 Charge immediately2 1: request: 0: no request
3 Full charge request 1: request: 0: no request
2
1
0
0x0075 4 Run time to empty S

*Bit 5: Set when SoC is very low, like 5~9%, device need charge immediately until this flag disappear.
*Bit 4: Set when SoC is low, like 10~14%, it will be better that device charge immediately until this flag disappear.
*Bit 3: Set when BMS need device fully charged.

Hi,

This thread is so big, hard to check all posts.
I am currently looking for a solution to set the minimum state of charge for my battery. So that i can set it to 100% if there will be bad weather or something like that.

Any ideas?

This thread is more likely to help you and a lot less posts. Also it is important to understand the modbus guides from Fronius and the settings you need to make

1 Like

Hej Steffan
Jeg er dansk og vil meget gerne chatte med dig omkring en løsning.
Jeg har Modbus adgang fra HA og Node-Red til min Fronius Gen 24 10+ inverter, men får fejl som illegal data address (register not supported by device). Jeg tænker der er en åbenlys grund jeg har overset.
Er du på FB i Dansk Home Assistant gruppen, eller hvordan er det nemmest at række ud?

Tjenare, då har du antagligen fel typeset på i din inverter. Kolla så du har Int + SF och icke float påslaget.
MVH Friskens

I have importet this to Node-red and made adjustments to my setup.
I have 2 questions and 2 requests.
Q1. Where can I find the Winther edition and have you made an automatic switch over - say based on the level of expected sun, so maybe actually not a summer/winther per say, but more of a sun/not sun or prognose based setup.
I am guessing that you are from Denmark like me, so you know there are day/weeks where focusing on flattening the price i most interesting.

Q2. I have set up Modbus TCP for my Fronius Symo Gen24+ and I can retrieve information, but fail to write information. I have spend quite some time finding the course of this, but so far with no luck. Maybe I just need a Modbus 101 for Fronius, but from what I can tell I lack the basic understanding of how to write to a register, and so far YT haven’t helped. You obviously broke the code, som maybe you can help me out here.

R1. Will you make a flow for controling the Export limitation?
When prices are very low or even negative I am actually paying to send power into the grid. Modifying a softlimit or WMaxLimPct will be much appreciated 0% or 100% is all I need, then the “Every Hour” timer can determine if PV should be sent to grid.

R2. A function to send power to grid from battery. Example: We are on vacation and the house is running at about 500Wh but the battery is fully charged why not put that power back on the grid when prices are high?

Thank you for your time, and if you want to coorporate or have me test something, I would be happy to.