Using tado° Smart Thermostat X through Matter

I have it working now. Turns out everything has to be paired on the one phone or Matter won’t play. The problem I had was that the receiver paired with my phone but the thermostat wouldn’t. Starting again from scratch on my wife’s phone sorted it, made the Matter code available and I was able to get it all working on Home Assistant (phew)
I run Home Assistant inside Docker on a Raspberry pi so just manually added the Matter server as a separate docker image.
A bit embarrassing it took me as long as it did (though it was first thing Monday rather than the entire week!) but very glad it is all working now.
Thanks for the pointers, very helpful

I have only recently got TadoX and started using Matter / Threads etc…

I have just a dig through and testing different attributes, not sure if others have done this already - inwhich case then I will stop.

SystemMode

AttributeId: 28 (0x001c) seems to change value depending on thermostat being off vs on
0 seems to be off
4 seems to be on

What I can’t find (yet) is a difference between schedule vs none-schedule. but will keep digging

1 Like

i have tado X running on Tado app and matter (HA) the matter side… Lets say i struggle with it… this works for random times perfect and suddenly my devices keer dropping out and i am unable to reconnect.

0x001c is the SystemMode Attribute. 0 means Off, 4 means HEAT.
It means that the thermostat will heat if the temperature gets below the set temperature.
It does not mean, that the thermostat is currently heating. (That would be Attribute 0x0029 ThermostatRunningState, which is not implemented. Or maybe when 0x0008 PIHeatingDemand > 0)

I wrote a comment listing and explaining the matter attributes in use here: tado˚ Support: Help & Resources for Your Devices | tado˚ (tado closed their forum. You can expand my post here:)

Click here to expand the post.

The Tado X TRV exposes:

Cluster: Thermostat 513 (0x00201)
Attributes:
LocalTemperature (0x0000) (Currently measured temperature)
AbsMinHeatSetpointLimit (0x0003) (min. possible setting. 500 = 5°C)
AbsMaxHeatSetpointLimit (0x0004) (max. possible setting. 3000 = 30°C)
OccupiedHeatingSetpoint (0x0012) (Current set Temperature)
ControlSequenceOfOperation (0x001b) (2 = HeatingOnly)
SystemMode (0x001c) (0 ‘OFF’ or 4 ‘HEAT’)

They report one command:
SetpointRaiseLower (0x0000) (Raises or lowers the setpoint by an amount.)

Also, they expose the RelativeHumidityMeasurement for humidty.

Additionally, they have things like: HardwareVersion (VA04 for me), Location (“DE”) and SoftwareVersion (shows “1.0” which is only the matter certified part of the firmware).

What they support via the App but haven’t implemented:
PIHeatingDemand (They expose this in their API as heatingPower I guess this is used for their 1-3 “Heat Waves” display.)
This or ThermostatRunningMode could be used for “is the thermostat providing heat or is it idle?”

LocalTemperatureCalibration (0x0010) (This is supported by Eve Thermo)

They could support Away Mode with the following Attributes:
with the Weekly Schedule feature. (There is an “Away” day of week value)
OR
UnoccupiedHeatingSetpoint + Occupancy + RemoteSensing

Updates via Matter

What would be nice to support, but isn’t even in the app:
Min/MaxHeatSetpointLimit (Support for custom temperature limits.) (This is supported by Eve Thermo)

Also, they could implement the “Thermostat User Interface Configuration”.
Which would include TemperatureDisplayMode (°C / °F) and KeypadLockout (aka Child Lock).
(This is supported by Eve Thermo.)

On a quick look, I agree with their assessment. The Auto mode is meant for cooling/heating use case, not scheduling or other type of automatic set-point adjustment :frowning_face:

I guess “Auto” should be 0x0025 ThermostatProgrammingOperationMode with bit 0 (ScheduleActive) set, which has been part of the Matter Application Clusters v1.0 from 2022-09-28.

Thermostats which contain a schedule MAY use this attribute to control how that schedule is used, even if they do not support the Schedule Configuration feature.

The manual overrides and automatic reset could be implemented with TemperatureSetpointHold and TemperatureSetpointHoldDuration.

@agners I also noted that the thermostat endpoint’s humidity isn’t included in the climate entity in HA. I’m not sure if this should be reported as a bug or submitted as a feature request. :slight_smile:

Let’s say I buy the entire starter kit from Tado X with their bridge. Can I link their bridge to my Home Assistant, or do I need to set up all devices straight to the Matter from HA?

I’m still not convinced to get the Tado X, but after researching so many posts, as someone from the EU (Belgium), a Tado X seems like a good option because I want local and OpenTherm support.

I hadn’t heard about Eve Thermo before, but from what I can see, it does not support OpenTherm.

AFAIK the bridge only works as a Thread border router (that cannot work with HA), so if you’ve already got at least one border router connected to HA, you don’t need it.

Is anyone else having issues with devices going offline? I have 7 radiator thermostats and two wireless room thermostats. Connected via the wireless receiver and a bridge to add better thread coverage as advised by the Tado online help.
I am almost always missing at least one or two devices from HA sometimes more. Every now and then they are all available. I have tried to follow advice online regarding IPv6 and mDNS. However this integration via matter is unusable for automations as I never know which of my thermostats are actually controllable.

At this point I feel that Tado X over matter with HA is unusable, I have worked as a software developer and designer for a long time, if I can’t work out how to get a reliable network for this then I would argue that it is either too complex, or simply doesn’t work properly.

Yes, frequently. I initially set up the Tado thermostat with the Tado TBR and it was really unreliable across all Matter fabrics and would disconnect regularly.

After reading a tip online I reset everything and set it up again by connecting to Apple Home first ensuring it was connected through the HomePod mini TBR, then added it to the Tado app - the app reported that adding failed but after ignoring the error it showed up just fine. Apparently this is more stable because the Tado receiver’s TBR is not very good.

Finally I added it to Home Assistant.

With this setup the Tado thermostat has been solidly online in both the Tado and Apple Home fabrics and has been working fine.

However, it seems to randomly disconnect from Home Assistant at least once every few weeks, some times several times. I have set up an automation to alert me when it goes offline and then back online again. It generally comes back online within anywhere from a few minutes to about half hour or so. It seems weird to me that HA would think it’s offline even though it is clearly online in both the Apple Home and Tado apps.

Its a shame as I would like to use HA to automate things like auto-away but I don’t think I can rely on it and may have to use Apple Home automations instead.

1 Like

Is there a pending feature request for this to be added for using through Matter? I really would like to have a way to tell if the thermostat is currently heating or idling.

1 Like

Tado would need to implement the ThermostatRunningState attribute on their devices. Home Assistant already supports it. (See here: core/homeassistant/components/matter/climate.py at 299cb6a2ff183f8f41cd57a54467adb6672b2086 · home-assistant/core · GitHub)

1 Like

Has anyone devised a way yet of performing ‘resume schedule all rooms’ from within Home Assistant?

Hello, could you please give me additional details on how you made the blueprint work? I don’t remember how I added Tado to home assistant, so could you please tell me how you did? Which hotfix are you talking about?
I can see all Tado devices in home assistant and I can also set the temperature of each termostat via home assistant, but if I try to use the blueprint I get the error:
The automation “Update studio temp” (automation.update_studio_temp) has an unknown action: tado.set_climate_temperature_offset.

It’s a shame that Tado seem more concerned with making money rather than supporting smart integration with their system. The matter integration is flakey at best and without the ability to set home/away mode for Tado X systems it is just not a good candidate for integration with HA. Bye bye Tado. I’m switching to Drayton Wiser, local integration and no monthly sub.

Hi All,

My parents have moved to an apartment close to me, and we’re about to start setting up the systems in their home.

I would like to offer them a simple single app environment, so they don’t need to switch apps all the time and need to learn which app does what.

My dad always controlled everything, but he’s not capable of learning the new home anymore and I would like to give my mother a single overview.

Therefore Home assistant.

One of the requests of my parents is thermostat control.

It’s a (Remeha) OpenTherm gas heating system, I’m thinking about using Tado X (Central heating control and TRVs with temperature sensor).

I’m using V2 myself, and bumped out by the recent API limits, so thinking to solve this with Tado X on Matter for my parents, staying out of their cloud.

Did anyone set that up on their HA?

AFAIK I can link the matter device through a border router on the Home Assistant (I have some unused SkyConnects laying around, or maybe a SMlight SBLZ device)

Then I need a good schedule card for the rooms I think? Any recommendations?

Furthermore, how does Home Assistant handle the open therm intelligence? E.g. try to heat up the central heating with a low burner setting when full power isn’t needed? Even learning the apartment thermal behavior? Or does the main Tado X still do that, even if it’s not connected to the Tado ecosystem?

I own a wired Smart Thermostat X. OpenTherm seems to be something that isn’t exposed via Matter, at least with the factory un-updated firmware. I’ve never connected mine to the Tado system, so have never had an update.

This is what you get. Basic thermostat, with two states (Off/Heat). Humidity sensor. Temperature sensor. OpenTherm is not an option/there’s nothing you can put in that OpenTherm could realistically use for its intelligence (other than difference between set temperature and current mind). Having said that, my boiler is eBus rather than OpenTherm, so OpenTherm is not connected.

I bought it on the basis of wanting a battery powered dry contact relay. It does that. It is good for that (and expensive for that - I sense better options may have been available if I’d experimented - eg. drawing the power on the dry contacts to run something). As a Smart Device, making any decisions or thinking of its own; go elsewhere (or run it through the Tado ecosystem; although then it’s not making decisions on its own, so point stands).

In my house it runs in one of two settings (controlled entirely by Home Assistant) - Heat 30C and off, dependant on where a set of helper thermostats and helper switches attached to said thermostats are positioned (there’s another layer of automations controlling these).

Smart Zigbee TVRs (Sonoff TVR2, which are probably the most affordable out there) are also part of the various automations I set up (ie. if one of the helper switches on, the relevant TVR opens, 20 seconds later the Tado X relay opens - boiler was making some nasty noises when all TVRs were closed and it was asked to fire up). These are criticised for having two states of “open” and “closed”, but it is possible to automate/dynamically set the level of closure/the level it is open at at any specific time (I think this came with a firmware update rather than being there from day 0). You just need to use an automation to set the logic (ie. create a template sensor, do some maths with sensors you have access to generate a value between 0 and 100, have an automation that copies the value into the respective number field on the TVR).

I’ve found TVRs to be awful for controlling room temperature - these ones at least get hot when the radiator gets hot and would trip it off too soon. I use some basic (Sonoff again) humidity/temperature sensors that are sufficiently distant away from the radiator to actually provide the sensor data to the helper thermostats. You can have an automation that copies and pastes the value from the external sensor to the Sonoffs (at least, no idea about the Tado stuff).

Scheduler card and Scheduler component (co-dependencies; in HACS) are what I use for scheduling (combined with a drop-down helper - I guess this isn’t essential, could have the scheduler take control of a helper thermostat and set a specific value). The card itself is basic. The options when you click on the card are fairly intuitive.

It works. It’s paired to automations so when it changes it sets the virtual thermostats accordingly (which then use the data inputted into them to determine if they should request the Tado X opens its relay and/or if the TVR valves should open).

The thermostat, is, however, otherwise useless. I did initially program something in so I meddled with either the TVRs or the thermostat it would request adjustments to the room temperature, but this was something I removed for simplicity (possibly could make it work now, but it was challenging and this is the most complex automation stack I’ve ever built). If I ever do set the TVRs etc. to something, Home Assistant will snap it back pretty much immediately.

There are blueprints that Home Assistant can use to control heating more complexly, but I found a system of helpers to work most effectively (and I could design it myself, to meet my expectations).

So I guess in summary:

  • OpenTherm probably won’t work as intended without Tado’s cloud (limited to knowing the difference between the set temperature and the current temperature). Matter does not expose anything for OpenTherm with the Smart Thermostat X (battery powered/wired version at least, likely applies to the other devices also). If I was connecting to an OpenTherm boiler, I’d likely buy an ESP32 board and put an OpenTherm shield on it (OpenTherm - ESPHome - Smart Home Made Simple) before burying it away somewhere. I’d then use a wall tablet (or similar) with a Home Assistant dashboard to act as a controller. I’d likely do something similar if I was setting my dry contact system today, knowing what I know now (ie. would try to use a basic relay and a tablet rather than Tado’s thermostat).
  • Tado’s Smart Thermostat X exposes nothing but a basic thermostat, temperature and humidity (and identify if you want it to say “Hi!” to you at any point). The spirit of Matter (ie. offline interoperability) is not adhered to here - feels almost like a gimmick. If you want to do anything with it, aside from set a temperature remotely, you’re going to need to make your own automations in Home Assistant (possibly using a collection of helpers to act as settings, scheduler card, helper thermostats to act as a virtual thermostat for specific rooms/zones, window and door sensors to read whether windows and doors are open, tracking phones using the app to decide if someone is home etc.). Blueprints may ease this, but I found them to not give me the level of control/all the features I was seeking. In any case, Home Assistant can provide features Tado charges for and offline if you’re willing to write your own automations or find a good blueprint.
  • Things like schedules are doable with the Scheduler card/Component from HACs. Some of the heating blueprints offer this to some level.
  • TVRs are better off with a temperature sensor distant from the actual radiator. Tado may have got around this somehow (not sure how, some offset maybe?), but the ones I have would shut the heating off far too soon if I was to use the temperature value on them.

Even shorter summary. Not worth it. The amount of investment you will have to put in to make it work as you want it to do so is identical to how much you’d have to put in with a simpler and more affordable solution (eg. an OpenTherm shield and ESP32 or something like a Shelly UNI which I assume would work in my setup).

1 Like

I replaced tado X TRVs with following solution which is rock solid and working like a charm and fully under my and HA control:

  1. for radiator valves I used thermoelectric valves like this (Elektrobock Termoelektrický pohon SEH01-NC | bauhaus.sk) in combination with any smart relay/dimmer. Yes, it needs a power supply, but its noiseless and works perfect.
  2. for temperature reading Im using DS18B20 sensors with ESP32. I used unutilized home LAN network to connect them to the central rack where ESP board is. I do have Aqara W100 panels in rooms as well, can be used to set target room temperature and temp reading as well.
  3. Everything else is just a matter of helpers and HA setup.
    Its much cheaper, quieter and robust solution compared to battery TRVs.

Could anyone please help with my setup? I have two tado x systems acting alone in isolation, each with a Tado X wireless thermostat. As far as I can tell I have everything setup correctly on HA with a ZBT-1 connect installed and set up to use ‘thread’ with OTBR also installed on HA. Screen shots below.

Using the Tado app and selecting the option for ‘devices in use on other controller’ and ‘matter linking’ which provides a matter code, I cannot get a connection. The icon rotates for several minutes then times out.

All devices are within a meter of each other but I just don’t get any kind of response that communication between HA and Tado is taking place.

Thanks.

Could somebody please confirm that I have the matter setup correct, even if the Tado part is not known. Thanks.