Control charging from grid

LX,

Totally agree on the education part and I’m open to learning just about anything but half the challenge is knowing what you need to learn as you indicated. Victron has been evolving products over time and the number of acronyms and names are overwhelming if your not in the Biz. I bought a Cerbo for the touch screen display capability and it fits in perfectly in our electrical panel config where we previously had a MasterVolt panel. Cerbo is also called GX Device, Touch, Erkano, Venus, or something else I think I have seen in the past. SO when it comes to watching videos you have to know what to look for and what it was called when. I realize the new learning model is now Google, YouTube Videos, and forums like this. Native for Millennials, Gen-Z’ers and so on…BUT for Gen-X or older it’s a new model that’s tough to embrace/succeed with but I do well given my background.

I did have remote console enabled before when Mathias’s team and I were working together but now that I’m on stable V3.70-96 release I don’t have the password set. THANK YOU for reminding me about that and I know how to set that up. I have watched a couple of introduction to Node-Red videos and am sure I can tackle it if I focus for a while AND get Bart’s baseline confit to start from. How do I DM Bart i.e. does this forum allow DM’s?

Regarding do we use the GX Device to start one of our Generators the answer is no. In your first post to me I think you were suggesting to use a Generator Assistant in the MPII’s I know OF Assistants in the MPII’s but I didn’t enable any and don’t know the value for what they bring. IF a generator assistant could leverage the virtual switch to connect/disconnect to the Grid/Shore power that could work well. My technical sales rep, previous Victron Employee whom I bought all my Victron equipment from didn’t feel I needed or would benefit from Assistants so he coached me to avoid them. Frankly with the Cerbo/GX Device/Venus running I’d rather centralize command and control then have decentralized assistants doing things. The Backup restore feature you posted IDK about…that actually could be an efficient way to enable/disable my Virtual Switch config. Once away from the dock I don’t mind managing the grid/generator connection manually through my AC Breaker panel. Motoring all day, we have a twin engine trawler with dual 190Amp Balmar large frame alternators provides more than enough power to recharge the batteries after a night on anchor. It’s the idyllic anchorage in the Islands where we strive to anchor for multiple days and live aboard off Solar that we strive for. In reality 1KW of Solar is not enough and we have to run the generator from time to time to top off the batteries, make hot water, or cool of the boat with HVAC if it’s too hot. IF we end up in a Marina were electricity is expensive our electricity bill can be more than our dock bill. That’s when I would try to go back and restore my Virtual Switch config to not use shore power until SOC is < 30% so we maximize the free Solar power at the dock B4 paying for expensive island power.

From what I see reading lots of posts my usecase is similar for home based Solar/battery systems where home owners don’t want grid power floating the batteries all day and would prefer the free solar panel power to recharge their EV’s or home based battery systems. So the desire to Disconnect from the Grid/Dock/Generator is something I wish Victron offered a more convenient way as I think the usecase is valid……I admire Mathias as he responded to my initial bug report and got me a fix fast so I’m hoping he’s monitoring/listening/looking and takes input like this as a worthwhile feature to roll into the product. I get it there are A LOT of new technologies and the electric boat propulsion seems to be where a lot of the focus has been but don’t forget the bread-n-butter end users like us who need features like this a long time ago…..

Scott in Sunny FL

Awesome. I have been cooking a design that skips the wiring between the GX and the inverter. I still need tk test it but haven’t had a candidate yet. Even my home system is testing something, i don’t want to kess with it right now.

Me as well. It is a disease i tell you. I don’t want even 1kWh trickling from there over a few hours if i can avoid it.

I will hunt for it. I was trying to make it copy paste with minimal changes to make it work over a few different systems (sort of like a packaged deal idea). I haven’t quite managed that yet but have it close enough i think.

gen for ac ignore.zip (911 Bytes)

@MotoringMariah that is quite the panel.

You will need to set your gen start stop on the gx to drive relay 1.
Program your parameters on the GX.
Import the above after unzipping. Adjust as the code by double clicking the node for the inverter as will be looking for my inverter still. There is a note there.

Summary

Deploy.

Test.

I had something else in mind but this seems simpler as you va basically ‘edit’ the code using the gx gui as you like. And have a manual override.

If you have questions just @ me and i will reply as soon as i am online again.

Summary

[
{
“id”: “91a4812e886d51e8”,
“type”: “victron-output-vebus”,
“z”: “2e584231b93a46ed”,
“service”: “com.victronenergy.vebus/276”,
“path”: “/Mode”,
“serviceObj”: {
“service”: “com.victronenergy.vebus/276”,
“name”: “MultiPlus 24/3000/70-50”
},
“pathObj”: {
“path”: “/Mode”,
“type”: “enum”,
“name”: “Switch Position”,
“enum”: {
“1”: “Charger Only”,
“2”: “Inverter Only”,
“3”: “On”,
“4”: “Off”
},
“mode”: “both”
},
“name”: “”,
“onlyChanges”: false,
“x”: 980,
“y”: 340,
“wires”:
},
{
“id”: “e23eed447738a307”,
“type”: “victron-input-relay”,
“z”: “2e584231b93a46ed”,
“service”: “com.victronenergy.system/0”,
“path”: “/Relay/0/State”,
“serviceObj”: {
“service”: “com.victronenergy.system/0”,
“name”: “Venus system”
},
“pathObj”: {
“path”: “/Relay/0/State”,
“type”: “enum”,
“name”: “Venus relay 1 state”,
“enum”: {
“0”: “Open”,
“1”: “Closed”
},
“mode”: “both”,
“disabled”: false
},
“name”: “”,
“onlyChanges”: false,
“x”: 310,
“y”: 340,
“wires”: [
[
“e7a1aa09c2616ed4”
]
]
},
{
“id”: “e7a1aa09c2616ed4”,
“type”: “switch”,
“z”: “2e584231b93a46ed”,
“name”: “Relay State”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: [
{
“t”: “eq”,
“v”: “1”,
“vt”: “num”
},
{
“t”: “eq”,
“v”: “0”,
“vt”: “num”
}
],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 540,
“y”: 340,
“wires”: [
[
“4be939285f499c99”
],
[
“55651352dce62f06”
]
],
“outputLabels”: [
“closed”,
“open”
]
},
{
“id”: “4be939285f499c99”,
“type”: “change”,
“z”: “2e584231b93a46ed”,
“name”: “On”,
“rules”: [
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “3”,
“tot”: “num”
}
],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 710,
“y”: 300,
“wires”: [
[
“91a4812e886d51e8”
]
]
},
{
“id”: “55651352dce62f06”,
“type”: “change”,
“z”: “2e584231b93a46ed”,
“name”: “Inverter Only”,
“rules”: [
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “2”,
“tot”: “num”
}
],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 710,
“y”: 380,
“wires”: [
[
“91a4812e886d51e8”
]
]
},
{
“id”: “8ae8424aa1441cb4”,
“type”: “comment”,
“z”: “2e584231b93a46ed”,
“name”: “Make sure this node is your inverter”,
“info”: “”,
“x”: 960,
“y”: 300,
“wires”:
}
]

@lxonline

THANKS but not sure what you sent me….is this like Bart’s Node Red code but your version of what I need/want? Should I disable my Virtual Switch settings first in the MPII’s to remove the disconnect grid rule I have in place?

I enabled the Relay for a Generator and see it in the devices. I still can’t login via the Node-Red login page. I have enabled root password, remote support, SSH, etc what UID/PW should I be using for Node-Red login not root?

I just rewatched this Introductory Video to Node-Red on GX and they show opening port 1881 and the web browser takes you right in without username/password prompt. OK Google is my friend there appears to be two remote passwords you can set first is root and the second is “remoteconsole”. By setting this second password I was able to get into Node-Red

FWIW Bart sounded like he had nearly exactly what I wanted so I’m unsure what your giving me. @BartChampagne please chime in

OK I’m pretty far along with your code imported and now I’m working to understand how to change your MPII’s from 24/3000/70-50 to the pair of 24/5000/120-95’s I have

Scott in Sunny FL

The part i hadn’t tested. It is probably best to remove the virtual switch.

Ignore AC with the programm-ability of directly from the generator start stop. Start generator is the connect to grid.

You should be at the test part after you have selected the inverter system.

Here’s a very very basic flow that does the trick ish.
There’s far more that can/should/could be set in the flow, like switching to grid or generator in case of an overload.
That’s all not there yet and parameters are still pretty much hardcoded in the nodes.
“When I have some spare time” (read: not in the coming weeks or months) I’ll pick this back up.
The “cute” part of this flow are the two switches it creates in GUIv2.
If not for that you could just as simple use the Virtual Switch option in the MP2.

[
    {
        "id": "19c88759b5c3d21a",
        "type": "victron-virtual-switch",
        "z": "5097d071e5c6b8d8",
        "name": "Ignore AC In",
        "outputs": 2,
        "switch_1_type": "1",
        "switch_1_initial": 0,
        "switch_1_label": "",
        "switch_1_customname": "Ignore AC In",
        "switch_1_group": "Custom Controls",
        "switch_1_include_measurement": false,
        "switch_1_rgb_color_wheel": false,
        "switch_1_cct_wheel": false,
        "switch_1_rgb_white_dimmer": false,
        "x": 770,
        "y": 220,
        "wires": [
            [],
            [
                "16fe82bb1d8b5c6c",
                "710bb7091e8cafb0"
            ]
        ]
    },
    {
        "id": "ea6f59a39e61fdf8",
        "type": "victron-input-vebus",
        "z": "5097d071e5c6b8d8",
        "service": "com.victronenergy.vebus/276",
        "path": "/Dc/0/Voltage",
        "serviceObj": {
            "service": "com.victronenergy.vebus/276",
            "name": "MultiPlus-II 24/3000/70-32",
            "communityTag": "vebus"
        },
        "pathObj": {
            "path": "/Dc/0/Voltage",
            "type": "float",
            "name": "Battery voltage (V)"
        },
        "name": "",
        "onlyChanges": true,
        "roundValues": "2",
        "outputs": 2,
        "conditionalMode": true,
        "condition1Operator": ">=",
        "condition1Threshold": 24,
        "condition2Enabled": false,
        "outputTrue": "",
        "outputFalse": "{\"SwitchableOutput/output_1/State\":0}",
        "debounce": 2000,
        "x": 280,
        "y": 100,
        "wires": [
            [
                "a055f87eaa8f0c51"
            ],
            [
                "c6aa16916ed68b6f"
            ]
        ]
    },
    {
        "id": "fe4e3a5749f355a8",
        "type": "victron-input-vebus",
        "z": "5097d071e5c6b8d8",
        "service": "com.victronenergy.vebus/276",
        "path": "/Ac/State/IgnoreAcIn1",
        "serviceObj": {
            "service": "com.victronenergy.vebus/276",
            "name": "MultiPlus-II 24/3000/70-32",
            "communityTag": "vebus"
        },
        "pathObj": {
            "path": "/Ac/State/IgnoreAcIn1",
            "type": "enum",
            "name": "AC input 1 ignored",
            "enum": {
                "0": "AC input not ignored",
                "1": "AC input ignored"
            }
        },
        "name": "",
        "onlyChanges": true,
        "roundValues": "2",
        "outputs": 1,
        "conditionalMode": false,
        "outputTrue": "",
        "outputFalse": "",
        "debounce": "",
        "x": 280,
        "y": 220,
        "wires": [
            [
                "61701b7543955754"
            ]
        ]
    },
    {
        "id": "4b15e2d8e83d8e1f",
        "type": "change",
        "z": "5097d071e5c6b8d8",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "SoC",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 390,
        "y": 280,
        "wires": [
            [
                "fccb0f057564db69"
            ]
        ]
    },
    {
        "id": "5f6c579571b14ee2",
        "type": "victron-input-vebus",
        "z": "5097d071e5c6b8d8",
        "service": "com.victronenergy.vebus/276",
        "path": "/Soc",
        "serviceObj": {
            "service": "com.victronenergy.vebus/276",
            "name": "MultiPlus-II 24/3000/70-32",
            "communityTag": "vebus"
        },
        "pathObj": {
            "path": "/Soc",
            "type": "float",
            "name": "VE.Bus state of charge (%)"
        },
        "name": "",
        "onlyChanges": true,
        "roundValues": "2",
        "outputs": 2,
        "conditionalMode": true,
        "condition1Operator": ">",
        "condition1Threshold": 30,
        "condition2Enabled": false,
        "outputTrue": "",
        "outputFalse": "{\"SwitchableOutput/output_1/State\":0}",
        "debounce": 0,
        "x": 260,
        "y": 320,
        "wires": [
            [
                "0d0c033be179e0a6",
                "4b15e2d8e83d8e1f"
            ],
            [
                "0761f40e9803793f"
            ]
        ]
    },
    {
        "id": "a7e1312e.5108a",
        "type": "victron-input-battery",
        "z": "5097d071e5c6b8d8",
        "service": "com.victronenergy.battery/277",
        "path": "/Soc",
        "serviceObj": {
            "service": "com.victronenergy.battery/277",
            "name": "BATTERY PACK1",
            "communityTag": "battery"
        },
        "pathObj": {
            "path": "/Soc",
            "type": "float",
            "name": "State of charge (%)"
        },
        "initial": "",
        "name": "",
        "onlyChanges": true,
        "roundValues": "2",
        "outputs": 2,
        "conditionalMode": true,
        "condition1Operator": ">=",
        "condition1Threshold": 30,
        "condition2Enabled": false,
        "outputTrue": "",
        "outputFalse": "{\"SwitchableOutput/output_1/State\":0}",
        "debounce": 2000,
        "x": 310,
        "y": 400,
        "wires": [
            [
                "0d0c033be179e0a6",
                "4b15e2d8e83d8e1f"
            ],
            [
                "0761f40e9803793f"
            ]
        ]
    },
    {
        "id": "0761f40e9803793f",
        "type": "switch",
        "z": "5097d071e5c6b8d8",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 570,
        "y": 360,
        "wires": [
            [
                "3ffb1de914876bd4"
            ],
            [
                "19c88759b5c3d21a",
                "027de7f88b700c2b"
            ]
        ]
    },
    {
        "id": "56ea3ef821a7223d",
        "type": "inject",
        "z": "5097d071e5c6b8d8",
        "name": "Init On",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "1",
        "topic": "",
        "payload": "{\"SwitchableOutput/output_1/State\":1}",
        "payloadType": "json",
        "x": 570,
        "y": 320,
        "wires": [
            [
                "3cf477ce41aef3e1"
            ]
        ]
    },
    {
        "id": "2cce6416bef03b2e",
        "type": "inject",
        "z": "5097d071e5c6b8d8",
        "name": "0",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"SwitchableOutput/output_1/State\":0}",
        "payloadType": "json",
        "x": 570,
        "y": 260,
        "wires": [
            [
                "19c88759b5c3d21a",
                "3a5a84c72165c9a8"
            ]
        ]
    },
    {
        "id": "61701b7543955754",
        "type": "function",
        "z": "5097d071e5c6b8d8",
        "name": "Init",
        "func": "msg.payload = {\n    \"SwitchableOutput/output_1/State\": msg.payload\n};\nreturn msg;\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 570,
        "y": 220,
        "wires": [
            [
                "19c88759b5c3d21a"
            ]
        ]
    },
    {
        "id": "db49ed4276e1e9ac",
        "type": "inject",
        "z": "5097d071e5c6b8d8",
        "name": "1",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"SwitchableOutput/output_1/State\":1}",
        "payloadType": "json",
        "x": 570,
        "y": 180,
        "wires": [
            [
                "19c88759b5c3d21a",
                "3a5a84c72165c9a8"
            ]
        ]
    },
    {
        "id": "c6aa16916ed68b6f",
        "type": "switch",
        "z": "5097d071e5c6b8d8",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 570,
        "y": 100,
        "wires": [
            [],
            [
                "a1c64ed32475b050",
                "19c88759b5c3d21a"
            ]
        ]
    },
    {
        "id": "16fe82bb1d8b5c6c",
        "type": "rbe",
        "z": "5097d071e5c6b8d8",
        "name": "",
        "func": "rbe",
        "gap": "",
        "start": "",
        "inout": "out",
        "septopics": false,
        "property": "payload",
        "topi": "topic",
        "x": 930,
        "y": 220,
        "wires": [
            [
                "5c1bb5b7a7ad66d9"
            ]
        ]
    },
    {
        "id": "5c1bb5b7a7ad66d9",
        "type": "victron-output-custom",
        "z": "5097d071e5c6b8d8",
        "service": "com.victronenergy.vebus/276",
        "path": "/Ac/Control/IgnoreAcIn1",
        "serviceObj": {
            "service": "com.victronenergy.vebus/276",
            "name": "MultiPlus-II 24/3000/70-32 (276)"
        },
        "pathObj": {
            "path": "/Ac/Control/IgnoreAcIn1",
            "name": "/Ac/Control/IgnoreAcIn1",
            "type": "number",
            "value": 0
        },
        "name": "Ignore AC In",
        "onlyChanges": false,
        "roundValues": "no",
        "rateLimit": 0,
        "outputs": 0,
        "conditionalMode": false,
        "condition1Operator": ">",
        "condition2Enabled": false,
        "condition2Service": "",
        "condition2Path": "",
        "condition2Operator": ">",
        "logicOperator": "AND",
        "outputTrue": "true",
        "outputFalse": "false",
        "outputOnChange": false,
        "debounce": 2000,
        "x": 1070,
        "y": 220,
        "wires": []
    },
    {
        "id": "fccb0f057564db69",
        "type": "join",
        "z": "5097d071e5c6b8d8",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "useparts": false,
        "accumulate": true,
        "timeout": "",
        "count": "2",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 750,
        "y": 280,
        "wires": [
            [
                "ff16b4c50b87a9fb"
            ]
        ]
    },
    {
        "id": "ff16b4c50b87a9fb",
        "type": "function",
        "z": "5097d071e5c6b8d8",
        "name": "Ignore AC @ 100% SoC",
        "func": "const BATT_SOC = msg.payload.SoC || 50;\nconst AutoIgnoreSwitch = msg.payload.AutoIgnoreSwitch || 0;\n\nif (( BATT_SOC == 100 && AutoIgnoreSwitch == 1 )) {\n    const AcIgnore = {\n    payload: {\n    \"SwitchableOutput/output_1/State\": 1\n    }\n    };\n\nreturn AcIgnore;\n}\n\nreturn null;\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 990,
        "y": 280,
        "wires": [
            [
                "19c88759b5c3d21a"
            ]
        ]
    },
    {
        "id": "3cf477ce41aef3e1",
        "type": "victron-virtual-switch",
        "z": "5097d071e5c6b8d8",
        "name": "Ignore AC In @ 100% SoC",
        "outputs": 2,
        "switch_1_type": 1,
        "switch_1_initial": 0,
        "switch_1_label": "",
        "switch_1_customname": "Ignore AC In @ 100% SoC",
        "switch_1_group": "Custom Controls",
        "switch_1_include_measurement": false,
        "switch_1_rgb_color_wheel": false,
        "switch_1_cct_wheel": false,
        "switch_1_rgb_white_dimmer": false,
        "x": 820,
        "y": 320,
        "wires": [
            [],
            [
                "bcec8fdfa6831c8f"
            ]
        ]
    },
    {
        "id": "bcec8fdfa6831c8f",
        "type": "change",
        "z": "5097d071e5c6b8d8",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "AutoIgnoreSwitch",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1030,
        "y": 320,
        "wires": [
            [
                "fccb0f057564db69"
            ]
        ]
    },
    {
        "id": "02aa57aa69b06ae9",
        "type": "global-config",
        "env": [],
        "modules": {
            "@victronenergy/node-red-contrib-victron": "1.6.63"
        }
    }
]
1 Like

Bart,

Thanks for chiming in here….can I get that as a Zip or Json file? IDK if I can use it but it’s another starting point after LX gave me one…..but IDK I’m ready to blow my brains out. I’ve spent the last 4-5 hours trying to learn Node-Red and use what LX gave me. This is mind-numblingly painful! LX gave me this JSON flow and told me to change the Inverter/Charger to be mine but doesn’t tell me how to do that! His is a single MP 24/3000/70-50 where I have a pair of MPII’s 24/5000/120-95’s I can’t for the life of me figure how/where is the inventory of my Victron Devices to drag/drop/add to a Node-Red Flow…for my network/devices

You already have the pane open. Click where the inverter is and select yours- there will likely be only one thing on the list - since yours is not a single unit it will likely only be the one showing there (276) not necessarily a model name. Then click done. Deploy it. Test it for example by manually running the ‘generator’ and checking if the system connects to the shore or generator.

My apologies for thinking you had figured it out since your screenshot has it open (the screenshot i left highlighted the box you needed to change). It is a drop down list not much to get wrong.

Barts flow

[
{
“id”: “19c88759b5c3d21a”,
“type”: “victron-virtual-switch”,
“z”: “5097d071e5c6b8d8”,
“name”: “Ignore AC In”,
“outputs”: 2,
“switch_1_type”: “1”,
“switch_1_initial”: 0,
“switch_1_label”: “”,
“switch_1_customname”: “Ignore AC In”,
“switch_1_group”: “Custom Controls”,
“switch_1_include_measurement”: false,
“switch_1_rgb_color_wheel”: false,
“switch_1_cct_wheel”: false,
“switch_1_rgb_white_dimmer”: false,
“x”: 770,
“y”: 220,
“wires”: [
,
[
“16fe82bb1d8b5c6c”,
“710bb7091e8cafb0”
]
]
},
{
“id”: “ea6f59a39e61fdf8”,
“type”: “victron-input-vebus”,
“z”: “5097d071e5c6b8d8”,
“service”: “com.victronenergy.vebus/276”,
“path”: “/Dc/0/Voltage”,
“serviceObj”: {
“service”: “com.victronenergy.vebus/276”,
“name”: “MultiPlus-II 24/3000/70-32”,
“communityTag”: “vebus”
},
“pathObj”: {
“path”: “/Dc/0/Voltage”,
“type”: “float”,
“name”: “Battery voltage (V)”
},
“name”: “”,
“onlyChanges”: true,
“roundValues”: “2”,
“outputs”: 2,
“conditionalMode”: true,
“condition1Operator”: “>=”,
“condition1Threshold”: 24,
“condition2Enabled”: false,
“outputTrue”: “”,
“outputFalse”: “{"SwitchableOutput/output_1/State":0}”,
“debounce”: 2000,
“x”: 280,
“y”: 100,
“wires”: [
[
“a055f87eaa8f0c51”
],
[
“c6aa16916ed68b6f”
]
]
},
{
“id”: “fe4e3a5749f355a8”,
“type”: “victron-input-vebus”,
“z”: “5097d071e5c6b8d8”,
“service”: “com.victronenergy.vebus/276”,
“path”: “/Ac/State/IgnoreAcIn1”,
“serviceObj”: {
“service”: “com.victronenergy.vebus/276”,
“name”: “MultiPlus-II 24/3000/70-32”,
“communityTag”: “vebus”
},
“pathObj”: {
“path”: “/Ac/State/IgnoreAcIn1”,
“type”: “enum”,
“name”: “AC input 1 ignored”,
“enum”: {
“0”: “AC input not ignored”,
“1”: “AC input ignored”
}
},
“name”: “”,
“onlyChanges”: true,
“roundValues”: “2”,
“outputs”: 1,
“conditionalMode”: false,
“outputTrue”: “”,
“outputFalse”: “”,
“debounce”: “”,
“x”: 280,
“y”: 220,
“wires”: [
[
“61701b7543955754”
]
]
},
{
“id”: “4b15e2d8e83d8e1f”,
“type”: “change”,
“z”: “5097d071e5c6b8d8”,
“name”: “”,
“rules”: [
{
“t”: “set”,
“p”: “topic”,
“pt”: “msg”,
“to”: “SoC”,
“tot”: “str”
}
],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 390,
“y”: 280,
“wires”: [
[
“fccb0f057564db69”
]
]
},
{
“id”: “5f6c579571b14ee2”,
“type”: “victron-input-vebus”,
“z”: “5097d071e5c6b8d8”,
“service”: “com.victronenergy.vebus/276”,
“path”: “/Soc”,
“serviceObj”: {
“service”: “com.victronenergy.vebus/276”,
“name”: “MultiPlus-II 24/3000/70-32”,
“communityTag”: “vebus”
},
“pathObj”: {
“path”: “/Soc”,
“type”: “float”,
“name”: “VE.Bus state of charge (%)”
},
“name”: “”,
“onlyChanges”: true,
“roundValues”: “2”,
“outputs”: 2,
“conditionalMode”: true,
“condition1Operator”: “>”,
“condition1Threshold”: 30,
“condition2Enabled”: false,
“outputTrue”: “”,
“outputFalse”: “{"SwitchableOutput/output_1/State":0}”,
“debounce”: 0,
“x”: 260,
“y”: 320,
“wires”: [
[
“0d0c033be179e0a6”,
“4b15e2d8e83d8e1f”
],
[
“0761f40e9803793f”
]
]
},
{
“id”: “a7e1312e.5108a”,
“type”: “victron-input-battery”,
“z”: “5097d071e5c6b8d8”,
“service”: “com.victronenergy.battery/277”,
“path”: “/Soc”,
“serviceObj”: {
“service”: “com.victronenergy.battery/277”,
“name”: “BATTERY PACK1”,
“communityTag”: “battery”
},
“pathObj”: {
“path”: “/Soc”,
“type”: “float”,
“name”: “State of charge (%)”
},
“initial”: “”,
“name”: “”,
“onlyChanges”: true,
“roundValues”: “2”,
“outputs”: 2,
“conditionalMode”: true,
“condition1Operator”: “>=”,
“condition1Threshold”: 30,
“condition2Enabled”: false,
“outputTrue”: “”,
“outputFalse”: “{"SwitchableOutput/output_1/State":0}”,
“debounce”: 2000,
“x”: 310,
“y”: 400,
“wires”: [
[
“0d0c033be179e0a6”,
“4b15e2d8e83d8e1f”
],
[
“0761f40e9803793f”
]
]
},
{
“id”: “0761f40e9803793f”,
“type”: “switch”,
“z”: “5097d071e5c6b8d8”,
“name”: “”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: [
{
“t”: “true”
},
{
“t”: “else”
}
],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 570,
“y”: 360,
“wires”: [
[
“3ffb1de914876bd4”
],
[
“19c88759b5c3d21a”,
“027de7f88b700c2b”
]
]
},
{
“id”: “56ea3ef821a7223d”,
“type”: “inject”,
“z”: “5097d071e5c6b8d8”,
“name”: “Init On”,
“props”: [
{
“p”: “payload”
}
],
“repeat”: “”,
“crontab”: “”,
“once”: true,
“onceDelay”: “1”,
“topic”: “”,
“payload”: “{"SwitchableOutput/output_1/State":1}”,
“payloadType”: “json”,
“x”: 570,
“y”: 320,
“wires”: [
[
“3cf477ce41aef3e1”
]
]
},
{
“id”: “2cce6416bef03b2e”,
“type”: “inject”,
“z”: “5097d071e5c6b8d8”,
“name”: “0”,
“props”: [
{
“p”: “payload”
}
],
“repeat”: “”,
“crontab”: “”,
“once”: false,
“onceDelay”: 0.1,
“topic”: “”,
“payload”: “{"SwitchableOutput/output_1/State":0}”,
“payloadType”: “json”,
“x”: 570,
“y”: 260,
“wires”: [
[
“19c88759b5c3d21a”,
“3a5a84c72165c9a8”
]
]
},
{
“id”: “61701b7543955754”,
“type”: “function”,
“z”: “5097d071e5c6b8d8”,
“name”: “Init”,
“func”: “msg.payload = {\n "SwitchableOutput/output_1/State": msg.payload\n};\nreturn msg;\n”,
“outputs”: 1,
“timeout”: 0,
“noerr”: 0,
“initialize”: “”,
“finalize”: “”,
“libs”: ,
“x”: 570,
“y”: 220,
“wires”: [
[
“19c88759b5c3d21a”
]
]
},
{
“id”: “db49ed4276e1e9ac”,
“type”: “inject”,
“z”: “5097d071e5c6b8d8”,
“name”: “1”,
“props”: [
{
“p”: “payload”
}
],
“repeat”: “”,
“crontab”: “”,
“once”: false,
“onceDelay”: 0.1,
“topic”: “”,
“payload”: “{"SwitchableOutput/output_1/State":1}”,
“payloadType”: “json”,
“x”: 570,
“y”: 180,
“wires”: [
[
“19c88759b5c3d21a”,
“3a5a84c72165c9a8”
]
]
},
{
“id”: “c6aa16916ed68b6f”,
“type”: “switch”,
“z”: “5097d071e5c6b8d8”,
“name”: “”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: [
{
“t”: “true”
},
{
“t”: “else”
}
],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 570,
“y”: 100,
“wires”: [
,
[
“a1c64ed32475b050”,
“19c88759b5c3d21a”
]
]
},
{
“id”: “16fe82bb1d8b5c6c”,
“type”: “rbe”,
“z”: “5097d071e5c6b8d8”,
“name”: “”,
“func”: “rbe”,
“gap”: “”,
“start”: “”,
“inout”: “out”,
“septopics”: false,
“property”: “payload”,
“topi”: “topic”,
“x”: 930,
“y”: 220,
“wires”: [
[
“5c1bb5b7a7ad66d9”
]
]
},
{
“id”: “5c1bb5b7a7ad66d9”,
“type”: “victron-output-custom”,
“z”: “5097d071e5c6b8d8”,
“service”: “com.victronenergy.vebus/276”,
“path”: “/Ac/Control/IgnoreAcIn1”,
“serviceObj”: {
“service”: “com.victronenergy.vebus/276”,
“name”: “MultiPlus-II 24/3000/70-32 (276)”
},
“pathObj”: {
“path”: “/Ac/Control/IgnoreAcIn1”,
“name”: “/Ac/Control/IgnoreAcIn1”,
“type”: “number”,
“value”: 0
},
“name”: “Ignore AC In”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 0,
“conditionalMode”: false,
“condition1Operator”: “>”,
“condition2Enabled”: false,
“condition2Service”: “”,
“condition2Path”: “”,
“condition2Operator”: “>”,
“logicOperator”: “AND”,
“outputTrue”: “true”,
“outputFalse”: “false”,
“outputOnChange”: false,
“debounce”: 2000,
“x”: 1070,
“y”: 220,
“wires”:
},
{
“id”: “fccb0f057564db69”,
“type”: “join”,
“z”: “5097d071e5c6b8d8”,
“name”: “”,
“mode”: “custom”,
“build”: “object”,
“property”: “payload”,
“propertyType”: “msg”,
“key”: “topic”,
“joiner”: “\n”,
“joinerType”: “str”,
“useparts”: false,
“accumulate”: true,
“timeout”: “”,
“count”: “2”,
“reduceRight”: false,
“reduceExp”: “”,
“reduceInit”: “”,
“reduceInitType”: “”,
“reduceFixup”: “”,
“x”: 750,
“y”: 280,
“wires”: [
[
“ff16b4c50b87a9fb”
]
]
},
{
“id”: “ff16b4c50b87a9fb”,
“type”: “function”,
“z”: “5097d071e5c6b8d8”,
“name”: “Ignore AC @ 100% SoC”,
“func”: “const BATT_SOC = msg.payload.SoC || 50;\nconst AutoIgnoreSwitch = msg.payload.AutoIgnoreSwitch || 0;\n\nif (( BATT_SOC == 100 && AutoIgnoreSwitch == 1 )) {\n const AcIgnore = {\n payload: {\n "SwitchableOutput/output_1/State": 1\n }\n };\n\nreturn AcIgnore;\n}\n\nreturn null;\n”,
“outputs”: 1,
“timeout”: 0,
“noerr”: 0,
“initialize”: “”,
“finalize”: “”,
“libs”: ,
“x”: 990,
“y”: 280,
“wires”: [
[
“19c88759b5c3d21a”
]
]
},
{
“id”: “3cf477ce41aef3e1”,
“type”: “victron-virtual-switch”,
“z”: “5097d071e5c6b8d8”,
“name”: “Ignore AC In @ 100% SoC”,
“outputs”: 2,
“switch_1_type”: 1,
“switch_1_initial”: 0,
“switch_1_label”: “”,
“switch_1_customname”: “Ignore AC In @ 100% SoC”,
“switch_1_group”: “Custom Controls”,
“switch_1_include_measurement”: false,
“switch_1_rgb_color_wheel”: false,
“switch_1_cct_wheel”: false,
“switch_1_rgb_white_dimmer”: false,
“x”: 820,
“y”: 320,
“wires”: [
,
[
“bcec8fdfa6831c8f”
]
]
},
{
“id”: “bcec8fdfa6831c8f”,
“type”: “change”,
“z”: “5097d071e5c6b8d8”,
“name”: “”,
“rules”: [
{
“t”: “set”,
“p”: “topic”,
“pt”: “msg”,
“to”: “AutoIgnoreSwitch”,
“tot”: “str”
}
],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 1030,
“y”: 320,
“wires”: [
[
“fccb0f057564db69”
]
]
},
{
“id”: “02aa57aa69b06ae9”,
“type”: “global-config”,
“env”: ,
“modules”: {
@victronenergy/node-red-contrib-victron”: “1.6.63”
}
}
]

As an FYI hardly any flows drag and drop work without editing and checking. You will also need to test and check Bart’s interacts with your system correctly.

1 Like

Neat. I am loving that new feature.

You can download that flow and save it as a JSON locally.

The other cute part on my flow are the Conditional Outputs from the Multiplus nodes.
On one side it saves me a Function node for each condition, on the other side it doesn’t allow for the thresholds to be adjusted dynamically.
Final version will likely use Function nodes again but for basic functionality this one is easy, compact and clean.

I have moved this to a dedicated topic in nodered so it doesn’t hijack the original topic.

1 Like

Nick/Guys,

Sorry I had to walk away I was so frustrated after yesterday’s session, I just didn’t want to go any further with it this morning, but I’m back aboard. SO Nick thanks for breaking this out into it’s own thread I didn’t want to hijack the thread but Bart’s post got me excited and then when LX shared a flow I thought I could accomplish my goal quickly. So I prolly got invest more stick time in training as so much of this NodeRed GUI does NOT make sense to me. I understand the concept of the flow logic and when you deploy it, it then runs/becomes available on the Cerbo. Looking at LX’s logic I think the flow is right to Left and it says if the Inverter is on or invert-only it sets Relay 1 the Generator Relay to on. I have no physical connection to start my Generator it’s 100% manual. Similarly the shore power is a manual selection. I need the MPII’s to automatically connect to AC Power when SOC < 30%, drop AC power at 100% like Bart’s logic and IF for some reason I want to over ride this I would like to be able to push a button on the Cerbo that starts the charge to 100% and drops AC Power again.

@LX you said in response to my post that “I had the pane open Click where the inverter is and select yours” BUT I didn’t know what that meant and the only thing there is Inverter/Chargers(276) which 276 appears to map to my VRM instance ID but the rest of the text below didn’t match mine.

Recall I have a pair of MP’s in split phase so I’m taking in 240V AC and each one is putting out 120V AC out of phase

@LX you have said several times “Test it for example by manually running the ‘generator’ and checking if the system connects to the shore or generator.” but recall I don’t have a Quattro which I thinks takes in multiple inputs and selects one based on which one is hot. My AC Selection is manual based on a physical selector switch. When I’m home I’m on Shore Power, notice I have 2 Shore Power inlets #1 and #2 which are 240V@50amp. When we are Underway or on Anchor I can select one of two Generators to be a source of power for the MPII’s. In the Pic below you see the selector switch on the Top Left is for the 240V AC panel that starts out with Inverter/Charge 1 and Inverter Charge 2. The Right side breaker panel is the Inverter output for 120V AC House loads. We don’t power anything onboard with 240V AC, only 120V AC for the breakers you see. Notice I can ByPass the Inverter or connect the inverter loads to shore power via 120V@30amp shore cable also.

The more I look the LX Flow/logic I don’t think it’s what I want because setting the Generator Start relay to “on” has no physical connection to allow the MPII’s to stop Ignoring AC In. Is that a Virtual connection? I don’t understand the relationship between the Generator stop/stop relay and the Ignore AC In message that the MPII’s use. @BartChampagne thank you for sharing and telling me I could save the JSON file which I did and load it up! From what I see/understand your able to set the Ignore AC Input in the MPII’s with your logic when you hit a 100% SOC. This is EXACTLY what I want…..

So I got daring or reckless depending on how you look at it and Deployed LX’s flow after selecting my 276 VRM Instance and my gut says I must have done it correctly as the Flow now shows I have 2 Inverters and I’m currently in Invert-Only mode because the MPII’s Virtual Switch is Ignoring AC IN since my SOC is 76%

I now have this ability to manually start or Autostart the generator not sure if that was there before Deploying LX’s Flow but that seems like a step in the right direction.

OK Gentlemen I’m cooking with Gas now! Loaded in Bart’s Flow and was able to change his Inverter/Chargers to mine and it looks like Bart is using a Battery Monitor system where I have a pair of Lynx BMS NG’s in parallel and was able to use the Lynx Smart BMS which is virtual representation for my two BMS’s

Before I Deploy Bart’s Flow I need/want to backup my MPII Configs with the Virtual Switch setting enabled and then reconfig with it off and save that config. LX you gave me a good way to easily change the MPII configs using a backup/restore model if I can’t get Node-Red working the way I want that will be my fall back. THANK YOU many times over….from yesterday I left you after being overwhelmed and slightly depressed to today I’m on top of the world with what I see now !

Scott in Sunny FL

@lxonline ok I guess I didn’t understand your Flow but much to my surprise I stumbled across it working I think it might be what I want. So before enabling @BartChampagne Flow I created backups of up my MPII config with and without the Virtual Switch configuration. Once I got the backups created I tried to turn the MPII’s back on to what I thought was going to be a default Shore Power setting and the batteries would start charging. I couldn’t get them to turn on and then I realized your Generator Start logic must be inhibiting it so I tried the Manual Generator Start Button and BOOM Shore Power connected. It was an OMG Moment!

I don’t understand how Starting the Generator is turning off the Ignore AC Input in the MPII’s nor how these SOC settings below activating the Ignore AC Input which was what I did with the Virtual Switch but that is no longer configured.

I’m gonna let this run for a few days and see how it performs. When I do a Manual Start I am wondering what condition will stop the charging. I see I can select it to run for X hours which may be fine, but it’s not like Bart’s logic that when batteries get full the Ignore AC is triggered again AFAIK.

Long story shore I’m over the moon happy at the moment after being ready to jump off a cliff yesterday! THANK YOU!!!

Scott in sunny FL

1 Like

When you want to override the automatic connection.
For example when you are actually running your generator.

The basic logic is it is treating the grid like a generator.
So if you only want to connect at 20% and disconnect at 80% then it will do that.
All the logic and connection changes are possible through the Generator start srop (inkcluding load) on the GX. So no headaches with node red to alter anything as you want to.

Quiet hours makes the menu look a bit daunting but you can set them all the same.

You can even set ‘generator not detected at input’ to get an alarm if it didn’t comnect successfully as it should have.

1 Like

I had a quick look at the flow of @lxonline to check how he’s doing the AC In disconnect.

In layman’s words:

  • Relay1 is configured as Generator Start/Stop simply to enable the Generator functions in the GX device
  • With the Generator Start/Stop functions, what you’re actually doing is just driving Relay1 based on a ton of conditions, such as SoC, Load, Voltage etc
  • In this particular implementation, you can completely ignore “Generator” as being a physical concept - it’s just used to drive Relay1, even if nothing is (or should be) connected to Relay1
  • The Node Red flow reads out the status of Relay1 (On or Off) to set or unset another condition
  • In this case it’s used to switch your pair of Multis between “On” and “Inverter only” over VEBus - so no wiring from your GX device to the Multis is needed
  • So by “starting the Generator” you’re not actually starting your generator, you’re just switching your Multis between “On” and “Inverter only”
  • No configuration change is required on your pair of Multis, so no need to back up the configuration.

Relay1 is simply used to carry the triggering signal and nothing else.
This is a brilliant solution!
Since starting your actual generator is done manually and switching between Shore and Generator is done manually as well, this flow doesn’t interfere anywhere in that process.

If I do may add a word of caution: the flow of @lxonline makes your Multis switch between states (On or Invert Only), as if you were physically toggling the switch on the front panel.
My flow leaves this switch status alone (Multis stay on whatever mode they might be in) but instructs the Multis to ignore the AC In source or not.
There’s a subtle difference but I prefer my way of ignoring AC In :grin:

The “Ignore AC In” option isn’t directly available from the Multiplus node, that’s why my flow uses a Custom Control node.

A “best of both” implementation is this flow.
It’s a copy paste of LX’s flow but instead of virtually toggling the Multis front switch, it’s using the “AC Ignore” control node from my flow, with updated values in the Change nodes.

[
    {
        "id": "e23eed447738a307",
        "type": "victron-input-relay",
        "z": "c3c0ecbb1115ef19",
        "service": "com.victronenergy.system/0",
        "path": "/Relay/0/State",
        "serviceObj": {
            "service": "com.victronenergy.system/0",
            "name": "Venus system"
        },
        "pathObj": {
            "path": "/Relay/0/State",
            "type": "enum",
            "name": "Venus relay 1 state",
            "enum": {
                "0": "Open",
                "1": "Closed"
            },
            "mode": "both",
            "disabled": false
        },
        "name": "",
        "onlyChanges": false,
        "outputs": 1,
        "x": 230,
        "y": 240,
        "wires": [
            [
                "e7a1aa09c2616ed4"
            ]
        ]
    },
    {
        "id": "e7a1aa09c2616ed4",
        "type": "switch",
        "z": "c3c0ecbb1115ef19",
        "name": "Relay State",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "1",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 470,
        "y": 240,
        "wires": [
            [
                "4be939285f499c99"
            ],
            [
                "55651352dce62f06"
            ]
        ],
        "outputLabels": [
            "closed",
            "open"
        ]
    },
    {
        "id": "4be939285f499c99",
        "type": "change",
        "z": "c3c0ecbb1115ef19",
        "name": "AC In Active",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "0",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 650,
        "y": 220,
        "wires": [
            [
                "fbba2204baf0a546"
            ]
        ]
    },
    {
        "id": "55651352dce62f06",
        "type": "change",
        "z": "c3c0ecbb1115ef19",
        "name": "AC In Ignore",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "1",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 650,
        "y": 260,
        "wires": [
            [
                "fbba2204baf0a546"
            ]
        ]
    },
    {
        "id": "8ae8424aa1441cb4",
        "type": "comment",
        "z": "c3c0ecbb1115ef19",
        "name": "Make sure this node has your Multis",
        "info": "",
        "x": 900,
        "y": 200,
        "wires": []
    },
    {
        "id": "fbba2204baf0a546",
        "type": "victron-output-custom",
        "z": "c3c0ecbb1115ef19",
        "service": "com.victronenergy.vebus/288",
        "path": "/Ac/Control/IgnoreAcIn1",
        "serviceObj": {
            "service": "com.victronenergy.vebus/288",
            "name": "MultiPlus 12/1600/70-16 (288)"
        },
        "pathObj": {
            "path": "/Ac/Control/IgnoreAcIn1",
            "name": "/Ac/Control/IgnoreAcIn1",
            "type": "number",
            "value": 0
        },
        "name": "Ignore AC In",
        "onlyChanges": false,
        "roundValues": "no",
        "rateLimit": 0,
        "outputs": 0,
        "conditionalMode": false,
        "condition1Operator": ">",
        "condition2Enabled": false,
        "condition2Service": "",
        "condition2Path": "",
        "condition2Operator": ">",
        "logicOperator": "AND",
        "outputTrue": "true",
        "outputFalse": "false",
        "outputOnChange": false,
        "debounce": 2000,
        "x": 830,
        "y": 240,
        "wires": []
    },
    {
        "id": "3f501f7f74c6b8eb",
        "type": "global-config",
        "env": [],
        "modules": {
            "@victronenergy/node-red-contrib-victron": "1.6.63"
        }
    }
]

A word of caution: do not activate more than one flow that manipulates your Multis, as one might conflict with the other.
You can simply disable the flow(s) that you’re not using, either by right-clicking the flow title and selecting “Disable flow”, or by double clicking the flow title and clicking the enable/disable button at the bottom.

The advantage of using Victron: you have a fsckton of options.
The disadvantage of using Victron: you have a fsckton of options :winking_face_with_tongue:

Oh definitely not. There will be some weird things going on.

Correct. It is using the software switch you see in the GUI.

Guys, yes Brilliant and I didn’t understand how LX was accomplishing his magic with that flow. Bart I appreciate your understanding and subsequent explanation of how LX’s flow is working. I don’t understand the subtle difference of how LX’s flow is activating/turning on AC vs in your flow disabling Ignore AC. My impression turning the Multi’s On is the same as disabling Ignore AC. What I have seen the Ignore AC feature do, it appears to switch the multi’s to Inverter Only IMO.

So I purposely set the low SOC threshold for the Generator to start higher when I enabled LX’s flow and overnight at 40% SOC shore power was reconnected and by morning my batteries stopped charging at 95% SOC. This is exactly what I want but with a lower (20%) SOC threshold for enabling shore power. During the day I have 1KW of free Solar which is able to keep up with the onboard AC demand typically for about 3 days before the batteries deplete and need a top off back to 95% typically overnight. IMO this is great it uses free electricity for 3 days and gently cycles the batteries while keeping them healthy in between with good SOC thresholds without taxing the batteries.

Regarding enabling multiple flows in Node-Red I kinda figure that was a no-no and didn’t want to risk corrupting my config. I noticed after making changes to LX’s flow and Deploying it plus importing Bart’s flow overnight I lost the config/changes in the Node-Red page/editor. I then discovered you have to deploy your flows for changes to be saved. To avoid conflict/problems I disabled Bart’s flow before deploying it to save it. I would like to see what buttons become available with Bart’s flow and I like the ability for Bart’s flow to revert to automation/stop charging when your upper SOC is met. So I still want to try/test it but am taking things slowly to fully understand how LX’s flow works before moving on. Bart thanks for the update to LX’s Flow I may try this too but again I don’t fully see/understand why it’s better than what his does but give me time I’ll figure it out…Thanks guys cool stuff here !

Scott in Sunny FL

The difference is actually in how some models interact with the grid.

The MP2s have a double disconnect.

With the older style/models the single disconnect sometimes allows the inverter to stay synchronised to the grid/source frequency. Some circumstances it can cause an issue/interaction.

Most people don’t notice the difference between the two methods.

Happy learning and experimenting @MotoringMariah.

Another difference is if you use the “Charger Only” mode of the Multi, set from the GX GUI or VRM.
For instance when you’re away from the boat and don’t want to keep everything powered up, but you’d like to keep your batteries from draining, from small DC loads for example.

If you’re switching between “On” and “Inverter only” with LX’s original flow, you’ll lose the “Charger only’” option.
If you’re using the “Ignore AC In” from my flow, the “Charger only” function keeps working.

True. But the software switch position in the gui onky works when the inverter physical switch is in the on position.

So physically switching it to the charger only would override the flow.

But sometimes bekng able to switch it remotely is wanted.