Особенности настройки Telegram_Bot в Hass.io

13 октября 2018, 21:54

После обновления, в hass.io появился штатный инструмент polling для использования прокси в настройках telegram_bot. (Официальная инструкция по его настройке бота в НА находится здесь)

Вкратце основные действия которые нужно совершить для создания собственного бота заключаются в следующих шагах:

  1. Открываем Telegram
  2. Ищем пользователя @BotFather
  3. Пишем ему /newbot
  4. Отвечаем на вопросы относительно Имени и юзернейма для бота (Имя это то, как бот будет выглядеть в списке пользователей)
  5. Получаем сообщение с API ключом нашего бота.

Далее мы идем в браузер и вводим следующий текст в адресную строку:

Получаете ответ в виде:


<span style="font-size: 16px; background-color: rgb(255, 255, 255); color: rgb(51, 51, 51);">{</span>    "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: !secret telegram_proxy_url
    proxy_params:
      username: !secret telegram_proxy_username
      password: !secret telegram_proxy_password
    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)

Настройка Proxy

Как мы видим, для того чтобы бот работал из России, необходимо использовать прокси. Тип прокси для корректной работы - SOCKS5.

Перечень рабочих прокси можно найти в интернете. Например идем по этой ссылке и ищем там список прокси. Если скопировать ссылку из списка, то мы получим строку содержащую в себе:

Адрес прокси, порт, логин и пароль для прокси (обычно это telegram|telegram) но есть исключения.

Строка url для конфигурации должна выглядеть в итоге так:

socks5://адрес_прокси_сервера:порт

Чтобы проверить работоспособность прокси, нужно установить ее в свое приложение на десктопе и что-нибудь написать самому себе (установка обычно осуществляется кликом на ссылку, но можно и вручную в разделе Настройки приложения Telegram)

ВАЖНО !!!

Надо понимать, что использование сторонних бесплатных прокси серверов, влечет за собой возможность использования технологии Men In The Middle (MiTM что означает "Человек посередине"). НО! В официальном FAQ от Telegram указано, что перехват сообщений невозможен как при использовании обычных так и секретных чатов. (Будем надеяться что все таки это факт)

Проверка работы

После того как мы все настроили, нужно проверить работоспособность бота. Для этого мы идем в раздел Инструменты разработчика -> Службы

Далее выбираем службу notify.telegram и вводим следующий текст: {"message":"test"} и отправляем.

И тут мы подошли к самому важному

Несмотря на то, что вроде бы все настроено, прокси работает и все должно быть замечательно, но ничего не приходит, нужно учесть один маленький нюанс:

IP адрес сервера Telegram 149.154.167.220, но некоторые провайдеры (например Дом.ру точно) подменяют этот адрес на свой адрес блокировки.

Поэтому для того, чтобы все корректно работало, надо прописать этот IP адрес в раздел HOSTS вашего роутера в виде:

149.154.167.220                api.telegram.org

На тот случай если адрес сменится, вот вам заграничный ресурс, который выдаст актуальный IP адрес сервера. 

После всех этих этапов все должно заработать.


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @Soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Алексей Новосельцев (novo)

    За статью спасибо! Только для новичка голопом по Европам. Куда конфигурацию Телеграма в Home Assistant вставлять, в какой файл? Дальше не продвинулся.

    И как его потом использовать?

  2. Олег Челбаев (sprut)

    Спасибо за развитие темы ХА =)

  3. Евгений Селянин (Shico)

    Спасибо за статью. 
    У меня как раз провайдер Дом.Ру. А можете разъяснить поконкретнее, что за раздел HOSTS на роутере(у меня ASUS роутер), все вкладки перерыл, не нашел куда это прописать.

    Может хотя бы на примере своего роутера дадите пояснения?

  4. Sergey Voloshin (Varrcan)
    Sergey Voloshin (Varrcan) отредактировано год назад

    Дай бог тебе здоровья! :D

    Около часа мучился, не мог понять, почему не работает, прописал ip в локальный hosts и все пошло ) Домру, конечно, знатно гадит ))

    Спасибо большое за статью!

    • Виталий Никольский (bigmanekb)

      да всегда пожалуйста :))) надо наверное переименовать статью "настройка телеграм бота для тех у кого домру" :))))))

  5. (Mioze)
    (Mioze) год назад

    я так понимаю это все возможно только для канала? т.е. отправка данных от сервера HA-клиенту в телеграмм, а вот с ботом такое уже не прокатит. так как прокси работают только в одностороннем режиме.

    • Виталий Никольский (bigmanekb)

      Всмысле ? Это бот жеж. То есть связь двухсторонняя. Можно как и уведомления от НА получать так и управлять НА через команды боту. Прокси работает в обе стороны.

      • (Mioze)
        (Mioze) год назад

        да, разобрался уже, все работает. была ошибка, а где непонятно. да еще и на форуме вычитал, что связь через сокс односторонняя..

  6. (Mioze)
    (Mioze) отредактировано год назад
    Комментарий удален
  7. Stephan Fonderat (Fonderat)
    Stephan Fonderat (Fonderat) отредактировано год назад
    Комментарий удален
  8. Stephan Fonderat (Fonderat)
    Stephan Fonderat (Fonderat) год назад

    Спасибо. Все получилось. Хоть и не сразу...

    • Roman Samsonov (LakeOfTears)
      Roman Samsonov (LakeOfTears) 7 месяцев назад

      Вот блин зла не хватает))) А с другими поделиться, которые в туже лужу сели?)

      • Stephan Fonderat (Fonderat)
        Stephan Fonderat (Fonderat) 7 месяцев назад

        Блин, я уже не помню. Но кажется задержка была большая. Через некоторое время сработало. Но могу ошибаться. Давно это было

      • (Sur)
        (Sur) 7 месяцев назад

        В конце ссылки прописать так

        /getUpdates?offset-1

      • Владимир Владимир (Vovka)
        Владимир Владимир (Vovka) 6 месяцев назад

        Такая-же была ерунда, оказалось это потому что бот в телеграм был не запущен, надо начать с ним чат и дать ему команду /start и тогда приходят заветные циферки.

  9. (ApiqA)
    (ApiqA) 5 месяцев назад

    "Далее выбираем службу notify.telegram"... нет такой службы. Все что выше этих слов делал по инструкции. В чем может быть проблема?

  10. Артем Меркулов (Artemiy)
    Артем Меркулов (Artemiy) 4 месяца назад

    А есть инструкция как просто создать телеграм-бота, отвечающий на запросы?..

К списку статей

Похожие статьи

17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
15 ноября 2018, 09:42
Способы автоматизации механических ворот
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется
27 августа 2018, 10:14
Интегрируем ХА в HomeKit
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
01 ноября 2018, 09:27
Настройка Deconz USB стика ConBee от Dresden Elektronik в Hass.io и некоторые особенности эксплуатации
29 октября 2019, 07:59
Умный домофон на базе nodeMCU с прошивкой ESPHome.
11 мая 2019, 19:57
Как активировать русский язык в Google Assistant для Google Home
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit