Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [
- {
- "id": "b2ff4bbb.08e61",
- "type": "tab",
- "label": "Brucontrol interface",
- "disabled": false,
- "info": ""
- },
- {
- "id": "437615b9.a7c5f4",
- "type": "tab",
- "label": "Brewfather",
- "disabled": false,
- "info": ""
- },
- {
- "id": "b08b12c9.6b2f2",
- "type": "tab",
- "label": "Room temp",
- "disabled": false,
- "info": ""
- },
- {
- "id": "5fec9a11.37a164",
- "type": "ui_base",
- "theme": {
- "name": "theme-custom",
- "lightTheme": {
- "default": "#0094CE",
- "baseColor": "#0094CE",
- "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
- "edited": false,
- "reset": false
- },
- "darkTheme": {
- "default": "#097479",
- "baseColor": "#097479",
- "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
- "edited": true,
- "reset": false
- },
- "customTheme": {
- "name": "",
- "default": "#4B7930",
- "baseColor": "#666666",
- "baseFont": "Tahoma,Geneva,sans-serif",
- "reset": false
- },
- "themeState": {
- "base-color": {
- "default": "#4B7930",
- "value": "#4B7930",
- "edited": false
- },
- "page-titlebar-backgroundColor": {
- "value": "#666666",
- "edited": false
- },
- "page-backgroundColor": {
- "value": "#111111",
- "edited": false
- },
- "page-sidebar-backgroundColor": {
- "value": "#000000",
- "edited": false
- },
- "group-textColor": {
- "value": "#8c8c8c",
- "edited": false
- },
- "group-borderColor": {
- "value": "#555555",
- "edited": false
- },
- "group-backgroundColor": {
- "value": "#333333",
- "edited": false
- },
- "widget-textColor": {
- "value": "#eeeeee",
- "edited": false
- },
- "widget-backgroundColor": {
- "value": "#666666",
- "edited": false
- },
- "widget-borderColor": {
- "value": "#333333",
- "edited": false
- },
- "base-font": {
- "value": "Tahoma,Geneva,sans-serif"
- }
- },
- "angularTheme": {
- "primary": "indigo",
- "accents": "blue",
- "warn": "red",
- "background": "grey"
- }
- },
- "site": {
- "name": "Room",
- "hideToolbar": "false",
- "allowSwipe": "false",
- "dateFormat": "DD/MM/YYYY",
- "sizes": {
- "sx": 48,
- "sy": 53,
- "gx": 6,
- "gy": 6,
- "cx": 6,
- "cy": 6,
- "px": 0,
- "py": 0
- }
- }
- },
- {
- "id": "7473ae41.ca29a",
- "type": "mqtt-broker",
- "z": "",
- "name": "",
- "broker": "localhost",
- "port": "1883",
- "clientid": "",
- "usetls": false,
- "compatmode": true,
- "keepalive": "60",
- "cleansession": true,
- "birthTopic": "",
- "birthQos": "0",
- "birthPayload": "",
- "willTopic": "",
- "willQos": "0",
- "willPayload": ""
- },
- {
- "id": "2778b469.9fa82c",
- "type": "influxdb",
- "z": "",
- "hostname": "192.168.88.30",
- "port": "8086",
- "protocol": "http",
- "database": "brewery",
- "name": "",
- "usetls": false,
- "tls": ""
- },
- {
- "id": "366500a5.06556",
- "type": "ui_group",
- "z": "",
- "name": "ShellyHT",
- "tab": "",
- "order": 1,
- "disp": true,
- "width": "12",
- "collapse": false
- },
- {
- "id": "44e1a68b.8d3478",
- "type": "blynk-ws-client",
- "z": "",
- "name": "",
- "path": "ws://blynk-cloud.com/websockets",
- "key": "d-6jb2u_ohwit0qU0PxxwN0npAYwa0KT",
- "dbg_all": false,
- "dbg_read": false,
- "dbg_write": false,
- "dbg_notify": false,
- "dbg_mail": false,
- "dbg_prop": false,
- "dbg_sync": false,
- "dbg_bridge": false,
- "dbg_low": false,
- "dbg_pins": "",
- "multi_cmd": false,
- "proxy_type": "no",
- "proxy_url": "",
- "enabled": true
- },
- {
- "id": "1fcc17b.89250e8",
- "type": "tcp out",
- "z": "b2ff4bbb.08e61",
- "host": "",
- "port": "",
- "beserver": "reply",
- "base64": false,
- "end": false,
- "name": "To BC",
- "x": 1050,
- "y": 480,
- "wires": []
- },
- {
- "id": "98655d9a.2ea7c",
- "type": "tcp in",
- "z": "b2ff4bbb.08e61",
- "name": "From BC",
- "server": "server",
- "host": "",
- "port": "5000",
- "datamode": "stream",
- "datatype": "utf8",
- "newline": "",
- "topic": "",
- "base64": false,
- "x": 240,
- "y": 480,
- "wires": [
- [
- "468280c6.bbc74",
- "932a990f.7ce77",
- "25f3ce00.28bfea",
- "ca730e13.05b7c"
- ]
- ]
- },
- {
- "id": "641383d1.5866f4",
- "type": "change",
- "z": "b2ff4bbb.08e61",
- "name": "200",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "$floor(msg.payload.DS18B20.Temperature*100)",
- "tot": "jsonata"
- },
- {
- "t": "set",
- "p": "200",
- "pt": "flow",
- "to": "payload",
- "tot": "msg"
- },
- {
- "t": "set",
- "p": "topic",
- "pt": "msg",
- "to": "200",
- "tot": "num"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 530,
- "y": 300,
- "wires": [
- [
- "bb6f0304.c32328"
- ]
- ]
- },
- {
- "id": "7e4bbc0f.79f514",
- "type": "http in",
- "z": "437615b9.a7c5f4",
- "name": "",
- "url": "/brewfather",
- "method": "post",
- "upload": false,
- "swaggerDoc": "",
- "x": 80,
- "y": 20,
- "wires": [
- [
- "5cd71c5b.7c1fdc",
- "60395960.115e78",
- "23b476b5.08874a"
- ]
- ]
- },
- {
- "id": "5cd71c5b.7c1fdc",
- "type": "function",
- "z": "437615b9.a7c5f4",
- "name": "BF to BC",
- "func": "flow.set('recipe' , msg.payload.recipe.fermentation)\nflow.set('fbeername' , msg.payload.recipe.name)\n\n\nfunction time_convert(num)\n { \n var hours = Math.floor(num / 60); \n var minutes = num % 60;\n return + hours + \":\" + minutes + \":00\"; \n}\n\nvar hopstand\nvar hopstandtemp\nif (msg.payload.recipe.hopStandMinutes > 0) {\n hopstand = true\n hopstandtemp = msg.payload.recipe.avgWeightedHopstandTemp\n}\nelse {\n hopstandtemp = 0\n hopstand = false\n}\n\n\nvar firstwort\nif (msg.payload.recipe.hops[0].use == \"First Wort\") {\n firstwort = true\n} \nelse {\n firstwort = false\n}\n\n\nvar hoptime=[];\nfor(var x=0;x<msg.payload.recipe.hops.length;x++){\n if (msg.payload.recipe.hops[x].use == \"Boil\") {\n hoptime[x]= msg.payload.recipe.hops[x].time;\n }\n}\nhoptime.push(0,0,0,0,0,0,0,0,0,0);\nhoptime.length = 10\n\nvar mashtime=[];\nfor(var y=0;y<msg.payload.mashStepsCount;y++){\n mashtime[y]= msg.payload.recipe.mash.steps[y].stepTime;\n }\nmashtime.push(0,0,0,0,0);\nmashtime.length = 5\n\nvar mashsteps = msg.payload.mashStepsCount - 1;\nvar mashtemp=[];\nfor(var z=0;z<msg.payload.mashStepsCount;z++){\n mashtemp[z]= msg.payload.recipe.mash.steps[z].stepTemp;\n }\nmashtemp.push(mashtemp[mashsteps], mashtemp[mashsteps], mashtemp[mashsteps], mashtemp[mashsteps], mashtemp[mashsteps], mashtemp[mashsteps])\nmashtemp.length = 6\n\nmsg.payload = [ \n\n{ \"Name\": \"Preboil volume\", \"Value\": msg.payload.recipe.boilSize } , \n{ \"Name\": \"HLT fillvolume\" , \"Value\": msg.payload.recipe.data.hltWaterAmount } , \n{ \"Name\": \"Sparge volume\" , \"Value\": msg.payload.recipe.data.spargeWaterAmount } , \n{ \"Name\": \"Strike temp\" , \"Value\": msg.payload.recipe.data.strikeTemp } , \n{ \"Name\": \"Mash volume\" , \"Value\": msg.payload.recipe.data.mashWaterAmount } , \n{ \"Name\": \"Mash temp\" , \"Value\": mashtemp[0] } ,\n{ \"Name\": \"Mash temp1\" , \"Value\": mashtemp[1] } , \n{ \"Name\": \"Mash temp2\" , \"Value\": mashtemp[2] } ,\n{ \"Name\": \"Mash temp3\" , \"Value\": mashtemp[3] } ,\n{ \"Name\": \"Mash temp4\" , \"Value\": mashtemp[4] } ,\n{ \"Name\": \"Mash temp5\" , \"Value\": mashtemp[5] } ,\n{ \"Name\": \"Mash time1\" , \"Value\": time_convert(mashtime[0]) } ,\n{ \"Name\": \"Mash time2\" , \"Value\": time_convert(mashtime[1]) } ,\n{ \"Name\": \"Mash time3\" , \"Value\": time_convert(mashtime[2]) } ,\n{ \"Name\": \"Mash time4\" , \"Value\": time_convert(mashtime[3]) } ,\n{ \"Name\": \"Mash time5\" , \"Value\": time_convert(mashtime[4]) } ,\n{ \"Name\": \"Hop time0\" , \"Value\": time_convert(hoptime[0]) } ,\n{ \"Name\": \"Hop time1\" , \"Value\": time_convert(hoptime[1]) } ,\n{ \"Name\": \"Hop time2\" , \"Value\": time_convert(hoptime[2]) } ,\n{ \"Name\": \"Hop time3\" , \"Value\": time_convert(hoptime[3]) } ,\n{ \"Name\": \"Hop time4\" , \"Value\": time_convert(hoptime[4]) } ,\n{ \"Name\": \"Hop time5\" , \"Value\": time_convert(hoptime[5]) } ,\n{ \"Name\": \"Hop time6\" , \"Value\": time_convert(hoptime[7]) } ,\n{ \"Name\": \"Hop time8\" , \"Value\": time_convert(hoptime[8]) } ,\n{ \"Name\": \"Hop time9\" , \"Value\": time_convert(hoptime[9]) } ,\n{ \"Name\": \"Hopstand time\" , \"Value\": time_convert(msg.payload.recipe.hopStandMinutes) } ,\n{ \"Name\": \"Boil time\" , \"Value\": time_convert(msg. payload.recipe.boilTime) } ,\n{ \"Name\": \"Hopstand temp\" , \"Value\": hopstandtemp } ,\n{ \"Name\": \"First wort\" , \"Value\": firstwort } ,\n{ \"Name\": \"Recipe received\" , \"Value\": msg.payload._timestamp } ,\n{ \"Name\": \"Status\" , \"Value\": msg.payload.recipe.name }\n\n];\n\nreturn msg;",
- "outputs": 1,
- "noerr": 0,
- "x": 260,
- "y": 40,
- "wires": [
- [
- "5d22cbcd.3f80a4",
- "23b476b5.08874a"
- ]
- ]
- },
- {
- "id": "5d22cbcd.3f80a4",
- "type": "http request",
- "z": "437615b9.a7c5f4",
- "name": "",
- "method": "PUT",
- "ret": "txt",
- "paytoqs": false,
- "url": "http://192.168.77.246:8000/globals",
- "tls": "",
- "proxy": "",
- "authType": "basic",
- "x": 450,
- "y": 40,
- "wires": [
- [
- "23b476b5.08874a"
- ]
- ]
- },
- {
- "id": "b1c4ee20.c5caf8",
- "type": "http in",
- "z": "437615b9.a7c5f4",
- "name": "",
- "url": "/Fermenter",
- "method": "get",
- "upload": false,
- "swaggerDoc": "",
- "x": 80,
- "y": 60,
- "wires": [
- [
- "9da925a2.e6eb6",
- "b5cc90e0.ec9a2"
- ]
- ]
- },
- {
- "id": "60395960.115e78",
- "type": "http response",
- "z": "437615b9.a7c5f4",
- "name": "",
- "statusCode": "200",
- "headers": {},
- "x": 460,
- "y": 80,
- "wires": []
- },
- {
- "id": "9da925a2.e6eb6",
- "type": "function",
- "z": "437615b9.a7c5f4",
- "name": "Fermenter",
- "func": "msg.payload = [flow.get('recipe'),flow.get('fbeername')]\nreturn msg;",
- "outputs": 1,
- "noerr": 0,
- "x": 270,
- "y": 80,
- "wires": [
- [
- "60395960.115e78"
- ]
- ]
- },
- {
- "id": "e94284e7.2b2a68",
- "type": "switch",
- "z": "b2ff4bbb.08e61",
- "name": "Out",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "eq",
- "v": "1",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "2",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "3",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "4",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "5",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "6",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "7",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "8",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "9",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "10",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "11",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "12",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "13",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "14",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "15",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "16",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "17",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "18",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "19",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "20",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "21",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "22",
- "vt": "str"
- },
- {
- "t": "eq",
- "v": "23",
- "vt": "str"
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 23,
- "x": 910,
- "y": 220,
- "wires": [
- [],
- [],
- [],
- [
- "c1da1e2e.05adb8"
- ],
- [],
- [],
- [],
- [
- "ab7bcdce.39a708"
- ],
- [],
- [],
- [
- "7637ddc9.888764",
- "e5da679f.8a98b"
- ],
- [],
- [],
- [],
- [],
- [
- "5b472365.0956ac",
- "a877fda0.40eca"
- ],
- [
- "80a02e0.5e3545",
- "a11594f1.f68e7"
- ],
- [],
- [],
- [],
- [],
- [],
- []
- ]
- },
- {
- "id": "f7da946c.6da088",
- "type": "mqtt out",
- "z": "b2ff4bbb.08e61",
- "name": "Cooler ctrl",
- "topic": "cmnd/cooler/POWER",
- "qos": "",
- "retain": "",
- "broker": "7473ae41.ca29a",
- "x": 1410,
- "y": 200,
- "wires": []
- },
- {
- "id": "c2a4beaa.41db48",
- "type": "mqtt out",
- "z": "b2ff4bbb.08e61",
- "name": "4ch L1",
- "topic": "cmnd/4ch/POWER1",
- "qos": "",
- "retain": "",
- "broker": "7473ae41.ca29a",
- "x": 1430,
- "y": 40,
- "wires": []
- },
- {
- "id": "e94488ac.b15ce",
- "type": "mqtt out",
- "z": "b2ff4bbb.08e61",
- "name": "Freezer ctrl",
- "topic": "cmnd/freezer/POWER",
- "qos": "",
- "retain": "",
- "broker": "7473ae41.ca29a",
- "x": 1410,
- "y": 140,
- "wires": []
- },
- {
- "id": "d3c526c2.432d18",
- "type": "mqtt in",
- "z": "b2ff4bbb.08e61",
- "name": "Result",
- "topic": "stat/+/RESULT",
- "qos": "2",
- "datatype": "json",
- "broker": "7473ae41.ca29a",
- "x": 250,
- "y": 80,
- "wires": [
- [
- "d0b4dd59.073448"
- ]
- ]
- },
- {
- "id": "88ec5d80.7bd8e8",
- "type": "change",
- "z": "b2ff4bbb.08e61",
- "name": "4",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "payload.POWER1",
- "tot": "msg"
- },
- {
- "t": "change",
- "p": "payload",
- "pt": "msg",
- "from": "ON",
- "fromt": "str",
- "to": "1",
- "tot": "num"
- },
- {
- "t": "change",
- "p": "payload",
- "pt": "msg",
- "from": "OFF",
- "fromt": "str",
- "to": "0",
- "tot": "num"
- },
- {
- "t": "set",
- "p": "4",
- "pt": "flow",
- "to": "payload",
- "tot": "msg"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 530,
- "y": 20,
- "wires": [
- []
- ]
- },
- {
- "id": "6253fcde.9433c4",
- "type": "rbe",
- "z": "b2ff4bbb.08e61",
- "name": "",
- "func": "rbe",
- "gap": "",
- "start": "",
- "inout": "out",
- "property": "payload",
- "x": 910,
- "y": 440,
- "wires": [
- [
- "e94284e7.2b2a68"
- ]
- ]
- },
- {
- "id": "a06f145a.14d9b8",
- "type": "change",
- "z": "b2ff4bbb.08e61",
- "name": "201",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "$floor(msg.payload.DS18B20.Temperature*100)\t",
- "tot": "jsonata"
- },
- {
- "t": "set",
- "p": "201",
- "pt": "flow",
- "to": "payload",
- "tot": "msg"
- },
- {
- "t": "set",
- "p": "topic",
- "pt": "msg",
- "to": "201",
- "tot": "num"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 530,
- "y": 220,
- "wires": [
- [
- "bb6f0304.c32328"
- ]
- ]
- },
- {
- "id": "bb6f0304.c32328",
- "type": "function",
- "z": "b2ff4bbb.08e61",
- "name": "Hysteresis",
- "func": "var port = msg.topic\nvar value = msg.payload\nvar delay;\nvar flush = {};\nvar coolmode;\nvar output;\nvar on;\nvar off;\nvar pin = flow.get(String(port)+\"pin\")\nvar target = flow.get(String(port)+\"target\")\nvar onoffset = flow.get(String(port)+\"onoffset\")\nvar cooling = flow.get(String(pin));\nvar activelow = flow.get(String(port)+\"activelow\")\nvar ondelay = flow.get(String(port)+\"ondelay\")\n\nif (activelow === 1) {\n on = 0\n off = 1\n}\nelse {\n on = 1\n off = 0\n}\n\nif (onoffset > target) {\n coolmode = true\n}\n\nif (value >= onoffset && coolmode === true){\noutput = on\n}\nif (value <= onoffset && value > target && cooling === 1 && coolmode === true) {\n output = on \n}\nif (value <= target && coolmode === true){\n output = off\nmsg.flush = flush\nnode.send(msg.flush)\n}\n\nif (flow.get(String(pin)+\"disabled\") === 1) {\noutput = off\nmsg.flush = flush\nnode.send(msg.flush)\n}\n\nmsg.topic = pin\nmsg.payload = output\nmsg.delay = ondelay\nreturn msg;",
- "outputs": 1,
- "noerr": 0,
- "x": 710,
- "y": 460,
- "wires": [
- [
- "6253fcde.9433c4"
- ]
- ]
- },
- {
- "id": "2b196c8.86dc794",
- "type": "mqtt out",
- "z": "b2ff4bbb.08e61",
- "name": "Steam ctrl",
- "topic": "cmnd/steam/POWER",
- "qos": "",
- "retain": "",
- "broker": "7473ae41.ca29a",
- "x": 1410,
- "y": 80,
- "wires": []
- },
- {
- "id": "5b472365.0956ac",
- "type": "falling-edge",
- "z": "b2ff4bbb.08e61",
- "name": "Stop",
- "threshold": "1",
- "x": 1110,
- "y": 240,
- "wires": [
- [
- "f7da946c.6da088"
- ]
- ]
- },
- {
- "id": "e5da679f.8a98b",
- "type": "falling-edge",
- "z": "b2ff4bbb.08e61",
- "name": "Stop",
- "threshold": "1",
- "x": 1110,
- "y": 160,
- "wires": [
- [
- "e94488ac.b15ce"
- ]
- ]
- },
- {
- "id": "7637ddc9.888764",
- "type": "delay",
- "z": "b2ff4bbb.08e61",
- "name": "ONdelay",
- "pauseType": "delayv",
- "timeout": "0",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "1",
- "rateUnits": "second",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": false,
- "x": 1120,
- "y": 120,
- "wires": [
- [
- "62674ccb.f8ed9c"
- ]
- ]
- },
- {
- "id": "468280c6.bbc74",
- "type": "string",
- "z": "b2ff4bbb.08e61",
- "name": "first",
- "methods": [
- {
- "name": "getLeftMost",
- "params": [
- {
- "type": "str",
- "value": "?"
- }
- ]
- }
- ],
- "prop": "payload",
- "propout": "payload",
- "object": "msg",
- "objectout": "msg",
- "x": 410,
- "y": 560,
- "wires": [
- [
- "ff1815eb.b334c",
- "df4cfda0.a7ad48"
- ]
- ]
- },
- {
- "id": "932a990f.7ce77",
- "type": "string",
- "z": "b2ff4bbb.08e61",
- "name": "last",
- "methods": [
- {
- "name": "delLeftMost",
- "params": [
- {
- "type": "str",
- "value": "?"
- }
- ]
- },
- {
- "name": "ensureLeft",
- "params": [
- {
- "type": "str",
- "value": "?"
- }
- ]
- },
- {
- "name": "delRightMost",
- "params": [
- {
- "type": "str",
- "value": "!"
- }
- ]
- },
- {
- "name": "delRightMost",
- "params": [
- {
- "type": "str",
- "value": "!"
- }
- ]
- },
- {
- "name": "delRightMost",
- "params": [
- {
- "type": "str",
- "value": "!"
- }
- ]
- },
- {
- "name": "delRightMost",
- "params": [
- {
- "type": "str",
- "value": ";"
- }
- ]
- }
- ],
- "prop": "payload",
- "propout": "payload",
- "object": "msg",
- "objectout": "msg",
- "x": 410,
- "y": 600,
- "wires": [
- [
- "597e2d94.262864"
- ]
- ]
- },
- {
- "id": "ff1815eb.b334c",
- "type": "split",
- "z": "b2ff4bbb.08e61",
- "name": "",
- "splt": "!",
- "spltType": "str",
- "arraySplt": 1,
- "arraySpltType": "len",
- "stream": false,
- "addname": "",
- "x": 550,
- "y": 520,
- "wires": [
- [
- "f8fbcb2.87d1b38"
- ]
- ]
- },
- {
- "id": "597e2d94.262864",
- "type": "split",
- "z": "b2ff4bbb.08e61",
- "name": "",
- "splt": "?",
- "spltType": "str",
- "arraySplt": 1,
- "arraySpltType": "len",
- "stream": false,
- "addname": "",
- "x": 550,
- "y": 600,
- "wires": [
- [
- "1edecc16.888c54"
- ]
- ]
- },
- {
- "id": "df4cfda0.a7ad48",
- "type": "join",
- "z": "b2ff4bbb.08e61",
- "name": "",
- "mode": "custom",
- "build": "string",
- "property": "payload",
- "propertyType": "msg",
- "key": "topic",
- "joiner": "",
- "joinerType": "str",
- "accumulate": false,
- "timeout": "0.1",
- "count": "",
- "reduceRight": false,
- "reduceExp": "",
- "reduceInit": "",
- "reduceInitType": "",
- "reduceFixup": "",
- "x": 910,
- "y": 560,
- "wires": [
- [
- "56887ab.9376c04"
- ]
- ]
- },
- {
- "id": "1edecc16.888c54",
- "type": "function",
- "z": "b2ff4bbb.08e61",
- "name": "feedback",
- "func": "if (msg.payload.length > 0) {\n var pin = msg.payload\n\n msg.payload = \"?\"+String(pin)+\"=\"+String(flow.get(pin));\n \nreturn msg;\n}",
- "outputs": 1,
- "noerr": 0,
- "x": 700,
- "y": 600,
- "wires": [
- [
- "df4cfda0.a7ad48"
- ]
- ]
- },
- {
- "id": "f8fbcb2.87d1b38",
- "type": "function",
- "z": "b2ff4bbb.08e61",
- "name": "pin config",
- "func": "if (msg.payload.length > 0) {\nvar input = msg.payload.split(\",\");\nvar pin = parseInt(input[0])\nvar config = parseInt(input[1])\nvar state;\n\nflow.set(String(pin)+\"disabled\", 0);\n\nif (config == 1) {\n var one ={};\n one.topic = pin\n state = parseInt(input[2])\n one.payload = state \n return [one, null, null];\n}\nif (config == 5) {\n five = {};\n five.topic = \"newconfig\"\n pin = parseInt(input[0])\n config = parseInt(input[1])\n var port = parseInt(input[2])\n var target = parseInt(input[3])\n var onoffset = parseInt(input[4])\n var ondelay = parseInt(input[5]) * 1000\n var activelow = parseInt(input[6])\n var value = parseInt(flow.get(String(port)))\n flow.set(String(port)+\"pin\", pin);\n flow.set(String(port)+\"target\", target);\n flow.set(String(port)+\"onoffset\", onoffset);\n flow.set(String(port)+\"activelow\", activelow);\n flow.set(String(port)+\"ondelay\", ondelay);\n five.payload = [pin, config, port, target, onoffset, ondelay, activelow]\n return [null, five, null];\n}\nif (config == 7) {\n var seven = {};\n seven.topic = pin\n state = parseInt(input[2])\n seven.payload = state \n return [null, null, seven];\n}\n}",
- "outputs": 3,
- "noerr": 0,
- "x": 700,
- "y": 520,
- "wires": [
- [
- "6253fcde.9433c4"
- ],
- [],
- [
- "6253fcde.9433c4"
- ]
- ]
- },
- {
- "id": "f5cd4ad8.3e7d38",
- "type": "split",
- "z": "b2ff4bbb.08e61",
- "name": "",
- "splt": "/",
- "spltType": "str",
- "arraySplt": 1,
- "arraySpltType": "len",
- "stream": false,
- "addname": "",
- "x": 550,
- "y": 420,
- "wires": [
- [
- "8ec6fb61.8728b8"
- ]
- ]
- },
- {
- "id": "8ec6fb61.8728b8",
- "type": "function",
- "z": "b2ff4bbb.08e61",
- "name": "disable pins",
- "func": "\nif (msg.payload.length > 0) {\nvar input = msg.payload;\nvar pin = input;\nflow.set(String(pin)+\"disabled\", 1);\nmsg.topic = pin;\nmsg.payload = 0;\nreturn msg;\n}\n\n",
- "outputs": 1,
- "noerr": 0,
- "x": 710,
- "y": 420,
- "wires": [
- [
- "6253fcde.9433c4",
- "e94284e7.2b2a68"
- ]
- ]
- },
- {
- "id": "56887ab.9376c04",
- "type": "string",
- "z": "b2ff4bbb.08e61",
- "name": "",
- "methods": [
- {
- "name": "ensureRight",
- "params": [
- {
- "type": "str",
- "value": ";"
- }
- ]
- }
- ],
- "prop": "payload",
- "propout": "payload",
- "object": "msg",
- "objectout": "msg",
- "x": 910,
- "y": 480,
- "wires": [
- [
- "1fcc17b.89250e8",
- "3cac4b16.68df34"
- ]
- ]
- },
- {
- "id": "25f3ce00.28bfea",
- "type": "switch",
- "z": "b2ff4bbb.08e61",
- "name": "keepalive",
- "property": "payload",
- "propertyType": "msg",
- "rules": [
- {
- "t": "cont",
- "v": "*",
- "vt": "str"
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 560,
- "y": 480,
- "wires": [
- [
- "56887ab.9376c04"
- ]
- ]
- },
- {
- "id": "3cac4b16.68df34",
- "type": "debug",
- "z": "b2ff4bbb.08e61",
- "name": "",
- "active": false,
- "tosidebar": true,
- "console": false,
- "tostatus": false,
- "complete": "false",
- "x": 1070,
- "y": 520,
- "wires": []
- },
- {
- "id": "af53b13f.326b9",
- "type": "change",
- "z": "b2ff4bbb.08e61",
- "name": "rbe reset",
- "rules": [
- {
- "t": "set",
- "p": "reset",
- "pt": "msg",
- "to": "on",
- "tot": "str"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 700,
- "y": 380,
- "wires": [
- [
- "6253fcde.9433c4"
- ]
- ]
- },
- {
- "id": "edabda2a.6b2fe8",
- "type": "inject",
- "z": "b2ff4bbb.08e61",
- "name": "",
- "topic": "",
- "payload": "",
- "payloadType": "date",
- "repeat": "600",
- "crontab": "",
- "once": true,
- "onceDelay": "60",
- "x": 430,
- "y": 380,
- "wires": [
- [
- "af53b13f.326b9"
- ]
- ]
- },
- {
- "id": "a877fda0.40eca",
- "type": "delay",
- "z": "b2ff4bbb.08e61",
- "name": "limit",
- "pauseType": "rate",
- "timeout": "0",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "60",
- "rateUnits": "second",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": true,
- "x": 1250,
- "y": 200,
- "wires": [
- [
- "f7da946c.6da088"
- ]
- ]
- },
- {
- "id": "62674ccb.f8ed9c",
- "type": "delay",
- "z": "b2ff4bbb.08e61",
- "name": "limit",
- "pauseType": "rate",
- "timeout": "0",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "60",
- "rateUnits": "second",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": true,
- "x": 1250,
- "y": 120,
- "wires": [
- [
- "e94488ac.b15ce"
- ]
- ]
- },
- {
- "id": "ca730e13.05b7c",
- "type": "function",
- "z": "b2ff4bbb.08e61",
- "name": "disable",
- "func": "var str = msg.payload\nif (str.indexOf(\"/\") >= 0) {\n var firstq = str.indexOf(\"?\")\n var firstw = str.indexOf(\"!\")\n var slashpart\n if (firstq >= 0 || firstw >= 0) {\n if (firstw > firstq) {\n slashpart = str.slice(0, firstw)\n }\n if (firstq > firstw) {\n if (firstw > -1) { \n slashpart = str.slice(0, firstw)\n }\n if (firstw == -1) { \n slashpart = str.slice(0, firstq)\n }\n }\n msg.payload = slashpart\n return msg;\n }\n else {\n msg.payload = str\n }\n return msg;\n}\n",
- "outputs": 1,
- "noerr": 0,
- "x": 420,
- "y": 420,
- "wires": [
- [
- "f5cd4ad8.3e7d38"
- ]
- ]
- },
- {
- "id": "c1da1e2e.05adb8",
- "type": "delay",
- "z": "b2ff4bbb.08e61",
- "name": "limit",
- "pauseType": "rate",
- "timeout": "0",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "2",
- "rateUnits": "second",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": false,
- "x": 1250,
- "y": 40,
- "wires": [
- [
- "c2a4beaa.41db48"
- ]
- ]
- },
- {
- "id": "ab7bcdce.39a708",
- "type": "delay",
- "z": "b2ff4bbb.08e61",
- "name": "limit",
- "pauseType": "rate",
- "timeout": "0",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "2",
- "rateUnits": "second",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": false,
- "x": 1250,
- "y": 80,
- "wires": [
- [
- "2b196c8.86dc794"
- ]
- ]
- },
- {
- "id": "6df8d545.32ca6c",
- "type": "split",
- "z": "437615b9.a7c5f4",
- "name": "",
- "splt": "\\n",
- "spltType": "str",
- "arraySplt": 1,
- "arraySpltType": "len",
- "stream": false,
- "addname": "topic",
- "x": 350,
- "y": 140,
- "wires": [
- [
- "4fc0ff6.31fca8"
- ]
- ]
- },
- {
- "id": "c3f453af.f00418",
- "type": "inject",
- "z": "437615b9.a7c5f4",
- "name": "Fusion config",
- "topic": "fusion-configuration",
- "payload": "{\"outputTopic\":\"F1\",\"inputTopics\":[\"beer\",\"name\",\"temp\",\"ext_temp\",\"aux_temp\",\"temp_unit\",\"pressure\",\"pressure_unit\",\"gravity\",\"tilttemperature\",\"comment\"],\"allowUndefined\":true,\"onlyPayloads\":true}",
- "payloadType": "json",
- "repeat": "",
- "crontab": "",
- "once": true,
- "onceDelay": "2",
- "x": 100,
- "y": 180,
- "wires": [
- [
- "4fc0ff6.31fca8"
- ]
- ]
- },
- {
- "id": "4fc0ff6.31fca8",
- "type": "fusion",
- "z": "437615b9.a7c5f4",
- "name": "",
- "x": 530,
- "y": 140,
- "wires": [
- [
- "73724099.d54698"
- ]
- ]
- },
- {
- "id": "73724099.d54698",
- "type": "delay",
- "z": "437615b9.a7c5f4",
- "name": "limit",
- "pauseType": "rate",
- "timeout": "5",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "8",
- "rateUnits": "minute",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": true,
- "x": 670,
- "y": 140,
- "wires": [
- [
- "3fe91b0d.3e4c44"
- ]
- ]
- },
- {
- "id": "339200ea.862f38",
- "type": "debug",
- "z": "437615b9.a7c5f4",
- "name": "",
- "active": false,
- "tosidebar": true,
- "console": false,
- "tostatus": false,
- "complete": "false",
- "x": 990,
- "y": 340,
- "wires": []
- },
- {
- "id": "23b476b5.08874a",
- "type": "debug",
- "z": "437615b9.a7c5f4",
- "name": "",
- "active": true,
- "tosidebar": true,
- "console": false,
- "tostatus": false,
- "complete": "payload",
- "targetType": "msg",
- "x": 650,
- "y": 20,
- "wires": []
- },
- {
- "id": "811d834f.6d8518",
- "type": "mqtt out",
- "z": "b2ff4bbb.08e61",
- "name": "Fridge1 ctrl",
- "topic": "cmnd/Fridge1/POWER",
- "qos": "",
- "retain": "",
- "broker": "7473ae41.ca29a",
- "x": 1410,
- "y": 280,
- "wires": []
- },
- {
- "id": "80a02e0.5e3545",
- "type": "falling-edge",
- "z": "b2ff4bbb.08e61",
- "name": "Stop",
- "threshold": "1",
- "x": 1110,
- "y": 320,
- "wires": [
- [
- "811d834f.6d8518"
- ]
- ]
- },
- {
- "id": "a11594f1.f68e7",
- "type": "delay",
- "z": "b2ff4bbb.08e61",
- "name": "limit",
- "pauseType": "rate",
- "timeout": "0",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "60",
- "rateUnits": "second",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": true,
- "x": 1250,
- "y": 280,
- "wires": [
- [
- "811d834f.6d8518"
- ]
- ]
- },
- {
- "id": "5165e4c1.86cd8c",
- "type": "change",
- "z": "b2ff4bbb.08e61",
- "name": "202",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "$floor(msg.payload.DS18B20.Temperature*100)\t",
- "tot": "jsonata"
- },
- {
- "t": "set",
- "p": "202",
- "pt": "flow",
- "to": "payload",
- "tot": "msg"
- },
- {
- "t": "set",
- "p": "topic",
- "pt": "msg",
- "to": "202",
- "tot": "num"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 530,
- "y": 260,
- "wires": [
- [
- "bb6f0304.c32328"
- ]
- ]
- },
- {
- "id": "fc6bd9e3.8d9",
- "type": "mqtt in",
- "z": "b2ff4bbb.08e61",
- "name": "State",
- "topic": "tele/+/STATE",
- "qos": "2",
- "datatype": "json",
- "broker": "7473ae41.ca29a",
- "x": 250,
- "y": 120,
- "wires": [
- [
- "d0b4dd59.073448"
- ]
- ]
- },
- {
- "id": "d0b4dd59.073448",
- "type": "switch",
- "z": "b2ff4bbb.08e61",
- "name": "topic",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "4ch",
- "vt": "str",
- "case": false
- },
- {
- "t": "regex",
- "v": "steam",
- "vt": "str",
- "case": false
- },
- {
- "t": "regex",
- "v": "freezer",
- "vt": "str",
- "case": false
- },
- {
- "t": "regex",
- "v": "cooler",
- "vt": "str",
- "case": false
- },
- {
- "t": "regex",
- "v": "Fridge1",
- "vt": "str",
- "case": false
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 5,
- "x": 370,
- "y": 100,
- "wires": [
- [
- "88ec5d80.7bd8e8"
- ],
- [
- "162a463f.2553c2"
- ],
- [
- "dbf33360.e9f058"
- ],
- [
- "ad30a13a.b3f3"
- ],
- [
- "fa35dd61.a3dd08"
- ]
- ]
- },
- {
- "id": "b5cc90e0.ec9a2",
- "type": "debug",
- "z": "437615b9.a7c5f4",
- "name": "",
- "active": true,
- "tosidebar": true,
- "console": false,
- "tostatus": false,
- "complete": "false",
- "x": 650,
- "y": 60,
- "wires": []
- },
- {
- "id": "162a463f.2553c2",
- "type": "change",
- "z": "b2ff4bbb.08e61",
- "name": "8",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "payload.POWER",
- "tot": "msg"
- },
- {
- "t": "change",
- "p": "payload",
- "pt": "msg",
- "from": "ON",
- "fromt": "str",
- "to": "1",
- "tot": "num"
- },
- {
- "t": "change",
- "p": "payload",
- "pt": "msg",
- "from": "OFF",
- "fromt": "str",
- "to": "0",
- "tot": "num"
- },
- {
- "t": "set",
- "p": "8",
- "pt": "flow",
- "to": "payload",
- "tot": "msg"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 530,
- "y": 60,
- "wires": [
- []
- ]
- },
- {
- "id": "dbf33360.e9f058",
- "type": "change",
- "z": "b2ff4bbb.08e61",
- "name": "11",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "payload.POWER",
- "tot": "msg"
- },
- {
- "t": "change",
- "p": "payload",
- "pt": "msg",
- "from": "ON",
- "fromt": "str",
- "to": "1",
- "tot": "num"
- },
- {
- "t": "change",
- "p": "payload",
- "pt": "msg",
- "from": "OFF",
- "fromt": "str",
- "to": "0",
- "tot": "num"
- },
- {
- "t": "set",
- "p": "11",
- "pt": "flow",
- "to": "payload",
- "tot": "msg"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 530,
- "y": 100,
- "wires": [
- []
- ]
- },
- {
- "id": "ad30a13a.b3f3",
- "type": "change",
- "z": "b2ff4bbb.08e61",
- "name": "16",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "payload.POWER",
- "tot": "msg"
- },
- {
- "t": "change",
- "p": "payload",
- "pt": "msg",
- "from": "ON",
- "fromt": "str",
- "to": "1",
- "tot": "num"
- },
- {
- "t": "change",
- "p": "payload",
- "pt": "msg",
- "from": "OFF",
- "fromt": "str",
- "to": "0",
- "tot": "num"
- },
- {
- "t": "set",
- "p": "16",
- "pt": "flow",
- "to": "payload",
- "tot": "msg"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 530,
- "y": 140,
- "wires": [
- []
- ]
- },
- {
- "id": "fa35dd61.a3dd08",
- "type": "change",
- "z": "b2ff4bbb.08e61",
- "name": "17",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "payload.POWER",
- "tot": "msg"
- },
- {
- "t": "change",
- "p": "payload",
- "pt": "msg",
- "from": "ON",
- "fromt": "str",
- "to": "1",
- "tot": "num"
- },
- {
- "t": "change",
- "p": "payload",
- "pt": "msg",
- "from": "OFF",
- "fromt": "str",
- "to": "0",
- "tot": "num"
- },
- {
- "t": "set",
- "p": "17",
- "pt": "flow",
- "to": "payload",
- "tot": "msg"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 530,
- "y": 180,
- "wires": [
- []
- ]
- },
- {
- "id": "a14148d.d672db8",
- "type": "mqtt in",
- "z": "b2ff4bbb.08e61",
- "name": "Sensor",
- "topic": "tele/+/SENSOR",
- "qos": "2",
- "datatype": "json",
- "broker": "7473ae41.ca29a",
- "x": 250,
- "y": 260,
- "wires": [
- [
- "bf9bcf48.5fee4",
- "e3a459de.e3c5c"
- ]
- ]
- },
- {
- "id": "bf9bcf48.5fee4",
- "type": "switch",
- "z": "b2ff4bbb.08e61",
- "name": "topic",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "freezer",
- "vt": "str",
- "case": false
- },
- {
- "t": "regex",
- "v": "Fridge1",
- "vt": "str",
- "case": false
- },
- {
- "t": "regex",
- "v": "cooler",
- "vt": "str",
- "case": false
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 3,
- "x": 370,
- "y": 260,
- "wires": [
- [
- "a06f145a.14d9b8"
- ],
- [
- "5165e4c1.86cd8c"
- ],
- [
- "641383d1.5866f4"
- ]
- ]
- },
- {
- "id": "364033c4.ba37ac",
- "type": "split",
- "z": "437615b9.a7c5f4",
- "name": "",
- "splt": "\\n",
- "spltType": "str",
- "arraySplt": 1,
- "arraySpltType": "len",
- "stream": false,
- "addname": "topic",
- "x": 350,
- "y": 220,
- "wires": [
- [
- "eaf89058.f04c8"
- ]
- ]
- },
- {
- "id": "76b5b2a5.a3798c",
- "type": "inject",
- "z": "437615b9.a7c5f4",
- "name": "Fusion config",
- "topic": "fusion-configuration",
- "payload": "{\"outputTopic\":\"F2\",\"inputTopics\":[\"beer\",\"name\",\"temp\",\"ext_temp\",\"aux_temp\",\"temp_unit\",\"pressure\",\"pressure_unit\",\"gravity\",\"tilttemperature\",\"comment\"],\"allowUndefined\":true,\"onlyPayloads\":true}",
- "payloadType": "json",
- "repeat": "",
- "crontab": "",
- "once": true,
- "onceDelay": "2",
- "x": 100,
- "y": 260,
- "wires": [
- [
- "eaf89058.f04c8"
- ]
- ]
- },
- {
- "id": "eaf89058.f04c8",
- "type": "fusion",
- "z": "437615b9.a7c5f4",
- "name": "",
- "x": 530,
- "y": 220,
- "wires": [
- [
- "ef8c6f4f.c445"
- ]
- ]
- },
- {
- "id": "ef8c6f4f.c445",
- "type": "delay",
- "z": "437615b9.a7c5f4",
- "name": "limit",
- "pauseType": "rate",
- "timeout": "5",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "8",
- "rateUnits": "minute",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": true,
- "x": 670,
- "y": 220,
- "wires": [
- [
- "3fe91b0d.3e4c44"
- ]
- ]
- },
- {
- "id": "3fe91b0d.3e4c44",
- "type": "http request",
- "z": "437615b9.a7c5f4",
- "name": "",
- "method": "POST",
- "ret": "txt",
- "paytoqs": false,
- "url": "http://log.brewfather.net/stream?id=MJCu9dsSiGKwJr",
- "tls": "",
- "proxy": "",
- "authType": "basic",
- "x": 990,
- "y": 300,
- "wires": [
- [
- "339200ea.862f38"
- ]
- ]
- },
- {
- "id": "ac92d203.d8404",
- "type": "http in",
- "z": "437615b9.a7c5f4",
- "name": "",
- "url": "/tiltbridge",
- "method": "post",
- "upload": false,
- "swaggerDoc": "",
- "x": 80,
- "y": 720,
- "wires": [
- [
- "b9d54bf0.9b4498",
- "78d5ce21.c413e"
- ]
- ]
- },
- {
- "id": "b9d54bf0.9b4498",
- "type": "http response",
- "z": "437615b9.a7c5f4",
- "name": "",
- "statusCode": "",
- "headers": {},
- "x": 270,
- "y": 680,
- "wires": []
- },
- {
- "id": "78d5ce21.c413e",
- "type": "switch",
- "z": "437615b9.a7c5f4",
- "name": "Color",
- "property": "payload.tilts",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "Yellow",
- "vt": "str",
- "case": true
- },
- {
- "t": "regex",
- "v": "Red",
- "vt": "str",
- "case": true
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 2,
- "x": 330,
- "y": 720,
- "wires": [
- [
- "c4fbb5bc.4c9068",
- "339200ea.862f38"
- ],
- [
- "d6539f6f.537c2"
- ]
- ]
- },
- {
- "id": "c4fbb5bc.4c9068",
- "type": "change",
- "z": "437615b9.a7c5f4",
- "name": "Yellow",
- "rules": [
- {
- "t": "delete",
- "p": "payload.mdns_id",
- "pt": "msg"
- },
- {
- "t": "set",
- "p": "payload.tilts.Yellow.gravity",
- "pt": "msg",
- "to": "$number(payload.tilts.Yellow.gravity)",
- "tot": "jsonata"
- },
- {
- "t": "set",
- "p": "payload.tilts.Yellow.gravity",
- "pt": "msg",
- "to": "msg.payload.tilts.Yellow.gravity - 0.000",
- "tot": "jsonata"
- },
- {
- "t": "set",
- "p": "payload.tilts.Yellow.temp",
- "pt": "msg",
- "to": "(payload.tilts.Yellow.temp -32) * (5/9)",
- "tot": "jsonata"
- },
- {
- "t": "move",
- "p": "payload.tilts.Yellow.temp",
- "pt": "msg",
- "to": "payload.tilttemperature",
- "tot": "msg"
- },
- {
- "t": "move",
- "p": "payload.tilts.Yellow.gravity",
- "pt": "msg",
- "to": "payload.gravity",
- "tot": "msg"
- },
- {
- "t": "set",
- "p": "payload.comment",
- "pt": "msg",
- "to": "$now()",
- "tot": "jsonata"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 550,
- "y": 680,
- "wires": [
- [
- "37e5173e.dbbc18",
- "339200ea.862f38"
- ]
- ]
- },
- {
- "id": "d6539f6f.537c2",
- "type": "change",
- "z": "437615b9.a7c5f4",
- "name": "Red",
- "rules": [
- {
- "t": "set",
- "p": "payload.tilts.Red.gravity",
- "pt": "msg",
- "to": "$number(payload.tilts.Red.gravity)",
- "tot": "jsonata"
- },
- {
- "t": "set",
- "p": "payload.tilts.Red.gravity",
- "pt": "msg",
- "to": "msg.payload.tilts.Red.gravity - 0.000",
- "tot": "jsonata"
- },
- {
- "t": "set",
- "p": "payload.tilts.Red.temp",
- "pt": "msg",
- "to": "(payload.tilts.Red.temp -32) * (5/9)",
- "tot": "jsonata"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 550,
- "y": 720,
- "wires": [
- [
- "2f93d39c.917b3c"
- ]
- ]
- },
- {
- "id": "37e5173e.dbbc18",
- "type": "split",
- "z": "437615b9.a7c5f4",
- "name": "",
- "splt": "\\n",
- "spltType": "str",
- "arraySplt": 1,
- "arraySpltType": "len",
- "stream": false,
- "addname": "topic",
- "x": 670,
- "y": 680,
- "wires": [
- [
- "eaf89058.f04c8"
- ]
- ]
- },
- {
- "id": "2f93d39c.917b3c",
- "type": "split",
- "z": "437615b9.a7c5f4",
- "name": "",
- "splt": "\\n",
- "spltType": "str",
- "arraySplt": 1,
- "arraySpltType": "len",
- "stream": false,
- "addname": "topic",
- "x": 670,
- "y": 720,
- "wires": [
- []
- ]
- },
- {
- "id": "912df86.3fb4088",
- "type": "change",
- "z": "437615b9.a7c5f4",
- "name": "psi",
- "rules": [
- {
- "t": "set",
- "p": "payload.pressure",
- "pt": "msg",
- "to": "payload.pressure *14.5",
- "tot": "jsonata"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 210,
- "y": 220,
- "wires": [
- [
- "364033c4.ba37ac"
- ]
- ]
- },
- {
- "id": "98cbba26.0c25e8",
- "type": "mqtt in",
- "z": "437615b9.a7c5f4",
- "name": "",
- "topic": "F1",
- "qos": "2",
- "datatype": "json",
- "broker": "7473ae41.ca29a",
- "x": 50,
- "y": 140,
- "wires": [
- [
- "6a8fc413.88c30c"
- ]
- ]
- },
- {
- "id": "e618a1eb.aef28",
- "type": "mqtt in",
- "z": "437615b9.a7c5f4",
- "name": "",
- "topic": "F2",
- "qos": "2",
- "datatype": "json",
- "broker": "7473ae41.ca29a",
- "x": 50,
- "y": 220,
- "wires": [
- [
- "912df86.3fb4088"
- ]
- ]
- },
- {
- "id": "6a8fc413.88c30c",
- "type": "change",
- "z": "437615b9.a7c5f4",
- "name": "psi",
- "rules": [
- {
- "t": "set",
- "p": "payload.pressure",
- "pt": "msg",
- "to": "payload.pressure *14.5",
- "tot": "jsonata"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 210,
- "y": 140,
- "wires": [
- [
- "6df8d545.32ca6c"
- ]
- ]
- },
- {
- "id": "80bbed54.3324",
- "type": "mqtt in",
- "z": "437615b9.a7c5f4",
- "name": "",
- "topic": "F4",
- "qos": "2",
- "datatype": "json",
- "broker": "7473ae41.ca29a",
- "x": 50,
- "y": 380,
- "wires": [
- [
- "e41ebed4.67993"
- ]
- ]
- },
- {
- "id": "e41ebed4.67993",
- "type": "change",
- "z": "437615b9.a7c5f4",
- "name": "psi",
- "rules": [
- {
- "t": "set",
- "p": "payload.pressure",
- "pt": "msg",
- "to": "payload.pressure *14.5",
- "tot": "jsonata"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 210,
- "y": 380,
- "wires": [
- [
- "e7ad6a09.027728"
- ]
- ]
- },
- {
- "id": "e7ad6a09.027728",
- "type": "split",
- "z": "437615b9.a7c5f4",
- "name": "",
- "splt": "\\n",
- "spltType": "str",
- "arraySplt": 1,
- "arraySpltType": "len",
- "stream": false,
- "addname": "topic",
- "x": 350,
- "y": 380,
- "wires": [
- [
- "7115fee5.db41b"
- ]
- ]
- },
- {
- "id": "7115fee5.db41b",
- "type": "fusion",
- "z": "437615b9.a7c5f4",
- "name": "",
- "x": 530,
- "y": 380,
- "wires": [
- [
- "d5c63287.28142"
- ]
- ]
- },
- {
- "id": "d5c63287.28142",
- "type": "delay",
- "z": "437615b9.a7c5f4",
- "name": "limit",
- "pauseType": "rate",
- "timeout": "5",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "8",
- "rateUnits": "minute",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": true,
- "x": 670,
- "y": 380,
- "wires": [
- [
- "3fe91b0d.3e4c44"
- ]
- ]
- },
- {
- "id": "b96915f.7e882e8",
- "type": "inject",
- "z": "437615b9.a7c5f4",
- "name": "Fusion config",
- "topic": "fusion-configuration",
- "payload": "{\"outputTopic\":\"F4\",\"inputTopics\":[\"beer\",\"name\",\"temp\",\"ext_temp\",\"aux_temp\",\"temp_unit\",\"pressure\",\"pressure_unit\",\"gravity\",\"tilttemperature\",\"comment\"],\"allowUndefined\":true,\"onlyPayloads\":true}",
- "payloadType": "json",
- "repeat": "",
- "crontab": "",
- "once": true,
- "onceDelay": "2",
- "x": 80,
- "y": 420,
- "wires": [
- [
- "7115fee5.db41b"
- ]
- ]
- },
- {
- "id": "e5e0b27a.139ec",
- "type": "mqtt in",
- "z": "437615b9.a7c5f4",
- "name": "",
- "topic": "F3",
- "qos": "2",
- "datatype": "json",
- "broker": "7473ae41.ca29a",
- "x": 50,
- "y": 300,
- "wires": [
- [
- "d3d6ae24.b2106"
- ]
- ]
- },
- {
- "id": "d3d6ae24.b2106",
- "type": "change",
- "z": "437615b9.a7c5f4",
- "name": "psi",
- "rules": [
- {
- "t": "set",
- "p": "payload.pressure",
- "pt": "msg",
- "to": "payload.pressure *14.5",
- "tot": "jsonata"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 210,
- "y": 300,
- "wires": [
- [
- "26fb8222.740f1e"
- ]
- ]
- },
- {
- "id": "26fb8222.740f1e",
- "type": "split",
- "z": "437615b9.a7c5f4",
- "name": "",
- "splt": "\\n",
- "spltType": "str",
- "arraySplt": 1,
- "arraySpltType": "len",
- "stream": false,
- "addname": "topic",
- "x": 350,
- "y": 300,
- "wires": [
- [
- "b78a3685.9735f8"
- ]
- ]
- },
- {
- "id": "b78a3685.9735f8",
- "type": "fusion",
- "z": "437615b9.a7c5f4",
- "name": "",
- "x": 530,
- "y": 300,
- "wires": [
- [
- "7ec053df.e49f7c"
- ]
- ]
- },
- {
- "id": "7ec053df.e49f7c",
- "type": "delay",
- "z": "437615b9.a7c5f4",
- "name": "limit",
- "pauseType": "rate",
- "timeout": "5",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "8",
- "rateUnits": "minute",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": true,
- "x": 670,
- "y": 300,
- "wires": [
- [
- "339200ea.862f38",
- "3fe91b0d.3e4c44"
- ]
- ]
- },
- {
- "id": "1f6b7167.09b31f",
- "type": "inject",
- "z": "437615b9.a7c5f4",
- "name": "Fusion config",
- "topic": "fusion-configuration",
- "payload": "{\"outputTopic\":\"F3\",\"inputTopics\":[\"beer\",\"name\",\"temp\",\"ext_temp\",\"aux_temp\",\"temp_unit\",\"pressure\",\"pressure_unit\",\"gravity\",\"tilttemperature\",\"comment\"],\"allowUndefined\":true,\"onlyPayloads\":true}",
- "payloadType": "json",
- "repeat": "",
- "crontab": "",
- "once": true,
- "onceDelay": "2",
- "x": 80,
- "y": 340,
- "wires": [
- [
- "b78a3685.9735f8"
- ]
- ]
- },
- {
- "id": "733f3010.602cb",
- "type": "mqtt in",
- "z": "437615b9.a7c5f4",
- "name": "RFbridge",
- "topic": "tele/RFbridge/RESULT",
- "qos": "2",
- "datatype": "json",
- "broker": "7473ae41.ca29a",
- "x": 70,
- "y": 520,
- "wires": [
- [
- "56e704f3.3454fc"
- ]
- ]
- },
- {
- "id": "56e704f3.3454fc",
- "type": "debug",
- "z": "437615b9.a7c5f4",
- "name": "",
- "active": true,
- "tosidebar": true,
- "console": false,
- "tostatus": false,
- "complete": "false",
- "x": 300,
- "y": 520,
- "wires": []
- },
- {
- "id": "47b59f9c.fe397",
- "type": "http request",
- "z": "437615b9.a7c5f4",
- "name": "Red tilt",
- "method": "GET",
- "ret": "obj",
- "paytoqs": false,
- "url": "http://192.168.77.246:8000/global/Redtilt",
- "tls": "",
- "proxy": "",
- "authType": "basic",
- "x": 260,
- "y": 820,
- "wires": [
- [
- "8799eeb1.bd8f7"
- ]
- ]
- },
- {
- "id": "375e0433.64890c",
- "type": "inject",
- "z": "437615b9.a7c5f4",
- "name": "",
- "topic": "",
- "payload": "",
- "payloadType": "date",
- "repeat": "",
- "crontab": "",
- "once": false,
- "onceDelay": 0.1,
- "x": 100,
- "y": 780,
- "wires": [
- [
- "47b59f9c.fe397"
- ]
- ]
- },
- {
- "id": "8799eeb1.bd8f7",
- "type": "debug",
- "z": "437615b9.a7c5f4",
- "name": "",
- "active": true,
- "tosidebar": true,
- "console": false,
- "tostatus": false,
- "complete": "false",
- "x": 470,
- "y": 820,
- "wires": []
- },
- {
- "id": "fbd70bf2.d1c66",
- "type": "influxdb out",
- "z": "b2ff4bbb.08e61",
- "influxdb": "2778b469.9fa82c",
- "name": "influxDB",
- "measurement": "",
- "precision": "",
- "retentionPolicy": "",
- "x": 720,
- "y": 260,
- "wires": []
- },
- {
- "id": "e3a459de.e3c5c",
- "type": "change",
- "z": "b2ff4bbb.08e61",
- "name": "",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "payload.DS18B20.Temperature",
- "tot": "msg"
- },
- {
- "t": "set",
- "p": "measurement",
- "pt": "msg",
- "to": "topic",
- "tot": "msg"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 400,
- "y": 340,
- "wires": [
- [
- "1f743b63.7803bd"
- ]
- ]
- },
- {
- "id": "1f743b63.7803bd",
- "type": "delay",
- "z": "b2ff4bbb.08e61",
- "name": "",
- "pauseType": "queue",
- "timeout": "5",
- "timeoutUnits": "seconds",
- "rate": "1",
- "nbRateUnits": "1",
- "rateUnits": "minute",
- "randomFirst": "1",
- "randomLast": "5",
- "randomUnits": "seconds",
- "drop": true,
- "x": 590,
- "y": 340,
- "wires": [
- [
- "fbd70bf2.d1c66"
- ]
- ]
- },
- {
- "id": "ff1bd7c2.595038",
- "type": "mqtt in",
- "z": "b08b12c9.6b2f2",
- "name": "",
- "topic": "shellies/#",
- "qos": "2",
- "datatype": "auto",
- "broker": "7473ae41.ca29a",
- "x": 80,
- "y": 120,
- "wires": [
- [
- "3fb20067.eaf49",
- "19674d39.54aa43",
- "9a48ff03.ffa42"
- ]
- ]
- },
- {
- "id": "fe1ce417.786978",
- "type": "mqtt out",
- "z": "b08b12c9.6b2f2",
- "name": "BadVK",
- "topic": "shellies/shelly1pm-BA095A/relay/0/command",
- "qos": "",
- "retain": "",
- "broker": "7473ae41.ca29a",
- "x": 1100,
- "y": 60,
- "wires": []
- },
- {
- "id": "84b8ddfa.4b478",
- "type": "mqtt out",
- "z": "b08b12c9.6b2f2",
- "name": "Stueovn",
- "topic": "shellies/shellyplug-s-0414A5/relay/0/command",
- "qos": "",
- "retain": "",
- "broker": "7473ae41.ca29a",
- "x": 1100,
- "y": 100,
- "wires": []
- },
- {
- "id": "b068d094.e7aa5",
- "type": "function",
- "z": "b08b12c9.6b2f2",
- "name": "thermostat",
- "func": "var temp = flow.get('temp')\nvar hysteresis = 0.5\nvar offsetpoint = flow.get('setpoint')\nvar onsetpoint = offsetpoint - hysteresis\n\n if (temp < onsetpoint) {\n msg.payload = \"on\"\n return msg;\n }\n if (temp > offsetpoint) {\n msg.payload = \"off\"\n return msg;\n }\n\n",
- "outputs": 1,
- "noerr": 0,
- "x": 830,
- "y": 80,
- "wires": [
- [
- "fe1ce417.786978",
- "84b8ddfa.4b478"
- ]
- ]
- },
- {
- "id": "aa8ef986.28e608",
- "type": "switch",
- "z": "b08b12c9.6b2f2",
- "name": "temp",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "temperature",
- "vt": "str",
- "case": false
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 470,
- "y": 120,
- "wires": [
- [
- "5232542e.36539c",
- "9c8e2655.c710a8"
- ]
- ]
- },
- {
- "id": "fc7a24aa.ad4378",
- "type": "switch",
- "z": "b08b12c9.6b2f2",
- "name": "overtemp",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "overtemperature",
- "vt": "str",
- "case": false
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 480,
- "y": 240,
- "wires": [
- [
- "67263cd3.005e14"
- ]
- ]
- },
- {
- "id": "67263cd3.005e14",
- "type": "switch",
- "z": "b08b12c9.6b2f2",
- "name": "overtemp",
- "property": "payload",
- "propertyType": "msg",
- "rules": [
- {
- "t": "eq",
- "v": "1",
- "vt": "str"
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 640,
- "y": 240,
- "wires": [
- [
- "a709de12.ae7"
- ]
- ]
- },
- {
- "id": "3fb20067.eaf49",
- "type": "switch",
- "z": "b08b12c9.6b2f2",
- "name": "shellyht",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "shellyht",
- "vt": "str",
- "case": false
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 260,
- "y": 120,
- "wires": [
- [
- "aa8ef986.28e608",
- "7611d9fe.4a4e98",
- "94d85067.b6a2b"
- ]
- ]
- },
- {
- "id": "5232542e.36539c",
- "type": "ui_gauge",
- "z": "b08b12c9.6b2f2",
- "name": "",
- "group": "366500a5.06556",
- "order": 1,
- "width": "0",
- "height": "0",
- "gtype": "gage",
- "title": "Temperature",
- "label": "C",
- "format": "{{value | number:1}} C",
- "min": 0,
- "max": "30",
- "colors": [
- "#00b500",
- "#e6e600",
- "#ca3838"
- ],
- "seg1": "",
- "seg2": "",
- "x": 830,
- "y": 320,
- "wires": []
- },
- {
- "id": "7611d9fe.4a4e98",
- "type": "switch",
- "z": "b08b12c9.6b2f2",
- "name": "humid",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "humidity",
- "vt": "str",
- "case": false
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 470,
- "y": 160,
- "wires": [
- [
- "d9ad68fc.58e5d8",
- "34cd86ad.75243a"
- ]
- ]
- },
- {
- "id": "d9ad68fc.58e5d8",
- "type": "ui_gauge",
- "z": "b08b12c9.6b2f2",
- "name": "",
- "group": "366500a5.06556",
- "order": 2,
- "width": 0,
- "height": 0,
- "gtype": "gage",
- "title": "Humidity",
- "label": "%",
- "format": "{{value | number:0}} %",
- "min": 0,
- "max": "100",
- "colors": [
- "#00b500",
- "#e6e600",
- "#ca3838"
- ],
- "seg1": "",
- "seg2": "",
- "x": 820,
- "y": 360,
- "wires": []
- },
- {
- "id": "94d85067.b6a2b",
- "type": "switch",
- "z": "b08b12c9.6b2f2",
- "name": "battery",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "battery",
- "vt": "str",
- "case": false
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 470,
- "y": 200,
- "wires": [
- [
- "e010c2a6.74982",
- "4ada3d3b.ef84d4"
- ]
- ]
- },
- {
- "id": "e010c2a6.74982",
- "type": "ui_gauge",
- "z": "b08b12c9.6b2f2",
- "name": "",
- "group": "366500a5.06556",
- "order": 2,
- "width": 0,
- "height": 0,
- "gtype": "gage",
- "title": "Battery",
- "label": "%",
- "format": "{{value | number:0}} %",
- "min": 0,
- "max": "100",
- "colors": [
- "#ff0000",
- "#e6e600",
- "#00ff00"
- ],
- "seg1": "30",
- "seg2": "60",
- "x": 820,
- "y": 400,
- "wires": []
- },
- {
- "id": "c8d66643.90c748",
- "type": "blynk-ws-in-write",
- "z": "b08b12c9.6b2f2",
- "name": "Setpoint",
- "pin": "2",
- "pin_all": 0,
- "client": "44e1a68b.8d3478",
- "x": 480,
- "y": 60,
- "wires": [
- [
- "6e4a9d43.9725e4"
- ]
- ]
- },
- {
- "id": "6e4a9d43.9725e4",
- "type": "change",
- "z": "b08b12c9.6b2f2",
- "name": "store sp",
- "rules": [
- {
- "t": "set",
- "p": "setpoint",
- "pt": "flow",
- "to": "payload",
- "tot": "msg"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 640,
- "y": 60,
- "wires": [
- [
- "b068d094.e7aa5"
- ]
- ]
- },
- {
- "id": "9c8e2655.c710a8",
- "type": "change",
- "z": "b08b12c9.6b2f2",
- "name": "store temp",
- "rules": [
- {
- "t": "set",
- "p": "temp",
- "pt": "flow",
- "to": "payload",
- "tot": "msg"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 650,
- "y": 100,
- "wires": [
- [
- "b068d094.e7aa5",
- "fb2e190a.8110d8"
- ]
- ]
- },
- {
- "id": "fb2e190a.8110d8",
- "type": "blynk-ws-out-write",
- "z": "b08b12c9.6b2f2",
- "name": "temp",
- "pin": "3",
- "pinmode": 0,
- "client": "44e1a68b.8d3478",
- "x": 810,
- "y": 120,
- "wires": []
- },
- {
- "id": "34cd86ad.75243a",
- "type": "blynk-ws-out-write",
- "z": "b08b12c9.6b2f2",
- "name": "humidity",
- "pin": "4",
- "pinmode": 0,
- "client": "44e1a68b.8d3478",
- "x": 820,
- "y": 160,
- "wires": []
- },
- {
- "id": "4ada3d3b.ef84d4",
- "type": "blynk-ws-out-write",
- "z": "b08b12c9.6b2f2",
- "name": "battery",
- "pin": "5",
- "pinmode": 0,
- "client": "44e1a68b.8d3478",
- "x": 810,
- "y": 200,
- "wires": []
- },
- {
- "id": "a709de12.ae7",
- "type": "change",
- "z": "b08b12c9.6b2f2",
- "name": "off",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "off",
- "tot": "str"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 810,
- "y": 240,
- "wires": [
- [
- "fe1ce417.786978"
- ]
- ]
- },
- {
- "id": "19674d39.54aa43",
- "type": "switch",
- "z": "b08b12c9.6b2f2",
- "name": "shelly1pm",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "shelly1pm",
- "vt": "str",
- "case": false
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 260,
- "y": 160,
- "wires": [
- [
- "fc7a24aa.ad4378"
- ]
- ]
- },
- {
- "id": "9a48ff03.ffa42",
- "type": "switch",
- "z": "b08b12c9.6b2f2",
- "name": "shellyplug",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "shellyplug",
- "vt": "str",
- "case": false
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 260,
- "y": 200,
- "wires": [
- [
- "4930ed5c.458bf4"
- ]
- ]
- },
- {
- "id": "4930ed5c.458bf4",
- "type": "switch",
- "z": "b08b12c9.6b2f2",
- "name": "overtemp",
- "property": "topic",
- "propertyType": "msg",
- "rules": [
- {
- "t": "regex",
- "v": "overtemperature",
- "vt": "str",
- "case": false
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 480,
- "y": 280,
- "wires": [
- [
- "df14565.a4332a8"
- ]
- ]
- },
- {
- "id": "df14565.a4332a8",
- "type": "switch",
- "z": "b08b12c9.6b2f2",
- "name": "overtemp",
- "property": "payload",
- "propertyType": "msg",
- "rules": [
- {
- "t": "eq",
- "v": "1",
- "vt": "str"
- }
- ],
- "checkall": "true",
- "repair": false,
- "outputs": 1,
- "x": 640,
- "y": 280,
- "wires": [
- [
- "8804f99a.02e288"
- ]
- ]
- },
- {
- "id": "8804f99a.02e288",
- "type": "change",
- "z": "b08b12c9.6b2f2",
- "name": "off",
- "rules": [
- {
- "t": "set",
- "p": "payload",
- "pt": "msg",
- "to": "off",
- "tot": "str"
- }
- ],
- "action": "",
- "property": "",
- "from": "",
- "to": "",
- "reg": false,
- "x": 810,
- "y": 280,
- "wires": [
- [
- "84b8ddfa.4b478"
- ]
- ]
- }
- ]
Advertisement
Add Comment
Please, Sign In to add comment