Help needed - SMA, Solar Edge, Kostal, Enphase and others

Hey all,

Per Venus OS, v3.60 now in beta, more PV Inverters (SMA, SolarEdge, Enphase, Kostal and others) can be controlled by a GX device. Rather than just monitored/read-out.

Until v3.60 this feature was only available for Fronius and ABB/Fimer.

There are two features related to this active control/limiting:

  1. The Zero-Feed in option (See Settings → ESS → Grid Feedin → AC Coupled PV - Feed in excess yes/no. When set to “no”, the GX will actively control the PV Inverters, and reduce their output when needed to prevent selling energy back to the grid.

  2. the Dynamic ESS algorithm will use this to prevent paying for feed-in in case feed-in prices are negative.

Now - it would be great to get your help in confirming that this works well.

good news is also helpful!
Please post replies to this topic with your experience. Not only issues, but also situations where it does work are great to hear - to help build good documentation for that.

First some further details:

  • SolarEdge, SMA, Kostal and Enphase are supported and tested. Details below
  • Any other PV Inverter that that advertises the limiting ability through the SunSpec protocol will be detected and has the feature as well.
  • It is not possible to use this feature in conjunction with similar features of the PV Inverter itself. Ie. to use this in the GX, disable or remove SolarEdge/SMA/other energy meters and zero feed-in systems.
  • This active limiting is enabled and disabled with a new setting which defaults to Off. The reason for that is to avoid silently/unexpectedly enable the limiter on a running system by merely a GX device update.
    • Note that enabling that new setting only makes the GX “limiting aware” for the said PV Inverter. Thereafter, to actually enable limiting, either Disable the feed-in of excess AC-coupled PV in Settings → ESS, or use Dynamic ESS.
    • For Fronius and ABB/Fimer, nothing changes. PV-limiting support remains enabled by default and there is no setting for it.

Screenshot of the new setting, can be found in Settings → Device list → PV Inverter → Settings.

  • PV Inverter(s) must be connected on the same ethernet/wifi network as the GX device.
  • Modbus TCP communication must be enabled on the PV Inverter on port 502.
  • The PV Inverter must support the SunSpec protocol over Modbus and support either the information model 123 or 704 (these are the Sunspec information models related to throttling)
  • The PV Inverter must use the default Modbus Unit number = 126.

How to confirm that it works OK?

Disable AC coupled feed-in, and then on a sunny day when batteries are full and loads are low, observe that the GX os reducing PV Inverter output to match the loads and prevent feed-in.

SMA Specifics

Aside from enabling ModbusTCP, it is also needed to enable “enable External limiting via Modbus TCP” in the SMA settings.

Tested with:

  • SMA Tri power X 20 - fw 03.06.19.R
  • SMA STP3.0-3AV-40 - fw 4.00.70.R

SolarEdge specifics

Tested with:

  • Solar Edge SE5K - fw 0004.0021.00023
  • Solar Edge SE15K - fw 0004.0020.0036

Kostal specifics

Tested with:

  • Kostal PIKO IQ 7.0 - fw 01.80

Enphase specifics

Confirmed by Enphase, supported gateway models are:

  • ENV-S-WM-230
  • ENV-S-EM-230

Do note that it seems that Enphase Customer support must enable ModbusTCP support.

More details: Documentation Center | Enphase

For the reference, this is what I see in my Grafana on a sunny day when prices go negative and Fronius gets throttled by Venus. The limiting represented by a red line kicks in at 9:00 and lifts itself at 18:00. What a beautiful day!

1 Like

Everything seems to be working well! I’m using version v3.60~75, and the PV inverter is an SMA STP6.0-3AV-40 with firmware version 4.0.0.70.R. I had previously enabled the External Limiting functionality on the SMA, so there were no issues during setup.

Attached is a weekly statistic from Home Assistant. The limit value is zero at night because the inverter is off. The electricity price has been slightly below 0 cents/kWh on several days, so the control feature has been used daily when the batteries are full.

2 Likes

Tested on:
SMA Tripower X 15-50 Firmware 03.12.15.R
Venus OS V3.60~84

With Settings:
Console UI V2 Page Settings->System Setup->ESS->Grid feed-in : Maximum feed-in 0W
Node-Red Modbus Address 2705 injected 10A

Result:
SMA Reduced the output to the needed power of 10A charging and AC Loads measured.

After changing:
Console UI V2 Page Settings->System Setup->ESS->Grid feed-in : Maximum feed-in 17550W

Result:
The SMA power out is climbing very slowly

After changing:
Node-Red Modbus Address 2705 injected 240A

Result:
The SMA power out is climbing quickly

1 Like

I have tested this on 3 different ESS systems.
1 single SolarEdge 3P inverter connected to ACout. This works as expected.

2 SolarEdge inverters, one connected to ACout, one connected to ACin (due to 1on1 rule). The first inverter in the list throttled, the other did not listen to given commands and kept producing on full ‘speed’. It looks like the software is not capable to act in situations if there is more than one Inverter?

Third system consisted of one SolarEdge inverter on ACout and one VE PC Charger. When throttling is requested, the SolarEdge Inverter shuts down instantly, the PV Charger is dynamically throttled. When throttling is disabled, both start reproducing to their limits.

So I can confirm, after doiing this earlier on other systems, that throttling SolarEdge inverters works. But it requires more investigation in situations when there are more than one inverter.

1 Like

Tested on;
SMA SB5.0-1AV-41 firmware 4.1.15.R
Venus OS V3.60~86

No problems so far.

Enabling external limiting was available through the ennexos online portal ; Configuration → Parameter → System and device control → Operating mode active power setting → set to External active power setpoint.

Can the PV forecast handle severely reducing PV yield or will this have an impact on accuracy?

1 Like

Update: it does work with two inverters on another site. Could be something with different SE firmware

Working well with Enphase!

Running Enphase Envoy-S Metered with firmware D8.3.5052 and asked support to turn on Modbus.

Tested with DESS off and grid feed-in off. I saw Enphase throttling to have around 0W on the grid meter. Haven’t tested it with DESS on as the energy prices aren’t negative at the moment, but I’ll let you know if the system switches off Enphase when energy prices are negative.

2 Likes

This morning the Enphase system was not starting up anymore. Via Remote Console - PV system, I saw the dynamic power limit on 0W. Not sure why. Energy prices are positive at the moment so the system should sell back the surplus of solar energy. Feed-in to grid is switched on.

When switching off PV power limit in the integrations menu the Enphase system starts producing again. When I switch it on again it stops producing. So something is going on with the automation that it thinks the PV system has to stop producing. Just don’t know where to look as I didn’t change anything since yesterday other than switching on the above.

Update:
I restarted the Cerbo and now the dynamic power limit changed to 11 kW and Enphase keeps producing…

1 Like

We tried to implement a Kostal Piko IQ 7.0 but the Victron GX device do not find the Kostal inverter. We saw that it is not possible to configure the Modbus port to 502 and the unit id number to 126. How can we connect the inveter. Here the settings of the inverter:

I updated to v3.60 today and although I did not yet test out the PV limiting, I can see in the dbus-fronius log file that my SolarEdge SE3000 inverter is configured for it:
Setting 'Ac/MaxPower' and 'Ac/PowerLimit' to 3200 for SolarEdge Inverter
Writing EDPC settings to SolarEdge Inverter
But I noticed that a warning message is written to that log file every minute:

2025-06-14 11:58:28.142208500 warning No functional TLS backend was found
2025-06-14 11:59:28.134760500 warning No functional TLS backend was found
2025-06-14 12:00:28.135663500 warning No functional TLS backend was found
2025-06-14 12:01:28.134295500 warning No functional TLS backend was found
2025-06-14 12:02:28.133984500 warning No functional TLS backend was found

Not really a problem, but it will cause the more interesting messages to expire in about a day.

And if I understand correctly, the PV limiter is only used by DESS to avoid feed-in in when the sell price is negative, but not to turn off PV when the buy price is negative?

Is it possible to control the PV limit from node-red? I tried writing a value to the Power limit (W) field of the PV Inverter Control node, but it doesn’t seem to have any effect. Nothing is sent to the SolarEdge.