54. Оповещения в Home Assistant. Вложенные группы.
Среда управления умным домом Home Assistant позволяет отправлять сообщения на устройства, на которых установлен её клиент. Например на смартфоны, с которых можно и управлять домом. Сами сообщения могут содержать разнообразную информацию указанную как в ручном, так и в автоматическом режиме.
В статье рассмотрим пример работы с приложением установленном на смартфоне с операционной системой Android.
Само приложение можно найти в Play Market'е по этой ссылке.
Для корректной работы приложения должен быть настроен удалённый доступ к самой системе ХА. (ссылка1, ссылка2, ссылка3)
Итак, доступ настроен, приложение установлено, в интерфейс зашли. Как же отправлять оповещения на телефон?
Для начала стоит помнить что у всего есть имя, и поэтому смартфон с приложением тоже "прописался" в системе с каким-то именем. Кстати его можно было указать в настройках в момент первичного подключения, или изменить позже с того же устройства.
Для того чтобы отправить оповещение на смартфон, используется сервис оповещения.
Сервисов оповещения может быть несколько, по одному на каждое устройство, на котором установлен клиент Home Assistant.
Первичное знакомство с этим сервисом и проверку отправки можно осуществить в одноимённой закладке в разделе разработчика.
В графе "сообщение" пишем текст сообщения, которое должно отобразиться в шторке уведомлений на смартфоне.
Если необходимо чтобы сообщение имело так же и заголовок, то отмечаем соответствующую опцию и указываем необходимый текст.
Жмём на кнопку вызова службы.
Важно отметить, что в этих поля можно так же использовать шаблоны, чтобы передавать разные значения. Например состояние того или иного датчика и т.д.
пример оповещения на смартфоне
Более полную и подробную информацию по теме можно получить из официальной документации по этой ссылке.
К сожалению, на момент написания этого материала, группирование устройств для отправки сообщений ещё не реализовано в графическом интерфейсе. Однако легко осуществляется с помощью редактирования основного конфигурационного файла configuration.yaml.
В него нужно добавить всего несколько строк:
notify:- name: "Family"platform: groupservices:- service: user1_phone1- service: user2_phone1
Вместо user1_phone1 и user2_phone1, соответственно, подставив идентификаторы необходимых устройств.
И тогда, после перезагрузки конфигурации появится новая служба:
Разовьём эту мысль далее и допустим что один из членов семьи может поменять смартфон или у него может появиться второй. Тогда, чтобы оповещения продолжали поступать на актуальный аппарат, нужно создать группу устройств для этого пользователя, и уже её указывать в качестве адресата в скриптах и автоматизациях. Это позволит редактировать участников группы делая изменения только в одном месте, без необходимости обновлять все объекты в которых может быть указана группа. Конечно же речь идёт о случаях когда настроено большое количество оповещений на отсылку одному конкретному пользователю.
Итак, есть устройства "юзер1" и "юзер2", они объединены в группу "семья". Эта группа указана в автоматизациях и прочих сценариях.
Чтобы избежать проблем связанных со сменой телефонов, как было только что описано выше, создаются группы для каждого юзера по отдельности: "гр.юзер1" и "гр.юзер2" соответственно.
Чтобы все устройства могли продолжить получать уведомления, нужно сделать группу "гр.семья" участниками которой будут две другие группы: "гр.юзер1" и "гр.юзер2". На случай если один из пользователей меняет аппарат, то он так же меняется только в одном месте ("гр.юзерX") и дальше всё продолжает работать.
А теперь собственно главный вопрос: можно ли делать такое и если да, то как??
Легко. Создадим скачала по группе для каждого пользователя. Участниками группы будут смартфоны этого пользователя. И не важно сколько их у него, 1 или 10, надо указать все.
notify:
- name: "user1"
platform: group
services:
- service: user1_phone1
- service: user1_phone2
- name: "user2"
platform: group
services:
- service: user2_phone1
- service: user2_phone2
Как видно - это 2 группы, по одной для каждого из пользователей. В каждой группе по два телефона для каждого пользователя.
После создания этих служб в файле конфигурации, перезагружаемся и объекты создаются в системе.
Теперь снова открываем тот же файл конфигурации и дописываем к нему новый объект:
- name: "family users"
platform: group
services:
- service: user1
- service: user2
Как видно, это группа, участниками которой являются две другие созданные ранее группы. И которые уже существуют в системе. Поэтому перезагружаемся ещё раз и в системе появляется новая группа и одноимённый работающий сервис: notify.family_users.
Пример:
Когда у пользователя номер 2 сменится второй смартфон, то только в группе user2 нужно будет указать новое имя устройства, и перезапустить систему.
Комментарии
Отправить комментарий