Найти в Дзене
HASSStas: Рецепты HomeAssistant

Уведомляем о событиях в Telegram

Оглавление

Давненько ничего не писал про свой умный дом. Не потому что прекратил им заниматься, а потому что в последнее время больше занимался реорганизацией и причёсыванием: в ходе ремонта менял временные решения на постоянные и усовершенствовал разную автоматику.

Но вот, наконец-то, настало время разобраться с уведомлениями о события в телеграм. К этой задаче я уже подступался когда-то давно, ещё в самом начале настройки Home Assistant, но с наскоку тогда не получилось, а потом как-то руки не доходили. Осенью 2021го я вернулся к этой теме и обнаружилось, что тут всё довольно просто и странно, что я не сделал ещё раньше. А прорыв гофры в ванной в январские праздники в очередной раз напомнил мне, что состояние датчиков, которые я рассовал по разным углам, нужно не только красиво выводить на панели, но и своевременно о них узнавать, то есть нужны уведомления на телефон, особенно в тех случаях, когда меня нет дома.

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

Создаём чат-бота

Находим в телеграме отца всех ботов @BotFather и пишем ему:

/start

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

/newbot

BotFather запросит имя для этого бота и его юзернейм в телеграм:

Создание бота
Создание бота

Там же в тексте BotFather сообщит токен для взаимодейстия с новым ботом. Этот токен надо сохранить.

Узнаём свой чат ид

Чтобы бот отправлят сообщения нужному аккаунту в телеграме (себе), нужно узнать свой ChatID, для этого можно обратиться к другому боту @userinfobot. Пишем ему:

/start

Получаем краткую информацию о себе, но нас интересует только числовой ID.

Подключаем бота

Сначала сохраняем наши приватные данные - токен и ID в наши секреты secrets.yaml:

telegram_key: 'Наш токен от BotFather'
chat_id: 'Наш ID от userinfobot'

И прописываем настройки интеграции в configuration.yaml:

telegram_bot:
- platform: polling
api_key: !secret telegram_key
allowed_chat_ids:
-
!secret chat_id

А так же прописываем настройки уведомлений там же, в configuration.yaml:

notify:
- platform: telegram
name: HassStas
chat_id:
!secret chat_id

Всё, после перезапуска HomeAssistant мы получили новую службу notify.hasstas (или ваше название), в которую можно передать заголовок и текст сообщения. Проверить работу можно в панели разработчика, вызвав нашу службу:

service: notify.hasstas
data:
message: Тестовое сообщения в телеграм
title: Проверка связи
Результат проверки
Результат проверки

Настраиваем алерты

Ну и осталось только настроить автоматизации (или встроить в существующие) оповещения о событиях. Вот мой пример оповещений о том, что в моё отсутствие где-то включился свет:

- alias: Свет включился
trigger:
- platform: state
entity_id: light.bedroom,light.playroom,light.kitchen,light.livingroom
from: 'off'
to: 'on'
- condition: state
entity_id: person.goest
state: not_home
action:
- service: notify.hassstas
data:
message: '{{ trigger.from_state.attributes.friendly_name }} включился'
mode: single

Ну вот и всё, осталось только навесить уведомления на все мало-мальские события в нашем умном доме.