“Optimise ESS – which quantities should a higher-level control system actually take into account?”

I’ve been looking more closely for some time at how far a Victron ESS can be optimised beyond the standard settings.

In various discussions here, I’ve noticed that individual control variables only ever affect part of the system. The grid setpoint, MinSoC, AC/DC power, BMS limits, PV power and the speed of the grid meter all ultimately interact with one another.

A low grid import on its own also doesn’t necessarily mean that the control system is working optimally. For example, brief load changes can cause both import and export, different metering methods can affect the balance in three-phase systems, and an aggressive grid setpoint may reduce grid import but cause additional export instead.

That’s why I’d be interested to hear how those of you who optimise your ESS using Node-RED or other external logic go about it:

Which measurements and state variables do you consider truly critical?

At the moment, I’m thinking in particular of:

  • Grid power and grid setpoint

  • PV power

  • Battery power and SoC

  • CCL/CVL and BMS limits

  • Household consumption

  • Time of day and sunrise/sunset

  • Control deviations and their duration

And how do you then assess whether a control strategy has actually improved?

Do you only look at grid import/export, or do you also consider self-consumption, energy independence, battery usage and the control behaviour over several days?

I’m also explicitly interested in simple solutions. After several discussions here, I’m increasingly getting the impression that a robust control strategy using a few good input variables may be more sensible than making the control system as complex as possible.

The ESS’s first priority is to supply the loads; any surplus energy goes to the battery. Once the battery is full and the loads are supplied, any excess is fed into the grid. There is nothing here that could be optimised to begin with.

If the battery cannot accept the full current or the inverter cannot process the surplus, there are ways to work around these limitations to some extent.

I don’t understand what there is to optimise. Dynamic tariffs are the exception; that’s what DESS is for.

However, this cannot be changed even with additional Node-RED programming.
When a load is switched on or off, the system always needs a brief moment to respond.
To prevent this, the control system would need to be able to look a few seconds into the future, and as far as I know, that is not yet possible.
(Not even with AI)

However, this only affects how things are displayed in the VRM Portal, not the actual control system.
So it would only be a “cosmetic issue”.
Of course, it is not ideal if you want to work with the figures.
However, it can easily be prevented by simply installing one of the recommended and officially supported grid sensors.

As @dennibu already noted, do not confuse ESS with DESS.
With Node-Red, I have configured ESS so that in the winter, the battery is sufficiently charged at night using a cheaper rate, meaning I do not need anything from the grid during the day.

Furthermore, another option is to disconnect myself when the grid voltage becomes too high. Everything then operates off-grid.

And finally, I limit grid consumption to a maximum of 2500W because we pay a capacity surcharge for every quarter hour of consumption above this power.

Correct, but if I draw, say, 20 kWh from the grid in summer, does it really make much sense to spend ages optimising things just to reduce that to 15 kWh from the grid?

Yes, but what are you actually optimising?
After reading your replies, I wondered what concept or objective you used when installing your PV systems.

I can define my objective very clearly (at the end of the text).

A few years ago, I discussed the possibilities of equipping our house with a PV system with an innovative local entrepreneur, in order to cover our own electricity requirements.
The result was a system with an output of around 15 kW and an investment of approximately €20,000–25,000, including all necessary work.

My wife and I are retired, and after this discussion we began determining our electricity consumption and thinking about the payback period for the proposed installation.

After optimising our electricity consumption, we were left with an average daily requirement of 8 kWh.

We currently buy electricity at €0.32 per kWh, including electricity tax.

A 15 kW system produces between 25 and 50 kWh per day, depending on the weather and time of year.
If I calculate using a worst-case figure of 25 kW/day, I would then supply 17 kWh per day to our electricity supplier at €0.08 = €1.36/day = €496.40 p.a., plus savings from 8 kWh per day = €2.56 = €934.40 p.a.
That gives an annual payback amount of €1,430.80.

Against an investment of €25,000, this means that the PV system would have paid for itself in around 17.5 years. I may live to see that point, but perhaps I will not.

This calculation was reason enough for me to start building my own system on the carport roof around three years ago, initially with 2 × 0.4 kWh and microinverters (which still feed directly into the house network), and shortly afterwards to expand it with a further 2 × 0.4 kWh plus AGM batteries.

With around 1.6 kW, we produce 4–5 kWh per day in the worst case and up to 8–9 kWh per day in summer on sunny days.

In July 2026, I upgraded to an 8hWh LiFePO4 battery and a MultiPlus 2 (2 × 0.4 kWh charge the battery) and considered how I could optimise the self-consumption of the PV electricity.

The ESS did not satisfy me, so I started programming flows in Node-RED. Since adjusting the parameters this way was too cumbersome for me, I built an administration application for Cerbo on my internet server. With just a few entries and mouse clicks, I can use it to change the parameters for the Cerbo/MultiPlus and easily check the effects in meaningful statistics.

My goal: To use as much of the PV electricity produced as possible ourselves and feed as little as possible into the public grid.

If anyone is interested, I would be happy to set up access to the system as a showcase.

You can achieve the goal of maximising self-consumption through four measures:

  1. Switch on ESS; surplus power goes into the battery, and loads are supplied from the battery once PV power is no longer available
  2. Set MinSOC as low as possible (10–15%), so that as much of the battery as possible can be used
  3. Use loads when PV generation is high
  4. Spread loads across the PV generation period so that they are roughly covered by the current output—in other words, don’t run the washing machine, tumble dryer and dishwasher at the same time

All other control parameters only really become relevant with DESS and/or dynamic electricity tariffs and controllable loads.

For example, I replace gas-based hot-water heating with surplus PV when the battery won’t be fully charged that day. However, I also have a 56 kWh battery with consumption ranging from 8 to 30 kWh and peaks of up to 50 kWh/day, depending on hot-water production, the „water park“ in the garden and laundry binges.

The hot-water immersion heater is controlled with Home Assistant; Venus OS remains on ESS without (D) and without Opportunity Loads.

Thanks, for the sole objective of maximising self-consumption, that’s understandable. However, it’s precisely this distinction that my question hinges on.

ESS handles the actual control very well. But what about systems where the objective becomes situation-dependent—for example, deliberately holding back the battery during the day and releasing it in the evening, taking external AC-coupled PV into account, or applying different strategies based on SoC, PV output and time of day?

Do you still see such tasks as ESS configuration, or are they already the responsibility of a higher-level control system?

The ESS is already as effective as it can be by default…. Why hold back the battery during the day? You can only optimise self-consumption through your own usage behaviour. Shifting grid imports to different times offers no benefits. Exceptions are undersized inverters, if you want to optimise feed-in with them, or, of course, dynamic electricity tariffs—in that case, a DESS would be the right choice. The ESS itself cannot really be optimised, but you can adjust your consumption using a higher-level control system.

Your goals are certainly great … but for your consumption, the PV system is far too large (and that also means you’ve spent far too much money)…

and why then add more panels to the carport roof …

And the ESS is actually already fairly precise in its control… but it does depend on “high-power” loads.. due to the grid regulation..

If you’re so dissatisfied .. perhaps you’ve configured something incorrectly or had “poor” meters installed..