Настройка Telegram в Hass.io через Tor
После обновления, в hass.io появился штатный инструмент polling для использования прокси в настройках telegram_bot. (Официальная инструкция по его настройке бота в НА находится здесь)
Вкратце основные действия которые нужно совершить для создания собственного бота заключаются в следующих шагах:
- Открываем Telegram
- Ищем пользователя @BotFather
- Пишем ему /newbot
- Отвечаем на вопросы относительно Имени и юзернейма для бота (Имя это то, как бот будет выглядеть в списке пользователей)
- Получаем сообщение с API ключом нашего бота.
Далее мы идем в браузер и вводим следующий текст в адресную строку: https://api.telegram.org/botТОКЕН_КОТОРЫЙ_ВЫ_ПОЛУЧИЛИ_ОТ_BotFather/getUpdates Получаете ответ в виде:
{ "ok": true, "result": [{ "update_id": 254199982, "message": { "message_id": 27, "from": { "id": 123456789, "first_name": "YOUR_FIRST_NAME YOUR_NICK_NAME", "last_name": "YOUR_LAST_NAME", "username": "YOUR_NICK_NAME" }, "chat": { "id": 123456789, "first_name": "YOUR_FIRST_NAME YOUR_NICK_NAME", "last_name": "YOUR_LAST_NAME", "username": "YOUR_NICK_NAME", "type": "private" }, "date": 1678292650, "text": "test" } }] }
Где id: в разделе «chat» и есть искомый «chat_id» необходимый для конфигурирования бота.
Однако есть ряд особенностей.
Для того чтобы у вас открылась эта строка в браузере, нужно чтобы ваш браузер обходил блокировки телеграма. Для этого можно поставить браузерный прокси, например Proxy SwitchyOmega для Google Chrome. (Это кстати решит и проблему постоянного отваливания официального сайта Home Assistant)
Также можно воспользоваться ботами, сообщающими ваш ID @myidbot или @get_id_bot
Далее приступим к настройке
Чтобы быть последовательным, приведу базовую конфигурацию бота, которая проверена и работает:
telegram_bot: - platform: polling proxy_url: socks5h://127.0.0.1:9050 api_key: !secret telegram_bot_api_key allowed_chat_ids: - !secret telegram_bot_chat_id notify: - name: telegram platform: telegram chat_id: !secret telegram_bot_chat_id
Данная конфигурация содержит в себе ссылки на разные данные хранящиеся в файле secrets.yaml, инструкцию по использованию которого можно прочитать в официальной документации.
В файл Secrets.yaml мы вносим все полученные ранее данные (API Key и chat_id)
Устанавливаем аддон Tor
В его настройки заменяем на эти:
{ "socks": true, "hidden_services": true, "stealth": false, "client_names": [], "ports": [ "8123" ], "log_level": "info" }
В файл Secrets.yaml в параметр proxy_url: !secret telegram_proxy_url добавляем:
socks5h://127.0.0.1:9050
Проверка работы
После того как мы все настроили, нужно проверить работоспособность бота. Для этого мы идем в раздел Инструменты разработчика -> Службы
Далее выбираем службу notify.telegram и вводим следующий текст: {«message»:»test»} и отправляем.
После всех этих этапов все должно заработать.