Skip to content

Instantly share code, notes, and snippets.

@sanderma
Last active April 29, 2024 09:01
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save sanderma/1e9163c690e23bc8d32a8c9e9d89a910 to your computer and use it in GitHub Desktop.
Save sanderma/1e9163c690e23bc8d32a8c9e9d89a910 to your computer and use it in GitHub Desktop.
Homeassistant blueprint to set Tado offset using separate temperature sensor
blueprint:
name: Tado temperature offset
description: Ensure the Tado smart valve has the temp of a separate sensor
domain: automation
input:
source_temp_sensor:
name: Source Temperature sensor
description: This sensor will be used as the source.
selector:
entity:
domain: sensor
device_class: temperature
target_tado:
name: Tado
description: The Tado to set the offset on.
selector:
entity:
domain: climate
variables:
target_tado: !input target_tado
source_temp_sensor: !input source_temp_sensor
tado_temp: "{{ state_attr(target_tado, 'current_temperature') | float }}"
current_offset: "{{ state_attr(target_tado, 'offset_celsius') }}"
actual_temp: "{{ states(source_temp_sensor) | float }}"
offset: "{{ ( actual_temp - tado_temp ) | round }}"
calculated_offset: "{{ ( ( actual_temp - tado_temp ) + current_offset ) | round }}"
trigger:
- platform: state
entity_id: !input target_tado
attribute: current_temperature
- platform: state
entity_id: !input source_temp_sensor
condition:
- condition: template
value_template: "{{ offset != 0 }}"
- condition: template
value_template: "{{ actual_temp != 0 }}"
action:
- service: system_log.write
data:
message: >
{{ target_tado }} has temp difference of {{ offset }}. Setting offset to {{ calculated_offset }}
level: info
logger: blueprints.tado.offset
- service: system_log.write
data:
message: >
target: {{ target_tado }}
source: {{ source_temp_sensor }}
temp difference: {{ offset }}
actual_temp: {{ actual_temp }}
tado_temp: {{ tado_temp }}
current_offset: {{ current_offset }}
calculated_offset: {{ calculated_offset }}
level: debug
logger: blueprints.tado.offset
- service: tado.set_climate_temperature_offset
data:
offset: "{{ calculated_offset }}"
entity_id: "{{ target_tado }}"
mode: single
@justcop
Copy link

justcop commented Dec 14, 2021

Actually, just looked at the API and you can't change open window detection mode from there. I wonder though if you could just read the mode (manual/scheduled etc) prior to the offset change and then reset that afterwards, would that override the open window detection, I think so.

@ilpantera
Copy link

Does anybody have the issue that this does not work when a room as more than one thermostat? The script works fine on one thermostat for me, but for rooms with more than one, the offset is not set.

@justcop
Copy link

justcop commented Oct 11, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment