Telegram (обновлено: 12 Mar 2022, 12:32:45)

Telegram


Поддержка Telegram. Отправка уведомлений и управление.

С 16.04.2018 Telegram в России заблокирован. Работа опции не возможна. Разблокирован 19.06.2020.

В конце 2021 года новые созданные ID ботов стали иметь большие числа - требуется установить "расширение поля токена бота" в шестеренке опции.


Работа опции аналогична другим опциям уведомлений. Настройка опции находится в общей для этих целей вкладке Notifications.

Для отправки данных с датчиков или состояния GPIO через Telegram требуется использовать опцию Текстовые шаблоны. Вызвать шаблон для отправки можно из других систем модуля но номеру GPIO или выбора шаблона.

Обратите внимание, что опция использует достаточно ресурсоёмкую SSL. Для ESP8266 это критично - там ОЗУ должно быть свободно не меньше 28кб для работы опции. По этой причине функций влезает крайне мало и не рекомендуется использовать на ESP8266 поддержку обратной связи, только отправка уведомлений.

Добавление бота в Telegram

Необходимо добавить бота BotFather к себе в контакты и написать ему команду /newbot . Далее вводим имя как бот будет отображаться в списке контактов и в следующей строке его адрес (то же имя). В ответ на сообщения бот выдаст ID и токен через двоеточие - эти данные необходимо будет указать в настройках модуля в поле Bot data вкладки Notifications секции настройки Telegram. .

Обязательно добавляем созданного бота в список контактов используя поиск пользователей.

Добавление основного пользователя для уведомления и управления

Чтобы узнать свой ID (кому писать сообщение) добавляем бота ShowJsonBot и что нибудь ему пишем.

В ответ он выдаст json где будет поле id с вашим ID,


который нужно указать в настройках модуля в поле Chat id вкладки Notifications секции настройки Telegram. 

Свой ID можно узнать и через UART отладку модуля, если пользователь не авторизован, то там на команду боту будет ошибка вида TELEGRAMMRECV: Error:id user ХХХХХХ , где ХХХХХХ - ID пользователя.

При установленной настройке текстовый ID чата допустимо указывать в поле Chat id ник пользователя без @.

Управление модулем через команды и кнопки

Функция управления должна быть включена в шестеренке опции.

Интервал опроса команд - 3 сек.

Поддерживаемые команды (соответствующие опции должны быть установлены в прошивке):

setgpio X Y - управление GPIO, в том числе VGPIO и D2D. Включая поддержку обратной связи для вывода состояния удаленных GPIO.

setpwm X Y - управление PWM

settermo X Y Z - Управление термостатом, его параметрами. X - номер термостата, Y - верхняя граница, Z -нижняя граница

gettermo X - Чтение настроек термостата

ontermo X - Включение выбранного термостата

offtermo X - Выключение выбранного термостата

radio XXX - управление радио, можно указать имя, номер или url станции. Имена станции должны быть названы маленькими буквами.

info - вывод полезной информации;

hard - получить список установленных опций на модуле(не все !);

hard Y X - устройство номер Y согласно списку включить или выключить. Х - 0 выкл, 1 -вкл.

restart - перезапустить модуль;

ver - дата и версия прошивки;

geturl URL - отправка и чтение get запросов. Пример geturl 192.168.0.100/debug;

cam - получение картинки из подключенной к esp32 камеры;

camtime Х - установка интервала отправки изображения у подключенной к esp32 камеры;

caminfo - информация о состоянии и настройках esp32 камеры;

wol x - Пробуждение устройств через опцию WakeOnLan. Где x - это номер на вкладке настроек MAC адресов или сам MAC адрес без разделителей.

valdes X Y - установка переменной X конструктора кода в значение Y.

После первой команды модулю должно появится меню, через которое так же можно управлять модулем. Меню реализовано через встроенные возможности Telegram. Кнопки так же появляются, если настроены имена у sms/email шаблонов и у Alias.

На каждую команду должен приходить ответ.

Alias 

Функция позволяет создавать свои кнопки. Name - имя кнопки, to - команда (до 30 символов). Например, для управления gpio19 - setgpio 19 2.



Сообщения на канал

Для публикации данных на канал требуется установить дополнительную опцию "Текстовый id чата", а в настройках модуля, в поле chat id указать числовое или текстовое имя канала включая знак @ маленькими буквами. Бота обязательно добавляем в администраторы канала. У приватных каналов ID отрицательный и вводиться без изменений в текстовом ID.

Управление модулем через команды на канале так же работает, но вывод меню недоступен - это ограничение Telegram

Список доступа (user list)

Опция позволяет дополнительно дать нескольким пользователям доступ к управлению модулем. На данный момент уведомления от функций модуля доступны только пользователю, который прописан на вкладке notification. Если требуется отправлять уведомления нескольким пользователям, то создайте канал для этого. 

В дополнительных настройках перед компиляцией  можно задать количество пользователей, которым будет дан доступ к модулю. При установке в  - 0, список доступа будет отключен.

Настройка списка доступа - в подменю Notifications -> User list. Вводить можно только числовые ID пользователей.

Отладка

У ESP32 и ESP8266RTOS в UART можно увидеть сообщения от сервера telegram. Запрос команд не отображает состояние - выводит только ошибки.