Home Assistant: Telegram Bot API

2 марта, 2026Изменена: 4 марта, 2026 в 20:58

Недавно я открыл для себя такую вещь как Telegram Bot API — официальное приложение от авторов месcенджера, позволяющее запустить у себя локальный и полнофункциональный сервер API для ботов Телеграма. Фактически, это локальная копия api.telegram.org, но с некоторыми очень приятными дополнениями.

Началось все с того, что с начала 2026 года у меня стали возникать странные проблемы с отправкой фото и видео файлов из HA в Телеграм. В целом, это было более-менее ожидаемо, но т.к. для меня это основной канал получения оповещений, а в некоторых моментах и полноценный пульт управления умным домом, пришлось заняться изучением вопроса.
В процессе поиска какого-либо решения проблемы, я прямо на официальном сайте Телеграм наткнулся на описание некого Local Bot API Server. Судя по описанию, позволяющего получить следующие бенефиты:

  • Скачивание файлов без ограничений по размеру.
  • Загрузка файлов размером до 2000 МБ.
  • Загрузка файлов с использованием локального пути и схемы file URI.
  • Использование HTTP URL для вебхука.
  • Использование любого локального IP-адреса для вебхука.
  • Использование любого порта для вебхука.
  • Установка значения max_webhook_connections до 100 000.
  • Получение абсолютного локального пути в поле file_path без необходимости скачивать файл после запроса getFile. 

Мне это показалось интересным и перспективным с точки зрения возможного решения проблемы с отправкой медиафайлов и я решил попробовать. Собрал и запустил отдельный контейнер рядом с HA без особых проблем.
К сожалению, на тот момент в интеграции telegram_bot отсутствовала поддержка смены API Endpoint для бота, поэтому пришлось заняться перенаправлением api.telegram.org на локальный сервер. С подменой SSL сертификата для этого адреса, настройкой доверия HA моему сертификату и прочими упражнениями. Это заняло время, но в итоге мне удалось заставить работать HA с моим собственным локальным сервером Bot API.
И самое главное — в моменте это решило проблему таймаутов при отправке медиафайлов! Автоматизации отрабатывали, файлы отправлялись. Хоть и с видимыми задержками. Впрочем такое поведение, по понятным причинам, было во всех клиентах.

Где-то в это же время был написан feature request на добавление в HA поддержки локального API, а маинтейнер интеграции telegram_bot очень оперативно эту поддержку добавил. Thank you @hanwg!

Итак, начиная с версии Home Assistant 2026.2 появилась полноценная поддержка смены API Endpoint для бота что позволило без особых проблем использовать локальное приложение Bot API.
Это подтолкнуло меня на дальнейшее изучение темы и привело к странному факту — официальная версия Telegram Bot API «из коробки» поддерживает работу через прокси-сервер, (в т.ч. MTProto-proxy за счет использования библиотеки tdlib), но при этом в нем напрочь отсутствует возможность простой их настройки. Все предлагается делать через редактирование кода с последующей компиляцией. А разработчики, судя по всему, менять ситуацию не намерены.

К моему счастью, так как я совсем не разработчик и о C++ имею крайне слабое представление, я нашел форк с изменениями, позволяющими быстро и просто настроить прокси-сервер с помощью параметров командной строки. После этого осталось дело за малым — адаптировать код к последним версиям Telegram Bot API (т.к. в лоб оно не компилировалось) и собрать на его основе приложение (Add-on) для Home Assistant.

Итак, мое первое приложение для Home Assistant: Telegram Bot API.

Принципиальную схему работы можно изучить на схеме:

Основные преимущества, которые дает использование локального сервера Bot API:

  • Увеличение лимитов
    Вы сможете загружать (отправлять) файлы размером до 2 ГБ (стандартный API ограничен 50 МБ).
    Эта особенность отлично подходит для оповещений системы видеонаблюдения, домофонов, и прочего, требующего отправки видеофайлов в мессенджер.

  • Webhooks без «белого» IP адреса
    В обычном режиме для работы интеграции telegram_bot в режиме webhooks необходим доступ от серверов Телеграма до вашего HA с целым рядом ограничений. При использовании локального приложения все это не нужно.
    Вы можете не открывать прямой доступ из интернета до вашего ХА, все соединения с серверами Телеграм являются исходящими, а вы получаете все преимущества вебхуков — скорость, экономию ресурсов и т.д.

  • Снижение задержек (Latency)
    Весь сетевой трафик между HA и API остается внутри docker-сети HA OS, что ускоряет обработку запросов между HA и API-сервером. К примеру, в условиях «замедленного» доступа к серверам Телеграма, локальное API убирает ошибки отправки (таймауты) медиафайлов в автоматизациях HA.

  • Решение проблем доступности Telegram
    Возможность работы через прокси позволяет боту сохранять связь с серверами Telegram, даже если прямой доступ к ним затруднен или отсутствует полностью. А использование стандартной библиотеки tdlib позволяет подключать бота через MTProto-прокси. Т.е. использовать один и тот же прокси для клиента на телефоне\ПК и бота HA.

  • Меньше «лишних» соединений
    Поскольку Home Assistant общается только с локальным приложением, а оно для подключения к серверам Telegram может использовать прокси, то в этом случае внешним серверам доступен только IP адрес прокси-сервера, а не ваш реальный домашний IP.

  • Единая экосистема
    Установка в виде приложения (аддона) позволяет управлять сервером API прямо из интерфейса Home Assistant: настройка, обновление, бэкапы, логи, просмотр статистики.
    Возможность использовать локальное API для отправки сообщений, например, из ESPHome или bash скриптов.

Установка приложения в Home Assistant крайне проста и описана в репозитории.

А для тех, кто не хочет или не может использовать именно приложения (add-on) для HA, есть отдельный Docker image с добавленной поддержкой прокси и docker-compose.yaml.

Актуальная документация по приложению расположена здесь, важные моменты на которые стоит обратить внимание:

Сам я уже достаточно продолжительное время использую это решение для интеграции HA и Телеграма, и у меня только положительные впечатления. Сообщения и файлы отправляются, команды выполняются без каких-либо задержек.
Так что, если вы испытываете те или иные проблемы с работой Телеграм в Home Assistant, попробуйте локальный сервер Telegram Bot API, возможно вам понравится. =)

Задать вопросы, указать на ошибки или предложить что-то вы всегда можете в разделах issues / discussions репозитория, а так же в группе Телеграм.