How to prevent Battery Discharge during Low Tarrif

Our installation: 3 phase Multiplus 48/5000 Installation with 30 kWh Battery.
DC Coupled PV with SmartSolar MPPT RS 450/100 and a Cerbo of course.

Now well underway in oktober PV yield start to drop below our 24h usage and the battery starts to run to a low SOC %.

As we have a low Tariff for grid power between 22.00 - 06:00. I would like to prevent the ESS system to consume from the battery during those times. But only of if SOC is below a set level like 50%. So we can rely on the Battery for outages and will self consume during the night if Solar Yield goes up again.

I read the ESS Manual and have been looking at Batterylife options but seem unable to find a correlation possibility with the Low Tariff Schedule.

How does one achieve this in the Victron ecosystem?

Regards
Henk

Hi you could use scheduled charging in the ESS menu

How would that achieve the goal of not consuming from the battery during Low Tariff time? I have no intention to Charge the battery from the grid, not even during low Tariff time.

Scheduled charging doenst mean it will charge at night with cheap tariffs, it can, but can also keep batteries on a minimum soc for a certain time period

You can try to create different schedules that have different settings on soc and time, they run in a certain order so it could achieve what you want

See:

Also in english available

I used to do the opposite of you with my previous system: charge during day from pv and supply loads from pv, after sunset discharge battery all night till morning when pv was powering again, to keep grid consumption as low as possible

all with scheduled charging

My current system is bigger and runs 24/7 on battery/PV
if SOC is high enough, i’m even feeding a little back to grid at night to keep net usage from grid to zero or negative, i use almost zero grid from begin march to end november (in NL)

I am also interested in this topic. I am setting up my system step by step. So for now I have a MultiPlus II GX 48/5000 and 3 Pylontech US3000 batteries. Also one CerboGX attached to the MultiPlus II. The system shall be extended in a second step by solar, but today it is without solar.

I read the manual which was referenced, “ESS design and installation manual” I searched for the option of “pure energy storage no PV” but I can’t find a solution for my use case:

  • Though no PV is installed, the batteries shall only be charged in the night between 00:00am and 06:00am.
  • from 06:00am to 06:00pm the consumers shall get the currency from landline
  • from 06:00pm to 00:00am the consumers shall be fed from batteries.

I looked in the assistants in VEConfigure, but could not find anyone where I can simple set the times for this kind of configuration.

It is pure time controlled. The landline has currency 24 hours. I just intend to use the low cost tarif time during night.

Thank you all for your support!

I think I’ve found a solution for this now. let me describe what I’m contemplating.

In the ESS menu of the Cerbo under “Scheduled Charge levels” I created “Schedule 1” with following settings:

  • Day - Every Day
  • Start time - 22:01 (1min after Low Tarif starts)
  • Duration - 07:57 (to stop 1 min before Low Tarif ends at 06:00)
  • SOC Limit 50%
  • Self consumption Above limit - PV (there’s no PV in that time to consume anyway :slight_smile: )

Now it should / would charge to and/or stay on that said 50% SOC. So if the battery would be actually at 30% it would charge to 50 or if it was at 70% it would just stay there.

As I do not want to actually charge when SOC is below hat 50% I thought of following trick.
In Node Red I read the actual SOC of the battery at 21:59 and put that value into the Schedule as new target SOC.

So basically I’m preventing both charging and discharging between 22:01 and 05:59
So far all of it is theory I’ll test it tonight.

If any of you thinks of a better plan feel free to inform me so we can learn from each other.

Regards
Henk

Did you test it? Did you first configre an ESS Asistant with VEConfigure?

Unfortunately my ESS entry is empty and tells me to add an ESS Assitant. With VEConfigure?

One of the screenshots show my setup with the battery and the other my ESS Menu.

Precondition is of course that you have the ESS assistant installed. And you figured out correctly that you need to do that with VE-Configure. Mein Tech Bloch has a video on youtube on that as have several others.

1 Like

Curious to see if it works as expected when you have tested it!

It worked exactly as planned.

  • 21:59 it took the actual SOC and set that as target for Schedule 1
  • 22:01 it started Schedule 1 and started charging only to find out that the target was already reached instantly. No actual charging or discharging took place anymore.

Just to help anyone reading this later here is my Node Red Flow that adjusts the SOC target.

Cheers,
Henk

[
    {
        "id": "dbbbec33cb9743e6",
        "type": "group",
        "z": "2d8be6620eb9dc50",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "b92645f2591b9d4b",
            "a8f7a8a64634760b",
            "79853fa81fbb1f58",
            "178a6cc65ac97dc2",
            "b73b10d0f24cf68d",
            "490414baf250f03a",
            "7552d028831bdf80",
            "9c1e66168d12d416",
            "92da385b50f821f6",
            "c30bec2801fcaa59"
        ],
        "x": 14,
        "y": 839,
        "w": 832,
        "h": 322
    },
    {
        "id": "b92645f2591b9d4b",
        "type": "victron-output-ess",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "service": "com.victronenergy.settings",
        "path": "/Settings/CGwacs/BatteryLife/Schedule/Charge/0/Soc",
        "serviceObj": {
            "service": "com.victronenergy.settings",
            "name": "Venus settings"
        },
        "pathObj": {
            "path": "/Settings/CGwacs/BatteryLife/Schedule/Charge/0/Soc",
            "type": "integer",
            "name": "Schedule 1: State of charge (%)",
            "writable": true
        },
        "name": "",
        "onlyChanges": false,
        "x": 640,
        "y": 1060,
        "wires": []
    },
    {
        "id": "a8f7a8a64634760b",
        "type": "debug",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "debug 4",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 500,
        "y": 960,
        "wires": []
    },
    {
        "id": "79853fa81fbb1f58",
        "type": "function",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "function 2",
        "func": "//var SOC = msg.payload;\nflow.set('SOC_now', msg.payload);\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 500,
        "y": 920,
        "wires": [
            []
        ]
    },
    {
        "id": "178a6cc65ac97dc2",
        "type": "function",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "function 3",
        "func": "let SOC = flow.get('SOC_now') || 0;\nmsg.payload = SOC;\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 340,
        "y": 1060,
        "wires": [
            [
                "b73b10d0f24cf68d",
                "b92645f2591b9d4b"
            ]
        ]
    },
    {
        "id": "b73b10d0f24cf68d",
        "type": "debug",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "debug 5",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 520,
        "y": 1120,
        "wires": []
    },
    {
        "id": "490414baf250f03a",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "Trigger 21:59",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "59 21 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 140,
        "y": 1060,
        "wires": [
            [
                "178a6cc65ac97dc2"
            ]
        ]
    },
    {
        "id": "7552d028831bdf80",
        "type": "victron-input-battery",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "service": "com.victronenergy.battery/512",
        "path": "/Soc",
        "serviceObj": {
            "service": "com.victronenergy.battery/512",
            "name": "GobelPower"
        },
        "pathObj": {
            "path": "/Soc",
            "type": "float",
            "name": "State of charge (%)"
        },
        "initial": "",
        "name": "",
        "onlyChanges": false,
        "roundValues": "1",
        "x": 170,
        "y": 920,
        "wires": [
            [
                "a8f7a8a64634760b",
                "79853fa81fbb1f58"
            ]
        ]
    },
    {
        "id": "9c1e66168d12d416",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "Insert your actual State Of Charge Source here",
        "info": "",
        "x": 220,
        "y": 880,
        "wires": []
    },
    {
        "id": "92da385b50f821f6",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "Read the actual SOC 1 minutes before Low Tariff starts and set that as Target SOC for the Charge Schedule.",
        "info": "",
        "x": 410,
        "y": 1020,
        "wires": []
    },
    {
        "id": "c30bec2801fcaa59",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "55",
        "payloadType": "num",
        "x": 110,
        "y": 1120,
        "wires": [
            [
                "b92645f2591b9d4b"
            ]
        ]
    }
]

Thank you. I just tried it, but got an error message when uploading the settings file to my MultiGrid II. First have to solve that issue.

Great to hear its working!

Now a few weeks since our Solarinstallation became active we had a few days of fog and complete cloud cover so not much power was produced. As we have a situation where Power from the grid is cheaper between 22:00 and 06:00 I looked if exploiting that makes any sense.

  • Price difference between High and low Tariff is 30%
  • Highest Efficiency of the Multiplus II 48/5000 is 92.8% at 1390W
  • Estimated efficiency of LiFePo Chemistry 98%
    Resulting in a loss of the ac-dc–ac conversion of about 15.6%.

So utilizing the battery to shift usage from High to Low tariff results in a discount of 14.4%

Yes I’m neglecting any wear of the Battery but that gets to complicated to my liking and the thing was cheap and is there anyway so let’s use it.

Folowing is my Dokumentation feel free to use & adapt at your own Risk.

Regards
Henk

[
    {
        "id": "dbbbec33cb9743e6",
        "type": "group",
        "z": "2d8be6620eb9dc50",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "b92645f2591b9d4b",
            "79853fa81fbb1f58",
            "7552d028831bdf80",
            "9c1e66168d12d416",
            "92da385b50f821f6",
            "c30bec2801fcaa59",
            "b6182473e16d5188",
            "9773fa67f3c60e0c",
            "6bcebfbccda6f348",
            "bea11a8e0dbfb90a",
            "e76dce5d6191fc21",
            "74f77571682984f5",
            "173fc5ca4d44c51e",
            "64b1fd8fef479e30",
            "5092b827e0639d02",
            "79ecf7a22f855120"
        ],
        "x": 14,
        "y": 19,
        "w": 972,
        "h": 622
    },
    {
        "id": "b92645f2591b9d4b",
        "type": "victron-output-ess",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "service": "com.victronenergy.settings",
        "path": "/Settings/CGwacs/BatteryLife/Schedule/Charge/0/Soc",
        "serviceObj": {
            "service": "com.victronenergy.settings",
            "name": "Venus settings"
        },
        "pathObj": {
            "path": "/Settings/CGwacs/BatteryLife/Schedule/Charge/0/Soc",
            "type": "integer",
            "name": "Schedule 1: State of charge (%)",
            "writable": true
        },
        "name": "",
        "onlyChanges": false,
        "x": 780,
        "y": 480,
        "wires": []
    },
    {
        "id": "79853fa81fbb1f58",
        "type": "function",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "Store SOC_now",
        "func": "flow.set('SOC_now', msg.payload);\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 520,
        "y": 100,
        "wires": [
            []
        ]
    },
    {
        "id": "7552d028831bdf80",
        "type": "victron-input-battery",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "service": "com.victronenergy.battery/512",
        "path": "/Soc",
        "serviceObj": {
            "service": "com.victronenergy.battery/512",
            "name": "GobelPower"
        },
        "pathObj": {
            "path": "/Soc",
            "type": "float",
            "name": "State of charge (%)"
        },
        "initial": "",
        "name": "",
        "onlyChanges": false,
        "roundValues": "1",
        "x": 170,
        "y": 100,
        "wires": [
            [
                "79853fa81fbb1f58"
            ]
        ]
    },
    {
        "id": "9c1e66168d12d416",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "Insert your actual State Of Charge Source here",
        "info": "",
        "x": 220,
        "y": 60,
        "wires": []
    },
    {
        "id": "92da385b50f821f6",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "At 01:00 set the Desired SOC at Start High Tarif as Target in Charge Schedule 1.",
        "info": "",
        "x": 320,
        "y": 440,
        "wires": []
    },
    {
        "id": "c30bec2801fcaa59",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "Trigger 01:00 all days but mondays",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 01 * * 2,3,4,5,6,0",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "0",
        "payloadType": "num",
        "x": 200,
        "y": 480,
        "wires": [
            [
                "5092b827e0639d02"
            ]
        ]
    },
    {
        "id": "b6182473e16d5188",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "Trigger at 01:00 mondays",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 01 * * 1",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "100",
        "payloadType": "num",
        "x": 180,
        "y": 600,
        "wires": [
            [
                "5092b827e0639d02"
            ]
        ]
    },
    {
        "id": "9773fa67f3c60e0c",
        "type": "victron-output-ess",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "service": "com.victronenergy.settings",
        "path": "/Settings/CGwacs/BatteryLife/MinimumSocLimit",
        "serviceObj": {
            "service": "com.victronenergy.settings",
            "name": "Venus settings"
        },
        "pathObj": {
            "path": "/Settings/CGwacs/BatteryLife/MinimumSocLimit",
            "type": "integer",
            "name": "Minimum Discharge SOC (%)",
            "writable": true
        },
        "name": "",
        "onlyChanges": false,
        "x": 760,
        "y": 280,
        "wires": []
    },
    {
        "id": "6bcebfbccda6f348",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "Read the actual SOC 1 minute before Low Tariff starts and set that as Minimum Discharge SOC limit",
        "info": "",
        "x": 380,
        "y": 200,
        "wires": []
    },
    {
        "id": "bea11a8e0dbfb90a",
        "type": "function",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "get SOC_now",
        "func": "msg.payload = flow.get('SOC_now') || 20;\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 340,
        "y": 240,
        "wires": [
            [
                "9773fa67f3c60e0c"
            ]
        ]
    },
    {
        "id": "e76dce5d6191fc21",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "Trigger 21:59",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "59 21 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 140,
        "y": 240,
        "wires": [
            [
                "bea11a8e0dbfb90a"
            ]
        ]
    },
    {
        "id": "74f77571682984f5",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "As Low Tarif ends restore Minimum Discharge SOC limit",
        "info": "",
        "x": 240,
        "y": 320,
        "wires": []
    },
    {
        "id": "173fc5ca4d44c51e",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "Trigger 06:00",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "59 21 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 140,
        "y": 360,
        "wires": [
            [
                "64b1fd8fef479e30"
            ]
        ]
    },
    {
        "id": "64b1fd8fef479e30",
        "type": "function",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "get SOC_Desired_Minimum",
        "func": "//Output SOC_Desired_Minimum and fallback to 20% if not set.\nmsg.payload = flow.get('SOC_Desired_Minimum') || 20;\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 380,
        "y": 360,
        "wires": [
            [
                "9773fa67f3c60e0c"
            ]
        ]
    },
    {
        "id": "5092b827e0639d02",
        "type": "function",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "set Desired.SOC",
        "func": "let desiredValue = flow.get('SOC_Desired_Start_High_Tarrif') || 50;\n\nif (msg.payload < desiredValue) {\n    msg.payload = desiredValue;\n}\n\nreturn msg;\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 470,
        "y": 480,
        "wires": [
            [
                "b92645f2591b9d4b"
            ]
        ]
    },
    {
        "id": "79ecf7a22f855120",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "dbbbec33cb9743e6",
        "name": "On Mondays we want to start at 100%. resets the SOC calculation of the BMS. And happens to be Laundry day, so we need power early.",
        "info": "",
        "x": 490,
        "y": 560,
        "wires": []
    },
    {
        "id": "c1f5e96a479f49bf",
        "type": "group",
        "z": "2d8be6620eb9dc50",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "7c3c541fe9da0a57",
            "c0e0db3fb59bf6d5",
            "9ff1f48939d56412",
            "70326dc62189482a",
            "39e447656af2874e",
            "eca3165b53295ab1",
            "2cec9518188e4d86",
            "818443851ec828b2",
            "cd8a3aaddb82f6b7",
            "38b4cc988f3c3b69",
            "dd0c66cdb7f8339e",
            "e0c710ec65654bed",
            "df9aaf58f3491729",
            "8ecf693ba0586a65",
            "380edbd215f68522",
            "d4eb8ba82e4fb79b",
            "15c94b36023df26b",
            "5c71cc094dc09947"
        ],
        "x": 1014,
        "y": 19,
        "w": 872,
        "h": 602
    },
    {
        "id": "7c3c541fe9da0a57",
        "type": "victron-input-ess",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "service": "com.victronenergy.settings",
        "path": "/Settings/CGwacs/MaxChargePower",
        "serviceObj": {
            "service": "com.victronenergy.settings",
            "name": "Venus settings"
        },
        "pathObj": {
            "path": "/Settings/CGwacs/MaxChargePower",
            "type": "integer",
            "name": "Max charge power (W)",
            "remarks": "<p>Not used with DVCC.</p>"
        },
        "initial": "",
        "name": "",
        "onlyChanges": false,
        "x": 1710,
        "y": 100,
        "wires": [
            []
        ]
    },
    {
        "id": "c0e0db3fb59bf6d5",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 12 * * *",
        "once": true,
        "onceDelay": "10",
        "topic": "",
        "payload": "4170",
        "payloadType": "num",
        "x": 1110,
        "y": 100,
        "wires": [
            [
                "9ff1f48939d56412"
            ]
        ]
    },
    {
        "id": "9ff1f48939d56412",
        "type": "victron-output-ess",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "service": "com.victronenergy.settings",
        "path": "/Settings/CGwacs/MaxChargePower",
        "serviceObj": {
            "service": "com.victronenergy.settings",
            "name": "Venus settings"
        },
        "pathObj": {
            "path": "/Settings/CGwacs/MaxChargePower",
            "type": "integer",
            "name": "Max charge power (W)",
            "writable": true,
            "remarks": "<p>Not used with DVCC.</p>"
        },
        "name": "",
        "onlyChanges": false,
        "x": 1360,
        "y": 100,
        "wires": []
    },
    {
        "id": "70326dc62189482a",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "Set Chargepower to 1390W per inverter (max. Efficency ac-dc) Note: 3 Fase System",
        "info": "",
        "x": 1330,
        "y": 60,
        "wires": []
    },
    {
        "id": "39e447656af2874e",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "Check",
        "info": "",
        "x": 1690,
        "y": 60,
        "wires": []
    },
    {
        "id": "eca3165b53295ab1",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "Select desired Minimum SOC limit",
        "info": "",
        "x": 1180,
        "y": 180,
        "wires": []
    },
    {
        "id": "2cec9518188e4d86",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "20",
        "payloadType": "num",
        "x": 1110,
        "y": 220,
        "wires": [
            [
                "e0c710ec65654bed"
            ]
        ]
    },
    {
        "id": "818443851ec828b2",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "40",
        "payloadType": "num",
        "x": 1110,
        "y": 260,
        "wires": [
            [
                "e0c710ec65654bed"
            ]
        ]
    },
    {
        "id": "cd8a3aaddb82f6b7",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "60",
        "payloadType": "num",
        "x": 1110,
        "y": 300,
        "wires": [
            [
                "e0c710ec65654bed"
            ]
        ]
    },
    {
        "id": "38b4cc988f3c3b69",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "80",
        "payloadType": "num",
        "x": 1110,
        "y": 340,
        "wires": [
            [
                "e0c710ec65654bed"
            ]
        ]
    },
    {
        "id": "dd0c66cdb7f8339e",
        "type": "victron-output-ess",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "service": "com.victronenergy.settings",
        "path": "/Settings/CGwacs/BatteryLife/MinimumSocLimit",
        "serviceObj": {
            "service": "com.victronenergy.settings",
            "name": "Venus settings"
        },
        "pathObj": {
            "path": "/Settings/CGwacs/BatteryLife/MinimumSocLimit",
            "type": "integer",
            "name": "Minimum Discharge SOC (%)",
            "writable": true
        },
        "name": "",
        "onlyChanges": false,
        "x": 1680,
        "y": 220,
        "wires": []
    },
    {
        "id": "e0c710ec65654bed",
        "type": "function",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "set SOC_Desired_Minimum",
        "func": "flow.set('SOC_Desired_Minimum', msg.payload);\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1340,
        "y": 220,
        "wires": [
            [
                "dd0c66cdb7f8339e"
            ]
        ]
    },
    {
        "id": "df9aaf58f3491729",
        "type": "comment",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "Select Desired SOC at Start High Tarif",
        "info": "",
        "x": 1190,
        "y": 420,
        "wires": []
    },
    {
        "id": "8ecf693ba0586a65",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "20",
        "payloadType": "num",
        "x": 1110,
        "y": 460,
        "wires": [
            [
                "5c71cc094dc09947"
            ]
        ]
    },
    {
        "id": "380edbd215f68522",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "40",
        "payloadType": "num",
        "x": 1110,
        "y": 500,
        "wires": [
            [
                "5c71cc094dc09947"
            ]
        ]
    },
    {
        "id": "d4eb8ba82e4fb79b",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "60",
        "payloadType": "num",
        "x": 1110,
        "y": 540,
        "wires": [
            [
                "5c71cc094dc09947"
            ]
        ]
    },
    {
        "id": "15c94b36023df26b",
        "type": "inject",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "80",
        "payloadType": "num",
        "x": 1110,
        "y": 580,
        "wires": [
            [
                "5c71cc094dc09947"
            ]
        ]
    },
    {
        "id": "5c71cc094dc09947",
        "type": "function",
        "z": "2d8be6620eb9dc50",
        "g": "c1f5e96a479f49bf",
        "name": "set SOC_Desired_Start_High_Tarrif",
        "func": "flow.set('SOC_Desired_Start_High_Tarrif', msg.payload);\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1380,
        "y": 460,
        "wires": [
            []
        ]
    }
]

At the moment I stopped all Node Red Flows and started the Dynamic ESS form Victron. Will test that for a few weeks to see how it works. The first 24h seems promising.