-
-
Save sanderma/1e9163c690e23bc8d32a8c9e9d89a910 to your computer and use it in GitHub Desktop.
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 |
Unfortunately the api doesn't allow for that, or else none of this would be necessery.
The api has more features than the HA integration but doesn't go as far as that.
HA intergrations are just a shell around apis but as its laborious, they only include the features that the maker of the integration has translated from the API.
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.
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.
thanks a lot. I will have a look at that scripts as well.
I would think that if you are geting acces to the tado api then it would probably, if possible, be a lot easier just to have the external temp reader act as the leading temp reader, similar as adding another (70 euro) wireless tado temp unit ?