Page 1 of 1

Tado Heating App plugin request

PostPosted: Fri Sep 26, 2014 1:38 pm
by petematheson
I've done a search and it doesn't seem that anyone has mentioned this yet - as it's not one of the 'big' players per say, although it is picking up ground at the moment.

Would anyone be able to write a plugin to speak to Tado?
It would be great if it could read the wireless temperature sensor in the house, as well as be able to control the tado heating temperature as well as on/off.
Tado also uses presence / iPhone tracking to switch the boiler on as you get nearer the house, so perhaps this could also be used for other applications ??

Re: Tado Heating App plugin request

PostPosted: Fri Sep 25, 2015 6:40 am
by Londonmark
+1

Re: Tado Heating App plugin request

PostPosted: Sun Sep 27, 2015 5:56 am
by juntta
+1

Re: Tado Heating App plugin request

PostPosted: Sun Oct 04, 2015 11:49 am
by Chockymonster
I've done most of this already. I can't interface the presence detection for location but I can check if there is someone in the house.

Re: Tado Heating App plugin request

PostPosted: Sun Oct 04, 2015 12:05 pm
by Chockymonster
Although Tado have supposedly launched an API they haven't actually released it!
Back in march they launched IFTTT integration that launched as a channel last month, so I'm not holding out too much hope!
There is a method of querying the data tado has, it's a bit clunky but it's simple to work around.

Here's how I've done it:

Create a schedule to run a command, I have it running every 5 minutes.
In the actions tab set the type to Execute script and then the type to an embedded python script.
I created the variables before hand and used their variable numbers in the script.

The script looks like this:

Code: Select all
import urllib2
import simplejson
f = urllib2.urlopen('https://my.tado.com/mobile/1.4/getCurrentState?username=YOURTADOUSERNAME&password=YOURTADOPASSWORD')
json_string = f.read()
parsed_json = simplejson.loads(json_string)

tadooperation = parsed_json['autoOperation']
tadocontrol = parsed_json['controlPhase']
tadohouselong = parsed_json['insideTemp']
tadohousetemp = "%.1f" % tadohouselong
tadosettemplong = parsed_json['setPointTemp']
tadosettemp = "%.1f" % tadosettemplong
tadobox = parsed_json['boxConnected']
tadogateway = parsed_json['gwConnected']
tadots = parsed_json['tsConnected']

indigo.variable.updateValue(354149951, value=str(tadocontrol))
indigo.variable.updateValue(741265018, value=str(tadooperation))
indigo.variable.updateValue(187002669, value=str(tadohousetemp))
indigo.variable.updateValue(1159023434, value=str(tadosettemp))
indigo.variable.updateValue(1364699512, value=str(tadobox))
indigo.variable.updateValue(1132971864, value=str(tadogateway))
indigo.variable.updateValue(973513067, value=str(tadots))

f.close()


When this runs the variables update, you can then use the variables where ever you need to.

Re: Tado Heating App plugin request

PostPosted: Thu Oct 22, 2015 12:38 am
by juntta
Thanks Chockymonster, this works just fine! :D Only downside is that "tadoOperation" is always "HOME" at least with my Tado Smart AC Control so I guess there might be bug at Tados end.

Btw, I found this blog post: http://c-mobberley.com/wordpress/2014/09/28/interacting-with-the-hidden-tado-thermostat-api/, I guess you are already familiar with this. Too bad that presence data doesn't seem to available at the moment through API.

Re: Tado Heating App plugin request

PostPosted: Thu Oct 22, 2015 2:41 am
by Londonmark
With the new IFTTT integration you can access presence data a bit - for example you can send Indigo an email whenever Tado switches from home to away or vice versa. It's not perfect but helpful nonetheless. If you want perfect presence detection use Chameleon's fantastic ifindstuff plugin.

Re: Tado Heating App plugin request

PostPosted: Thu Oct 22, 2015 3:20 am
by juntta
Yes, I'm sort of reviewing different options to presence detection methods (IFTTT, Beacon (+geohopper) plugin, iFindStuff plugin). All have their pro's & con's and ultimate one for all solution is yet to be found or maybe I just haven't fiddled enough with their configuration options yet.

To my mind Beacon plugin with geohopper app installed in iPhone gives most accurate results with minimal delay. Tado seems to be quite precise as well but expanding options are limited and you cant define other geolocations besides home. iFindStuff seems to have all bells and whistles but delays in presence detection are my problem. This of course could be solved by raising device polling frequency but with expense of battery life. iOS client for iFindStuff to provide push data maybe? :roll:

Re: Tado Heating App plugin request

PostPosted: Wed Oct 28, 2015 8:07 pm
by Chockymonster
You don't need to use IFTTT for the email bit. One of the settings my script pulls down is the operation mode, so as soon as someone is home a variable updates. There has to be a way to get the information, I just can't see it!


Sent from my iPad using Tapatalk

Re: Tado Heating App plugin request

PostPosted: Thu Oct 29, 2015 12:29 am
by juntta
Chockymonster wrote:
You don't need to use IFTTT for the email bit. One of the settings my script pulls down is the operation mode, so as soon as someone is home a variable updates. There has to be a way to get the information, I just can't see it!k


Since I didn't get the operation mode working, I did some digging myself. Why I didn't get it working must be that I'm using different Tado hardware as guys - I guess you guys have Tado Smart Thermostat (https://www.tado.com/gb/) but I have Tado Smart AC Control (https://www.tado.com/gb/smart-air-conditioner) and therefore both iPhone app and their webapp use different API's for control.

I get most of data with your script through that getCurrentState call but some, for example the control mode, are missing or give same data all the time. I did some packet sniffing with OSX Safari network inspector and found out that Smart AC control pulls data every 10 seconds with different call (sorry dont have the exact syntax at my hands now) hvacState which takes username and password as parameter but also has its own url where your house id is also given.

With that hvacState I did get operation mode (Heat/Cool) but also Fan speed, Temp set etc but unfortunately didn't find presence information that way either.

I can post the details how to use hvacState call later on.

EDIT:
This is the url I used to get Smart AC controls data out:
Code: Select all
https://my.tado.com/api/v1/home/YOURHOUSEID/hvacState?username=YOURTADOUSERNAME&password=YOURTADOPASSWORD


and here is example response data:
{"tadoMode":"HOME","geolocationOverride":false,"acSetting":{"type":"COOLING","power":"ON","mode":"HEAT","temperature":{"celsius":22,"fahrenheit":71.6},"fanSpeed":"MIDDLE"},"overlay":null,"insideTemperature":{"celsius":23.07,"fahrenheit":73.53,"timestamp":"2015-10-29T09:51:32.436Z","type":"TEMPERATURE"},"humidity":{"type":"PERCENTAGE","percentage":30.2,"timestamp":"2015-10-29T09:51:32.436Z"}}

Re: Tado Heating App plugin request

PostPosted: Fri Oct 30, 2015 5:33 am
by juntta
Might have found something for the presence detection.

It doesnt give any reasonable data for me since I dont have the Smart Thermostat version. Its a bit of long shot but maybe someone can try what they get with this call:

https://my.tado.com/mobile/1.6/getAppUsersRelativePositions?username=YOURTADOUSERNAME&password=YOURTADOPASSWORD

As I said, it doesn't return anything but error with my Smart AC control but maybe Smart Thermostat users can get some data with this.

Re: Tado Heating App plugin request

PostPosted: Sat Oct 31, 2015 4:15 am
by Chockymonster
Nice find.

"success":true,"appUsers":[{"nickname":"Paul's Phone","username":"2576_paulsphone","geoTrackingEnabled":true,"privacyEnabled":false,"geolocationIsStale":false,"relativePosition":0},{"nickname":"Cassandra's Phone","username":"2576_cassandrasphone","geoTrackingEnabled":true,"privacyEnabled":false,"geolocationIsStale":false,"relativePosition":0},{"nickname":"Paul's iPad","username":"2576_paulsipad","geoTrackingEnabled":false,"privacyEnabled":false,"geolocationIsStale":null,"relativePosition":null}],"geoMapScale":{"0":22,"100":12.5}}

We're both at home, I'll check it when one of us is out

Re: Tado Heating App plugin request

PostPosted: Thu Sep 07, 2017 10:56 pm
by agame
Wondering has anyone progressed using Tado for presence detection? (e.g. implemented a script to extract the home/away status from that API response?).

Re: Tado Heating App plugin request

PostPosted: Fri Sep 08, 2017 2:49 am
by Londonmark
agame wrote:
Wondering has anyone progressed using Tado for presence detection? (e.g. implemented a script to extract the home/away status from that API response?).


I used to before I had a multi zone system. Worked pretty well for switching stuff on when we were all out. It triggered on the home/away that the status returned. Couldn’t make it person specific though. Stopped working when we went multi zone I think or it could have been when Tado updated the api. I also set used IFTTT to turn the heating on if someone else was at home (without the Tado app) based on motion sensors.

I’m now planning on using HomeKit to achieve the presence detection but with person specific triggers in iOS 11.