hi pretty new to node red and have come across a little problem/quirk
im trying to be able to control a relay from two sources 1.digital input 2.virtual switch
it works perfectly from the digital input but when i use the virtual switch on the console or a relay switch it immediately switches back off ive figured this is because its looking at the state of the digital input and switching back off is there any way to prevent this so it can be switched from the two sources independently
heres my flow (excuse the mess its a work in progress)
[ {“id”: “c40847852d74a861”,
“type”: “tab”,
“label”: “Flow 1”,
“disabled”: false,
“info”: “”,
“env”: [ ]
},
{
“id”: “5fcfd8712368581d”,
“type”: “victron-input-digitalinput”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.digitalinput/1”,
“path”: “/State”,
“serviceObj”: {
“service”: “com.victronenergy.digitalinput/1”,
“name”: “di20”,
“communityTag”: “digitalinput”
},
“pathObj”: {
“path”: “/State”,
“type”: “enum”,
“name”: “Digital input state”,
“enum”: {
“0”: “low”,
“1”: “high”,
“2”: “off”,
“3”: “on”,
“4”: “no”,
“5”: “yes”,
“6”: “open”,
“7”: “closed”,
“8”: “ok”,
“9”: “alarm”,
“10”: “running”,
“11”: “stopped”
}
},
“name”: “di20”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“outputTrue”: “true”,
“outputFalse”: “false”,
“debounce”: “2000”,
“x”: 110,
“y”: 120,
“wires”: \[
\[
“bcf2c740f3fd5d25”
\]
\]
},
{
“id”: “16b9b628455f5c83”,
“type”: “victron-input-digitalinput”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.digitalinput/1”,
“path”: “/State”,
“serviceObj”: {
“service”: “com.victronenergy.digitalinput/1”,
“name”: “di20”,
“communityTag”: “digitalinput”
},
“pathObj”: {
“path”: “/State”,
“type”: “enum”,
“name”: “Digital input state”,
“enum”: {
“0”: “low”,
“1”: “high”,
“2”: “off”,
“3”: “on”,
“4”: “no”,
“5”: “yes”,
“6”: “open”,
“7”: “closed”,
“8”: “ok”,
“9”: “alarm”,
“10”: “running”,
“11”: “stopped”
}
},
“name”: “di90”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“outputTrue”: “true”,
“outputFalse”: “false”,
“debounce”: “2000”,
“x”: 110,
“y”: 40,
“wires”: \[
\[
“b087834a87971ce5”
\]
\]
},
{
“id”: “3b38fd0b806bdf45”,
“type”: “switch”,
“z”: “c40847852d74a861”,
“name”: “”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: \[
{
“t”: “gte”,
“v”: “90”,
“vt”: “num”
},
{
“t”: “lt”,
“v”: “80”,
“vt”: “num”
}
\],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 390,
“y”: 220,
“wires”: \[
\[
“476dbc249dc444c9”
\],
\[
“2fc0320e556a7422”
\]
\]
},
{
“id”: “2dcecaa299050c4d”,
“type”: “victron-output-relay”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.system/0”,
“path”: “/Relay/0/State”,
“serviceObj”: {
“service”: “com.victronenergy.system/0”,
“name”: “Venus device”
},
“pathObj”: {
“path”: “/Relay/0/State”,
“type”: “enum”,
“name”: “Venus relay 1 state”,
“enum”: {
“0”: “Open”,
“1”: “Closed”
},
“mode”: “both”,
“disabled”: false
},
“name”: “”,
“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”: 880,
“y”: 220,
“wires”: [ ]
},
{
“id”: “2fc0320e556a7422”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “0”,
“tot”: “num”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 620,
“y”: 240,
“wires”: \[
\[
“2dcecaa299050c4d”
\]
\]
},
{
“id”: “476dbc249dc444c9”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “1”,
“tot”: “num”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 620,
“y”: 200,
“wires”: \[
\[
“2dcecaa299050c4d”
\]
\]
},
{
“id”: “6309b332b76ae1a7”,
“type”: “function”,
“z”: “c40847852d74a861”,
“name”: “function 1”,
“func”: “const MAX_LITRES = 54; // <— Change this to your total tank capacity\\n// ---------------------\\n\\nlet high = flow.get(“high_state”) || 2; // 90% sensor\\nlet mid = flow.get(“mid_state”) || 2; // 50% sensor (From different Modbus Reg)\\nlet low = flow.get(“low_state”) || 2; // 20% sensor\\n\\nlet tankLevel = 0;\\n\\n// Logic for Percentage (Checking highest sensor first)\\nif (high === 3) {\\n tankLevel = 90;\\n} else if (mid === 3) {\\n tankLevel = 50;\\n} else if (low === 3) {\\n tankLevel = 20;\\n} else {\\n tankLevel = 0;\\n}\\n\\n\\n// Calculate Litres\\nlet litres = (tankLevel / 100) \* MAX_LITRES;\\n\\n// Only send if level changed to avoid spamming\\nif (tankLevel !== flow.get(“lastLevel”)) {\\n flow.set(“lastLevel”, tankLevel);\\n \\n // Create the output message\\n msg.payload = tankLevel; // Main payload is % for Modbus\\n msg.litres = litres; // Additional property for Litres\\n \\n // Optional: Format a nice string for a Dashboard label\\n msg.statusText = `${tankLevel}% (${litres}L)`; \\n \\n return msg;\\n}\\n\\nreturn null;\\n”,
“outputs”: 1,
“timeout”: 0,
“noerr”: 0,
“initialize”: “”,
“finalize”: “”,
“libs”: [ ],
“x”: 640,
“y”: 80,
“wires”: \[
\[
“e35dd4cb5808d27d”,
“d31d9e85828309e1”
\]
\]
},
{
“id”: “1fa5c4cb8067df55”,
“type”: “victron-virtual”,
“z”: “c40847852d74a861”,
“name”: “Grey”,
“outputs”: 1,
“device”: “tank”,
“default_values”: true,
“acload_nrofphases”: 1,
“enable_s2support”: false,
“battery_capacity”: 25,
“include_battery_temperature”: false,
“battery_voltage_preset”: “24”,
“battery_voltage_custom”: 24,
“generator_type”: “ac”,
“generator_nrofphases”: 1,
“include_engine_hours”: false,
“include_starter_voltage”: false,
“include_history_energy”: false,
“grid_nrofphases”: 1,
“include_motor_temp”: false,
“include_controller_temp”: false,
“include_coolant_temp”: false,
“include_motor_rpm”: true,
“include_motor_direction”: true,
“position”: 0,
“pvinverter_nrofphases”: 1,
“switch_1_type”: 1,
“switch_1_min”: 0,
“switch_1_max”: “”,
“switch_1_initial”: 0,
“switch_1_label”: “”,
“switch_1_unit”: “”,
“switch_1_step”: 1,
“switch_1_customname”: “”,
“switch_1_group”: “”,
“switch_1_include_measurement”: false,
“switch_1_rgb_color_wheel”: false,
“switch_1_cct_wheel”: false,
“switch_1_rgb_white_dimmer”: false,
“fluid_type”: “2”,
“include_tank_battery”: false,
“include_tank_temperature”: false,
“tank_battery_voltage”: 3.3,
“tank_capacity”: “0.054”,
“temperature_type”: 2,
“include_humidity”: false,
“include_pressure”: false,
“include_temp_battery”: false,
“temp_battery_voltage”: 3.3,
“x”: 790,
“y”: 120,
“wires”: \[
[ ]
\]
},
{
“id”: “e35dd4cb5808d27d”,
“type”: “victron-output-custom”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.tank/100”,
“path”: “/Level”,
“serviceObj”: {
“service”: “com.victronenergy.tank/100”,
“name”: “Grey (100)”
},
“pathObj”: {
“path”: “/Level”,
“name”: “/Level”,
“type”: “number”,
“value”: 90
},
“name”: “”,
“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”: 40,
“wires”: [ ]
},
{
“id”: “b087834a87971ce5”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “topic”,
“pt”: “msg”,
“to”: “sensor_high”,
“tot”: “msg”,
“dc”: true
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 300,
“y”: 40,
“wires”: \[
\[
“52c10766e083df7b”
\]
\]
},
{
“id”: “bcf2c740f3fd5d25”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “topic”,
“pt”: “msg”,
“to”: “sensor_low”,
“tot”: “str”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 300,
“y”: 120,
“wires”: \[
\[
“cb5630b0ad48a651”
\]
\]
},
{
“id”: “52c10766e083df7b”,
“type”: “function”,
“z”: “c40847852d74a861”,
“name”: “function 2”,
“func”: “flow.set(“high_state”, msg.payload);\\nreturn msg; // Optional: wire this to the Logic node\\n”,
“outputs”: 1,
“timeout”: 0,
“noerr”: 0,
“initialize”: “”,
“finalize”: “”,
“libs”: [ ],
“x”: 480,
“y”: 40,
“wires”: \[
\[
“6309b332b76ae1a7”
\]
\]
},
{
“id”: “cb5630b0ad48a651”,
“type”: “function”,
“z”: “c40847852d74a861”,
“name”: “function 3”,
“func”: “flow.set(“low_state”, msg.payload);\\nreturn msg; // Optional: wire this to the Logic node\\n”,
“outputs”: 1,
“timeout”: 0,
“noerr”: 0,
“initialize”: “”,
“finalize”: “”,
“libs”: [ ],
“x”: 480,
“y”: 120,
“wires”: \[
\[
“6309b332b76ae1a7”
\]
\]
},
{
“id”: “74795c6b8e379674”,
“type”: “victron-input-tank”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.tank/23”,
“path”: “/Level”,
“serviceObj”: {
“service”: “com.victronenergy.tank/23”,
“name”: “BLACK”,
“communityTag”: “tank”
},
“pathObj”: {
“path”: “/Level”,
“type”: “float”,
“name”: “Tank level (%)”
},
“name”: “”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“outputTrue”: “true”,
“outputFalse”: “false”,
“debounce”: “2000”,
“x”: 160,
“y”: 220,
“wires”: \[
\[
“3b38fd0b806bdf45”
\]
\]
},
{
“id”: “fe1c25a5aafef6d6”,
“type”: “function”,
“z”: “c40847852d74a861”,
“name”: “function 4”,
“func”: “flow.set(“mid_state”, msg.payload);\\nreturn msg; // Optional: wire this to the Logic node\\n”,
“outputs”: 1,
“timeout”: 0,
“noerr”: 0,
“initialize”: “”,
“finalize”: “”,
“libs”: [ ],
“x”: 480,
“y”: 80,
“wires”: \[
\[
“6309b332b76ae1a7”
\]
\]
},
{
“id”: “fb1ec6bd96016891”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “topic”,
“pt”: “msg”,
“to”: “sensor_mid”,
“tot”: “str”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 300,
“y”: 80,
“wires”: \[
\[
“fe1c25a5aafef6d6”
\]
\]
},
{
“id”: “efa8a1fbee8f7d1f”,
“type”: “victron-input-digitalinput”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.digitalinput/1”,
“path”: “/State”,
“serviceObj”: {
“service”: “com.victronenergy.digitalinput/1”,
“name”: “di20”,
“communityTag”: “digitalinput”
},
“pathObj”: {
“path”: “/State”,
“type”: “enum”,
“name”: “Digital input state”,
“enum”: {
“0”: “low”,
“1”: “high”,
“2”: “off”,
“3”: “on”,
“4”: “no”,
“5”: “yes”,
“6”: “open”,
“7”: “closed”,
“8”: “ok”,
“9”: “alarm”,
“10”: “running”,
“11”: “stopped”
}
},
“name”: “di50”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“outputTrue”: “true”,
“outputFalse”: “false”,
“debounce”: “2000”,
“x”: 110,
“y”: 80,
“wires”: \[
\[
“fb1ec6bd96016891”
\]
\]
},
{
“id”: “d0f33c71599be95b”,
“type”: “victron-input-temperature”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.temperature/23”,
“path”: “/Temperature”,
“serviceObj”: {
“service”: “com.victronenergy.temperature/23”,
“name”: "Cooker ",
“communityTag”: “temperature”
},
“pathObj”: {
“path”: “/Temperature”,
“type”: “float”,
“name”: “Temperature (°C)”
},
“name”: “”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“outputTrue”: “true”,
“outputFalse”: “false”,
“debounce”: “2000”,
“x”: 170,
“y”: 320,
“wires”: \[
\[
“eed8978b4d237b37”,
“42f670f689b472c8”
\]
\]
},
{
“id”: “eed8978b4d237b37”,
“type”: “switch”,
“z”: “c40847852d74a861”,
“name”: "Cooker fan ",
“property”: “payload”,
“propertyType”: “msg”,
“rules”: \[
{
“t”: “gte”,
“v”: “40”,
“vt”: “str”
},
{
“t”: “lte”,
“v”: “30”,
“vt”: “str”
}
\],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 410,
“y”: 300,
“wires”: \[
\[
“92d79ee2136074a6”
\],
\[
“92d79ee2136074a6”
\]
\]
},
{
“id”: “42f670f689b472c8”,
“type”: “switch”,
“z”: “c40847852d74a861”,
“name”: "Cooker gas shut off ",
“property”: “payload”,
“propertyType”: “msg”,
“rules”: \[
{
“t”: “gte”,
“v”: “120”,
“vt”: “str”
},
{
“t”: “lte”,
“v”: “110”,
“vt”: “str”
}
\],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 430,
“y”: 360,
“wires”: \[
\[
“86e8f8bf966f2c20”,
“b69fe25b2b7c2419”
\],
\[
“86e8f8bf966f2c20”
\]
\]
},
{
“id”: “92d79ee2136074a6”,
“type”: “victron-output-relay”,
“z”: “c40847852d74a861”,
“service”: “”,
“path”: “”,
“name”: “”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“condition1Operator”: “>”,
“condition2Enabled”: false,
“condition2Service”: “”,
“condition2Path”: “”,
“condition2Operator”: “>”,
“logicOperator”: “AND”,
“outputTrue”: “true”,
“outputFalse”: “false”,
“outputOnChange”: false,
“debounce”: 2000,
“x”: 680,
“y”: 300,
“wires”: \[
[ ]
\]
},
{
“id”: “86e8f8bf966f2c20”,
“type”: “victron-output-relay”,
“z”: “c40847852d74a861”,
“service”: “”,
“path”: “”,
“name”: “”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“condition1Operator”: “>”,
“condition2Enabled”: false,
“condition2Service”: “”,
“condition2Path”: “”,
“condition2Operator”: “>”,
“logicOperator”: “AND”,
“outputTrue”: “true”,
“outputFalse”: “false”,
“outputOnChange”: false,
“debounce”: 2000,
“x”: 680,
“y”: 360,
“wires”: \[
[ ]
\]
},
{
“id”: “f713592f6d79b0a6”,
“type”: “switch”,
“z”: “c40847852d74a861”,
“name”: “”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: \[
{
“t”: “gte”,
“v”: “90”,
“vt”: “num”
},
{
“t”: “lt”,
“v”: “80”,
“vt”: “num”
}
\],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 390,
“y”: 220,
“wires”: \[
[ ],
[ ]
\]
},
{
“id”: “915e95cdac92eb1c”,
“type”: “switch”,
“z”: “c40847852d74a861”,
“name”: “”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: \[
{
“t”: “lte”,
“v”: “89”,
“vt”: “str”
},
{
“t”: “gte”,
“v”: “92”,
“vt”: “str”
}
\],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 390,
“y”: 560,
“wires”: \[
\[
“cf3fb907c6f1ec3e”
\],
\[
“0ffd89653351baf3”
\]
\]
},
{
“id”: “cf3fb907c6f1ec3e”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “0”,
“tot”: “num”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 580,
“y”: 540,
“wires”: \[
\[
“d0667a599443181c”
\]
\]
},
{
“id”: “0ffd89653351baf3”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “1”,
“tot”: “num”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 580,
“y”: 580,
“wires”: \[
\[
“d0667a599443181c”
\]
\]
},
{
“id”: “d0667a599443181c”,
“type”: “victron-output-relay”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.system/0”,
“path”: “/Relay/0/State”,
“serviceObj”: {
“service”: “com.victronenergy.system/0”,
“name”: “Venus device”
},
“pathObj”: {
“path”: “/Relay/0/State”,
“type”: “enum”,
“name”: “Venus relay 1 state”,
“enum”: {
“0”: “Open”,
“1”: “Closed”
},
“mode”: “both”,
“disabled”: false
},
“name”: “”,
“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”: 840,
“y”: 560,
“wires”: [ ]
},
{
“id”: “10d59debec43d2a6”,
“type”: “victron-input-digitalinput”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.digitalinput/3”,
“path”: “/State”,
“serviceObj”: {
“service”: “com.victronenergy.digitalinput/3”,
“name”: “LPG Input”,
“communityTag”: “digitalinput”
},
“pathObj”: {
“path”: “/State”,
“type”: “enum”,
“name”: “Digital input state”,
“enum”: {
“0”: “low”,
“1”: “high”,
“2”: “off”,
“3”: “on”,
“4”: “no”,
“5”: “yes”,
“6”: “open”,
“7”: “closed”,
“8”: “ok”,
“9”: “alarm”,
“10”: “running”,
“11”: “stopped”
}
},
“name”: “”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“outputTrue”: “true”,
“outputFalse”: “false”,
“debounce”: “2000”,
“x”: 180,
“y”: 740,
“wires”: \[
\[
“77201feb1810bcf4”
\]
\]
},
{
“id”: “e709836b88a6f6c9”,
“type”: “victron-output-relay”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.system/0”,
“path”: “/Relay/0/State”,
“serviceObj”: {
“service”: “com.victronenergy.system/0”,
“name”: “Venus device”
},
“pathObj”: {
“path”: “/Relay/0/State”,
“type”: “enum”,
“name”: “Venus relay 1 state”,
“enum”: {
“0”: “Open”,
“1”: “Closed”
},
“mode”: “both”,
“disabled”: false
},
“name”: “”,
“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”: 840,
“y”: 720,
“wires”: [ ]
},
{
“id”: “6adf4c1cc6789c54”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “0”,
“tot”: “num”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 580,
“y”: 700,
“wires”: \[
\[
“e709836b88a6f6c9”
\]
\]
},
{
“id”: “927bb6140c59b75b”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “1”,
“tot”: “num”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 580,
“y”: 740,
“wires”: \[
\[
“e709836b88a6f6c9”
\]
\]
},
{
“id”: “77201feb1810bcf4”,
“type”: “switch”,
“z”: “c40847852d74a861”,
“name”: “”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: \[
{
“t”: “eq”,
“v”: “2”,
“vt”: “num”
},
{
“t”: “eq”,
“v”: “3”,
“vt”: “num”
}
\],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 390,
“y”: 740,
“wires”: \[
\[
“6adf4c1cc6789c54”
\],
\[
“927bb6140c59b75b”
\]
\]
},
{
“id”: “af3171e468de956f”,
“type”: “switch”,
“z”: “c40847852d74a861”,
“name”: “”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: \[
{
“t”: “eq”,
“v”: “2”,
“vt”: “num”
},
{
“t”: “eq”,
“v”: “3”,
“vt”: “num”
}
\],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 390,
“y”: 900,
“wires”: \[
\[
“321c6b36d0b15d4c”
\],
\[
“d2472e3adac04f6f”
\]
\]
},
{
“id”: “c0e13efd25386d26”,
“type”: “switch”,
“z”: “c40847852d74a861”,
“name”: “”,
“property”: “payload”,
“propertyType”: “msg”,
“rules”: \[
{
“t”: “eq”,
“v”: “2”,
“vt”: “num”
},
{
“t”: “eq”,
“v”: “3”,
“vt”: “num”
}
\],
“checkall”: “true”,
“repair”: false,
“outputs”: 2,
“x”: 390,
“y”: 1040,
“wires”: \[
\[
“37df86fda9091897”
\],
\[
“a81740063ee96a1c”
\]
\]
},
{
“id”: “321c6b36d0b15d4c”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “0”,
“tot”: “num”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 580,
“y”: 860,
“wires”: \[
\[
“8c0951b6ab20e8ba”
\]
\]
},
{
“id”: “d2472e3adac04f6f”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “1”,
“tot”: “num”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 580,
“y”: 900,
“wires”: \[
\[
“8c0951b6ab20e8ba”
\]
\]
},
{
“id”: “37df86fda9091897”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “”,
“tot”: “str”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 580,
“y”: 1000,
“wires”: \[
\[
“e1c3c6b3ee80679e”
\]
\]
},
{
“id”: “a81740063ee96a1c”,
“type”: “change”,
“z”: “c40847852d74a861”,
“name”: “”,
“rules”: \[
{
“t”: “set”,
“p”: “payload”,
“pt”: “msg”,
“to”: “”,
“tot”: “str”
}
\],
“action”: “”,
“property”: “”,
“from”: “”,
“to”: “”,
“reg”: false,
“x”: 580,
“y”: 1040,
“wires”: \[
\[
“e1c3c6b3ee80679e”
\]
\]
},
{
“id”: “bb46bea3ba854682”,
“type”: “victron-input-digitalinput”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.digitalinput/4”,
“path”: “/State”,
“serviceObj”: {
“service”: “com.victronenergy.digitalinput/4”,
“name”: “Inverter input”,
“communityTag”: “digitalinput”
},
“pathObj”: {
“path”: “/State”,
“type”: “enum”,
“name”: “Digital input state”,
“enum”: {
“0”: “low”,
“1”: “high”,
“2”: “off”,
“3”: “on”,
“4”: “no”,
“5”: “yes”,
“6”: “open”,
“7”: “closed”,
“8”: “ok”,
“9”: “alarm”,
“10”: “running”,
“11”: “stopped”
}
},
“name”: “”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“outputTrue”: “true”,
“outputFalse”: “false”,
“debounce”: “2000”,
“x”: 190,
“y”: 900,
“wires”: \[
\[
“af3171e468de956f”
\]
\]
},
{
“id”: “04167d4c241d031e”,
“type”: “victron-input-digitalinput”,
“z”: “c40847852d74a861”,
“service”: “”,
“path”: “”,
“name”: “”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“condition1Operator”: “>”,
“condition2Enabled”: false,
“condition2Service”: “”,
“condition2Path”: “”,
“condition2Operator”: “>”,
“logicOperator”: “AND”,
“outputTrue”: “true”,
“outputFalse”: “false”,
“outputOnChange”: false,
“debounce”: 2000,
“x”: 130,
“y”: 1040,
“wires”: \[
\[
“c0e13efd25386d26”
\]
\]
},
{
“id”: “8c0951b6ab20e8ba”,
“type”: “victron-output-relay”,
“z”: “c40847852d74a861”,
“service”: “com.victronenergy.system/0”,
“path”: “/Relay/1/State”,
“serviceObj”: {
“service”: “com.victronenergy.system/0”,
“name”: “Venus device”
},
“pathObj”: {
“path”: “/Relay/1/State”,
“type”: “enum”,
“name”: “Venus relay 2 state”,
“enum”: {
“0”: “Open”,
“1”: “Closed”
},
“mode”: “both”
},
“name”: “”,
“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”: 840,
“y”: 880,
“wires”: [ ]
},
{
“id”: “e1c3c6b3ee80679e”,
“type”: “victron-output-relay”,
“z”: “c40847852d74a861”,
“service”: “”,
“path”: “”,
“name”: “”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“condition1Operator”: “>”,
“condition2Enabled”: false,
“condition2Service”: “”,
“condition2Path”: “”,
“condition2Operator”: “>”,
“logicOperator”: “AND”,
“outputTrue”: “true”,
“outputFalse”: “false”,
“outputOnChange”: false,
“debounce”: 2000,
“x”: 780,
“y”: 1020,
“wires”: \[
[ ]
\]
},
{
“id”: “b69fe25b2b7c2419”,
“type”: “victron-inject”,
“z”: “c40847852d74a861”,
“name”: “”,
“notificationType”: “1”,
“notificationTitle”: “Cooker Temperature High”,
“x”: 690,
“y”: 420,
“wires”: \[
[ ]
\]
},
{
“id”: “d31d9e85828309e1”,
“type”: “victron-modbus”,
“z”: “c40847852d74a861”,
“name”: “”,
“unitid”: “com.victronenergy.tank | Unit ID :100”,
“attribute”: {
“label”: “com.victronenergy.tank:/Level”,
“value”: “3004:uint16:1:10:%:R”
},
“attributesPath”: “”,
“write”: true,
“server”: “127.0.0.1”,
“x”: 940,
“y”: 80,
“wires”: \[
[ ]
\]
},
{
“id”: “aada117b71a68832”,
“type”: “victron-virtual-switch”,
“z”: “c40847852d74a861”,
“name”: “Cooker fan”,
“outputs”: 2,
“switch_1_type”: 1,
“switch_1_initial”: 0,
“switch_1_label”: “”,
“switch_1_customname”: “Cooker Fan”,
“switch_1_group”: “R2VER”,
“switch_1_include_measurement”: false,
“switch_1_rgb_color_wheel”: false,
“switch_1_cct_wheel”: false,
“switch_1_rgb_white_dimmer”: false,
“x”: 370,
“y”: 1120,
“wires”: \[
[ ],
[ ]
\]
},
{
“id”: “53e98b8a5d4cbc89”,
“type”: “victron-virtual-switch”,
“z”: “c40847852d74a861”,
“name”: “LPG Valve”,
“outputs”: 2,
“switch_1_type”: “1”,
“switch_1_initial”: 0,
“switch_1_label”: “”,
“switch_1_customname”: “LPG Valve”,
“switch_1_group”: “R2VER”,
“switch_1_include_measurement”: false,
“switch_1_rgb_color_wheel”: false,
“switch_1_cct_wheel”: false,
“switch_1_rgb_white_dimmer”: false,
“x”: 370,
“y”: 680,
“wires”: \[
[ ],
[ ]
\]
},
{
“id”: “3e031a248db7bbf4”,
“type”: “victron-virtual-switch”,
“z”: “c40847852d74a861”,
“name”: “Inverter”,
“outputs”: 2,
“switch_1_type”: 1,
“switch_1_initial”: 0,
“switch_1_label”: “”,
“switch_1_customname”: “Inverter”,
“switch_1_group”: “R2VER”,
“switch_1_include_measurement”: false,
“switch_1_rgb_color_wheel”: false,
“switch_1_cct_wheel”: false,
“switch_1_rgb_white_dimmer”: false,
“x”: 380,
“y”: 840,
“wires”: \[
[ ],
[ ]
\]
},
{
“id”: “fa0ba894312b6134”,
“type”: “victron-virtual-switch”,
“z”: “c40847852d74a861”,
“name”: “Water Valve”,
“outputs”: 2,
“switch_1_type”: 1,
“switch_1_initial”: 0,
“switch_1_label”: “”,
“switch_1_customname”: “Water Valve”,
“switch_1_group”: “R2VER”,
“switch_1_include_measurement”: false,
“switch_1_rgb_color_wheel”: false,
“switch_1_cct_wheel”: false,
“switch_1_rgb_white_dimmer”: false,
“x”: 370,
“y”: 1000,
“wires”: \[
[ ],
[ ]
\]
},
{
“id”: “ac035efea557ae46”,
“type”: “global-config”,
“env”: [ ],
“modules”: {
“@victronenergy/node-red-contrib-victron”: “1.6.63”,
“node-red-contrib-victron-modbus”: “1.0.0”
}
}
\]
