Force AC INPUT with Node-RED

Hi everyone, I have a system with two MultiPlus IIs in parallel, which connect to the utility grid when the battery drops to 20%. I’ve set them up as you can see in the attached images.

My question is this: since I can’t reach 100% charge during this winter, I’d like to force charging via the utility grid, bypassing the rule set on the MultiPlus IIs with NODE-RED.

Is this possible? I hope I’ve explained myself well.

How do you use your system?

You could also use the ESS Assistant… with using Mode “Keep Battery charged” …
then you would have all the options for controlling grid connection and charging with “Node Red” … or are you not allowed to connect to the grid and NOT feed in?

Exactly, I can’t feed energy into the grid. I use the OFF GRID system, using the utility only in emergencies when the batteries are low.

did you checked the “official Modbus Register List” from Victron Side ?

Maybe there is an Info for you … I will check them too …

By using the general flag and the connection as a “relay,” you can externally connect an external input in the Multi via a GX relay and thus switch AC In ‘On’ or “Off.”

Why not simply change the assistant logic to incorporate an OR rule?

He is currently using the virtual switch and not the assistant…

@Netrange you are right. That can’t work with Virtual Switch.

Hi,
did you check this already ?
image
br
Leopold


I use node red on my Venus large to charge my battery using my octopus cosy cheap rates


[
    {
        "id": "4bd618242c1f7e51",
        "type": "tab",
        "label": "Charge Battery at Cheap rate",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "2ec2f4992c864648",
        "type": "victron-output-ess",
        "z": "4bd618242c1f7e51",
        "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
        },
        "initial": "",
        "name": "",
        "onlyChanges": false,
        "x": 800,
        "y": 140,
        "wires": []
    },
    {
        "id": "5d9ae9bfd6609e5c",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 40% 4am",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 04 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "40",
        "payloadType": "num",
        "x": 210,
        "y": 140,
        "wires": [
            [
                "4f0d5e45b11da103"
            ]
        ]
    },
    {
        "id": "2b9ba75f4c6419af",
        "type": "comment",
        "z": "4bd618242c1f7e51",
        "name": "State of charge to charge battery at cheap rate",
        "info": "",
        "x": 400,
        "y": 100,
        "wires": []
    },
    {
        "id": "8b7d70e4e89a79a8",
        "type": "victron-input-ess",
        "z": "4bd618242c1f7e51",
        "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 (%)"
        },
        "name": "",
        "onlyChanges": false,
        "x": 270,
        "y": 840,
        "wires": [
            [
                "85f6b74092814862"
            ]
        ]
    },
    {
        "id": "85f6b74092814862",
        "type": "debug",
        "z": "4bd618242c1f7e51",
        "name": "Min SOC%",
        "active": true,
        "tosidebar": false,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 590,
        "y": 840,
        "wires": []
    },
    {
        "id": "d98f19327f5b35eb",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 5% 4pm",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "58 15 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "5",
        "payloadType": "num",
        "x": 210,
        "y": 720,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "aad881c9576af08f",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 50% 1pm",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 13 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "50",
        "payloadType": "num",
        "x": 210,
        "y": 480,
        "wires": [
            [
                "30612bb769a6b474"
            ]
        ]
    },
    {
        "id": "2d771a7cd3cb64d1",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 40% 5am",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 05 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "40",
        "payloadType": "num",
        "x": 210,
        "y": 220,
        "wires": [
            [
                "67fff50a68fa0d14"
            ]
        ]
    },
    {
        "id": "0be21dd7c65e5467",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 40% 6am",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 06 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "40",
        "payloadType": "num",
        "x": 210,
        "y": 260,
        "wires": [
            [
                "6c84928b627e2d63"
            ]
        ]
    },
    {
        "id": "6c84928b627e2d63",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "d": true,
        "name": "25",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "25",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 260,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "89b9cbd8c76f4477",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 75% 2pm",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 14 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "75",
        "payloadType": "num",
        "x": 210,
        "y": 560,
        "wires": [
            [
                "ed681b62e318856b"
            ]
        ]
    },
    {
        "id": "7a0c1e1caa143368",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 90% 3pm",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 15 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "90",
        "payloadType": "num",
        "x": 210,
        "y": 640,
        "wires": [
            [
                "f2cfd94db5721bc2"
            ]
        ]
    },
    {
        "id": "30612bb769a6b474",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "name": "50",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "50",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 480,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "ed681b62e318856b",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "name": "75",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "75",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 560,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "f2cfd94db5721bc2",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "name": "90",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "90",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 640,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "67fff50a68fa0d14",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "d": true,
        "name": "20",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "20",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 220,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "4f0d5e45b11da103",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "d": true,
        "name": "15",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "15",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 140,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "846ae82a0de5caea",
        "type": "victron-input-battery",
        "z": "4bd618242c1f7e51",
        "service": "com.victronenergy.battery/512",
        "path": "/Soc",
        "serviceObj": {
            "service": "com.victronenergy.battery/512",
            "name": "PYLON"
        },
        "pathObj": {
            "path": "/Soc",
            "type": "float",
            "name": "State of charge (%)"
        },
        "initial": "",
        "name": "Battery %",
        "onlyChanges": false,
        "x": 160,
        "y": 900,
        "wires": [
            [
                "bb4c6dc12ac6daae"
            ]
        ]
    },
    {
        "id": "bb4c6dc12ac6daae",
        "type": "change",
        "z": "4bd618242c1f7e51",
        "name": "Flow.Battery",
        "rules": [
            {
                "t": "set",
                "p": "battery",
                "pt": "flow",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 410,
        "y": 900,
        "wires": [
            []
        ]
    },
    {
        "id": "5a4356a6e0cdeee6",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 50% 10pm",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 22 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "50",
        "payloadType": "num",
        "x": 720,
        "y": 220,
        "wires": [
            [
                "4e3400301cc4bfb8"
            ]
        ]
    },
    {
        "id": "e3fafb988bcf33ff",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 5% 22:59",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "59 22 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "5",
        "payloadType": "num",
        "x": 710,
        "y": 300,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "4e3400301cc4bfb8",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "name": "50",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "50",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 910,
        "y": 220,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "37b25c5659b860ec",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "name": "50",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "50",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 910,
        "y": 360,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "516b5bee2c56936b",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 50% 11pm",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 23 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "50",
        "payloadType": "num",
        "x": 720,
        "y": 360,
        "wires": [
            [
                "37b25c5659b860ec"
            ]
        ]
    },
    {
        "id": "82b90c9912ebfe84",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 50% 11:30 pm",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "30 23 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "50",
        "payloadType": "num",
        "x": 730,
        "y": 400,
        "wires": [
            [
                "37b25c5659b860ec"
            ]
        ]
    },
    {
        "id": "74a2b2e95be9a872",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 50% 10:30 pm",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "30 22 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "50",
        "payloadType": "num",
        "x": 730,
        "y": 260,
        "wires": [
            [
                "4e3400301cc4bfb8"
            ]
        ]
    },
    {
        "id": "a8b8a89007a56bd5",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 40% 4am",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "30 04 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "40",
        "payloadType": "num",
        "x": 210,
        "y": 180,
        "wires": [
            [
                "a913f256103cd3a4"
            ]
        ]
    },
    {
        "id": "404079c91d3791da",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 55% 13:30hrs",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "30 13 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "55",
        "payloadType": "num",
        "x": 230,
        "y": 520,
        "wires": [
            [
                "6e4e039bad5f9828"
            ]
        ]
    },
    {
        "id": "e8b716245418ec5a",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 80% 14:30hrs",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "30 14 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "80",
        "payloadType": "num",
        "x": 230,
        "y": 600,
        "wires": [
            [
                "f2d0f3fe477da18d"
            ]
        ]
    },
    {
        "id": "ca76816bce922dba",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 100% 15:30hrs",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "30 15 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "100",
        "payloadType": "num",
        "x": 230,
        "y": 680,
        "wires": [
            [
                "434894adffb6439d"
            ]
        ]
    },
    {
        "id": "434894adffb6439d",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "name": "100",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "100",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 680,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "f2d0f3fe477da18d",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "name": "80",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "80",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 600,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "6e4e039bad5f9828",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "name": "55",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "55",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 520,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "a913f256103cd3a4",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "d": true,
        "name": "20",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "20",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 180,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "64ed9175ada69bb7",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 40% 6:30 am",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "30 06 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "40",
        "payloadType": "num",
        "x": 220,
        "y": 300,
        "wires": [
            [
                "90375f4f5ceb09fa"
            ]
        ]
    },
    {
        "id": "90375f4f5ceb09fa",
        "type": "switch",
        "z": "4bd618242c1f7e51",
        "d": true,
        "name": "25",
        "property": "battery",
        "propertyType": "flow",
        "rules": [
            {
                "t": "lt",
                "v": "25",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 410,
        "y": 300,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "a899ee40516e2c32",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "Charge to 100% 11:00 sun",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 11 * * 0",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "100",
        "payloadType": "num",
        "x": 580,
        "y": 60,
        "wires": [
            []
        ]
    },
    {
        "id": "e94a8c0efd9b790d",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 5% 12:00",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 12 * * 0",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "5",
        "payloadType": "num",
        "x": 730,
        "y": 20,
        "wires": [
            []
        ]
    },
    {
        "id": "02a6d5bbbee051e1",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 5% midnight",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "59 23 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "5",
        "payloadType": "num",
        "x": 720,
        "y": 440,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "11495c8125f65a0b",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 5% 07:00",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 07 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "5",
        "payloadType": "num",
        "x": 210,
        "y": 340,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    },
    {
        "id": "8797a8cc3b1bf61b",
        "type": "inject",
        "z": "4bd618242c1f7e51",
        "name": "SOC to 100% 4am",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 04 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "100",
        "payloadType": "num",
        "x": 160,
        "y": 40,
        "wires": [
            [
                "2ec2f4992c864648"
            ]
        ]
    }
]