Currently some TVRs have a mode issue in deCONZ heat means often boost so feel free to change it or check [PR home-assistant/core #47767] and [Issue deconz-rest-plugin #1098]
The most deCONZ Zigbee TVR have an internal Temperature sensor.
The fact that this sensor ist located direct to the radiator will generated false measurements.
To fix this this blueprint uses an external temperature sensor and adjust the offset of the Thermostat to match the room temperature,
it also will be linkt to an External window sensor group to turn off the heating,
if a window is open. And also turns off if a specific outside temperature is reached to avoid heating in summer
blueprint:
name: Smart Thermostat for deCONZ
description: >-
The most deCONZ Zigbee TVR have an internal Temperature sensor.
The fact that this sensor ist located direct to the radiator will generated false measurements.
To fix this this blueprint uses an external temperature sensor and adjust the offset of the Thermostat to match the room temperature,
it also will be linkt to an External window sensor group to turn off the heating,
if a window is open. And also turns off if a specific outside temperature is reached to avoid heating in summer
domain: automation
input:
window_sensor:
name: Window(s) / Door Sensor(s)
selector:
entity:
domain: group
weather:
name: Weather
description: "Specify your weather to get the current outside temperature from."
selector:
entity:
domain: weather
wintermode:
name: Wintermode
description: "The ouside temperature needs to be below this to activate wintermode. (Default = 16°C)"
default: 16
selector:
number:
step: 0.5
min: 0
max: 150
unit_of_measurement: "°C or °F"
wintermode_delay:
name: Wintermode Delay
description: "Time the outside temperature neeeds to stay above the wintermode temperature to turn the heating off."
default: 30
selector:
number:
mode: box
min: 1
max: 86400
unit_of_measurement: minutes
temperature:
name: External Temperature Sensor
selector:
entity:
domain: sensor
device_class: temperature
thermostat:
name: Thermostat
selector:
entity:
domain: climate
mode: queued
max_exceeded: silent
max: 10
variables:
temperature: !input temperature
thermostat: !input thermostat
currenttempoffset: >-
{{ ((states(temperature)|float - state_attr(thermostat, 'current_temperature')|float) * 100) }}
offset_val: >-
{%- if (currenttempoffset != 0) %}
{{ currenttempoffset + (state_attr(thermostat, 'offset')|int) }}
{% elif (currenttempoffset == 0) %}
{{ state_attr(thermostat, 'offset')|int }}
{% endif %}
trigger_variables:
temperature: !input temperature
thermostat: !input thermostat
trigger:
- platform: state
entity_id: !input thermostat
from: 'off'
to: 'heat'
- platform: template
value_template: "{{ state_attr(thermostat, 'current_temperature') }}"
- platform: state
entity_id:
- !input temperature
- !input window_sensor
- platform: numeric_state
entity_id: !input weather
attribute: temperature
below: !input wintermode
for: !input wintermode_delay
- platform: numeric_state
entity_id: !input weather
attribute: temperature
above: !input wintermode
for: !input wintermode_delay
action:
- choose:
- conditions:
- condition: and
conditions:
- condition: state
entity_id: !input window_sensor
state: 'off'
- condition: numeric_state
entity_id: !input weather
attribute: temperature
below: !input wintermode
sequence:
- service: deconz.configure
data:
entity: !input thermostat
field: /config
data:
offset: 0
- service: deconz.configure
data:
entity: !input thermostat
field: /config
data:
offset: >-
{{ offset_val }}
- service: climate.set_hvac_mode
data:
hvac_mode: 'heat'
entity_id: !input thermostat
- delay: 00:00:05
- conditions:
- condition: or
conditions:
- condition: state
entity_id: !input window_sensor
state: 'on'
- condition: numeric_state
entity_id: !input weather
attribute: temperature
above: !input wintermode
sequence:
- service: climate.set_hvac_mode
data:
hvac_mode: 'off'
entity_id: !input thermostat
default: []