[DEPRECATED] Tado Cooling Integration

ok I will take a look tomorrow when at my computer, if you are a hurry. Try link further up in this thread as I believe that is still active, and it has been tested

@bobbles ok i have taken a look at the code on github, i can create a device type from the code, however if i try to create a smartapp from the code i get the same error. this leaves me to conclude you are pasting in to a smartapp creation window, and not a device type creation window

@Fuzzyligic I cut and paste the code into the create a smartapp page on the Smartthings ide site.
Sorry to be thick here but how do I create this in a 'smartapp creation window '.

Seems we are getting wires crossed, what i mean is you are pasting it into the create Smart App page, this is incorrect, you need to create a new Device Handler on the following page, use the UK link if you are in the UK, or US link if you are in the US

UK Link

US Link

once on the page click New Device Handler in the top right and then choose the from code tab and paste into the window. this will create the device type and all you need to do is add your tado username and password to the preferences once its created, then you will see your current temps in ST.

I will expand this in the future so you can edit the temps etc, but at the moment integration with IFTTT will do what i want for now

Been a bit busy over the last few weeks but finally found time to update my custom device for Tado. Doesn’t include any A/C functionality but added the following:

  • Controls for selecting mode, Auto/Manual/Off
  • Set manual temperature
  • Show humidity
  • Changed how the capabilities are referenced to allow it to work with third-party SmartApps (e.g. Rule Machine and Smart Tiles)
  • Tidied up the code

@Fuzzyligic, As before, please feel free to merge the changes with your device type if you’ve not already implemented the controls etc.

cheers for that. I will take a look to transfer the functions to the AC. Great work! Its been the lowest priority for me as I have had a number of other device types to write for unsupported kit

@ian1 I have been today working on getting the AC control sorted, however i have noticed a issue with your device type for the heating. your hvacStatus method in the SendCommand code has /api/v1/home/2005/hvacState as the path, however 2005 is your specific home ID so this wont work for anyone except you my path is different. i captured this in a different parse method on my old AC device type.

It seems Tado have now changing their API again in readiness for the Radiator valves to include zones.

i’m gonna try and see if i can consolidate the heating and Cooling into a single device handler, just specifying the type in the handler, this would allow the us to quickly get the valves into ST using the same device type

in addition i liked your presence sensor, however i would prefer separate users presence to be passed through, i’ve figured out to do this and have just created a Device Type for individual Tado User Presence just specifying the Users name in prefs, however i think the time has come to write a Tado (Connect) smart app to tie them all together. I just need to get my head around the Dynamic pages to achieve this.

Thanks again for the code. most excellent

right got sidelined with work today will continue tomorrow, but @ian1 I have updated your original code to correctly get the homeId and apply to the hvacstatus method. I can now get the Relative Humidity correctly

Good catch on the home ID @Fuzzyligic , I’ll merge your changes into my device in Github.

Had a bit of a poke around with the new APIs used on the website. It is looking like they may well be the basis for their official API when they make it available. The https://my.tado.com/api/v2/homes/[XXXX]/zones/[Y]/overlay method seems to be the new way for setting modes/temperature and the new boost functionality for a set period or until the mode changes. l plan to have a go at getting that working in the device at some point.

I’m also looking at the possibility of replacing the getCurrentStatus calls with hvacState given it appears to be using a newer API and seems to have all the data we’d need from it. Presumably getCurrentStatus will be phased out once the newer APIs have everything covered.

It’ll probably be the weekend before I’ll have a chance to look at it though.

@ian1 i am working on that as we speak, however the only bit that is failing is the nested JSON request query, i have no idea how to do this in Groovy and examples when i look for groovy the IDE says is wrong.

any idea off the top of your head?

this is the last thing i have tried

query: [username:settings.username, password:settings.password, setting:[fanSpeed:“HIGH”, mode:args[0], power:“ON”, temperature:[celsius:args[1]],type:“AIR_CONDITIONING”, termination:[type:“TADO_MODE”]]]

ive tried all seperators like {} () etc

I think if you’re submitting the request, the JSON from settings onwards may need to be submitted as JSON in the body as a payload rather than as a query string.

I’ve had it working using a Chrome App called Boomerang Soap & REST Client which lets you play with web services.

You can see an example of the implementation in Groovy here:

@ian1 cheers i will have a read

right again with thanks to @ian1 i have an updated Tado Cooling device Type with heating/cooling controls. i’ve tested all modes and it works, however this device type is not complete for all Tado functions yet, i will expand properly later.

any manual overrides take effect up until the next Tado Mode Change.

Tado Cooling AC Device Type v1.1

next i need to Fully test my Tado User Presence & Water Heating device types and write a Tado Connect Code, will not get a chance to start this until monday.

when using ian’s code get the following

groovy.lang.MissingMethodException: No signature of
method: script1454000217262638266864.debug() is applicable for argument
types: (java.lang.String) values: [___exception:
groovyx.net.http.HttpResponseException: Not Found]
Possible solutions: input(java.lang.String), getAt(java.lang.String), getLog(), heat(), run(), dump() @ line 288

Also the temp seems to round up to nearest integer so no 22.1 etc

Hagan Use the code below, as @ian1 hasnt added my fix into his repository yet, as for rounding up, yes it rounds up, since you cant set the set point temp to a float number i don’t see the issue and rounding is th better solution IMO


hi thats seems to have cured it, i know get a ? in the temp displays
23? C

and the set temp
22? C

also the text for auto, manual, off is very very small

this might be because of the new quirks that have appeared with the 2.0.8 ios and android client. I’ve not tested it yet as im mainly a win phone user. Will take a look tomorrow, biylt I know I didn’t have a ? On 2.0.7

Hi. This is working great for me now. Brilliant.
As for the ? appearing, if you look at the code you can see 2 ocuurances of a ? in a diamond.
I’m assuming this is some sort of control character that got copied across in the code.
If you delete the 2 occurances then the ? stops appearing in the display.
great app though and it works a treat for me. :slight_smile:

ok my display shows the temps as for example 22° C, i am presuming its the degrees symbol that was changed to a control character as you said. I have just checked my github code and can see that the code is correct, there is no <?> in the code, so i can only presume that this is again the fact that you maybe copied the code from github without using the raw display. it is well known that without doing this errors will be introduced into the code

@Fuzzyligic - Just as an FYI - in this instance I think the problem has been introduced BECAUSE the code was copied from raw. When I view the code in the regular GitHub viewing window (using Chrome) I can see the correct small degree symbol but when I view in raw format I also see the <?>.

Obviously no big deal to correct and many thanks for the code.

1 Like