Files
node-red-contrib-mi-devices/flows-sample.json

587 lines
13 KiB
JSON

[
{
"id": "821cff63.382248",
"type": "tab",
"label": "Mi Devices Sample",
"disabled": false,
"info": ""
},
{
"id": "6caf94b0.f846f4",
"type": "comment",
"z": "821cff63.382248",
"name": "Get all sensors and gateway statuses",
"info": "",
"x": 390,
"y": 40,
"wires": []
},
{
"id": "e28ead99.c33338",
"type": "inject",
"z": "821cff63.382248",
"name": "",
"topic": "",
"payload": "",
"payloadType": "date",
"repeat": "",
"crontab": "",
"once": true,
"x": 107.14285714285711,
"y": 95,
"wires": [
[
"db3b7e35.9432a8",
"eae70f40.0c904"
]
]
},
{
"id": "db3b7e35.9432a8",
"type": "xiaomi-all",
"z": "821cff63.382248",
"gateway": "",
"name": "",
"x": 300,
"y": 100,
"wires": [
[
"2e706194.3c27ee"
]
]
},
{
"id": "eae70f40.0c904",
"type": "xiaomi-gateway",
"z": "821cff63.382248",
"gateway": "",
"name": "",
"x": 320,
"y": 160,
"wires": [
[
"aa109dae.2d9438"
]
]
},
{
"id": "2e706194.3c27ee",
"type": "split",
"z": "821cff63.382248",
"name": "",
"splt": "\\n",
"spltType": "str",
"arraySplt": 1,
"arraySpltType": "len",
"stream": false,
"addname": "",
"x": 490,
"y": 100,
"wires": [
[
"e1cbbde3.9a2ab8"
]
]
},
{
"id": "e1cbbde3.9a2ab8",
"type": "change",
"z": "821cff63.382248",
"name": "set id",
"rules": [
{
"t": "set",
"p": "sid",
"pt": "msg",
"to": "payload.sid",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 650,
"y": 100,
"wires": [
[
"aa109dae.2d9438"
]
]
},
{
"id": "aa109dae.2d9438",
"type": "xiaomi-actions read",
"z": "821cff63.382248",
"name": "",
"x": 810,
"y": 100,
"wires": [
[
"d42a0577.a9bbb"
]
]
},
{
"id": "d42a0577.a9bbb",
"type": "xiaomi-gateway out",
"z": "821cff63.382248",
"name": "",
"gateway": "",
"ip": "",
"x": 1000,
"y": 100,
"wires": []
},
{
"id": "43eaf652.25b4b8",
"type": "comment",
"z": "821cff63.382248",
"name": "Check if a window at least one window open",
"info": "",
"x": 410,
"y": 300,
"wires": []
},
{
"id": "2df06b27.29db24",
"type": "xiaomi-all",
"z": "821cff63.382248",
"gateway": "",
"name": "",
"x": 300,
"y": 360,
"wires": [
[
"219409ac.757b0e",
"b6ad7f55.18f99"
]
]
},
{
"id": "e1ff739f.b36108",
"type": "split",
"z": "821cff63.382248",
"name": "",
"splt": "\\n",
"spltType": "str",
"arraySplt": 1,
"arraySpltType": "len",
"stream": false,
"addname": "",
"x": 630,
"y": 360,
"wires": [
[
"f03d4922.cee86"
]
]
},
{
"id": "219409ac.757b0e",
"type": "function",
"z": "821cff63.382248",
"name": "filter windows",
"func": "let windowSensors = msg.payload.filter((e) => {\n return e.model === \"magnet\";\n});\nmsg.payload = windowSensors;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 460,
"y": 360,
"wires": [
[
"e1ff739f.b36108"
]
]
},
{
"id": "f03d4922.cee86",
"type": "change",
"z": "821cff63.382248",
"name": "set id",
"rules": [
{
"t": "set",
"p": "sid",
"pt": "msg",
"to": "payload.sid",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 770,
"y": 360,
"wires": [
[
"fc9ceef6.4b5ab"
]
]
},
{
"id": "fc9ceef6.4b5ab",
"type": "xiaomi-actions read",
"z": "821cff63.382248",
"name": "",
"x": 910,
"y": 360,
"wires": [
[
"5b0ada34.5af104"
]
]
},
{
"id": "5b0ada34.5af104",
"type": "xiaomi-gateway out",
"z": "821cff63.382248",
"name": "",
"gateway": "",
"ip": "",
"x": 1100,
"y": 360,
"wires": []
},
{
"id": "d9ffa93a.e40638",
"type": "xiaomi-gateway in",
"z": "821cff63.382248",
"name": "",
"gateway": "",
"ip": "",
"x": 100,
"y": 480,
"wires": [
[
"1c6df817.0a0bb"
]
]
},
{
"id": "1c6df817.0a0bb",
"type": "function",
"z": "821cff63.382248",
"name": "set window sensor value",
"func": "if ([\"magnet\", \"sensor_magnet.aq2\"].indexOf(msg.payload.model) >= 0 && msg.payload.sid !== \"158d0001ab1fa8\") {\n let globalKey = `windowSensorStatus-${msg.payload.sid}`;\n global.set(globalKey, msg.payload.data.status);\n}\n",
"outputs": "0",
"noerr": 0,
"x": 330,
"y": 480,
"wires": []
},
{
"id": "e030edc3.f85a18",
"type": "function",
"z": "821cff63.382248",
"name": "get window sensors values",
"func": "let windowSensors = {};\nmsg.payload.filter((e) => {\n return e.model === \"magnet\";\n}).forEach((e) => {\n let globalKey = `windowSensorStatus-${e.sid}`;\n let value = global.get(globalKey);\n if(!value || value == \"open\") {\n windowSensors[e.sid] = value || \"na\";\n }\n});\n\nmsg.payload = windowSensors;\nif(Object.keys(windowSensors).length) {\n return [msg, null];\n}\nreturn [null, msg];",
"outputs": "2",
"noerr": 0,
"x": 680,
"y": 420,
"wires": [
[],
[]
],
"outputLabels": [
"at least one window is open",
"all windows are close"
]
},
{
"id": "b6ad7f55.18f99",
"type": "delay",
"z": "821cff63.382248",
"name": "",
"pauseType": "delay",
"timeout": "500",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 450,
"y": 420,
"wires": [
[
"e030edc3.f85a18"
]
]
},
{
"id": "7838f0b6.d0ea5",
"type": "comment",
"z": "821cff63.382248",
"name": "Doorbell",
"info": "",
"x": 300,
"y": 580,
"wires": []
},
{
"id": "8de3e2f.b76f2a",
"type": "xiaomi-gateway in",
"z": "821cff63.382248",
"name": "",
"gateway": "",
"ip": "",
"x": 100,
"y": 660,
"wires": [
[
"f96c8911.21e9"
]
]
},
{
"id": "26684d11.692aa2",
"type": "function",
"z": "821cff63.382248",
"name": "is click",
"func": "if(msg.payload.cmd === \"report\" && msg.payload.data.status == \"click\") {\n return msg;\n}\nreturn null;",
"outputs": "1",
"noerr": 0,
"x": 470,
"y": 660,
"wires": [
[
"2be5185d.959f2",
"1d76619d.106536",
"1afbffce.6c1d2"
]
]
},
{
"id": "2be5185d.959f2",
"type": "xiaomi-actions gateway_sound",
"z": "821cff63.382248",
"gateway": "",
"name": "",
"mid": "10",
"volume": "20",
"x": 650,
"y": 640,
"wires": [
[
"7fa04a92.0851dc"
]
]
},
{
"id": "7fa04a92.0851dc",
"type": "xiaomi-gateway out",
"z": "821cff63.382248",
"name": "",
"gateway": "",
"ip": "",
"x": 1260,
"y": 640,
"wires": []
},
{
"id": "21b53d98.e9ecca",
"type": "template",
"z": "821cff63.382248",
"name": "off",
"field": "brightness",
"fieldType": "msg",
"format": "handlebars",
"syntax": "plain",
"template": "0",
"output": "str",
"x": 850,
"y": 800,
"wires": [
[
"7bac4ce.ffef434"
]
]
},
{
"id": "1d76619d.106536",
"type": "template",
"z": "821cff63.382248",
"name": "on",
"field": "brightness",
"fieldType": "msg",
"format": "handlebars",
"syntax": "plain",
"template": "100",
"output": "str",
"x": 850,
"y": 760,
"wires": [
[
"7bac4ce.ffef434"
]
]
},
{
"id": "7bac4ce.ffef434",
"type": "xiaomi-actions gateway_light",
"z": "821cff63.382248",
"gateway": "",
"name": "",
"x": 1000,
"y": 760,
"wires": [
[
"7fa04a92.0851dc"
]
]
},
{
"id": "1afbffce.6c1d2",
"type": "delay",
"z": "821cff63.382248",
"name": "500ms",
"pauseType": "delay",
"timeout": "500",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 650,
"y": 720,
"wires": [
[
"21b53d98.e9ecca",
"ad79b644.f7e05"
]
]
},
{
"id": "ad79b644.f7e05",
"type": "delay",
"z": "821cff63.382248",
"name": "500ms",
"pauseType": "delay",
"timeout": "500",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 650,
"y": 760,
"wires": [
[
"1d76619d.106536",
"8916da4a.6aeb58"
]
]
},
{
"id": "8916da4a.6aeb58",
"type": "delay",
"z": "821cff63.382248",
"name": "500ms",
"pauseType": "delay",
"timeout": "500",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 650,
"y": 800,
"wires": [
[
"21b53d98.e9ecca",
"b83a24c8.4d0f38"
]
]
},
{
"id": "b83a24c8.4d0f38",
"type": "delay",
"z": "821cff63.382248",
"name": "500ms",
"pauseType": "delay",
"timeout": "500",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 650,
"y": 840,
"wires": [
[
"1d76619d.106536",
"ce69d5d.693d4a8"
]
]
},
{
"id": "ce69d5d.693d4a8",
"type": "delay",
"z": "821cff63.382248",
"name": "500ms",
"pauseType": "delay",
"timeout": "500",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 650,
"y": 880,
"wires": [
[
"21b53d98.e9ecca"
]
]
},
{
"id": "b7526133.93348",
"type": "comment",
"z": "821cff63.382248",
"name": "gateway light flick 3 times",
"info": "",
"x": 890,
"y": 720,
"wires": []
},
{
"id": "f96c8911.21e9",
"type": "xiaomi-switch",
"z": "821cff63.382248",
"gateway": "",
"name": "",
"sid": "",
"outmsg": "{{click}}",
"outmsgdbcl": "{{double_click}}",
"output": "0",
"x": 300,
"y": 660,
"wires": [
[
"26684d11.692aa2"
]
]
}
]