Why is DESS not throttling down the MPPT's when prices are very negative

Pardon my language but this is a problem that’s playing for years now and why is this still an issue?

Example: Today when the prices are very low (-€0,44 a kwh! at one point) but the MPPT’s are charging full chat, so by the time the battery is full (48kw of Pylontech) the prices are still negative (-€0,20). All settings a fine, checked them a 100 times the last few years. I’ve seen various topics about this the last few years, people are making workarounds in Node Red, trying to trick the algorythem, etc, but Victron still have no fix for this for years now.

Come on Victron, you can do better than this!

If this ever gets implemented, it would also be great to get “requested power percentage” or something like that in dbus/mqtt. It would typically be at 1.0 or 100%, and scale down if production needs to be reduced. This would make third party integrations or HA integrations easier.

I have the same question. I tried to benefit from the record low net price of electricity in Belgium on April 26th, but failed, because DESS seems to use solar first and only then pull from grid, even when net prices are extremely low and I am in trade mode.

I have spent a while on Saturday trying to design a system with Homey, but there is no easy “switch of MPPT” toggle there.

I have not used Node-RED before. I was googling to get some example flows, but some users don’t want to share, because “too messy, need to be cleaned up”. If they do share, it comes with a big disclaimer “not production grade, use at your own peril”.

In the end, I gave up, because it doesn’t happen everyday and the economic loss is small. But there is some reputation damage, since the record low prices were in the news and I had to admit to lots of people my big, expensive Victron system did not (out of the box) allow me to take advantage.

A tip for what it’s worth: Node-Red is probably not that difficult, but you can program with the function node in JavaScript.

I personally worked on it for a full year to handle the necessary conditions correctly. After that, another half year of cleaning up, resulting in a simple flow.

Hi Diederik, is this something to share then?
Tomorrow, May 1st, prices will be -46ct/kWh again for 2 hours (negative for 4 hours), and it would be great if I could stop my MPPT 450/100 automatically instead of with the manual switch…
I do not have any knowledge of Node-Red, but some IT background, and otherwise I know somebody who already ‘programmed’ my system for use of MQTT and other things.
PS. I love Victron! But this should be some setting to be set in an easy way, or is this too specific for NL?
Thanks! Mark.

I also don’t like the fact that this is still a problem. Last week I made a simple node red flow/script to stop the MPPT’s and limit my solaredge inverter.
First of all, choose the large image in de cerbo. go to settings > general > online update > image > large image. search for updates and update to the latest version.

Open browser and go to https:// cerbo ip :1881/ to show node red.

Its very easy to made this. it is using the VRM API for the data. thats the top orange block in the middle. dubble click for showing the settings. Add a api token in VRM and give in the details in this block.

The "‘MPPT on/off’’ function is using the following script;

// huidige prijs uit DESS
let price = msg.payload.records.deGs[0][1];

// vorige prijs ophalen
let lastPrice = flow.get(“last_price_mppt”);

// geen verandering
if (lastPrice === price) {
node.status({
fill: “blue”,
shape: “dot”,
text: “Price not changed: €” + price.toFixed(2)
});

return null;

}

// prijs opslaan
flow.set(“last_price_mppt”, price);

// logica
if (price <= 0.0) {
msg.payload = 4;
node.status({
fill: “green”,
shape: “dot”,
text: “Negative price → limiter active: €” + price.toFixed(2)
});
} else {
msg.payload = 1;
node.status({
fill: “red”,
shape: “dot”,
text: “Positive price → full power: €” + price.toFixed(2)
});
}

// opslaan voor later gebruik
flow.set(“mppt_limit”, msg.payload);

return msg;

The following script is for "‘Update MPPT’’ function.

let limit = flow.get(“mppt_limit”);

if (limit === undefined) {
return null;
}

msg.payload = limit;
return msg;

The blue block is a solar charge control node. Choose your mppt and select on/off.

This was only a few hours work. I don’t like the way it works but it works for now. I don’t like it because it constantly fighting the dess. it triggers every 0.4 sec because otherwise the dess or ess, I don’t know, is resetting the MPPT back to On. Same with the solaredge inverter. If I don’t trigger it fast enough the victron system switches the inverter back on which results in a very trippy inverter.

It works fine for me now but if someone nows a better way, let me know.

I believe you can solve that by putting ESS mode into ‘External control’. This way you can overrule DESS, but only for those hours it’s negative. I found this for my configuration with Home Assistant, which isn’t working when External Control isn’t selected.

Great and honest comment :+1:. Could you provide some links to any of the Node-RED based ‘workarounds’, I don’t have solar but would like to study a bit to see if I can incorporate any of those workarounds in the DESS Trade Control Center app (Node-RED flow) I am developing.

See here for an example how I use the new adjust consumption forecast to ‘assist’ DESS Trade to be more profitable:

I am building a Node-RED flow to automate this, and many more, custom control features on top of DESS, unfortunately I ran into an issue with VRM-API that needs to be resolved first, I won’t be able to present a first demo until that’s resolved: