Edit: Here we go. This ended up being quite simple. The below will create a template thermostat component that calls tado on/off and uses an external sensor to sample the temperature. No need for messing around with offsets etc.
The only downside is:
-
when the thermostat needs to heat the room I’m telling Tado to heat it for 99 hours to 30 degrees. This is effectively my TADO ON command.
-
when the thermostat needs to stop heating the room I’m telling Tado heat it for 99 hours to 5 degrees. This is effectively my TADO OFF command.
Obviously this means the temperature displayed on the radiator and in the Tado app is incorrect. But who cares? I will now just switch to using homeassistant as the single source of control for heating.
climate:
- platform: generic_thermostat
name: Study Climate Tado Test
heater: switch.study_climate_tado_test_heater_switch
target_sensor: sensor.study_climate_sensor_temperature
switch:
- platform: template
switches:
study_climate_tado_test_heater_switch:
turn_on:
service: tado.set_climate_timer
target:
entity_id: climate.study
data:
time_period: '99:00:00'
temperature: 30
turn_off:
service: tado.set_climate_timer
target:
entity_id: climate.study
data:
time_period: '99:00:00'
temperature: 5