Hi
Thought this might be worth sharing. I’ve a 3 phase setup with a 15kva Quattro only on Ph1, Ph2 and 3. Ph1 has the house, Ph2 is purely an EV Charger and Ph3 are outbuildings.
If I charge a car outside my cheap nightly rate it will suck all the juice stariaght out the battery as I have multi phase compensation on.
I’ve written some node red which if it detects a load over 1kw(ie car plugegd in) on Ph2 it changes the phase compensation to individual and reduces the grid setpoint to a negative amount equivalent to Ph3 thus balancing the Ph1 and 3 to 0 but allowing Ph2 to draw it’s full amount form the grid.
I think it all works accordingly but the EV has gone now so can’t fully test.
Any thoughts happy to take up comments…
Cheers James
The JSON is below:
[
{
“id”: “49c27c5657698afd”,
“type”: “tab”,
“label”: “EV Exclude from Batt”,
“disabled”: false,
“info”: “”,
“env”:
},
{
“id”: “b6138cb8b58455c4”,
“type”: “group”,
“z”: “49c27c5657698afd”,
“name”: “”,
“style”: {
“stroke”: “#ff3f3f”,
“label”: false,
“fill”: “#ffbfbf”,
“fill-opacity”: “0.44”
},
“nodes”: [
“75f1f99b027b51d4”,
“dd6d407dc2f39d4f”,
“672b4985d12b056d”,
“3fe569f909309ff8”,
“4898cb227175b2c9”,
“9bc4637436643ac6”,
“c889d5344eebcfd2”
],
“x”: 54,
“y”: 19,
“w”: 1292,
“h”: 182
},
{
“id”: “1691902a1459804c”,
“type”: “group”,
“z”: “49c27c5657698afd”,
“name”: “”,
“style”: {
“stroke”: “#3f93cf”,
“fill”: “#7fb7df”,
“fill-opacity”: “0.54”,
“label”: true
},
“nodes”: [
“4818febc6cbeb454”,
“43ee36e3357801c6”,
“72b672e55490ac8e”,
“f25d6ef5036290e5”,
“70e08581ad1d193a”,
“a8f414472070fbfb”,
“e9bb0edaad7d87b7”,
“db8736f9386a4aae”,
“5f5d49e774127fcb”,
“5f8c8e3f0dfe1454”,
“05dc1de26de4d278”,
“5914683cae6d53bb”,
“1b356613365c277b”,
“577f31ed51b410d5”,
“719342e4dae68e47”
],
“x”: 54,
“y”: 219,
“w”: 1292,
“h”: 342
},
{
“id”: “75f1f99b027b51d4”,
“type”: “victron-output-settings”,
“z”: “49c27c5657698afd”,
“g”: “b6138cb8b58455c4”,
“service”: “com.victronenergy.settings”,
“path”: “/Settings/CGwacs/Hub4Mode”,
“serviceObj”: {
“service”: “com.victronenergy.settings”,
“name”: “Venus settings”
},
“pathObj”: {
“path”: “/Settings/CGwacs/Hub4Mode”,
“type”: “enum”,
“name”: “ESS Mode”,
“enum”: {
“1”: “ESS with Phase Compensation”,
“2”: “ESS without phase compensation”,
“3”: “Disabled/External Control”
},
“writable”: true
},
“initial”: “”,
“name”: “Phase Comp On (1) Off (2)”,
“onlyChanges”: false,
“x”: 1200,
“y”: 80,
“wires”:
},
{
“id”: “4818febc6cbeb454”,
“type”: “victron-input-ess”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“service”: “com.victronenergy.settings”,
“path”: “/Settings/CGwacs/Hub4Mode”,
“serviceObj”: {
“service”: “com.victronenergy.settings”,
“name”: “Venus settings”
},
“pathObj”: {
“path”: “/Settings/CGwacs/Hub4Mode”,
“type”: “enum”,
“name”: “ESS mode”,
“enum”: {
“1”: “Optimized mode or ‘keep batteries charged’ and phase compensation enabled”,
“2”: “Optimized mode or ‘keep batteries charged’ and phase compensation disabled”,
“3”: “External control”
}
},
“initial”: “”,
“name”: “Current ESS Mode Normal (1) EV on > 1kw (2)”,
“onlyChanges”: false,
“x”: 260,
“y”: 320,
“wires”: [
[
“70e08581ad1d193a”
]
]
},
{
“id”: “dd6d407dc2f39d4f”,
“type”: “range”,
“z”: “49c27c5657698afd”,
“g”: “b6138cb8b58455c4”,
“minin”: “1000”,
“maxin”: “10000”,
“minout”: “2”,
“maxout”: “2.01”,
“action”: “drop”,
“round”: true,
“property”: “payload”,
“name”: “Display 2”,
“x”: 720,
“y”: 100,
“wires”: [
[
“672b4985d12b056d”
]
]
},
{
“id”: “672b4985d12b056d”,
“type”: “rbe”,
“z”: “49c27c5657698afd”,
“g”: “b6138cb8b58455c4”,
“name”: “Limit”,
“func”: “rbe”,
“gap”: “”,
“start”: “”,
“inout”: “out”,
“septopics”: true,
“property”: “payload”,
“topi”: “topic”,
“x”: 970,
“y”: 80,
“wires”: [
[
“75f1f99b027b51d4”
]
]
},
{
“id”: “3fe569f909309ff8”,
“type”: “switch”,
“z”: “49c27c5657698afd”,
“g”: “b6138cb8b58455c4”,
“name”: “Normal (1) EV on > 1kw (2)”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: [
{
“t”: “btwn”,
“v”: “-100”,
“vt”: “num”,
“v2”: “1000”,
“v2t”: “num”
},
{
“t”: “gte”,
“v”: “1000”,
“vt”: “num”
}
],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 460,
“y”: 80,
“wires”: [
[
“4898cb227175b2c9”
],
[
“dd6d407dc2f39d4f”
]
]
},
{
“id”: “4898cb227175b2c9”,
“type”: “range”,
“z”: “49c27c5657698afd”,
“g”: “b6138cb8b58455c4”,
“minin”: “-100”,
“maxin”: “1000”,
“minout”: “1”,
“maxout”: “1.01”,
“action”: “drop”,
“round”: true,
“property”: “payload”,
“name”: “Display 1”,
“x”: 720,
“y”: 60,
“wires”: [
[
“672b4985d12b056d”
]
]
},
{
“id”: “9bc4637436643ac6”,
“type”: “comment”,
“z”: “49c27c5657698afd”,
“g”: “b6138cb8b58455c4”,
“name”: “Reviews Phase 2 power and when over 1kw turns ESS mode to "phase compensation off". Battery will no longer compensate for Phase 2. Once below 1kw, reverts to normal compensation”,
“info”: “”,
“x”: 690,
“y”: 160,
“wires”:
},
{
“id”: “43ee36e3357801c6”,
“type”: “victron-output-ess”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“service”: “com.victronenergy.settings”,
“path”: “/Settings/CGwacs/AcPowerSetPoint”,
“serviceObj”: {
“service”: “com.victronenergy.settings”,
“name”: “Venus settings”
},
“pathObj”: {
“path”: “/Settings/CGwacs/AcPowerSetPoint”,
“type”: “integer”,
“name”: “Grid set-point (W)”,
“writable”: true
},
“name”: “Grid Set Point (W)”,
“onlyChanges”: false,
“x”: 1230,
“y”: 440,
“wires”:
},
{
“id”: “9e6d739258c667f3”,
“type”: “victron-input-ess”,
“z”: “49c27c5657698afd”,
“service”: “com.victronenergy.settings”,
“path”: “/Settings/CGwacs/AcPowerSetPoint”,
“serviceObj”: {
“service”: “com.victronenergy.settings”,
“name”: “Venus settings”
},
“pathObj”: {
“path”: “/Settings/CGwacs/AcPowerSetPoint”,
“type”: “integer”,
“name”: “Grid set-point (W)”
},
“name”: “Grid Set Point (W)”,
“onlyChanges”: false,
“x”: 170,
“y”: 620,
“wires”: [
]
},
{
“id”: “c889d5344eebcfd2”,
“type”: “victron-input-gridmeter”,
“z”: “49c27c5657698afd”,
“g”: “b6138cb8b58455c4”,
“service”: “com.victronenergy.grid/32”,
“path”: “/Ac/L2/Power”,
“serviceObj”: {
“service”: “com.victronenergy.grid/32”,
“name”: “Grid Meter”
},
“pathObj”: {
“path”: “/Ac/L2/Power”,
“type”: “float”,
“name”: “L2 Power (W)”
},
“name”: “Phase 2 Power (W)”,
“onlyChanges”: true,
“roundValues”: “no”,
“x”: 170,
“y”: 80,
“wires”: [
[
“3fe569f909309ff8”
]
]
},
{
“id”: “72b672e55490ac8e”,
“type”: “victron-input-gridmeter”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“service”: “com.victronenergy.grid/32”,
“path”: “/Ac/L3/Power”,
“serviceObj”: {
“service”: “com.victronenergy.grid/32”,
“name”: “Grid Meter”
},
“pathObj”: {
“path”: “/Ac/L3/Power”,
“type”: “float”,
“name”: “L3 Power (W)”
},
“name”: “Phase 3 Power (W)”,
“onlyChanges”: true,
“roundValues”: “no”,
“x”: 170,
“y”: 440,
“wires”: [
[
“f25d6ef5036290e5”
]
]
},
{
“id”: “f25d6ef5036290e5”,
“type”: “calculator”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “Invert”,
“inputMsgField”: “payload”,
“outputMsgField”: “payload”,
“operation”: “mult”,
“constant”: “-1”,
“round”: false,
“truncate”: false,
“decimals”: “0”,
“decimals2”: 0,
“x”: 330,
“y”: 440,
“wires”: [
[
“e9bb0edaad7d87b7”
]
]
},
{
“id”: “70e08581ad1d193a”,
“type”: “switch”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “Normal (1) Grid Set Point (2)”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: [
{
“t”: “eq”,
“v”: “1”,
“vt”: “num”
},
{
“t”: “eq”,
“v”: “2”,
“vt”: “num”
}
],
“checkall”: “false”,
“repair”: false,
“outputs”: 2,
“x”: 620,
“y”: 320,
“wires”: [
[
“db8736f9386a4aae”,
“a8f414472070fbfb”
],
[
“5f5d49e774127fcb”
]
]
},
{
“id”: “83c691dbedd171ba”,
“type”: “inject”,
“z”: “49c27c5657698afd”,
“name”: “”,
“props”: [
{
“p”: “payload”
},
{
“p”: “topic”,
“vt”: “str”
}
],
“repeat”: “”,
“crontab”: “”,
“once”: false,
“onceDelay”: 0.1,
“topic”: “”,
“payload”: “2”,
“payloadType”: “num”,
“x”: 210,
“y”: 1360,
“wires”: [
]
},
{
“id”: “a8f414472070fbfb”,
“type”: “change”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “Normal Setpoint (-50w)”,
“rules”: [
{
“t”: “change”,
“p”: “payload”,
“pt”: “msg”,
“from”: “1”,
“fromt”: “num”,
“to”: “-50”,
“tot”: “num”
}
],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 930,
“y”: 260,
“wires”: [
[
“5914683cae6d53bb”
]
]
},
{
“id”: “e9bb0edaad7d87b7”,
“type”: “gate”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “Allow Grid Setpoint”,
“controlTopic”: “control”,
“defaultState”: “closed”,
“openCmd”: “open”,
“closeCmd”: “close”,
“toggleCmd”: “toggle”,
“defaultCmd”: “default”,
“statusCmd”: “status”,
“persist”: false,
“storeName”: “memory”,
“x”: 590,
“y”: 440,
“wires”: [
[
“5f8c8e3f0dfe1454”
]
]
},
{
“id”: “db8736f9386a4aae”,
“type”: “change”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “Set Close on (1)”,
“rules”: [
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “close”,
“tot”: “str”
},
{
“t”: “set”,
“p”: “topic”,
“pt”: “msg”,
“to”: “control”,
“tot”: “str”
}
],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 900,
“y”: 320,
“wires”: [
[
“1b356613365c277b”
]
]
},
{
“id”: “5f5d49e774127fcb”,
“type”: “change”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “Set Open on (2)”,
“rules”: [
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “open”,
“tot”: “str”
},
{
“t”: “set”,
“p”: “topic”,
“pt”: “msg”,
“to”: “control”,
“tot”: “str”
}
],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 900,
“y”: 360,
“wires”: [
[
“1b356613365c277b”
]
]
},
{
“id”: “5f8c8e3f0dfe1454”,
“type”: “rbe”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “Block repeated values”,
“func”: “rbe”,
“gap”: “”,
“start”: “”,
“inout”: “out”,
“septopics”: false,
“property”: “payload”,
“topi”: “topic”,
“x”: 920,
“y”: 440,
“wires”: [
[
“43ee36e3357801c6”
]
]
},
{
“id”: “05dc1de26de4d278”,
“type”: “link in”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “link in 32”,
“links”: [
“5914683cae6d53bb”
],
“x”: 725,
“y”: 400,
“wires”: [
[
“5f8c8e3f0dfe1454”
]
]
},
{
“id”: “5914683cae6d53bb”,
“type”: “link out”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “link out 20”,
“mode”: “link”,
“links”: [
“05dc1de26de4d278”
],
“x”: 1095,
“y”: 260,
“wires”:
},
{
“id”: “1b356613365c277b”,
“type”: “link out”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “link out 21”,
“mode”: “link”,
“links”: [
“577f31ed51b410d5”
],
“x”: 1095,
“y”: 340,
“wires”:
},
{
“id”: “577f31ed51b410d5”,
“type”: “link in”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “link in 33”,
“links”: [
“bd0e3da563cf6561”,
“1b356613365c277b”,
“831e2733e5be0af6”
],
“x”: 425,
“y”: 400,
“wires”: [
[
“e9bb0edaad7d87b7”
]
]
},
{
“id”: “719342e4dae68e47”,
“type”: “comment”,
“z”: “49c27c5657698afd”,
“g”: “1691902a1459804c”,
“name”: “If ESS Mode 2 for EV reduces Grid Setpoint to compensate for Phase 3 Power”,
“info”: “”,
“x”: 350,
“y”: 520,
“wires”:
},
{
“id”: “7973b25623c1a7df”,
“type”: “victron-input-ess”,
“z”: “49c27c5657698afd”,
“service”: “com.victronenergy.settings”,
“path”: “/Settings/CGwacs/BatteryLife/State”,
“serviceObj”: {
“service”: “com.victronenergy.settings”,
“name”: “Venus settings”
},
“pathObj”: {
“path”: “/Settings/CGwacs/BatteryLife/State”,
“type”: “enum”,
“name”: “ESS state”,
“enum”: {
“1”: “BatteryLife enabled (GUI controlled)”,
“2”: “Optimized Mode /w BatteryLife: self consumption”,
“3”: “Optimized Mode /w BatteryLife: self consumption, SoC exceeds 85%”,
“4”: “Optimized Mode /w BatteryLife: self consumption, SoC at 100%”,
“5”: “Optimized Mode /w BatteryLife: SoC below dynamic SoC limit”,
“6”: “Optimized Mode /w BatteryLife: SoC has been below SoC limit for more than 24 hours. Charging the battery (5A)”,
“7”: “Optimized Mode /w BatteryLife: Inverter/Charger is in sustain mode”,
“8”: “Optimized Mode /w BatteryLife: recharging, SoC dropped by 5% or more below the minimum SoC”,
“9”: “‘Keep batteries charged’ mode is enabled”,
“10”: “Optimized mode w/o BatteryLife: self consumption, SoC at or above minimum SoC”,
“11”: “Optimized mode w/o BatteryLife: self consumption, SoC is below minimum SoC”,
“12”: “Optimized mode w/o BatteryLife: recharging, SoC dropped by 5% or more below minimum SoC”
}
},
“initial”: “”,
“name”: “”,
“onlyChanges”: false,
“x”: 410,
“y”: 620,
“wires”: [
]
}
]