Sync Windows Sensors with tado Thermostat in Home Assistant

tado's built-in Window-Open-Detection never works. So I installed windows contacts and connected them to tado with Home Assistant.

Sync Windows Sensors with tado Thermostat in Home Assistant

tado Thermostats have a built-in Window-Open-Detection mechanism, which is based on a temperature sensor inside the thermostat to detect a sudden drop in temperature as an open window. Unfortunately, this never works. So I installed windows contacts and connected them to tado with Home Assistant.

tado's built-in Window-Open-Detection comes with several flaws:

  1. Very unreliable
  2. Requires a paid subscription
  3. Cannot detect, when a window got closed

Although the tado community has been requesting window contacts from tado for years, the company refused to offer some. So I had to come up with a self-made solution: I've built a Blueprint for Home Assistant, which observes one or many window sensors from any manufacturer (I chose the Aqara Door & Window sensor). If one of these windows gets opened, the heating in the room will be disabled. When the last open window got closed, the heating will continue.

Here is the blueprint:

blueprint:
  name: Open window heating sync
  description: Turns heating off, when any of the selected windows got opened
  domain: automation
  input:
    window_entities:
      name: Windows
      description: The window sensores in the room to observe
      default: []
      selector:
        entity:
          domain: binary_sensor
          device_class: opening
          multiple: true

    heating_entity:
      name: Heating
      description: The heating system in the room to turn on or off
      selector:
        entity:
          domain: climate

variables:
  window_entities: !input window_entities

trigger:
  - alias: When any window got opened or closed
    platform: state
    entity_id: !input window_entities

action:
  - alias: Choose, if heating needs to be turned on or off 
    choose: 
      - alias: Turn heating off, when any window is open
        conditions:
          - alias: Check, if any window is open
            condition: state
            state: "on"
            match: any
            entity_id: !input window_entities
        sequence:
          - alias: Turn heating off
            service: climate.set_hvac_mode
            data:
              hvac_mode: "off"
            target:
              entity_id: !input heating_entity

      - alias: Turn heating on, when all windows are closed
        conditions:
          - alias: Check, if any window is open
            condition: state
            state: "off"
            entity_id: !input window_entities
        sequence:
          - alias: Turn heating on
            service: climate.set_hvac_mode
            data:
              hvac_mode: auto
            target:
              entity_id: !input heating_entity
config/blueprints/automation/common/open_window_heating_sync.yaml

All you need to do, is to place this script at the config/blueprints/automation/common/ folder of your Home Assistant installation. After a restart, you can connect the windows of each room with the tado heating room in the Automations UI.


☝️ Advertisement Block: I will buy myself a pizza every time I make enough money with these ads to do so. So please feed a hungry developer and consider disabling your Ad Blocker.