hansvanlin / SMA-Tripower-5.0---Active-Power-Control

A NodeRed flow to control your Inverter generated PV Power
GNU General Public License v3.0
1 stars 0 forks source link

Modbus protocol file? #1

Closed ErikCoen closed 2 months ago

ErikCoen commented 3 months ago

I have 2 SMA inverters at home. They are STP4.0-3AV-40 and STP10.0-3AV-40. Both are from year 2022. I do not like that those inverters will be broken when you write a value to wrong register.

You are using the addres 41255.

I know there is a link: "Downloads" -> "Technical Information" -> "Modbus Interface": https://www.sma.de/en/products/product-features-interfaces/modbus-protocol-interface

I can not find it in any SMA document for modbus interface. Can you help me to point where I can find it for my 2 inverters?

hansvanlin commented 3 months ago

The documents are available at https://www.sma.de/en/service/downloads choose "PV Inverters" then at the bottom "STP xx-3AV-40" then "Parameter / Modbus" there you can download the zip file with the info you want.

ErikCoen commented 3 months ago

Thanks a lot!

When looking to your nice node-red code, there are 2 registers: 41255 and 40023. What is the difference between 2 nearly identical registers? I see only 1 change in column 'SMA modbus access': WO and RW.

Inverter.WModCfg.WCtlComCfg.WNomPrc Sollwert Normalized active power limitation by PV system control

-

‒ 0.01 Installer

40023 1 S16 FIX2 WO

Inverter.WModCfg.WCtlComCfg.WNomPrc Sollwert Normalized active power limitation by PV system control Installer

- ‒ 0.01 Installer

41255 1 S16 FIX2 RW

hansvanlin commented 3 months ago

Yes indeed not much of a difference. I did not want to use the same register as I wanted to see that the Power limit is actually changed in the SMA Inverter.

ErikCoen commented 3 months ago

I am able to get it running but not perfect. Info to the dashboard is not working. To be debugged.

I can not find a proper register for getting current power of all phases in total. Which address is it?

hansvanlin commented 3 months ago

I'm using register 30775 for the total generated power. For the actual used power (calculated as a sum from generated power and P1 meter ) it depends how you read the smart meter or a dedicated kwh meter. I'm using a rpi with a connection to the P1 port of the smart meter via domoticz and broadcasted to mqtt and use that as input for the nodered script. For the UI the flow is using the old UI not the new version 2.0.

image

ErikCoen commented 3 months ago

I have replaced the P1 settings by external energy meter EM540 using Victron Energy function. It is working. I wonder if the expression should be kW or W?

Regarding to my 10K inverter, I see 5000W in the dashboard. Why not 10000W? What is the purpose of the factor 0.5? var pro = msg.payload[0] * 0.5;

hansvanlin commented 3 months ago

For "actual use" (P1) the expression should be in W. var pro = msg.payload[0] * 0.5; ---> The value in msg.payload: is 0- 10000 ( for 0-100% ) you can check with a debug node attached. The factor 0.5 is because I have a 5kW inverter. You can either remove it or change it to 1 because of the 10kW inverter you have.

ErikCoen commented 3 months ago

I have adapted it to 1.0. Also for the function f behind the slider for the display 'set': 1.0

Thanks in advance.

ErikCoen commented 3 months ago

Everything including dynamic control is working. However 2 inverters are active with a false control/info a bit.

I will find out if a duplication of this flow will help. Of course with some changes/improvements. May be I need to add more delay for processing of second inverter. Have you any idea?

hansvanlin commented 3 months ago

Can you be more specific about what the error is what you see?

ErikCoen commented 3 months ago

If the sun power is higher, 10K inverter can not go lower than 1K. So the grid power is still negative because 4K inverter is still producing energy.

Note: today the dashboard is soooo slow. It is not refreshing enough. Even when I open the link: https://venus.local:1881/ui For me the dashboard is running since yesterday after installing it first time for me.

hansvanlin commented 3 months ago

There are 2 places where you can adjust the range. First one is the node: range (min-max) and in the slider node. I've choosen the values for my setup. The slow UI can happen if you fill a graph with to many data points or having network issues.