
Подключаем Telegram к Home Assistant
Для отправки уведомлений из Home Assistant есть несколько способов. Одним из таких является Telegram. Если вы пользуетесь каждый этим мессенджером, то есть возможность настроить удобное получение уведомлений. Настройка довольно легкая и не потребует больших знаний.
Если у вас Home Assistant не имеет удаленного доступа, то переживать не стоит. Уведомления из телеграма все равно будут присылаться. Для интеграции требуется только доступ в интернет. А она в свою очередь напрямую связывается с Telegram. Более подробное описание интеграции можно найти в документации.
Создание Telegram бота
Для создания своего бота необходимо перейти по ссылке https://t.me/BotFather и нажать на кнопку «Старт». Бот выведет список доступных команд с описанием, но удобней воспользоваться мини-приложением, которое открывается по кнопке «Open» или «Открыть».


Введите любое имя бота, например «Домашний бот» и имя пользователя бота, по которому он будет доступен.
Имя пользователя бота обязательно должно заканчиваться на
bot
, т.е. должно быть либоmyHomeBot
илиmyHome_bot
После успешного создания бота можно будет получить его API-ключ, этот ключ можно будет посмотреть в любое другое время.

Получение ID пользователя Telegram
Чтобы бот понял кому необходимо отправлять сообщения надо получить ваш ID пользователя или ID чата. В приложении Telegram для компьютера перейдите в Настройки
→ Общие
, в самом низу найдите и включите опцию «Показывать ID чатов в профиле».


Теперь на экране профиля пользователя или группы появится новое поле PEER ID
. Для того чтобы узнать свой ID перейдите в Настройки
→ Мой профиль
.
В режиме отладки так же можно узнать ID чатов от который приходят сообщения.
Активация бота
Для того чтобы бот мог писать вам или другим пользователям, которые будут его использовать, необходимо в поиске найти бота по имени и нажать «Старт». Если вы планируете отправляться сообщения нескольким пользователям, то проще всего добавить вашего бота в чат или канал, тогда для отправки сообщений вам нужен только ID этого чата.
Действия выше обязательны. Если вы этого не сделаете бот не сможет отправлять вам сообщения. Каждый пользователь которому вы хотите отправлять сообщения должен активировать бота.
Настройка Home Assistant
Установите интеграцию, для этого в Home Assistant перейдите в Настройки
→ Устройства и службы
. Справа внизу нажмите Добавить интеграцию
, в поиске введите и выберите Telegram
, на втором шаге выберите Telegram Bot
.


На следующем шаге в разделе Платформа
выберите Pooling
, введите API-ключ бота, который вы получили и завершите настройку.
- Broadcast — только отправка сообщений
- Pooling — отправка и обработка сообщений
- Webhooks — отправка и обработка сообщений, требующая чтобы ваш Home Assistant был доступен из интернета

В режиме
Pooling
API ключ может использоваться только в одном боте, т.е. другой бот с использованием этого ключа уже не сможет подключиться.
Добавление пользователей
В Home Assistant перейдите в Настройки
→ Устройства и службы
→ Telegram bot
и нажмите Добавить разрешенный ID чата
. В открывшемся окне введите ID пользователя или чата.

Важно! Если вы получаете ошибку «Чат не найден», то в первую очередь конечно проверьте правильность ID, а во вторых убедитесь что вы активировали бота как описано выше.
Важно для чатов и каналов!
ID
чата или канала нужно вводить со знаком минуса, т.е. еслиPEER ID
чата 123456789, то в окне нужно ввести -123456789. Так же проверьте что вы добавили бота в нужные чат или канал. Еще замечена интересная особенность, если экспериментировали добавляя и удаляя бота из чата, тогда при добавлении в интеграцию нужно добавить -100, т.е. еслиPEER ID
чата 123456789, то в окне нужно ввести -100123456789.
После добавления ID через меню Три точки
можно переименовать запись, для более удобного поиска в интеграциях.
Проверка отправки уведомлений
В Home Assistant перейдите в Панель разработчика → Действия
Через стандартные уведомления
После того как в интеграции Telegram
вы добавили разрешенные ID чатов она создала стандартные объекты уведомлений в Home Assistant. Этот способ подходит для простых текстовых уведомлений без дополнительных настроек.
В Панели разработчика
в поиске введите notify.send_message
. В разделе Цели вы можете выбрать конкретные цели, т.е. отдельно пользователя или чат, если у вас их несколько. Можно выбрать Устройство и тогда сообщение будет отправлено всем пользователям, которые добавлены к этому боту.

Через интеграцию
Отправка через интеграцию имеет гораздо больше настроек и возможностей: отправка сообщений, стикеров, файлов и т.п. Единственный минус в том что вводить ID чатов нужно вводить вручную.
В Панели разработчика
в поиске введите telegram_bot.send_message
и выберите Отправить сообщение
. Введите текст сообщения и в разделе Цели введите ID пользователей или чатов.
В Целях должны быть указаны ID, которые были добавлены в список разрешенных ID в настройках интеграции. Для отправки в чат или канал ID нужно указывать со знаком минус.

Отправка сообщения из автоматизации
После всех действий выше в Home Assistant появился новый сервис notify.telegram_bot_123456789_123456789
(у вас будут другие ID в конце). С помощью которого можно автоматизировать отправку сообщений.
Отправлять уведомления можно точно так же как в Панели разработчика, в визуальном редакторе ищите действия notify.send_message
или telegram_bot.send_message
. Для примера давайте добавим небольшую автоматизацию, которая при включении переключении света будет присылаться уведомление. В примере приведена одновременная отправка сообщений через оба способа.
alias: Test telegram notify
description: Тестовая отправка сообщений в телеграм
triggers:
- type: turned_on
device_id: e7a6629e6f8d1a2a47a924694cca72aa
entity_id: e08e337107c5228d564e7eb22426376b
domain: light
trigger: device
conditions: []
actions:
- action: telegram_bot.send_message
metadata: {}
data:
message: Люстра переключается
target:
- "-123456789"
- "123456789"
enabled: true
- action: notify.send_message
metadata: {}
data: {}
target:
entity_id: notify.telegram_bot_123456789_123456789
mode: single

На самом деле вариантов, когда может понадобиться уведомление в Telegram множество. Например, когда у вас случилась протечка и нужно быстро среагировать. Или допустим все ушли из дома и происходит оповещение вас или всех пользователей Home Assistant.
Форматирование текста
Для отправки форматированного текста можете использовать разметку Markdown
- жирный — например
*жирный текст*
- курсив — например
_текст курсивом_
- моноширный текст — например
`моноширный текст`
Обработка команд
В режиме Pooling
бот в Home Assistant может обрабатывать команды, команды должны начинаться с /
, например /temperature
. Команды можно отправлять боту напрямую или в чат, в который он добавлен. Получение команд может выступать в качестве триггера в автоматизациях. Напишем простую автоматизацию, которая берет температуру и влажность с датчика и в ответ отправляет сообщение с этими данными.
Перейдите в Настройки
→ Автоматизация и сцены
и добавьте новую автоматизацию по кнопке Создать автоматизацию
. Переключитесь на текстовый режим: в меню Три точки
, сверху справа выберите Текстовый редактор
и введите следующий текст автоматизации:
alias: test bot
description: ""
triggers:
- trigger: event
event_type: telegram_command
event_data:
command: /climate
conditions: []
actions:
- action: telegram_bot.send_message
metadata: {}
data:
message: |-
*Температура:* {{states('sensor.temperature')}}
*Влажность:* {{states('sensor.humidity')}}
target:
- "{{ trigger.event.data.chat_id }}"
mode: single
- в поле
triggers.trigger.event_data.command
замените название команды на свою. команда обязательно должна начинаться с/
- в поле
actions.action.data.message
заменитеsensor.temperature
иsensor.humidity
на идентификаторы своих сенсоров - в поле
actions.action.data.target
подставляется ID чата из, которого пришло сообщение
Отладка
Если что-то не работает вы можете подписаться на событие обработки команд и посмотреть срабатывает ли это событие и какие данные приходят. Тут так же можно узнать ID чатов из которых приходят сообщения. Перейдите в Панель разработчика
→ События
, в разделе Подписаться
на событие введите telegram_command
и нажмите Подписаться
.


Спасибо за автоматизацию, у меня переодически выключается Home Assistant. Сейчас хоть знать буду
А как на несколько ID отправить?
Создать несколько
notify
и вызывать все созданныеnotify
вaction
как создать несколько notify? в configuration.yaml не получается создавать несколько
Для отправки на несколько ID нужно создать для них отдельные notify, а потом создать в них группу: https://www.home-assistant.io/integrations/group/#notify-groups
Отправлять просто контакту всё получилось
Но с семейным чатом — бьюсь уже сутки, id чата получил добавив в него GetIdsBot, менял с приватного на паблик и обратно. разрешения бота в BotFather все уже передёргал.. Да, то что id чата пишется с начальным дефисом тоже не помогло (
Данила! Ай нид хэлп (
Надо добавить бота с которого будут уходить сообщения, как администратора канала. Тогда он сможет публиковать сообщения.
Информация -> Администраторы -> Добавить администратора -> Выбрать бота
Да в том то и дело, что админом я его сразу сделал..
Если не затруднит, можно кусок работающего кода с разделом notify именно для чата?
У меня вот так работает:
# Telegram Bot
telegram_bot:
— platform: polling
api_key: …
allowed_chat_ids:
— -1001501940122
# Notifier
notify:
— platform: telegram
name: «HA2TelegramGroup»
chat_id: -1001501940122
Привет. Напиши мне на емэйл помогу.
Если получится, скиньте кусочек кода , типа же самая проблема
Получилось сделать?
Перед айди чата тире поставьте
Решили? Как?
Тоже не получалось сначала, оказывается группы имеют отрицательный id, его и надо указывать:
telegram_bot:
— platform: polling
api_key: !secret telegram_token
parse_mode: html
allowed_chat_ids:
— 339521111
— -1002114411111
notify:
— name: group_tg
platform: telegram
chat_id: -1002114411111
вот рабочий код.. это группа (с дефисом)
telegram_bot:
— platform: polling
api_key: 213068273:AAE2Xo1nq8nX4PGljmil8deom3ixU6MaVJE
allowed_chat_ids:
— -1002135792837
notify:
— name: telegram_notifier
platform: telegram
chat_id: -1002135792837
Получилось? У меня те же грабли.
Дополнение. Тот кто делает все с самого начала (даже создает бота), то тестовая инициация отправки из Служб ничего не даст. Надо проинициировать бота — найти в телеге этого бота по заданному вами имени и что-то туда написать — после этого отправка заработает.
Источник — https://community.home-assistant.io/t/telegram-not-working/121569/8
Вопрос , а куда этот код вставлять
— id: ‘Notify_Telegram_HA_Start’
alias: «Уведомление о запуске HA в Telegram»
trigger:
— platform: homeassistant
event: start
action:
— service: telegram_notifier
data:
message: «Home Assistant — включился»
То же не разобрался куда данный код вставлять.
В файл /homeassistant/automations.yaml или Настройки — автоматизация и сцены — Создать новую автоматизацию. Три точки вверху — текстовый редактор. Вставляем — сохраняем — перезагружаем HA.
день добрый! а цветовое оформление для сообщения существует? теги *Bold* _Italic_ и тд работают, а вот цветом как поиграться?