Another Strange DESS behaviour

And I have been following this thread, pondering how to combine trade mode & green mode.

I “think” trade mode is right when it draws energy from the grid at night when there is not much energy being used. Efficiency at low power is very bad. I draw ~1kWh between 00:00 and 08:00.
But on the other hand ESS thinks my consumption is 0 between 23:00 and 02:00, only setting strategy=1 after 03:00.

I like 0 grid usage and, like UpCycleElectric (kudos :slight_smile: ), I feel this needs a fix.

First I feel the rounding is a bit off. When I enable the node-red (or VRM) trade-mode ESS, the target SOC is always off from current SOC, between 1 and 0.1%. This results in a forced discharge on high SOC, and a forced charge on low SOC.

Second (and this has been asked before) both Trade and Green-mode discharge until minimum SOC. We could use a “trade until” SOC after which the system could switch to green-mode for self consumption.

For the first one I made a workaround in the node-red ESS flow on the cerbo:

Add a SOC node and a solar production node to the ESS pane:

And edit the “Split schedule 0 node” adding this in between the node.status... and return ..
Effectively telling ESS when the SOC change is less then 1%: just use green mode, unless there is enough solarpower to cover your needs (250W in this case).

At night it will run green-mode but during the day it will still feed in exess solar.
(I am actually testing this right now so it might receive updates.)

var battery_soc = flow.get("battery_soc");
var solar_power = flow.get("solar_power");

if (solar_power < 250) {
    if (msg.soc > battery_soc - 1.0) {
        if (msg.soc <= battery_soc + 1.0) {
            msg.strategy = 1;
        }    
    }
}

For the second one I like Jan’s solution of increasing minimum SOC in the morning and lowering it again in the evening but I did not add it to my flow just yet.

Keep up the good work everyone!