Универсальная автоматизация для 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, по нему вычисляется комната и название (для вывода на экран и озвучивание), потом в найденной комнате все краны закрываются, плюс проигрывается звук на колонках, плюс выводится сообщение. Главное условие - датчики протечки и краны должны иметь свойство комната.
