Add Danfoss Ally TRV external sensor blueprint
This commit is contained in:
parent
d041849a09
commit
a471f682ad
1 changed files with 80 additions and 0 deletions
80
blueprints/danfoss_ally_trv_external_sensor.yaml
Normal file
80
blueprints/danfoss_ally_trv_external_sensor.yaml
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
---
|
||||
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
|
||||
}}
|
||||
Loading…
Add table
Add a link
Reference in a new issue