ESS: Victron Multiplus / Quattro


As we are planning the installation of a victron ESS composed of 3 Quattro 15kVA inverters and a set of pytes batteries (approximately 45kWh).
Has anyone started implementing Victron components?


Hi Klinky, there are already some victron PRs for OpenEMS - #1819 and #1815. It is for a Victron Multiplus. The PRs are outdated already.
Internally we have an updated bundle. I will prepare a new PR with the updated bundle in the coming days.
The system runs very stable. So it should be a good base for your project.

1 Like

Thank you very much, Christian!

Without having seen it yet, Iā€™m sure it will save me a lot of time!

Hey Klinki,

I extracted the Victron bundle from the opernikus private repo and moved it as a PR into the opernikus common repo.

This bundle had multiple contributors, and has multiple TODOs and is therefor not fitted for an official PR into OpenEMS.

This bundle can be used for private usages however.
It can be used as a base for future projects/implementations :slight_smile:

1 Like

Thank you very much! Everything is better than starting from zero.

But the code does not look that badā€¦ :smiley:

Good morning,

The hardware is set up in my garage. Configuring the MultiPlus 2 as an ESS was quite easy, as was controlling the device via an external Modbus master. Even connecting your battery inverter code worked.

Do you already have an implementation for a Victron ESS?

Thanks again & regards,


I have the first implementation of a Victron Multiplus 2 ESS running:
My Repo

Thanks to you again for the inverter classes. That helped very much.

There were a lot of Enums to integrateā€¦

Good morning,

Meanwhile I configured 3 Multiplus as a 3phase system. It was easy going and seems to work fine for 2 days now.

VictronĀ“s ESS component is working out of the box and thereĀ“s actually not much programming necessary. However, there is a substantial amount of information regarding the inverters, batteries, and other components.
So there are different values of allowed charge/discharge power. The BMS has itĀ“s values which can be different from the inverter.
My current approach is to read all of these limits and provide OpenEMS with the lowest value, which, in my case, comes from the BMS
So it would be more transparent to EMS what the ESS is doing and why.