- Создание нового бота в Telegram
Для взаимодействия нам потребуется создать бота. В Telegram через поиск находим бота @BotFather и отсылаем ему команду:
/newbot
Первым сообщением нам предлагают придумать имя для бота, которое будет отображаться в чатах и контактах, это имя можно изменить в дальнейшем. Вторым предлагают придумать username, уникальное имя бота, которое должно заканчиваться на «bot«. Допускаются буквы латинского алфавита, цифры и знак подчеркивания. В дальнейшем это имя изменить нельзя.
В сообщении после успешного создания бота будет написан токен для доступа к HTTP API.

Конфигурация Home Assistant
Через поиск находим нашего бота и отсылаем команду:
/start
Переходим в браузере по ссылке:
https://api.telegram.org/bot1321089928:AAE9PeyzE4s4C52vSCOh6nOlaa-hJwIQFgA/getUpdates
1321089928:AAE9PeyzE4s4C52vSCOh6nOlaa-hJwIQFgA — токен созданного бота.
В ответ получаем следующее:

username — ваше имя пользователя.
chat_id — ID вашего с ботом чата.
В файл configuration.yaml заносим настройку интеграции с Telegram и уведомления:
telegram_bot:
- platform: polling
api_key: 1321089928:AAE9PeyzE4s4C52vSCOh6nOlaa-hJwIQFgA
allowed_chat_ids:
- 41431138
notify:
- name: telegram_notifier
platform: telegram
chat_id: 41431138
Проверяем файл настроек средствами Home Assistant и перезапускаем.
Проверяем работу сервиса:
Developer Tools -> Services

Настройка Proxy
При возникновении проблем с доступом к сервису Telegram необходимо внести настройки Proxy в интеграцию telegram_bot:
telegram_bot:
- proxy_url: socks5://proxy_address:port
proxy_params:
username: proxy_user
password: proxy_password
Полная конфигурация будет выглядеть следующим образом:
telegram_bot:
- platform: polling
api_key: telegram_bot_token
allowed_chat_ids:
- chat_id
proxy_url: socks5://proxy_address:port
proxy_params:
username: proxy_user
password: proxy_password
Безопасность
Для безопасности данных токен, chat_id, имя пользователя и пароль от прокси рекомендуется хранить в файле secrets.yaml. Доступ к файлу должен иметь только пользователь homeassistant.
telegram_bot_token: telegram_bot_token telegram_bot_chat_id: chat_id telegram_bot_proxy_url: socks5://proxy_address:port telegram_bot_proxy_user: proxy_user telegram_bot_proxy_passwd: proxy_password
Тогда настройки в configuration.yaml будут иметь следующий вид:
telegram_bot:
- platform: polling
api_key: !secret telegram_bot_token
allowed_chat_ids:
- !secret telegram_bot_chat_id
proxy_url: !secret telegram_bot_proxy_url
proxy_params:
username: !secret telegram_bot_proxy_user
password: !secret telegram_bot_proxy_passwd
Управление Home Assistant
Следующая автоматизация демонстрирует управление системой Home Assistant, при отправке боту команды /ping система в ответ пришлет ответ pong. В файл automations.yaml добавляем автоматизацию:
- id: 'Home_Assistant_Check_State'
alias: "Home Assistant check state"
description: "Home Assistant проверка состояния системы"
trigger:
- platform: event
event_type: telegram_command
event_data:
command: "/ping"
condition: []
action:
- service: telegram_bot.send_message
data:
message: "-> pong"