|
[{ |
|
"id": "1d4d5eda.0ea591", |
|
"type": "subflow", |
|
"name": "put Action", |
|
"info": "", |
|
"category": "miele", |
|
"in": [{ |
|
"x": 60, |
|
"y": 100, |
|
"wires": [{ |
|
"id": "7f552f3.aa2dad" |
|
} |
|
] |
|
} |
|
], |
|
"out": [{ |
|
"x": 680, |
|
"y": 160, |
|
"wires": [{ |
|
"id": "7ed3f9c8.27e698", |
|
"port": 0 |
|
} |
|
] |
|
} |
|
], |
|
"env": [{ |
|
"name": "bearer", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "device", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "action", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "parameter", |
|
"type": "str", |
|
"value": "" |
|
} |
|
], |
|
"color": "#DDAA99", |
|
"status": { |
|
"x": 680, |
|
"y": 80, |
|
"wires": [{ |
|
"id": "7f552f3.aa2dad", |
|
"port": 0 |
|
}, { |
|
"id": "7ed3f9c8.27e698", |
|
"port": 1 |
|
} |
|
] |
|
} |
|
}, { |
|
"id": "e459c4f9.d32338", |
|
"type": "exec", |
|
"z": "1d4d5eda.0ea591", |
|
"command": "", |
|
"addpay": true, |
|
"append": "", |
|
"useSpawn": "false", |
|
"timer": "", |
|
"oldrc": false, |
|
"name": "get devices", |
|
"x": 310, |
|
"y": 140, |
|
"wires": [["9af5b8fa.2292b8"], [], []] |
|
}, { |
|
"id": "9af5b8fa.2292b8", |
|
"type": "json", |
|
"z": "1d4d5eda.0ea591", |
|
"name": "", |
|
"property": "payload", |
|
"action": "", |
|
"pretty": false, |
|
"x": 450, |
|
"y": 140, |
|
"wires": [["7ed3f9c8.27e698"]] |
|
}, { |
|
"id": "7f552f3.aa2dad", |
|
"type": "function", |
|
"z": "1d4d5eda.0ea591", |
|
"name": "", |
|
"func": "let bearer = \"\";\nlet action = \"\";\nlet device = \"\";\nlet parameter = \"\";\n\n//node.send({payload: {fill:\"green\",shape:\"dot\",text:\"OK\"}});\n\nbearer = env.get(\"bearer\");\nif(msg.hasOwnProperty('bearer')) bearer=msg.bearer;\nif (bearer === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"bearer missing\"}});\n\naction = env.get(\"action\");\nif(msg.hasOwnProperty('action')) action=msg.action;\nif (action === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"actionuage missing\"}});\n\ndevice = env.get(\"device\");\nif(msg.hasOwnProperty('device')) lang=msg.device;\nif (device === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"device missing\"}});\n\nparameter = env.get(\"parameter\");\nif(msg.hasOwnProperty('parameter')) client_id=msg.parameter;\nif (parameter === \"\") node.send({payload: {fill:\"green\",shape:\"dot\",text:\"parameter fehlt\"}});\n\nvar msg2;\nmsg2={payload: \"curl -X PUT \\\"https:\\/\\/api.mcs3.miele.com\\/v1\\/devices\\/\"+device+\"\\/actions\\\" -H \\\"accept: *\\/*\\\" -H \\\"Authorization: Bearer \"+bearer+\"\\\" -H \\\"Content-Type: application\\/json\\\" -d \\\"{\\\\\\\"\"+action+\"\\\\\\\":\"+parameter+\"}\\\"\"};\nmsg1=null;\nreturn [[msg1],[msg2]];\n", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"initialize": "", |
|
"finalize": "", |
|
"x": 150, |
|
"y": 100, |
|
"wires": [[], ["e459c4f9.d32338"]] |
|
}, { |
|
"id": "7ed3f9c8.27e698", |
|
"type": "function", |
|
"z": "1d4d5eda.0ea591", |
|
"name": "", |
|
"func": "var msg1={topic:msg.topic, payload: msg.payload};\nvar msg2;\n//if(msg.payload.status.hasOwnProperty(\"value_raw\")) msg2={payload:{fill:\"green\",shape:\"dot\",text:\"OK\"}};\n\nreturn [[msg1],[msg2]];", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"x": 570, |
|
"y": 140, |
|
"wires": [[], []] |
|
}, { |
|
"id": "b4c5c5ea.b2a928", |
|
"type": "subflow", |
|
"name": "get Action", |
|
"info": "", |
|
"category": "miele", |
|
"in": [{ |
|
"x": 160, |
|
"y": 100, |
|
"wires": [{ |
|
"id": "98e5b950.6a2c58" |
|
} |
|
] |
|
} |
|
], |
|
"out": [{ |
|
"x": 920, |
|
"y": 160, |
|
"wires": [{ |
|
"id": "3a80d692.13ff1a", |
|
"port": 0 |
|
} |
|
] |
|
} |
|
], |
|
"env": [{ |
|
"name": "bearer", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "lang", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "device", |
|
"type": "str", |
|
"value": "" |
|
} |
|
], |
|
"color": "#DDAA99", |
|
"status": { |
|
"x": 840, |
|
"y": 80, |
|
"wires": [{ |
|
"id": "98e5b950.6a2c58", |
|
"port": 0 |
|
}, { |
|
"id": "3a80d692.13ff1a", |
|
"port": 1 |
|
} |
|
] |
|
} |
|
}, { |
|
"id": "da26411a.dd69c", |
|
"type": "exec", |
|
"z": "b4c5c5ea.b2a928", |
|
"command": "", |
|
"addpay": true, |
|
"append": "", |
|
"useSpawn": "false", |
|
"timer": "", |
|
"oldrc": false, |
|
"name": "get devices", |
|
"x": 430, |
|
"y": 140, |
|
"wires": [["eac26908.58f308"], [], []] |
|
}, { |
|
"id": "eac26908.58f308", |
|
"type": "json", |
|
"z": "b4c5c5ea.b2a928", |
|
"name": "", |
|
"property": "payload", |
|
"action": "", |
|
"pretty": false, |
|
"x": 570, |
|
"y": 140, |
|
"wires": [["3a80d692.13ff1a"]] |
|
}, { |
|
"id": "98e5b950.6a2c58", |
|
"type": "function", |
|
"z": "b4c5c5ea.b2a928", |
|
"name": "", |
|
"func": "let bearer = \"\";\nlet device = \"\";\n\n//node.send({payload: {fill:\"green\",shape:\"dot\",text:\"OK\"}});\n\nbearer = env.get(\"bearer\");\nif(msg.hasOwnProperty('bearer')) bearer=msg.bearer;\nif (bearer === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"bearer missing\"}});\n\ndevice = env.get(\"device\");\nif(msg.hasOwnProperty('device')) lang=msg.device;\nif (device === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"device missing\"}});\n\nvar msg2;\nmsg2={payload: \"curl -X GET \\\"https://api.mcs3.miele.com/v1/devices/\"+device+\"/actions\\\" -H \\\"accept: application/json; charset=utf-8\\\" -H \\\"Authorization: Bearer \" + bearer + \"\\\"\"};\nmsg1=null;\nreturn [[msg1],[msg2]];\n", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"initialize": "", |
|
"finalize": "", |
|
"x": 270, |
|
"y": 100, |
|
"wires": [[], ["da26411a.dd69c"]] |
|
}, { |
|
"id": "3a80d692.13ff1a", |
|
"type": "function", |
|
"z": "b4c5c5ea.b2a928", |
|
"name": "", |
|
"func": "var msg1={topic:msg.topic, payload: msg.payload};\nvar msg2;\nif(msg.payload.hasOwnProperty(\"powerOn\")) msg2={payload:{fill:\"green\",shape:\"dot\",text:\"OK\"}};\n\nreturn [[msg1],[msg2]];", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"x": 690, |
|
"y": 140, |
|
"wires": [[], []] |
|
}, { |
|
"id": "8755d135.de6bf", |
|
"type": "subflow", |
|
"name": "get device state", |
|
"info": "", |
|
"category": "miele", |
|
"in": [{ |
|
"x": 100, |
|
"y": 120, |
|
"wires": [{ |
|
"id": "98292c27.d877" |
|
} |
|
] |
|
} |
|
], |
|
"out": [{ |
|
"x": 820, |
|
"y": 160, |
|
"wires": [{ |
|
"id": "1e7270f4.3abf8f", |
|
"port": 0 |
|
} |
|
] |
|
} |
|
], |
|
"env": [{ |
|
"name": "bearer", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "lang", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "device", |
|
"type": "str", |
|
"value": "" |
|
} |
|
], |
|
"color": "#DDAA99", |
|
"status": { |
|
"x": 700, |
|
"y": 40, |
|
"wires": [{ |
|
"id": "98292c27.d877", |
|
"port": 0 |
|
}, { |
|
"id": "1e7270f4.3abf8f", |
|
"port": 1 |
|
} |
|
] |
|
} |
|
}, { |
|
"id": "7466cfd7.a3fcd", |
|
"type": "exec", |
|
"z": "8755d135.de6bf", |
|
"command": "", |
|
"addpay": true, |
|
"append": "", |
|
"useSpawn": "false", |
|
"timer": "", |
|
"oldrc": false, |
|
"name": "get devices", |
|
"x": 370, |
|
"y": 160, |
|
"wires": [["fff7f619.892af8"], [], []] |
|
}, { |
|
"id": "fff7f619.892af8", |
|
"type": "json", |
|
"z": "8755d135.de6bf", |
|
"name": "", |
|
"property": "payload", |
|
"action": "", |
|
"pretty": false, |
|
"x": 510, |
|
"y": 160, |
|
"wires": [["1e7270f4.3abf8f"]] |
|
}, { |
|
"id": "98292c27.d877", |
|
"type": "function", |
|
"z": "8755d135.de6bf", |
|
"name": "", |
|
"func": "let bearer = \"\";\nlet lang = \"\";\nlet device = \"\";\n\n//node.send({payload: {fill:\"green\",shape:\"dot\",text:\"OK\"}});\n\nbearer = env.get(\"bearer\");\nif(msg.hasOwnProperty('bearer')) bearer=msg.bearer;\nif (bearer === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"bearer missing\"}});\n\nlang = env.get(\"lang\");\nif(msg.hasOwnProperty('lang')) lang=msg.lang;\nif (lang === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"language missing\"}});\n\ndevice = env.get(\"device\");\nif(msg.hasOwnProperty('device')) lang=msg.device;\nif (device === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"device missing\"}});\n\nvar msg2;\nmsg2={payload: \"curl -X GET \\\"https://api.mcs3.miele.com/v1/devices/\"+device+\"/state?language=\" + lang +\"\\\" -H \\\"accept: application/json; charset=utf-8\\\" -H \\\"Authorization: Bearer \" + bearer + \"\\\"\"};\nmsg1=null;\nreturn [[msg1],[msg2]];\n", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"initialize": "", |
|
"finalize": "", |
|
"x": 210, |
|
"y": 120, |
|
"wires": [[], ["7466cfd7.a3fcd"]] |
|
}, { |
|
"id": "1e7270f4.3abf8f", |
|
"type": "function", |
|
"z": "8755d135.de6bf", |
|
"name": "", |
|
"func": "var msg1={topic:msg.topic, payload: msg.payload};\nvar msg2;\nif(msg.payload.status.hasOwnProperty(\"value_raw\")) msg2={payload:{fill:\"green\",shape:\"dot\",text:\"OK\"}};\n\nreturn [[msg1],[msg2]];", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"x": 630, |
|
"y": 160, |
|
"wires": [[], []] |
|
}, { |
|
"id": "bcad6a16.fbc798", |
|
"type": "subflow", |
|
"name": "get device ident", |
|
"info": "", |
|
"category": "miele", |
|
"in": [{ |
|
"x": 140, |
|
"y": 80, |
|
"wires": [{ |
|
"id": "81c0a717.e9f738" |
|
} |
|
] |
|
} |
|
], |
|
"out": [{ |
|
"x": 840, |
|
"y": 80, |
|
"wires": [{ |
|
"id": "b462fa37.689438", |
|
"port": 0 |
|
} |
|
] |
|
} |
|
], |
|
"env": [{ |
|
"name": "bearer", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "lang", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "device", |
|
"type": "str", |
|
"value": "" |
|
} |
|
], |
|
"color": "#DDAA99", |
|
"status": { |
|
"x": 760, |
|
"y": 40, |
|
"wires": [{ |
|
"id": "81c0a717.e9f738", |
|
"port": 0 |
|
}, { |
|
"id": "b462fa37.689438", |
|
"port": 1 |
|
} |
|
] |
|
} |
|
}, { |
|
"id": "245908be.c28b58", |
|
"type": "exec", |
|
"z": "bcad6a16.fbc798", |
|
"command": "", |
|
"addpay": true, |
|
"append": "", |
|
"useSpawn": "false", |
|
"timer": "", |
|
"oldrc": false, |
|
"name": "get devices", |
|
"x": 410, |
|
"y": 120, |
|
"wires": [["2e2c716e.8292ee"], [], []] |
|
}, { |
|
"id": "2e2c716e.8292ee", |
|
"type": "json", |
|
"z": "bcad6a16.fbc798", |
|
"name": "", |
|
"property": "payload", |
|
"action": "", |
|
"pretty": false, |
|
"x": 550, |
|
"y": 120, |
|
"wires": [["b462fa37.689438"]] |
|
}, { |
|
"id": "81c0a717.e9f738", |
|
"type": "function", |
|
"z": "bcad6a16.fbc798", |
|
"name": "", |
|
"func": "let bearer = \"\";\nlet lang = \"\";\nlet device = \"\";\n\n//node.send({payload: {fill:\"green\",shape:\"dot\",text:\"OK\"}});\n\nbearer = env.get(\"bearer\");\nif(msg.hasOwnProperty('bearer')) bearer=msg.bearer;\nif (bearer === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"bearer missing\"}});\n\nlang = env.get(\"lang\");\nif(msg.hasOwnProperty('lang')) lang=msg.lang;\nif (lang === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"language missing\"}});\n\ndevice = env.get(\"device\");\nif(msg.hasOwnProperty('device')) lang=msg.device;\nif (device === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"device missing\"}});\n\nvar msg2;\nmsg2={payload: \"curl -X GET \\\"https://api.mcs3.miele.com/v1/devices/\"+device+\"/ident?language=\" + lang +\"\\\" -H \\\"accept: application/json; charset=utf-8\\\" -H \\\"Authorization: Bearer \" + bearer + \"\\\"\"};\nmsg1=null;\nreturn [[msg1],[msg2]];\n", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"initialize": "", |
|
"finalize": "", |
|
"x": 250, |
|
"y": 80, |
|
"wires": [[], ["245908be.c28b58"]] |
|
}, { |
|
"id": "b462fa37.689438", |
|
"type": "function", |
|
"z": "bcad6a16.fbc798", |
|
"name": "", |
|
"func": "var msg1={topic:msg.topic, payload: msg.payload};\nvar msg2;\nif(msg.payload.deviceIdentLabel.hasOwnProperty(\"fabNumber\")) msg2={payload:{fill:\"green\",shape:\"dot\",text:\"OK\"}};\n\nreturn [[msg1],[msg2]];", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"x": 670, |
|
"y": 120, |
|
"wires": [[], []] |
|
}, { |
|
"id": "390beeb8.8a5162", |
|
"type": "subflow", |
|
"name": "get device info", |
|
"info": "", |
|
"category": "miele", |
|
"in": [{ |
|
"x": 260, |
|
"y": 80, |
|
"wires": [{ |
|
"id": "fdbbe7f7.00ba18" |
|
} |
|
] |
|
} |
|
], |
|
"out": [{ |
|
"x": 940, |
|
"y": 100, |
|
"wires": [{ |
|
"id": "70e93124.23da5", |
|
"port": 0 |
|
} |
|
] |
|
} |
|
], |
|
"env": [{ |
|
"name": "bearer", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "lang", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "device", |
|
"type": "str", |
|
"value": "" |
|
} |
|
], |
|
"color": "#DDAA99", |
|
"status": { |
|
"x": 680, |
|
"y": 40, |
|
"wires": [{ |
|
"id": "fdbbe7f7.00ba18", |
|
"port": 0 |
|
}, { |
|
"id": "70e93124.23da5", |
|
"port": 1 |
|
} |
|
] |
|
} |
|
}, { |
|
"id": "e8cbb2ba.6bc16", |
|
"type": "exec", |
|
"z": "390beeb8.8a5162", |
|
"command": "", |
|
"addpay": true, |
|
"append": "", |
|
"useSpawn": "false", |
|
"timer": "", |
|
"oldrc": false, |
|
"name": "get devices", |
|
"x": 530, |
|
"y": 120, |
|
"wires": [["ee0f6d14.6f4c3"], [], []] |
|
}, { |
|
"id": "ee0f6d14.6f4c3", |
|
"type": "json", |
|
"z": "390beeb8.8a5162", |
|
"name": "", |
|
"property": "payload", |
|
"action": "", |
|
"pretty": false, |
|
"x": 670, |
|
"y": 120, |
|
"wires": [["70e93124.23da5"]] |
|
}, { |
|
"id": "fdbbe7f7.00ba18", |
|
"type": "function", |
|
"z": "390beeb8.8a5162", |
|
"name": "", |
|
"func": "let bearer = \"\";\nlet lang = \"\";\nlet device = \"\";\n\n//node.send({payload: {fill:\"green\",shape:\"dot\",text:\"OK\"}});\n\nbearer = env.get(\"bearer\");\nif(msg.hasOwnProperty('bearer')) bearer=msg.bearer;\nif (bearer === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"bearer missing\"}});\n\nlang = env.get(\"lang\");\nif(msg.hasOwnProperty('lang')) lang=msg.lang;\nif (lang === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"language missing\"}});\n\ndevice = env.get(\"device\");\nif(msg.hasOwnProperty('device')) device=msg.device;\nif (device === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"device missing\"}});\n\nvar msg2;\nmsg2={payload: \"curl -X GET \\\"https://api.mcs3.miele.com/v1/devices/\"+device+\"?language=\" + lang +\"\\\" -H \\\"accept: application/json; charset=utf-8\\\" -H \\\"Authorization: Bearer \" + bearer + \"\\\"\"};\nmsg1=null;\nreturn [[msg1],[msg2]];\n", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"initialize": "", |
|
"finalize": "", |
|
"x": 370, |
|
"y": 80, |
|
"wires": [[], ["e8cbb2ba.6bc16"]] |
|
}, { |
|
"id": "70e93124.23da5", |
|
"type": "function", |
|
"z": "390beeb8.8a5162", |
|
"name": "", |
|
"func": "var msg1={topic:msg.topic, payload: msg.payload};\nvar msg2;\nif(msg.payload.ident.hasOwnProperty(\"deviceName\")) msg2={payload:{fill:\"green\",shape:\"dot\",text:\"OK\"}};\n\nreturn [[msg1],[msg2]];", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"x": 790, |
|
"y": 120, |
|
"wires": [[], []] |
|
}, { |
|
"id": "d79e6968.80ffa8", |
|
"type": "subflow", |
|
"name": "get devices", |
|
"info": "", |
|
"category": "miele", |
|
"in": [{ |
|
"x": 50, |
|
"y": 30, |
|
"wires": [{ |
|
"id": "9c6730e2.d8dcd" |
|
} |
|
] |
|
} |
|
], |
|
"out": [{ |
|
"x": 680, |
|
"y": 140, |
|
"wires": [{ |
|
"id": "3c9ff92.07e6c06", |
|
"port": 0 |
|
} |
|
] |
|
} |
|
], |
|
"env": [{ |
|
"name": "bearer", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "lang", |
|
"type": "str", |
|
"value": "" |
|
} |
|
], |
|
"color": "#DDAA99", |
|
"status": { |
|
"x": 700, |
|
"y": 20, |
|
"wires": [{ |
|
"id": "9c6730e2.d8dcd", |
|
"port": 0 |
|
} |
|
] |
|
} |
|
}, { |
|
"id": "1cd22b3c.108b05", |
|
"type": "exec", |
|
"z": "d79e6968.80ffa8", |
|
"command": "", |
|
"addpay": true, |
|
"append": "", |
|
"useSpawn": "false", |
|
"timer": "", |
|
"oldrc": false, |
|
"name": "get devices", |
|
"x": 430, |
|
"y": 140, |
|
"wires": [["3c9ff92.07e6c06"], [], []] |
|
}, { |
|
"id": "3c9ff92.07e6c06", |
|
"type": "json", |
|
"z": "d79e6968.80ffa8", |
|
"name": "", |
|
"property": "payload", |
|
"action": "", |
|
"pretty": false, |
|
"x": 590, |
|
"y": 140, |
|
"wires": [[]] |
|
}, { |
|
"id": "9c6730e2.d8dcd", |
|
"type": "function", |
|
"z": "d79e6968.80ffa8", |
|
"name": "", |
|
"func": "let bearer = \"\";\nlet lang = \"\";\n\n//node.send({payload: {fill:\"green\",shape:\"dot\",text:\"OK\"}});\n\nbearer = env.get(\"bearer\");\nif(msg.hasOwnProperty('bearer')) bearer=msg.bearer;\nif (bearer === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"bearer missing\"}});\n\nlang = env.get(\"lang\");\nif(msg.hasOwnProperty('lang')) lang=msg.lang;\nif (lang === \"\") node.send({payload: {fill:\"red\",shape:\"dot\",text:\"language missing\"}});\n\nvar msg2;\nmsg2={payload: \"curl -X GET \\\"https://api.mcs3.miele.com/v1/devices/?language=\" + lang +\"\\\" -H \\\"accept: application/json; charset=utf-8\\\" -H \\\"Authorization: Bearer \" + bearer + \"\\\"\"};\nmsg1=null;\nreturn [[msg1],[msg2]];\n", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"initialize": "", |
|
"finalize": "", |
|
"x": 270, |
|
"y": 100, |
|
"wires": [[], ["1cd22b3c.108b05"]] |
|
}, { |
|
"id": "8b7bf7f.119a308", |
|
"type": "subflow", |
|
"name": "get Bearer", |
|
"info": "This node uses your client_id, client_secret, username and password to get an autorization token, a so called Bearer (output 1) and a refresh token (output 2).\nAll parameters can be set using the incoming message.\nmsg.client_id, msg.client_secret, msg.[variable_name]...\ncoun_lang requires a combination of language and country, for germany it's DE-de.", |
|
"category": "miele", |
|
"in": [{ |
|
"x": 60, |
|
"y": 80, |
|
"wires": [{ |
|
"id": "272cb16.f5f164e" |
|
} |
|
] |
|
} |
|
], |
|
"out": [{ |
|
"x": 720, |
|
"y": 40, |
|
"wires": [{ |
|
"id": "9af0fd2c.9426c", |
|
"port": 0 |
|
} |
|
] |
|
}, { |
|
"x": 720, |
|
"y": 100, |
|
"wires": [{ |
|
"id": "9af0fd2c.9426c", |
|
"port": 1 |
|
} |
|
] |
|
} |
|
], |
|
"env": [{ |
|
"name": "client_id", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "client_secret", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "username", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "password", |
|
"type": "str", |
|
"value": "" |
|
}, { |
|
"name": "coun_lang", |
|
"type": "str", |
|
"value": "" |
|
} |
|
], |
|
"color": "#DDAA99", |
|
"outputLabels": ["Authorization Token", "Refresh Token"], |
|
"status": { |
|
"x": 720, |
|
"y": 160, |
|
"wires": [{ |
|
"id": "9af0fd2c.9426c", |
|
"port": 2 |
|
}, { |
|
"id": "272cb16.f5f164e", |
|
"port": 0 |
|
} |
|
] |
|
} |
|
}, { |
|
"id": "1e9930fe.bf0faf", |
|
"type": "exec", |
|
"z": "8b7bf7f.119a308", |
|
"command": "curl", |
|
"addpay": true, |
|
"append": "", |
|
"useSpawn": "false", |
|
"timer": "", |
|
"oldrc": false, |
|
"name": "get Bearer", |
|
"x": 290, |
|
"y": 40, |
|
"wires": [["127e4047.65cb3"], [], []] |
|
}, { |
|
"id": "127e4047.65cb3", |
|
"type": "json", |
|
"z": "8b7bf7f.119a308", |
|
"name": "", |
|
"property": "payload", |
|
"action": "", |
|
"pretty": false, |
|
"x": 440, |
|
"y": 40, |
|
"wires": [["9af0fd2c.9426c"]] |
|
}, { |
|
"id": "9af0fd2c.9426c", |
|
"type": "function", |
|
"z": "8b7bf7f.119a308", |
|
"name": "", |
|
"func": "var msg1={topic:\"access_token\", payload: msg.payload.access_token};\nvar msg2={topic:\"refresh_token\", payload: msg.payload.refresh_token};\nvar msg3=null;\nif(msg.payload.hasOwnProperty('access_token') && msg.payload.hasOwnProperty('refresh_token')) msg3={payload:{fill:\"green\",shape:\"dot\",text:\"OK\"}};\n\nreturn [[msg1],[msg2],[msg3]];", |
|
"outputs": 3, |
|
"noerr": 0, |
|
"x": 570, |
|
"y": 40, |
|
"wires": [[], [], []] |
|
}, { |
|
"id": "272cb16.f5f164e", |
|
"type": "function", |
|
"z": "8b7bf7f.119a308", |
|
"name": "", |
|
"func": "let client_id = \"\";\nlet client_secret = \"\";\nlet username = \"\";\nlet password = \"\";\nlet coun_lang = \"\";\n\nnode.send({payload: {fill:\"green\",shape:\"dot\",text:\"OK\"}});\n\nclient_id = env.get(\"client_id\");\nif(msg.hasOwnProperty('client_id')) client_id=msg.client_id;\nif (client_id === \"\") node.send({payload: {fill:\"green\",shape:\"dot\",text:\"Client_id fehlt\"}});\n\nclient_secret = env.get(\"client_secret\");\nif(msg.hasOwnProperty('client_secret')) client_secret=msg.client_secret;\nif (client_secret === \"\") node.send({payload: {fill:\"green\",shape:\"dot\",text:\"Client_secret fehlt\"}});\n\nusername = env.get(\"username\");\nif(msg.hasOwnProperty('username')) client_id=msg.username;\nif (username === \"\") node.send({payload: {fill:\"green\",shape:\"dot\",text:\"Username fehlt\"}});\n\npassword = env.get(\"password\");\nif(msg.hasOwnProperty('password')) client_id=msg.password;\nif (password === \"\") node.send({payload: {fill:\"green\",shape:\"dot\",text:\"Password fehlt\"}});\n\ncoun_lang = env.get(\"coun_lang\");\nif(msg.hasOwnProperty('coun_lang')) client_id=msg.coun_lang;\nif (coun_lang === \"\") node.send({payload: {fill:\"green\",shape:\"dot\",text:\"Country-Language fehlt\"}});\n\nvar msg2;\nmsg2={payload:\" -d \\\"grant_type=password\\\" -d \\\"client_id=\"+client_id+\n \"\\\" -d \\\"client_secret=\"+client_secret+\"\\\" -d \\\"username=\"+username+\n \"\\\" -d \\\"password=\"+password+\"\\\" -d \\\"vg=\"+coun_lang+\n \"\\\" https://api.mcs3.miele.com/thirdparty/token/\"};\nmsg1=null;\nreturn [[msg1],[msg2]];", |
|
"outputs": 2, |
|
"noerr": 0, |
|
"initialize": "", |
|
"finalize": "", |
|
"x": 150, |
|
"y": 80, |
|
"wires": [[], ["1e9930fe.bf0faf"]] |
|
}, { |
|
"id": "8cc73ce4.b2345", |
|
"type": "inject", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"repeat": "", |
|
"crontab": "", |
|
"once": false, |
|
"onceDelay": 0.1, |
|
"topic": "", |
|
"payload": "", |
|
"payloadType": "date", |
|
"x": 240, |
|
"y": 300, |
|
"wires": [["4315b3b4.009d8c"]] |
|
}, { |
|
"id": "32015fbe.2f516", |
|
"type": "function", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "set var", |
|
"func": "global.set(\"mielebearer\",msg.payload);\nreturn msg;", |
|
"outputs": 1, |
|
"noerr": 0, |
|
"x": 550, |
|
"y": 300, |
|
"wires": [[]] |
|
}, { |
|
"id": "3cffc84c.a8b748", |
|
"type": "inject", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"repeat": "", |
|
"crontab": "", |
|
"once": false, |
|
"onceDelay": 0.1, |
|
"topic": "", |
|
"payload": "", |
|
"payloadType": "date", |
|
"x": 240, |
|
"y": 360, |
|
"wires": [["d073836.dc6fb8"]] |
|
}, { |
|
"id": "d073836.dc6fb8", |
|
"type": "function", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "set var", |
|
"func": "msg.lang=\"de\";\nmsg.bearer=global.get(\"mielebearer\");\nreturn msg;", |
|
"outputs": 1, |
|
"noerr": 0, |
|
"x": 370, |
|
"y": 360, |
|
"wires": [["2b0c40f3.cc07c"]] |
|
}, { |
|
"id": "ac0d4f3c.3f422", |
|
"type": "debug", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"active": true, |
|
"tosidebar": true, |
|
"console": false, |
|
"tostatus": false, |
|
"complete": "true", |
|
"targetType": "full", |
|
"x": 650, |
|
"y": 360, |
|
"wires": [] |
|
}, { |
|
"id": "e0817a83.3638c8", |
|
"type": "inject", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"repeat": "", |
|
"crontab": "", |
|
"once": false, |
|
"onceDelay": 0.1, |
|
"topic": "", |
|
"payload": "", |
|
"payloadType": "date", |
|
"x": 240, |
|
"y": 420, |
|
"wires": [["91b577ba.e11378"]] |
|
}, { |
|
"id": "91b577ba.e11378", |
|
"type": "function", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "set var", |
|
"func": "msg.lang=\"de\";\nmsg.bearer=global.get(\"mielebearer\");\n//msg.device=\"XXXXXXXXXXXX\";\nreturn msg;", |
|
"outputs": 1, |
|
"noerr": 0, |
|
"x": 370, |
|
"y": 420, |
|
"wires": [["679210e5.bb4a1"]] |
|
}, { |
|
"id": "84b603eb.7fb6d", |
|
"type": "debug", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"active": true, |
|
"tosidebar": true, |
|
"console": false, |
|
"tostatus": false, |
|
"complete": "true", |
|
"targetType": "full", |
|
"x": 670, |
|
"y": 420, |
|
"wires": [] |
|
}, { |
|
"id": "2d89999e.2e6c96", |
|
"type": "inject", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"repeat": "", |
|
"crontab": "", |
|
"once": false, |
|
"onceDelay": 0.1, |
|
"topic": "", |
|
"payload": "", |
|
"payloadType": "date", |
|
"x": 240, |
|
"y": 480, |
|
"wires": [["b331d5f2.a1c138"]] |
|
}, { |
|
"id": "b331d5f2.a1c138", |
|
"type": "function", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "set var", |
|
"func": "msg.lang=\"de\";\nmsg.bearer=global.get(\"mielebearer\");\n//msg.device=\"XXXXXXXXXXXX\";\nreturn msg;", |
|
"outputs": 1, |
|
"noerr": 0, |
|
"x": 370, |
|
"y": 480, |
|
"wires": [["69058e24.4db0e"]] |
|
}, { |
|
"id": "fc3b7cc5.0ac43", |
|
"type": "debug", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"active": true, |
|
"tosidebar": true, |
|
"console": false, |
|
"tostatus": false, |
|
"complete": "true", |
|
"targetType": "full", |
|
"x": 670, |
|
"y": 480, |
|
"wires": [] |
|
}, { |
|
"id": "4d8b4405.b609cc", |
|
"type": "comment", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "Returns all information about appliances linked to an user account.", |
|
"info": "", |
|
"x": 1040, |
|
"y": 360, |
|
"wires": [] |
|
}, { |
|
"id": "37d27f0d.8c6b8", |
|
"type": "comment", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "Returns all information about a single appliance linked to an user account", |
|
"info": "", |
|
"x": 1060, |
|
"y": 420, |
|
"wires": [] |
|
}, { |
|
"id": "4f0c966b.5c13e8", |
|
"type": "comment", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "Returns your access token / Bearer", |
|
"info": "", |
|
"x": 940, |
|
"y": 300, |
|
"wires": [] |
|
}, { |
|
"id": "2940a41f.6a1dec", |
|
"type": "inject", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"repeat": "", |
|
"crontab": "", |
|
"once": false, |
|
"onceDelay": 0.1, |
|
"topic": "", |
|
"payload": "", |
|
"payloadType": "date", |
|
"x": 240, |
|
"y": 600, |
|
"wires": [["8d502f9a.9cfae"]] |
|
}, { |
|
"id": "8d502f9a.9cfae", |
|
"type": "function", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "set var", |
|
"func": "msg.lang=\"de\";\nmsg.bearer=global.get(\"mielebearer\");\n//msg.device=\"XXXXXXXXXXXX\";\nreturn msg;", |
|
"outputs": 1, |
|
"noerr": 0, |
|
"x": 370, |
|
"y": 600, |
|
"wires": [["29bb8380.76988c"]] |
|
}, { |
|
"id": "1903fd7b.0d45a3", |
|
"type": "debug", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"active": true, |
|
"tosidebar": true, |
|
"console": false, |
|
"tostatus": false, |
|
"complete": "true", |
|
"targetType": "full", |
|
"x": 670, |
|
"y": 600, |
|
"wires": [] |
|
}, { |
|
"id": "791c55db.267dcc", |
|
"type": "comment", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "Returns the ident information of a single device", |
|
"info": "", |
|
"x": 980, |
|
"y": 480, |
|
"wires": [] |
|
}, { |
|
"id": "a3209786.dafdc8", |
|
"type": "comment", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "The GET action is used to request a device so send the currently supported actions", |
|
"info": "", |
|
"x": 1090, |
|
"y": 600, |
|
"wires": [] |
|
}, { |
|
"id": "87379dd7.af663", |
|
"type": "inject", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"repeat": "", |
|
"crontab": "", |
|
"once": false, |
|
"onceDelay": 0.1, |
|
"topic": "", |
|
"payload": "", |
|
"payloadType": "date", |
|
"x": 240, |
|
"y": 540, |
|
"wires": [["75c4daa.7552024"]] |
|
}, { |
|
"id": "75c4daa.7552024", |
|
"type": "function", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "set var", |
|
"func": "msg.lang=\"de\";\nmsg.bearer=global.get(\"mielebearer\");\n//msg.device=\"XXXXXXXXXXXX\";\nreturn msg;", |
|
"outputs": 1, |
|
"noerr": 0, |
|
"x": 370, |
|
"y": 540, |
|
"wires": [["22cd4a84.feb3f6"]] |
|
}, { |
|
"id": "d47b12a8.4c8ab", |
|
"type": "debug", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"active": true, |
|
"tosidebar": true, |
|
"console": false, |
|
"tostatus": false, |
|
"complete": "true", |
|
"targetType": "full", |
|
"x": 670, |
|
"y": 540, |
|
"wires": [] |
|
}, { |
|
"id": "b4a6a8cf.4e9628", |
|
"type": "comment", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "Returns the state information of a single device", |
|
"info": "", |
|
"x": 980, |
|
"y": 540, |
|
"wires": [] |
|
}, { |
|
"id": "1c6f442f.16a17c", |
|
"type": "inject", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"repeat": "", |
|
"crontab": "", |
|
"once": false, |
|
"onceDelay": 0.1, |
|
"topic": "", |
|
"payload": "", |
|
"payloadType": "date", |
|
"x": 240, |
|
"y": 660, |
|
"wires": [["322386e.eaa967a"]] |
|
}, { |
|
"id": "322386e.eaa967a", |
|
"type": "function", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "set var", |
|
"func": "msg.bearer=global.get(\"mielebearer\");\n//msg.device=\"XXXXXXXXXXXX\";\nmsg.action=\"processAction\";\nmsg.parameter=\"2\";\n//msg.action=\"deviceName\";\n//msg.parameter=\"\\\\\\\"myDevice\\\\\\\"\";\nreturn msg;", |
|
"outputs": 1, |
|
"noerr": 0, |
|
"x": 370, |
|
"y": 660, |
|
"wires": [["bf22df68.b3972"]] |
|
}, { |
|
"id": "4686037.45bf3fc", |
|
"type": "debug", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"active": true, |
|
"tosidebar": true, |
|
"console": false, |
|
"tostatus": false, |
|
"complete": "true", |
|
"targetType": "full", |
|
"x": 670, |
|
"y": 660, |
|
"wires": [] |
|
}, { |
|
"id": "8909e20.acfb22", |
|
"type": "comment", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "The PUT action is used invoke an action on a single device", |
|
"info": "", |
|
"x": 1010, |
|
"y": 660, |
|
"wires": [] |
|
}, { |
|
"id": "4315b3b4.009d8c", |
|
"type": "subflow:8b7bf7f.119a308", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"env": [], |
|
"x": 390, |
|
"y": 300, |
|
"wires": [["32015fbe.2f516"], []] |
|
}, { |
|
"id": "2b0c40f3.cc07c", |
|
"type": "subflow:d79e6968.80ffa8", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"env": [], |
|
"x": 510, |
|
"y": 360, |
|
"wires": [["ac0d4f3c.3f422"]], |
|
"info": "This node uses your autorization token, or Bearer your desired language (de and en are supported) to give you information about all of your devices as describes in https://www.miele.com/developer/swagger-ui/index.html#/.\nAll parameters can be set using the incoming message.\nmsg.bearer, msg.lang, basically it's msg.[variable_name]..." |
|
}, { |
|
"id": "679210e5.bb4a1", |
|
"type": "subflow:390beeb8.8a5162", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"env": [], |
|
"x": 520, |
|
"y": 420, |
|
"wires": [["84b603eb.7fb6d"]], |
|
"info": "This node uses your autorization token, or Bearer your desired language (de and en are supported) to give you information about one specific devices as describes in https://www.miele.com/developer/swagger-ui/index.html#/.\nAll parameters can be set using the incoming message.\nmsg.bearer, msg.lang, basically it's msg.[variable_name]..." |
|
}, { |
|
"id": "69058e24.4db0e", |
|
"type": "subflow:bcad6a16.fbc798", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"env": [], |
|
"x": 520, |
|
"y": 480, |
|
"wires": [["fc3b7cc5.0ac43"]], |
|
"info": "This node uses your autorization token, or Bearer your desired language (de and en are supported) to give you id-information about one specific devices as describes in https://www.miele.com/developer/swagger-ui/index.html#/.\nAll parameters can be set using the incoming message.\nmsg.bearer, msg.lang, basically it's msg.[variable_name]..." |
|
}, { |
|
"id": "22cd4a84.feb3f6", |
|
"type": "subflow:8755d135.de6bf", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"env": [], |
|
"x": 520, |
|
"y": 540, |
|
"wires": [["d47b12a8.4c8ab"]], |
|
"info": "This node uses your autorization token, or Bearer your desired language (de and en are supported) to give you the status of one specific devices as describes in https://www.miele.com/developer/swagger-ui/index.html#/.\nAll parameters can be set using the incoming message.\nmsg.bearer, msg.lang, basically it's msg.[variable_name]..." |
|
}, { |
|
"id": "29bb8380.76988c", |
|
"type": "subflow:b4c5c5ea.b2a928", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"env": [], |
|
"x": 500, |
|
"y": 600, |
|
"wires": [["1903fd7b.0d45a3"]], |
|
"info": "This node uses your autorization token, or Bearer your desired language (de and en are supported) to give you the availible actions of one specific devices in it's current status as describes in https://www.miele.com/developer/swagger-ui/index.html#/.\nAll parameters can be set using the incoming message.\nmsg.bearer, msg.lang, basically it's msg.[variable_name]..." |
|
}, { |
|
"id": "bf22df68.b3972", |
|
"type": "subflow:1d4d5eda.0ea591", |
|
"z": "8c044ad3.6aa2e8", |
|
"name": "", |
|
"env": [], |
|
"x": 500, |
|
"y": 660, |
|
"wires": [["4686037.45bf3fc"]] |
|
} |
|
] |
Hi JohaGit,
thanks for your feedback.
Thanks for your constructive criticism, I really find it helpfull.
I assume, you forgot to mention my lack of documetation, but right now I don't have the time to improve that.
If you want to make any changes, the nodes are just subflows, so you can see what's inside and improve upon it.
If you do, I'd appreciate it if you'd let me know, maybe with a link to your fork.