Оповещения Home Assistant: подробное руководство по использованию

от Администратор
0 Комментарии 6 мин на чтение

Оповещения в Home Assistant — это просто готовые автоматизации, которые могут доставлять уведомления. И они позволяют вам быстро создать автоматизацию, которая срабатывает при определенном условии, а затем может отправлять уведомления с динамическими или статическими интервалами, пока это условие не исчезнет. Они также могут отправлять сообщение о том, что условие исчезло, так что вы узнаете, когда событие закончилось.

Единственная проблема с оповещениями заключается в том, что их нельзя настроить через пользовательский интерфейс, как в некоторых версиях Assistant 2022.03, поэтому нам нужно будет сделать это в формате YAML. В настоящее время я предпочитаю использовать надстройку Studio Code Server для редактирования YAML, но вы можете выбрать другой метод. Единственное требование — у вас должна быть возможность редактировать файлы YAML Home Assistant. 

Если вы хотите скачать файлы, вы можете найти их на GitHub по адресу https://github.com/thejeffreystone/SlackerLabVideoExamples/tree/main/2022-04-Home_Assistant_Alerts

Включение оповещений

Сначала нам нужно включить оповещения, внеся небольшое изменение в наш файл configuration.yaml. Вы можете сделать это одним из двух способов. 

Сначала вы можете добавить один файл ко всем вашим оповещениям, добавив его в файл configuration.yaml:

alert: !include alerts.yaml

Для этого вам также потребуется создать файл с именем alerts.yaml. 

Или вы можете определить свои оповещения прямо в файле configuration.yaml:

Так:

alert:
  garage_open:
    name: Garage Open 
    message: Someone left the garage open. You Should Close it.
    done_message: Garage is closed
    entity_id: binary_sensor.garage_door
    state: "on"
    repeat: 5 # This will repeat every 5 minutes
    can_acknowledge: false
    skip_first: False
    notifiers:
      - mobile_app_jeffreys_iphone_8
  another_alert:
	name: ...

Оба варианта будут работать, так что решать вам. Что касается того, какие оповещения вы хотите добавить, давайте рассмотрим несколько примеров: 

Предупреждение о хорошем

Базовое оповещение выглядит так:

simple_garage_after_dark:
  name: Garage Open After Dark
  message: Кто-то оставил гараж открытым. Вам следует его закрыть.
  done_message: Гараж закрыт
  entity_id: binary_sensor.garage_door
  state: "on"
  repeat: 5 # Повторять каждые 5 минут
  can_acknowledge: false
  skip_first: False
  notifiers:
    - mobile_app_gendom_iphone_66

Первая строка — это  entity_id оповещение. Затем, поскольку это YAML, нам нужно сделать отступ для следующих строк. 

Name это имя вы увидите на панели управления Lovelace. 

Message — это сообщение, которое вы хотите отправить с помощью оповещения. 

done_message является необязательным и если включен, то при устранении условия вы получите сообщение. 

Каждое оповещение должно отслеживать одну сущность, которая ищет определенное состояние. Так что в этом случае  entity_id это имя сущности, которую вы хотите, чтобы это оповещение отслеживало, а  stateпод ним — состояние, за которым нужно следить. Так что в этом случае, когда включен бинарный датчик, отслеживающий дверь гаража, это оповещение сработает. 

Repeat это количество минут, в течение которых вы хотите, чтобы это уведомление повторялось до тех пор, пока не будет очищено. И это может быть постоянным, как это, то есть каждые 5 минут отправлять уведомление. Или это может быть динамическим, когда у вас есть несколько вариантов, например

repeat:
  - 5
  - 10
  - 15

Это значит, что уведомления будут приходить через 5 минут, затем через 10 минут после этого, а затем через 15 минут после этого. И как только они достигнут этих последних 15 минут, они будут повторяться каждые 15 минут. 

can_acknowledge Предполагается, что это означает, что вы можете отключить уведомления, даже если состояние не исчезло, но я пока не разобрался, как это сделать. 

skip_first позволяет пропустить первое уведомление, которое придет сразу после срабатывания оповещения. 

И, наконец,  notifiers список служб уведомлений, которым вы хотите отправить оповещение. Это может быть также список, но это должны быть службы уведомлений. 

Ограничения оповещений

Одним из ограничений оповещений является то, что вы не можете отслеживать несколько условий, например, солнце зашло, а гараж открыт. В таких случаях вам нужно будет создать шаблон датчика или использовать что-то вроде автоматизации, и  input_boolean — мой типичный шаблон.

Таким образом, вы можете создать входной логический параметр с именем  garage_open_after_dark , а затем использовать автоматизацию для определения того, когда следует включить этот входной логический параметр. 

Например, такая автоматизация:

- id: close_garage_lights_out
  alias: Close Garage at lights out
  initial_state: true
  trigger:
    - platform: time
      at: "22:30:00"
  condition:
    - condition: state
      entity_id: binary_sensor.garage_door
      state: "on"
  action:
    - service: input_boolean.turn_on
      entity_id: input_boolean.garage_after_dark

Эта автоматизация будет помещена в ваш файл automations.yaml и будет запускаться в 10:30 вечера каждый вечер. И мы используем условие для проверки, открыт ли гараж. Если да, то мы включаем наш входной логический параметр. 

Затем мы можем использовать это входное логическое значение в качестве сущности, которую отслеживает наше оповещение. 

slackerlabs_garage_after_dark:
  name: Garage Open After Dark
  message: >
    {{ [
        'Я заметил, что гараж все еще открыт.', 
        'Почему гараж все еще открыт?',
        'Кто-то забыл закрыть гараж.'
        ] | random }}
    {{ [
        'Ночь темна и полна ужасов, поэтому закрытие кажется хорошим вариантом.', 
        'Ты ждал, что я его закрою?',
        'Пора закрыть проход комарам.',
        'Прекратите делать то, что вы делаете, и закройте его. Пожалуйста.'
        ] | random }}

  done_message: Garage is closed
  entity_id: input_boolean.garage_after_dark
  state: "on"
  repeat: 5
  can_acknowledge: false
  skip_first: False
  notifiers:
    - mobile_app_gendom_iphone_66
    

В этом случае я добавил в сообщение немного сарказма и веселья, чтобы рандомизировать уведомление. 

Но вы могли бы просто использовать обычное сообщение. Однако входной логический параметр дает нам возможность легко отключить это оповещение, поэтому я обычно использую входной логический параметр вместо датчика шаблона.

Тест речевых уведомления

Хотя я обычно использую оповещения для отправки уведомлений на наши мобильные устройства через приложение-компаньон Home Assistant, вы также можете использовать уведомление с преобразованием текста в речь. Единственная проблема здесь в том, что ваши интеграции с преобразованием текста в речь должны быть службами уведомлений. Но это достаточно легко сделать. 

Для этого нам нужно перейти в файл configuration.yaml и создать раздел уведомлений, если у вас его еще нет. 

notify:
  - name: living_room # Имя
    platform: tts
    tts_service: tts.google_translate_say # The TTS service
    # tts_service: tts.cloud_say # Nabu Casa TTS
    # tts_service: tts.amazon_polly_say #for those rocking the Amazon Polly
    media_player: media_player.ha_blue #media player
    

Затем ниже  notify: нам просто нужно определить нашу службу уведомлений. К сожалению, это будет основано на динамиках. Так что если у вас нет системы для всего дома, которая играет во всех комнатах, если у вас несколько динамиков, вам понадобится по одному для каждого динамика, которому вы также хотите отправлять уведомления. 

name как вы хотите назвать эту службу уведомлений

platform будет ТТС. 

Тогда  tts_service будет ваш сервис Text to Speech. Я включил три общих примера, но вы также можете использовать Amazon Media player. 

Затем, чтобы использовать эту службу уведомлений, нам просто нужно добавить ее в список уведомителей для любого оповещения, для которого вы хотите использовать функцию преобразования текста в речь. Вот так:

 notifiers:
    - mobile_app_jeffreys_iphone_8
    - living_room # A TTS Service?

Затем после внесения изменений в configuration.yaml и определения оповещений, а также любых автоматизаций, необходимых для критериев оповещений, перезапустите Home Assistant. С этого момента Home Assistant будет уведомлять вас каждый раз, когда одна из этих сущностей оповещений находится в состоянии, определенном в ваших оповещениях.

Источник на английском языке

Даже просто подбор, перевод и оформление статей требуют времени. А самостоятельный обзор устройств требует еще и финансовых вложений. Если Вы хотите больше обзоров, Вы можете помочь автору.

Вам может понравиться

Оставить комментарий