uDocs

Подключаем Telegram к Home Assistant

Подключаем и настраиваем уведомления Telegram в Home Assistant

Подключаем 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 и нажмите Подписаться.

Обсуждение

simpersimper
23 мая 2025

В файл /homeassistant/automations.yaml или Настройки – автоматизация и сцены – Создать новую автоматизацию. Три точки вверху – текстовый редактор. Вставляем – сохраняем – перезагружаем HA.

ВячеславВячеслав
13 апреля 2025

То же не разобрался куда данный код вставлять.

DriverzDriverz
3 марта 2025

день добрый! а цветовое оформление для сообщения существует? теги Bold Italic и тд работают, а вот цветом как поиграться?

DenisDenis
21 февраля 2025

Для отправки на несколько ID нужно создать для них отдельные notify, а потом создать в них группу: https://www.home-assistant.io/integrations/group/#notify-groups

ДмитрийДмитрий
19 декабря 2024

Получилось? У меня те же грабли.

AlexAlex
20 ноября 2024

вот рабочий код.. это группа (с дефисом)

telegram_bot:

– platform: polling

api_key: 213068273:AAE2Xo1nq8nX4PGljmil8deom3ixU6MaVJE

allowed_chat_ids:

  – -1002135792837

notify:

– name: telegram_notifier

platform: telegram

chat_id: -1002135792837
КириллКирилл
28 сентября 2024

Тоже не получалось сначала, оказывается группы имеют отрицательный 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
VovaVova
19 августа 2024

Решили? Как?

AlexAlex
26 февраля 2024

Вопрос , а куда этот код вставлять

– id: ‘Notify_Telegram_HA_Start’

alias: “Уведомление о запуске HA в Telegram”

trigger:

– platform: homeassistant

  event: start

action:

– service: telegram_notifier

  data:

    message: “Home Assistant – включился”
АлексейАлексей
7 февраля 2024

как создать несколько notify? в configuration.yaml не получается создавать несколько

Рекомендуемые записи

Обзор Sonoff Zigbee 3.0 USB Dongle E

Обзор Sonoff Zigbee 3.0 USB Dongle E

Координатор/маршрутизатор Zigbee сети Sonoff 3.0 usb Dongle E. Основные характеристики. Самый простой и надежный Zigbee стик.
Установка Home Assistant на Raspberry PI

Установка Home Assistant на Raspberry PI

Полная инструкция по установке Hass.io на Raspberry PI.
Удаленный доступ Home Assistant Keenetic KeenDNS

Удаленный доступ Home Assistant Keenetic KeenDNS

Настраиваем удаленный доступ к серверу умного дома через KeenDNS
Запуск Home Assistant в Docker

Запуск Home Assistant в Docker

Настраиваем и запускам docker контейнер.