@demirdeniz/node-red-contrib-tuya-api
Version:
access tuya devices via cloud api and local sockets
376 lines (375 loc) • 9.55 kB
JSON
[
{
"id": "d5cc41388ac44c43",
"type": "inject",
"z": "71f803001b268706",
"name": "incense",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
},
{
"p": "device_id",
"v": "incense_device_id",
"vt": "global"
}
],
"repeat": "60",
"crontab": "",
"once": true,
"onceDelay": "20",
"topic": "",
"payload": "request1",
"payloadType": "str",
"x": 260,
"y": 1640,
"wires": [
[
"00c03024bf18afa1"
]
]
},
{
"id": "00c03024bf18afa1",
"type": "link call",
"z": "71f803001b268706",
"name": "get_incense status",
"links": [
"fa7e507cac1b8320"
],
"timeout": "30",
"x": 450,
"y": 1640,
"wires": [
[
"c74e11cebbeb95ce"
]
]
},
{
"id": "c74e11cebbeb95ce",
"type": "function",
"z": "71f803001b268706",
"name": "get status",
"func": "if (!msg.hasOwnProperty(\"payload\")){\n return;\n}\nif (!msg.payload.hasOwnProperty(\"dps\")){\n return;\n}\nmsg.payload = msg.payload.dps[1]\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 660,
"y": 1640,
"wires": [
[
"53301900fb9e0792"
]
]
},
{
"id": "53301900fb9e0792",
"type": "link out",
"z": "71f803001b268706",
"name": "incense on",
"mode": "link",
"links": [
"75edad2dcdab97e6"
],
"x": 815,
"y": 1640,
"wires": []
},
{
"id": "87a053141c3116d1",
"type": "inject",
"z": "71f803001b268706",
"name": "status",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": "10",
"topic": "",
"payload": "status",
"payloadType": "str",
"x": 210,
"y": 1960,
"wires": [
[
"9f39fb5064e8fa80"
]
]
},
{
"id": "b4df8ef51628635e",
"type": "debug",
"z": "71f803001b268706",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1350,
"y": 1960,
"wires": []
},
{
"id": "c5165e0c77ae6b30",
"type": "function",
"z": "71f803001b268706",
"name": "",
"func": "if (msg.error !== undefined){\n if (msg.error == \"already processing message\"){\n var diff = msg.timestamp - msg.old.timestamp;\n node.warn(diff);\n node.warn(msg.old);\n return msg;\n }\n}\nif (!msg.called){\n return;\n}\nif (msg.block){\n return;\n}\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 860,
"y": 1760,
"wires": [
[
"bd466a80a504842a",
"3f3759091e2f1205"
]
]
},
{
"id": "c3ccc5eef888833a",
"type": "tuya-local-msocket",
"z": "71f803001b268706",
"devName": "msocket",
"protocolVer": "3.3",
"pollingInterval": "50",
"renameSchema": "",
"filterCB": "",
"x": 636,
"y": 1761,
"wires": [
[
"c5165e0c77ae6b30"
]
]
},
{
"id": "bd466a80a504842a",
"type": "link out",
"z": "71f803001b268706",
"name": "",
"mode": "return",
"links": [],
"x": 1115,
"y": 1760,
"wires": []
},
{
"id": "9f39fb5064e8fa80",
"type": "link call",
"z": "71f803001b268706",
"name": "msocket 3.3",
"links": [
"462bc86fb056a72d"
],
"timeout": "30",
"x": 630,
"y": 1960,
"wires": [
[
"820707d1bd229628"
]
]
},
{
"id": "462bc86fb056a72d",
"type": "link in",
"z": "71f803001b268706",
"name": "msocket 3.3",
"links": [],
"x": 225,
"y": 1760,
"wires": [
[
"ec93a26421b5fc3a"
]
]
},
{
"id": "3f3759091e2f1205",
"type": "function",
"z": "71f803001b268706",
"name": "reconnect",
"func": "if (msg.data == undefined){\n return;\n}\nif (msg.data.available == true){\n return;\n}\n\nvar device_id = global.get(msg.data.id);\nif (device_id === undefined){\n node.warn(\"missing id\");\n node.warn(msg);\n return;\n} \nmsg.id = global.get(device_id);\nmsg.key = global.get(device_id+\"_local_key\");\nmsg.ip = global.get(device_id+\"_ip\");\nmsg.topic=device_id;\nmsg.payload=\"connect\";\nmsg.reconnect = true;\nmsg.block = true;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 1900,
"wires": [
[
"3bc4e70bc93e820e"
]
]
},
{
"id": "3bc4e70bc93e820e",
"type": "delay",
"z": "71f803001b268706",
"name": "",
"pauseType": "timed",
"timeout": "5",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "30",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": true,
"allowrate": false,
"outputs": 1,
"x": 1200,
"y": 1900,
"wires": [
[
"c3ccc5eef888833a",
"349f29c3184fff7e"
]
]
},
{
"id": "349f29c3184fff7e",
"type": "debug",
"z": "71f803001b268706",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "topic",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1300,
"y": 1800,
"wires": []
},
{
"id": "820707d1bd229628",
"type": "split",
"z": "71f803001b268706",
"name": "",
"splt": "\\n",
"spltType": "str",
"arraySplt": 1,
"arraySpltType": "len",
"stream": false,
"addname": "device_id",
"x": 830,
"y": 1960,
"wires": [
[
"e85184e6d63cfb27"
]
]
},
{
"id": "e85184e6d63cfb27",
"type": "function",
"z": "71f803001b268706",
"name": "",
"func": "msg.payload.id = global.get(msg.device_id);\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1000,
"y": 1960,
"wires": [
[
"b4df8ef51628635e"
]
]
},
{
"id": "12e84b82adc35f39",
"type": "join",
"z": "71f803001b268706",
"name": "",
"mode": "auto",
"build": "object",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": true,
"timeout": "",
"count": "",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 1190,
"y": 1960,
"wires": [
[]
]
},
{
"id": "e8f8346c9c18d374",
"type": "debug",
"z": "71f803001b268706",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 950,
"y": 1700,
"wires": []
},
{
"id": "ec93a26421b5fc3a",
"type": "change",
"z": "71f803001b268706",
"name": "",
"rules": [
{
"t": "set",
"p": "timestamp",
"pt": "msg",
"to": "",
"tot": "date"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 410,
"y": 1760,
"wires": [
[
"c3ccc5eef888833a"
]
]
}
]