[Release] Tado (Connect)

It was time consuming but to make sure I didn't break anything I went through on two screens, one with the github repo code open and one with the tado connect app code on my hubitat. basically and line that starts log.debug it seems you can remove without too much issue. obviously the down side being if there is an issue this app code won't output that, but I figure if I ever have an issue i'll drop back in the main code with the debug code.

Just be careful you don't accidentally delete any brackets or anything. Now it doesn't flood my logs so I can see my other devices. I still get one error as mentioned above that FuzzyLigic said is because of Tado changing their presence coding so I'm getting ___exception: java.lang.NullPointerException: Cannot get property 'atHome' on null object every 5 minutes in the logs but that's the only one I get now.

Sounds like something to do on wet Sunday in lockdown..thanks for getting back to me :+1:

how do i get the user presence to work ? i have installed the driver, but the list of users is empty in the setup?
i have 2 current tado users (i actually used tado connect for smartthings) but today i moved to hubitat :smiley:

Any updates on the road?

Unfortunately i see that a lot of apps are not updated or maintained.

In this case the last update is over 3 years old. I would like to have the opportunity to have the thermostats report the windows status. They detect if a windows is open and you receive a notification from the Tado App.

Click on 'next' at the bottom of the page.

I don't understand what you are referring to. Is there a way to get that information into hubitat?

The statement I made was not referring to your post. There was a post after yours where the person who posted couldn't work out what to do.
That is why I posted what I did.
The poster then deleted his post which deletes after 24 hours, hence the confusion.

Question:

If i switch the thermostat remote on AND off, everything works fine.

If i switch the thermostat remote on, but then turn them off by hand, they turn themself back on after a little time.

What am i doing wrong?

(I only have the internet bridge and three thermostatheads. No external thermostat)

I realized that the password is shown in the logs as plain text. This is something I am not feeling very comfortable with...

How does this driver work? Why does it needs internet connection to control the devices? It should be possible to control them trough the bridge without internet.

If someone is interested, I removed (almost) all debug logs and removed the weatherreport of Tado Connect. It still uses lots of Hubitat resources and also for the driver all the debug logs has to be removed. It seems to work for me, although resource hungry and an minor issue with one thermostat. I will be trying to change the app so that it is less resource hungry, but I am not an coder, so maybe I won't succeed. At this moment, I only want the temp and humidity reports of all my thermostats and radiator thermostats. If someone has an better Tado integration, I would surely appreciate information about it. Are there still some other Hubitat users who are using this Tado Connect app?

1 Like

I've commented out most of the debug logging as well.
I also changed the polling times for 'userpoll' to poll every 15 seconds as I find every 5 minutes to be far too long.
For information this is a change as shown below.
Commented out this on line 365.
// runEvery5Minutes("userPoll")

Inserted this below it.
schedule("5/15 * * * * ? *", "userPoll")

Every 15secs, isn't that a bit overkill or why do you need every 15secs? If I am correct, I read that the Tado devices use an interval of 1 minute and only report when changes are measured. I was thinking in making the interval for the Tado (connect) app twice as high to 10min or so, because I do not need these values so often. Plus it will mean that Tado (Connect) will use half of the cpu times and then it still will be the app wich is by far the most resource hungry.,.

May I ask what "% of total" in the logs (app stats) you have with 5 secs interval? With an 5 minute interval with 10 connected Tado devices (and with debug logs and weatherreport commented out), the Tado (connect) app is using >0,7% of total cpu time and >80% of total busy time on my hubitat. The second most intensive app I use (Maker Api) is using about 0,03% of total cpu and 3,6% of total busy, all the rest of my apps are using <0,02% and <2%, so that's really a big difference.

Besides the app cpu times, also the tado devices uses lot's of resources: each tado device (so the following values times 10 in my house) use about 0.068% of total cpu and 5.8% of busy. Every other device I have uses less then 0,02% and 1.8%.

The reason I've started using 15 secs for userpoll is im finding Tado presence 100% reliable while Life360, HE phone app and locative are still hit and miss for me.
15 secs gives time for me to enter the Tado geofence and my presence rules to activate before I open any doors etc.
I'm not finding any impact on my hub but having said that i have split my apps and devices across 2 hubs and all my rules/pistons on another hub.

Also I only have a Tado thermostat connected so there isn't much going on device wise.
I have left the polling of devices, my lonely thermostat, to 5 minutes.

Yes still using it & with winter kicking in now paying more attention to my heating. Noticed that I have a few zones that aren't updating when they should.

Did you find any issues with this on yours? I've got 13 rooms configured (only 10 that can call for heat).

Ok, found my issue was that if you have more than 10 devices the code is doing a search for the child radiators using "contains" so zone 1 and 11 both return the device for zone 1.

In the Tado Connect app, modify the line (approx 414):
def existingDevices = children.find{ d -> d.deviceNetworkId.contains(deviceId + "|" + deviceType) }

to

def existingDevices = children.find{ d -> d.deviceNetworkId.startsWith(deviceId + "|" + deviceType) }

This is now refreshing all my devices correctly.

I'm considering continuing with a bit of optimisation such as creating a "Tado status" child item which contains the weather (instead of polling for it on each device) and can be used to toggle the whole system into "home" or "away" modes...

I also updated the thermostat code to pull out the "heatingpower" percentage so you can log how much a room is calling for heat - handy for logging energy usage vs need

Any interest or other use cases?

@Bibbleq as you are making changes for this platform and I don't have Hubitat anymore to test, I am happy if you raise an issue on the repo, I can add you as a contributor to allow you to submit pull requests for ongoing improvements into the main branch.

Sounds good thank you & done.

Bit of a newbie on the github side of things but sure I can figure that too :slight_smile:

Hi Bibbleq, one of my Tado's wasn't updating correctly either and Tado Connect updated one room twice and neglited my last/10th room/device. Reading your thread about your fault, I guess this applies to me too and I will tried your code change.

By the way, the code line
def existingDevices = children.find{ d -> d.deviceNetworkId.contains(deviceId + "|" + deviceType) }
is mentioned in the following three definations:
def initialize() {
def getInititialDeviceInfo(){
def poll() {

I changed it in def poll (line 414), but I also changed in the other two definitions, would that be correct (?). First I only changed the poll, but when I ran the Tado app (and configured all Tado devices), only 9 Tado devices where logged. When I also changed the other two def's and ran the Tado app, 10 devices where logged, so that seems good.

Thanks for that Bibbleq, as I made an 5.1 rule for refreshing my 10th Tado device, that also worked but this is much cleaner.

The "Tado status" child item with wheater would be very interesting.

Yup thats right - the other two places are used different times (like for users vs devices) but same change will apply across all if you have too many :slight_smile:
I'll see what I can come up with on the other bits - for me being able to toggle Tado all away/home would be good so hoping to get that on a child device & moving weather to that makes logical sense (as it's already coded too).