Tado Thuis/Afwezig na update

Ik heb wat lopen spelen met Owntracks en dan eerste via webhooks, maar daar liep ik vast op teveel webhook requests, omgebouwd naar CloudMQTT en Node-red lokaal die dan de MQTT naar Homey conversie zou doen, maar ook Owntracks is te “onnauwkeurig”. Die onnauwkeurigheid heeft te maken met slechte GPS ontvangst binnen. Dus, tenzij ik een app vind die en gps en wifi doet of een GPS repeater ophang (liggen nog ergens 2 in een doos, maar waar is die doos gebleven?).

Maar, omdat ik al node-red heb… er is ook een Tado library pallet voor Node-red met de Tado geo locatie ondersteuning. Dus na wat knutselen nu een Node-red flow die elke 30 seconde voor 2 telefoons bij Tado de home/away status opvraagt en alleen bij wijziging van status een webhook naar de Homey stuurt, waar 2 flows draaien om de webhook locatie om te zetten naar de Homey locatie status.

Best wel een eenvoudige oplossing voor mij, aangezien ik al een Pi3 met Node-red heb draaien voor experimenten met o.a. Node-red dashboard. Het zou nog iets beter kunnen door de webhook van Homey app http request te nemen, zodat die ook nog binnen lokale LAN blijven, maar dat ga ik later nog wel eens uitzoeken.

Node-red flow:
Extra node-red pallets nodig naast de standaard pallets:

  • node-red-node-rbe 0.2.8
  • node-red-contrib-tado-client 0.6.0

Homey flow:

flow code:
‘’’[{“id”:“4d2ebae5.062134”,“type”:“comment”,“z”:“c751cad.f427438”,“name”:“Use location information from Tado”,“info”:"",“x”:160,“y”:620,“wires”:},{“id”:“bb5aae28.6515c”,“type”:“inject”,“z”:“c751cad.f427438”,“name”:“Elke 30 seconds”,“topic”:“time”,“payload”:"",“payloadType”:“date”,“repeat”:“30”,“crontab”:"",“once”:true,“onceDelay”:“5”,“x”:130,“y”:860,“wires”:[[“3e6c5077.7a961”,“93f5f98f.570388”]]},{“id”:“1f5271b7.1aae5e”,“type”:“debug”,“z”:“c751cad.f427438”,“name”:“Homey webhook response”,“active”:true,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“true”,“targetType”:“full”,“x”:1320,“y”:860,“wires”:},{“id”:“3e6c5077.7a961”,“type”:“tado”,“z”:“c751cad.f427438”,“configName”:“932e14ad.768d98”,“apiCall”:“getMobileDevice”,“homeId”:“xxxxxx”,“deviceId”:“tttttt”,“zoneId”:"",“power”:“on”,“temperature”:“18”,“terminationType”:“manual”,“terminationTimeout”:900,“name”:“Marco FP2”,“reportDate”:"",“presence”:“HOME”,“geoTracking”:true,“temperatureOffset”:0,“windowDetectionTimeout”:"",“x”:350,“y”:840,“wires”:[[“ac4b9ad0.7b6748”]]},{“id”:“93f5f98f.570388”,“type”:“tado”,“z”:“c751cad.f427438”,“configName”:“932e14ad.768d98”,“apiCall”:“getMobileDevice”,“homeId”:“xxxxxx”,“deviceId”:“rrrrrrrr”,“zoneId”:"",“power”:“on”,“temperature”:“18”,“terminationType”:“manual”,“terminationTimeout”:900,“name”:“Mercedes FP2”,“reportDate”:"",“presence”:“HOME”,“geoTracking”:true,“temperatureOffset”:0,“windowDetectionTimeout”:"",“x”:360,“y”:900,“wires”:[[“519bf085.90279”]]},{“id”:“81616362.86142”,“type”:“function”,“z”:“c751cad.f427438”,“name”:“filter location boolean”,“func”:"\nvar newMSG = msg.payload.location.atHome\n\nreturn {\n payload: {\n name: msg.payload.name,\n atHome: newMSG,\n lat: msg.payload.location.bearingFromHome.degrees,\n lon: msg.payload.location.bearingFromHome.radians,\n \n }\n};",“outputs”:1,“noerr”:0,“x”:780,“y”:860,“wires”:[[“435db7e9.90aa98”]]},{“id”:“435db7e9.90aa98”,“type”:“http request”,“z”:“c751cad.f427438”,“name”:“Locatie webhook 2 Homey”,“method”:“GET”,“ret”:“txt”,“paytoqs”:false,“url”:“https://*********************.connect.athom.com/api/manager/logic/webhook/{{{payload.name}}}?tag={{{payload.atHome}}}”,“tls”:"",“persist”:false,“proxy”:"",“authType”:"",“x”:1020,“y”:860,“wires”:[[“1f5271b7.1aae5e”,“150033f9.fd434c”]]},{“id”:“ac4b9ad0.7b6748”,“type”:“rbe”,“z”:“c751cad.f427438”,“name”:“only at change”,“func”:“rbe”,“gap”:"",“start”:"",“inout”:“out”,“property”:“payload.location.atHome”,“x”:560,“y”:840,“wires”:[[“81616362.86142”]]},{“id”:“519bf085.90279”,“type”:“rbe”,“z”:“c751cad.f427438”,“name”:“only at change”,“func”:“rbe”,“gap”:"",“start”:"",“inout”:“out”,“property”:“payload.location.atHome”,“x”:560,“y”:900,“wires”:[[“81616362.86142”]]},{“id”:“b7144be3.436848”,“type”:“inject”,“z”:“c751cad.f427438”,“name”:“Manual (get home id)”,“topic”:"",“payload”:"",“payloadType”:“date”,“repeat”:"",“crontab”:"",“once”:false,“onceDelay”:0.1,“x”:140,“y”:680,“wires”:[[“f4c37cf2.6ce47”]]},{“id”:“a2afbedd.35e5e”,“type”:“debug”,“z”:“c751cad.f427438”,“name”:"",“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“false”,“x”:590,“y”:720,“wires”:},{“id”:“f4c37cf2.6ce47”,“type”:“tado”,“z”:“c751cad.f427438”,“configName”:“932e14ad.768d98”,“apiCall”:“getMe”,“homeId”:"",“deviceId”:"",“zoneId”:"",“power”:“on”,“temperature”:“18”,“terminationType”:“manual”,“terminationTimeout”:900,“name”:"",“reportDate”:"",“presence”:“HOME”,“geoTracking”:true,“temperatureOffset”:0,“x”:350,“y”:680,“wires”:[[“a2afbedd.35e5e”]]},{“id”:“d3590713.2b06f8”,“type”:“tado”,“z”:“c751cad.f427438”,“configName”:“932e14ad.768d98”,“apiCall”:“getMobileDevices”,“homeId”:“166978”,“deviceId”:"",“zoneId”:"",“power”:“on”,“temperature”:“18”,“terminationType”:“manual”,“terminationTimeout”:900,“name”:"",“reportDate”:"",“presence”:“HOME”,“geoTracking”:true,“temperatureOffset”:0,“x”:350,“y”:740,“wires”:[[“a2afbedd.35e5e”]]},{“id”:“d36addbe.459c”,“type”:“inject”,“z”:“c751cad.f427438”,“name”:“Manual (get all devices)”,“topic”:"",“payload”:"",“payloadType”:“date”,“repeat”:"",“crontab”:"",“once”:false,“onceDelay”:0.1,“x”:140,“y”:740,“wires”:[[“d3590713.2b06f8”]]},{“id”:“932e14ad.768d98”,“type”:“tado-config”,“z”:"",“name”:“Marco”}]’’’’