node-red-contrib-tado-client
Version:
Tado web API client node for Node Red
797 lines (796 loc) • 19.5 kB
JSON
[
{
"id": "9e3fc1e5920df13e",
"type": "tab",
"label": "Tado Example",
"disabled": false,
"info": "",
"env": []
},
{
"id": "e45737bf2dfc09ca",
"type": "group",
"z": "9e3fc1e5920df13e",
"name": "Authentication Flow",
"style": {
"label": true
},
"nodes": [
"c2a59ce3cbc1a6db",
"f8d92b408ed05fea",
"9a3df48d60760ae8",
"d0cb4b711f17ceb5"
],
"x": 34,
"y": 99,
"w": 392,
"h": 142
},
{
"id": "6b8abc4c1228c6b1",
"type": "group",
"z": "9e3fc1e5920df13e",
"name": "Testing",
"style": {
"label": true
},
"nodes": [
"22155bd86d78bdbb",
"cc5ec8679560fe5d",
"69a719df61ed5c2b",
"250fbd76a8f2bc52",
"867b9b31e4408af3",
"c64c14055e902de8",
"2440192c493c6d55",
"366e43fa3a4771b0",
"eea64763dc439955",
"6773d11c63e5945a",
"2134a0f81af1a301",
"b923814343043572",
"c6f6d557bb5b0cc6",
"b04b2ac4269dc6d6"
],
"x": 34,
"y": 259,
"w": 752,
"h": 482
},
{
"id": "13aab1b257852074",
"type": "group",
"z": "9e3fc1e5920df13e",
"name": "Persistent Auth",
"style": {
"label": true
},
"nodes": [
"30610116b3394ad1",
"4abc9bdf38f121a7",
"80d38fa2cd075522",
"abb86d2a9c554ffe",
"d21f1766922dd03e",
"ad74a70fdd516c17",
"c004a0badbf1a92f"
],
"x": 474,
"y": 99,
"w": 772,
"h": 142
},
{
"id": "366e43fa3a4771b0",
"type": "junction",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"x": 560,
"y": 460,
"wires": [
[
"867b9b31e4408af3"
]
]
},
{
"id": "22155bd86d78bdbb",
"type": "inject",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 140,
"y": 540,
"wires": [
[
"b923814343043572"
]
]
},
{
"id": "cc5ec8679560fe5d",
"type": "inject",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 140,
"y": 620,
"wires": [
[
"c6f6d557bb5b0cc6"
]
]
},
{
"id": "69a719df61ed5c2b",
"type": "inject",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 140,
"y": 700,
"wires": [
[
"b04b2ac4269dc6d6"
]
]
},
{
"id": "250fbd76a8f2bc52",
"type": "inject",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 140,
"y": 460,
"wires": [
[
"2134a0f81af1a301"
]
]
},
{
"id": "867b9b31e4408af3",
"type": "debug",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 670,
"y": 460,
"wires": []
},
{
"id": "c64c14055e902de8",
"type": "inject",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 140,
"y": 380,
"wires": [
[
"6773d11c63e5945a"
]
]
},
{
"id": "37c84193acb2e93e",
"type": "comment",
"z": "9e3fc1e5920df13e",
"name": "README First",
"info": "Various examples of how to use the *Tado* node\n\n**Tado no longer uses username/password auth.**\n\nInstead you should `inject` into the \"Authentication Flow\"\nand monitor the debug output. This will trigger a device\nauth flow, that will require you to visit a URL to login.\n\nOnce you've logged in a token will be printed to the\ndebug window. You can use this token to bypass the auth process\nnext time.\n\nAn example of storing your refresh token is shown in the\n\"Persistent Authentication\" group - you'll need to enable this.\nYou should disable the \"Authentication Flow\" group as only a single\n\"tado-token\" node can exist within a flow at any time (this is a\nknown bug). You will likely also want to change the location of\nthe tado token from the default \"/data/tado.json\".\n\nYou should also replace the `home_id` in the calls\nwith your `home_id` which can be found using the first\nexample of `getMe` API call.",
"x": 120,
"y": 60,
"wires": []
},
{
"id": "2440192c493c6d55",
"type": "inject",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 140,
"y": 300,
"wires": [
[
"eea64763dc439955"
]
]
},
{
"id": "c2a59ce3cbc1a6db",
"type": "inject",
"z": "9e3fc1e5920df13e",
"g": "e45737bf2dfc09ca",
"name": "",
"props": [],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"x": 130,
"y": 140,
"wires": [
[
"d0cb4b711f17ceb5"
]
]
},
{
"id": "f8d92b408ed05fea",
"type": "debug",
"z": "9e3fc1e5920df13e",
"g": "e45737bf2dfc09ca",
"name": "Token",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 330,
"y": 200,
"wires": []
},
{
"id": "30610116b3394ad1",
"type": "file",
"z": "9e3fc1e5920df13e",
"d": true,
"g": "13aab1b257852074",
"name": "",
"filename": "/data/tado.json",
"filenameType": "str",
"appendNewline": false,
"createDir": false,
"overwriteFile": "true",
"encoding": "none",
"x": 740,
"y": 200,
"wires": [
[]
]
},
{
"id": "4abc9bdf38f121a7",
"type": "file in",
"z": "9e3fc1e5920df13e",
"d": true,
"g": "13aab1b257852074",
"name": "",
"filename": "/data/tado.json",
"filenameType": "str",
"format": "utf8",
"chunk": false,
"sendError": false,
"encoding": "none",
"allProps": false,
"x": 740,
"y": 140,
"wires": [
[
"abb86d2a9c554ffe"
]
]
},
{
"id": "80d38fa2cd075522",
"type": "inject",
"z": "9e3fc1e5920df13e",
"d": true,
"g": "13aab1b257852074",
"name": "",
"props": [],
"repeat": "",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "",
"x": 570,
"y": 140,
"wires": [
[
"4abc9bdf38f121a7"
]
]
},
{
"id": "abb86d2a9c554ffe",
"type": "change",
"z": "9e3fc1e5920df13e",
"d": true,
"g": "13aab1b257852074",
"name": "",
"rules": [
{
"t": "set",
"p": "refreshToken",
"pt": "msg",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 960,
"y": 140,
"wires": [
[
"c004a0badbf1a92f"
]
]
},
{
"id": "d21f1766922dd03e",
"type": "debug",
"z": "9e3fc1e5920df13e",
"d": true,
"g": "13aab1b257852074",
"name": "Auth",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1150,
"y": 200,
"wires": []
},
{
"id": "d0cb4b711f17ceb5",
"type": "tadox",
"z": "9e3fc1e5920df13e",
"g": "e45737bf2dfc09ca",
"apiCall": "authenticate",
"childlock": false,
"configName": "78a2fa8f8bb1978e",
"deviceId": "",
"endDate": "",
"geoTracking": true,
"homeId": "",
"maxTemperature": 0,
"name": "",
"power": "ON",
"presence": "HOME",
"quickAction": "allOf",
"reading": 0,
"readingDate": "",
"readingId": "",
"reportDate": "",
"roomId": "",
"startDate": "",
"tariffId": "",
"tariffInCents": 0,
"temperature": "18",
"temperatureOffset": 0,
"terminationTimeout": 900,
"terminationType": "manual",
"timetableId": "",
"unit": "m3",
"x": 300,
"y": 140,
"wires": [
[
"f8d92b408ed05fea"
]
]
},
{
"id": "9a3df48d60760ae8",
"type": "tadox-token",
"z": "9e3fc1e5920df13e",
"g": "e45737bf2dfc09ca",
"configName": "78a2fa8f8bb1978e",
"x": 130,
"y": 200,
"wires": [
[
"f8d92b408ed05fea"
]
]
},
{
"id": "eea64763dc439955",
"type": "tadox",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"apiCall": "getMe",
"childlock": false,
"configName": "78a2fa8f8bb1978e",
"deviceId": "",
"endDate": "",
"geoTracking": true,
"homeId": "",
"maxTemperature": 0,
"name": "",
"power": "ON",
"presence": "HOME",
"quickAction": "allOf",
"reading": 0,
"readingDate": "",
"readingId": "",
"reportDate": "",
"roomId": "",
"startDate": "",
"tariffId": "",
"tariffInCents": 0,
"temperature": "18",
"temperatureOffset": 0,
"terminationTimeout": 900,
"terminationType": "manual",
"timetableId": "",
"unit": "m3",
"x": 320,
"y": 300,
"wires": [
[
"366e43fa3a4771b0"
]
]
},
{
"id": "6773d11c63e5945a",
"type": "tadox",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"apiCall": "getActionableDevices",
"childlock": false,
"configName": "78a2fa8f8bb1978e",
"deviceId": "",
"endDate": "",
"geoTracking": true,
"homeId": "",
"maxTemperature": 0,
"name": "Get Device",
"power": "ON",
"presence": "HOME",
"quickAction": "allOf",
"reading": 0,
"readingDate": "",
"readingId": "",
"reportDate": "",
"roomId": "",
"startDate": "",
"tariffId": "",
"tariffInCents": 0,
"temperature": "18",
"temperatureOffset": 0,
"terminationTimeout": 900,
"terminationType": "manual",
"timetableId": "",
"unit": "m3",
"x": 310,
"y": 380,
"wires": [
[
"366e43fa3a4771b0"
]
]
},
{
"id": "2134a0f81af1a301",
"type": "tadox",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"apiCall": "setDeviceTemperatureOffset",
"childlock": false,
"configName": "78a2fa8f8bb1978e",
"deviceId": "",
"endDate": "",
"geoTracking": true,
"homeId": "",
"maxTemperature": 0,
"name": "Set Device Offset",
"power": "ON",
"presence": "HOME",
"quickAction": "allOf",
"reading": 0,
"readingDate": "",
"readingId": "",
"reportDate": "",
"roomId": "",
"startDate": "",
"tariffId": "",
"tariffInCents": 0,
"temperature": "18",
"temperatureOffset": 0,
"terminationTimeout": 900,
"terminationType": "manual",
"timetableId": "",
"unit": "m3",
"x": 330,
"y": 460,
"wires": [
[
"366e43fa3a4771b0"
]
]
},
{
"id": "b923814343043572",
"type": "tadox",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"apiCall": "getRoomState",
"childlock": false,
"configName": "78a2fa8f8bb1978e",
"deviceId": "",
"endDate": "",
"geoTracking": true,
"homeId": "",
"maxTemperature": 0,
"name": "Get Room State",
"power": "ON",
"presence": "HOME",
"quickAction": "allOf",
"reading": 0,
"readingDate": "",
"readingId": "",
"reportDate": "",
"roomId": "",
"startDate": "",
"tariffId": "",
"tariffInCents": 0,
"temperature": "18",
"temperatureOffset": 0,
"terminationTimeout": 900,
"terminationType": "manual",
"timetableId": "",
"unit": "m3",
"x": 320,
"y": 540,
"wires": [
[
"366e43fa3a4771b0"
]
]
},
{
"id": "c6f6d557bb5b0cc6",
"type": "tadox",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"apiCall": "manualControl",
"childlock": false,
"configName": "78a2fa8f8bb1978e",
"deviceId": "",
"endDate": "",
"geoTracking": true,
"homeId": "",
"maxTemperature": 0,
"name": "Heating On",
"power": "ON",
"presence": "HOME",
"quickAction": "allOf",
"reading": 0,
"readingDate": "",
"readingId": "",
"reportDate": "",
"roomId": "",
"startDate": "",
"tariffId": "",
"tariffInCents": 0,
"temperature": "18",
"temperatureOffset": 0,
"terminationTimeout": 900,
"terminationType": "manual",
"timetableId": "",
"unit": "m3",
"x": 310,
"y": 620,
"wires": [
[
"366e43fa3a4771b0"
]
]
},
{
"id": "b04b2ac4269dc6d6",
"type": "tadox",
"z": "9e3fc1e5920df13e",
"g": "6b8abc4c1228c6b1",
"apiCall": "resumeSchedule",
"childlock": false,
"configName": "78a2fa8f8bb1978e",
"deviceId": "",
"endDate": "",
"geoTracking": true,
"homeId": "",
"maxTemperature": 0,
"name": "Resume Schedule",
"power": "ON",
"presence": "HOME",
"quickAction": "allOf",
"reading": 0,
"readingDate": "",
"readingId": "",
"reportDate": "",
"roomId": "",
"startDate": "",
"tariffId": "",
"tariffInCents": 0,
"temperature": "18",
"temperatureOffset": 0,
"terminationTimeout": 900,
"terminationType": "manual",
"timetableId": "",
"unit": "m3",
"x": 330,
"y": 700,
"wires": [
[
"366e43fa3a4771b0"
]
]
},
{
"id": "ad74a70fdd516c17",
"type": "tadox-token",
"z": "9e3fc1e5920df13e",
"d": true,
"g": "13aab1b257852074",
"configName": "78a2fa8f8bb1978e",
"x": 570,
"y": 200,
"wires": [
[
"30610116b3394ad1"
]
]
},
{
"id": "c004a0badbf1a92f",
"type": "tadox",
"z": "9e3fc1e5920df13e",
"d": true,
"g": "13aab1b257852074",
"apiCall": "authenticate",
"childlock": false,
"configName": "78a2fa8f8bb1978e",
"deviceId": "",
"endDate": "",
"geoTracking": true,
"homeId": "",
"maxTemperature": 0,
"name": "",
"power": "ON",
"presence": "HOME",
"quickAction": "allOf",
"reading": 0,
"readingDate": "",
"readingId": "",
"reportDate": "",
"roomId": "",
"startDate": "",
"tariffId": "",
"tariffInCents": 0,
"temperature": "18",
"temperatureOffset": 0,
"terminationTimeout": 900,
"terminationType": "manual",
"timetableId": "",
"unit": "m3",
"x": 960,
"y": 200,
"wires": [
[
"d21f1766922dd03e"
]
]
},
{
"id": "78a2fa8f8bb1978e",
"type": "tadox-config",
"name": ""
}
]