Универсальная автоматизация для Home Assistant, которая закрывает все краны в комнате, где произошла утечка
alias: Сработал датчик протечки
description: Закрыть все стояки в комнате, где сработал любой из датчиков
triggers:
- value_template: >
{{ states.binary_sensor | selectattr('attributes.device_class', 'eq',
'moisture')| selectattr('state', 'eq', 'on') | list | count > 0 }}
trigger: template
for:
hours: 0
minutes: 0
seconds: 5
actions:
- variables:
data: |
{% set leak_sensor = states.binary_sensor
| selectattr('attributes.device_class', 'eq', 'moisture')
| selectattr('state', 'eq', 'on')
| first %}
{% if leak_sensor %}
{% set area = area_id(leak_sensor.entity_id) %}
{{ {'leak_sensor': leak_sensor.entity_id, 'area': area, 'area_name': area_name(area)} }}
{% else %}
{{ {'leak_sensor': None, 'area': None, 'area_name': 'Unknown'} }}
{% endif %}
- parallel:
- data:
entity_id: >
{{ expand(area_entities(data.area)) | selectattr('domain', 'eq',
'valve') | map(attribute='entity_id') | list }}
action: valve.close_valve
- action: script.play_text
data:
message: Обнаружена протечка в {{ data.area_name }}, закрыла стояки
- action: notify.persistent_notification
metadata: {}
data:
message: Протечка в {{ data.area_name }}
- action: input_text.set_value
metadata: {}
data:
value: Обнаружена протечка в {{ data.area_name }}
target:
entity_id: input_text.protechka
Алгоритм простой, в течении 5 секунд должны появится устройства с типом moisture
со статусом ON
, по нему вычисляется комната и название (для вывода на экран и озвучивание), потом в найденной комнате все краны закрываются, плюс проигрывается звук на колонках, плюс выводится сообщение. Главное условие - датчики протечки и краны должны иметь свойство комната.