Skip to content

Instantly share code, notes, and snippets.

@lucaam
Created February 11, 2026 16:28
Show Gist options
  • Select an option

  • Save lucaam/5411065dd078e0af3a48eac6c239b069 to your computer and use it in GitHub Desktop.

Select an option

Save lucaam/5411065dd078e0af3a48eac6c239b069 to your computer and use it in GitHub Desktop.
Homeassistant blueprint to set Tado Hijack offset using separate temperature sensor - Based on: https://gist.github.com/sanderma/1e9163c690e23bc8d32a8c9e9d89a910
blueprint:
name: Tado temperature offset (tado_hijack)
description: Ensure the Tado smart valve has the temp of a separate sensor (compatible with tado_hijack integration)
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
tado_temp_sensor:
name: Tado Temperature Sensor
description: The Tado thermostat temperature sensor (e.g., sensor.tado_smart_radiator_thermostat_va0231293696_temperature)
selector:
entity:
domain: sensor
device_class: temperature
offset_number_entity:
name: Temperature Offset Number Entity
description: The number entity for temperature offset (e.g., number.tado_smart_radiator_thermostat_va0231293696_temperature_offset)
selector:
entity:
domain: number
variables:
tado_temp_sensor: !input tado_temp_sensor
source_temp_sensor: !input source_temp_sensor
offset_number_entity: !input offset_number_entity
tado_temp: "{{ states(tado_temp_sensor) | float }}"
current_offset: "{{ states(offset_number_entity) | float(0) }}"
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 tado_temp_sensor
- 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: >
{{ tado_temp_sensor }} has temp difference of {{ offset }}. Setting offset to {{ calculated_offset }}
level: info
logger: blueprints.tado.offset
- service: system_log.write
data:
message: >
tado_sensor: {{ tado_temp_sensor }}
source: {{ source_temp_sensor }}
offset_entity: {{ offset_number_entity }}
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: number.set_value
target:
entity_id: "{{ offset_number_entity }}"
data:
value: "{{ calculated_offset }}"
mode: single
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment