В настоящее время наблюдаются проблемы с работой модуля Телеграм на ESP8266. В то же время на ESP32 все работает отлично. Так что пока пробуйте на этом чипе.
Есть два модуля Телеграм.
- TelegramLT Телеграм-Лайт (Только отправка уведомлений в телеграм о событиях. Модуль занимает значительно меньше памяти в ESP по сравнению со стандартным. Внимание! для отправки сообщений используется промежуточный сервер http://live-control.com)
Описание модуля TelegramLT Настраивается точно также как описано ниже, но заполняется только:
token — Токен для авторизации бота в системе Telegram;
chatID — ИД диалога с контактом. Необходим для отправки сообщений именно вам.
- Telegram Телеграм-Бот (Добавляет возможность отправлять сообщения от имени бота контакту в Телеграм-чате и получать команды.)
Описание модуля Telegram
Для начала необходимо сделать собственный бот. Как это сделать можно посмотреть в инструкции к третьей версии.
Впишите токен в описание модуля.
Для принятия команд с бота receiveMsg нужно включить поставив 1.
Чтобы узнать свой чат ID подключитесь к нашему боту.
Внутри бота нужно дать команду /help. В ответ Вы получите ID(Chat ID).
Впишите ID(Chat ID) в соответствующее поле модуля.
Модуль настроен.
С модуля можно получать информацию о состоянии командой get_ID. Например get_led получить состояние светодиода.
Команда /all присылает информацию о всех интерфейсах.
Командой set_ID_x можно дать команду на установку значения, где x это значение. Например set_led_1 включит светодиод.
Для отправки информации в Телеграм из сценариев есть 2 функции:
tg.sendMsg(сообщение или значение); //отправка идет только если изменилось значение
tg.sendOftenMsg(сообщение или значение); //отправить в любом случае
Где (tg) — это Id модуля телеграм.
Id телеграм
Пример сценария с использованием телеграм (исключительно ознакомление):
if onStart then tg.sendMsg(«ESP32 загружена»);
if var==1 then {led=1; tg.sendOftenMsg(«led on»);}
if var==0 then {led=0; tg.sendOftenMsg(«led off»);}
if var==1 then {led=1; tg.sendOftenMsg(«led on»);}
if var==0 then {led2=0; tg.sendOftenMsg(«led off»);}
Пример: Как правильно сделать в сценарии чтобы сообщение приходило только при переходе температуры от датчика?
Например: if Ds1 < 28 then tg1.sendMsg(«Температура упала «+ Ds1)
При таком сценарии сообщения приходят постоянно если температура меньше 28.
Решение:
if Ds1 >= 28 then
{ tg1.sendMsg(«Температура больше 28»)}
else
{ tg1.sendMsg(«Температура меньше 28») }