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
), 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!

