80 lines
2.2 KiB
YAML
80 lines
2.2 KiB
YAML
---
|
|
blueprint:
|
|
author: runejuhl
|
|
homeassistant:
|
|
min_version: 2024.6.0
|
|
name: Radiator external temperature sensor control (0.0.1-alpha)
|
|
description: |-
|
|
## Radiator external temperature sensor control
|
|
|
|
Version `0.0.1-alpha`.
|
|
|
|
Sets the `external_measured_room_sensor` value on Danfoss Ally TRV, enabling
|
|
the TRV to adjust the valve based on an external sensor.
|
|
domain: automation
|
|
source_url: https://git.petardo.dk/runejuhl/hass-blueprints/raw/branch/dev/blueprints/danfoss_ally_trv_external_sensor.yaml
|
|
|
|
input:
|
|
radiator:
|
|
name: Radiator thermostat
|
|
selector:
|
|
entity:
|
|
filter:
|
|
- domain: climate
|
|
climate_sensor:
|
|
name: Climate sensor temperature entity
|
|
selector:
|
|
entity:
|
|
filter:
|
|
- device_class:
|
|
- temperature
|
|
|
|
mode: queued
|
|
|
|
variables:
|
|
climate_entity: !input radiator
|
|
temperature_entity: !input climate_sensor
|
|
|
|
triggers:
|
|
- entity_id: !input climate_sensor
|
|
attribute: temperature
|
|
trigger: state
|
|
|
|
conditions:
|
|
# We only want to execute the action if the temperature has changed by at
|
|
# least 0.1 degress C, according to the Zigbee2MQTT documentation for the
|
|
# device: https://www.zigbee2mqtt.io/devices/014G2461.html
|
|
#
|
|
# `external_measured_room_sensor` defaults to `-8000`, so this will work in
|
|
# all cases.
|
|
- condition: template
|
|
value_template: >-
|
|
{{
|
|
(
|
|
(
|
|
state_attr(climate_entity, 'external_measured_room_sensor') -
|
|
trigger.to_state.attributes.temperature * 100)
|
|
| abs)
|
|
>= 10
|
|
}}
|
|
|
|
actions:
|
|
- variables:
|
|
# If we don't have a trigger ID the automation has been run manually, in
|
|
# which case we pull the temperature from the sensor instead of the
|
|
# trigger state.
|
|
external_temperature: >-
|
|
{% if trigger.id is not defined %}
|
|
{{ state_attr(temperature_entity, 'temperature') }}
|
|
{% else %}
|
|
{{ trigger.to_state.attributes.temperature }}
|
|
{% endif %}
|
|
- action: number.set_value
|
|
target:
|
|
entity_id: |-
|
|
number.{{ states[climate_entity].object_id }}_external_measured_room_sensor
|
|
data:
|
|
value: >-
|
|
{{
|
|
(external_temperature * 100) | int
|
|
}}
|