Support of Sunspec Inverters via Modbus RTU and extended Sunspec Support

Hi all,

The Venus OS supports the integration of PV inverters via TCP Modbus if the PV inverters support Sunspec.

I have two suggestions for this that offer additional benefits and, according to my research, shouldn’t require too much development effort.

Feature Request 1
Support for Sunspec PV inverters via Modbus RTU

The logic can remain exactly the same. Only the underlying connection changes from Modbus TCP to Modbus RTU.

Feature Request 2
Support for Sunspec starting at register 50000

Currently, the Venus OS starts searching for the Sunspec header via TCP Modbus starting at register 40000. However, there are devices that implement Sunspec starting at register 50000, which is acceptable according to the Sunspec standard.

What do you think?

Thanks
Dabbelju

Feature Request 3
Make Unit ID configurable (Modbus RTU)

Currently the Modbus RTU device needs to be configured to Unit ID 126. It would be very helpfull if this could be configured in Venus OS.

Feature Request 4
Make TCP Modbus Port configurable

Currently the device talking Modbus (TCP) needs to do that on Port 502. Some inverters are not listening on the 502 standard port (e.g. Kostal on 1502) and for some reason the port can not be changed. In some cases the invereter does not support that or the port needs to be as it is for other reasons)

Hi Victron team,

this would most likely also help more people to add Kostal devices.

As I mentioned

here

here

and here

It is almost working and only needs some minor tweaking from you folks.

@mpvader you asked for help, didn’t you? Do you need more input?

Hey all, apologies for the long silence. And thanks for the suggestions.

I’ve noted all suggestions, including the configurable port that would make it possible to work with a Kostal PV Inverter.

Can’t make any detailed promises now, hope you understand.

It does add more complexity and user options both. of which cause more support. And I have not regularly come across or heard of popular PV inverters which have only RTU and not TCP/WiFi.

I don’t expect we’ll be implementing this any time soon.

Kan het zijn dat de Sunspec regeling geen rekening houdt met max grid-feedin?

Edit: Sorry for the Dutch, I added English below:

Can it be that the Sunspec management ignores max grid feedin?

What do you mean?

I had an (experimental) setup with a Sunspec-compliant inverter on AC-out. It was correctly discovered by GX.
PV management and communication was verified by me by using Node-Red (PV inverter / Power Limit) as well as playing around with the Grid setpoint.
But I noticed that the PV is not adjusted downwards to comply with my settings/ESS/Maximum feed-in. It also did not adhere to the limit (amps) set in Settings/ESS/Peak Shaving/Maximum system export current (per phase).

It was my first attempt to have a Sunspec inverter being managed by GX-device, so maybe I did something wrong?

@mpvader
Basically I do agree.

On the other hand, most TCP Modbus sticks, or even those via LAN, do nothing more than convert RTU to TCP Modbus.

I’ve seen some implementations where the STCP Modbus interfaces represented a bottleneck.

It’s certainly not Victron’s job to solve the manufacturers’ problem.

Perhaps it’s still worth considering.

Has anyone experience with connecting a Sungrow Inverter? It’s a SG10RT with WiNet-S LAN Dongle.

Where, in Node Red, did you find the “limit calculated by venus OS”? I couldn’t find it myself.

Hi,

it is part of the Victron PV Inverter Node.

Hmm, not here:

Nevermind, don’t want to hijack your topic

mhhh

MQTT does not sound like sunspec modbus tcp connected inverter.

Anyhow…if limiting is supported it needs to be enabled for the inverter in question.

And also a Limit needs to be configured in ESS to make the limit calculation work.

Ah, it must be modbus connected. But then VenusOS already manages the power limit, doesn’t it? Why setting the limit youself, too?

Have you even read his comment?

“Limiting is not working out of the Box. It works with the simple Node-Red Flow I reffered to earlier.”

Yes, but I interpreted this as “modbus comms does not work at all”. But what I now understand: The Modbus connection is ok, inverter communicates power limiting possibilities to Cerbo. But when Cerbo tries to actually limit the power nothing happens or incorrect things happen. Am I more right now?

@mpvader not sure if this is still of interest.

Kostal Plenticore Plus G2 pure detection is fixed with the new modbus config options which is great.
Also all data seem to be available.

However limiting is not working. The limits are calculated but not sent to the device.

I fixed it by creating the simple NR Flow as somehow the built-in limiting function does not manage to get the limit to the inverter.

From a testing perspectice I am also limited :wink: at the moment due to weather conditions.

@TheRealStefan:

sorry for stupid question. Where do i find the “new configurable device id and port”? Is it in a Beta FW? If yes, where do I find the Beta FW Release notes?

I am very keen to test it.

Thanks for your help.
Dabbelju