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