16 425
правок
(не показано 19 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Настройка Telegram-бота на контроллере Wiren Board }} | {{DISPLAYTITLE: Настройка Telegram-бота на контроллере Wiren Board }} | ||
[[Image: demo-command-full-tg.png |500px|thumb|right| Пример общения с ботом. Файл этого флоу смотрите в конце статьи]] | [[Image: demo-command-full-tg.png |500px|thumb|right| Пример общения с ботом. Файл этого флоу смотрите в конце статьи]] | ||
== Описание == | |||
Телеграмм-бот — это многофункциональный помощник на платформе Телеграм, который понимает команды, может обращаться в API вашего сайта или сервиса. | |||
С помощью телеграм-бота вы можете управлять умным домом, получать состояние устройств или сделать систему напоминаний. | |||
== Подготовка == | == Подготовка == | ||
Для настройки Telegram-бота на контроллере [[Wiren Board]] нам понадобится установленный | {{YouTube | ||
| link= https://youtu.be/7U-1rruSQGM | |||
| text= Настройка телеграм-бота на контроллере Wiren Board 6.7.2 с помощью Node-RED | |||
}} | |||
Для настройки Telegram-бота на контроллере [[Wiren Board]] нам понадобится: | |||
* установленный Node-RED и [[Node-Red | настроенный модуль WB Nodes]], | |||
* модуль [https://flows.nodered.org/node/node-red-contrib-telegrambot node-red-contrib-telegrambot] | |||
* и созданный Telegram-бот. | |||
{{Wbincludes:Node-RED Intro}} | |||
== Создание бота == | == Создание бота == | ||
Строка 32: | Строка 43: | ||
== Создание ноды для бота == | == Создание ноды для бота == | ||
[[Image: tg-bot-configure-nr.png|300px|thumb|right| Создание ноды | [[Image: tg-bot-configure-nr.png|300px|thumb|right| Создание ноды телеграм-бота]] | ||
Перед тем, как передавать данные из контроллера в чат с ботом, нам нужно настроить ноду нашего бота: | Перед тем, как передавать данные из контроллера в чат с ботом, нам нужно настроить ноду нашего бота: | ||
# Перетяните в рабочую область ноду '''sender'''. | # Перетяните в рабочую область ноду '''sender'''. | ||
Строка 67: | Строка 78: | ||
# Перетяните в рабочую область ноду '''function'''. | # Перетяните в рабочую область ноду '''function'''. | ||
# Дважды кликните на ней — откроется окно '''Edit function node'''. | # Дважды кликните на ней — откроется окно '''Edit function node'''. | ||
# На вкладке обработчика onMessage должна быть написана строка | # На вкладке обработчика '''onMessage''' должна быть написана строка | ||
#:<syntaxhighlight lang="javascript"> | #:<syntaxhighlight lang="javascript"> | ||
return msg; | return msg; | ||
Строка 89: | Строка 100: | ||
Настроим бота так, чтобы он присылал температуру процессора контроллера Wiren Board в ответ на команду <code>/cputemp</code>. | Настроим бота так, чтобы он присылал температуру процессора контроллера Wiren Board в ответ на команду <code>/cputemp</code>. | ||
{{note|info|Перед | {{note|info|Перед созданием нового флоу очистите рабочее поле — это исключит ложные срабатывания на команду из чата. При очистке все настройки соединения с контроллером и телеграм-ботом сохранятся.}} | ||
=== ChatId === | === ChatId === | ||
[[Image: save-chatId-nr.png|400px|thumb|right| Функция, которая сохраняет chatId]] | [[Image: save-chatId-nr.png|400px|thumb|right| Функция, которая сохраняет chatId]] | ||
Строка 108: | Строка 119: | ||
#* Перетяните в рабочую область ноду '''function'''. | #* Перетяните в рабочую область ноду '''function'''. | ||
#* Дважды кликните на ней — откроется окно '''Edit function node'''. | #* Дважды кликните на ней — откроется окно '''Edit function node'''. | ||
#* На вкладке обработчика onMessage удалите содержимое поля ввода и введите строку: | #* На вкладке обработчика '''onMessage''' удалите содержимое поля ввода и введите строку: | ||
#*:<syntaxhighlight lang="javascript"> | #*:<syntaxhighlight lang="javascript"> | ||
flow.set("chatId",msg.payload.chatId); | flow.set("chatId",msg.payload.chatId); | ||
Строка 123: | Строка 134: | ||
#* Дважды кликните на ней — откроется окно '''Edit command node'''. | #* Дважды кликните на ней — откроется окно '''Edit command node'''. | ||
#* Выберите в поле '''Bot''' ноду нашего бота. | #* Выберите в поле '''Bot''' ноду нашего бота. | ||
#* Для отображения команды в меню бота в телеграм: | |||
#** Установите галочку для '''Register at telegram server'''. | |||
#** Введите описание команды в поле '''Description'''. | |||
#* Чтобы сохранить настройки, нажмите кнопку '''Done'''. | #* Чтобы сохранить настройки, нажмите кнопку '''Done'''. | ||
# Добавьте запрос температуры процессора контроллера: | # Добавьте запрос температуры процессора контроллера: | ||
Строка 133: | Строка 147: | ||
#* Перетяните в рабочую область ноду '''function'''. | #* Перетяните в рабочую область ноду '''function'''. | ||
#* Дважды кликните на ней — откроется окно '''Edit function node'''. | #* Дважды кликните на ней — откроется окно '''Edit function node'''. | ||
#* На вкладке обработчика onMessage удалите содержимое поля ввода и введите строки: | #* На вкладке обработчика '''onMessage''' удалите содержимое поля ввода и введите строки: | ||
#*:<syntaxhighlight lang="javascript"> | #*:<syntaxhighlight lang="javascript"> | ||
msg.payload = { | msg.payload = { | ||
Строка 153: | Строка 167: | ||
#* верхний выход ноды '''command''' соедините со входом ноды (WB)'''get'''; | #* верхний выход ноды '''command''' соедините со входом ноды (WB)'''get'''; | ||
#* выход ноды (WB)'''get''' соедините со входом '''function''', где формируется сообщение; | #* выход ноды (WB)'''get''' соедините со входом '''function''', где формируется сообщение; | ||
#* выход | #* выход ноды '''function''' соедините со входом ноды '''sender'''. | ||
# Опубликуйте флоу нажатием на кнопку '''Deploy'''. Возле нод '''receiver''' и '''sender''' должны появится надписи ''connected''. | # Опубликуйте флоу нажатием на кнопку '''Deploy'''. Возле нод '''receiver''' и '''sender''' должны появится надписи ''connected''. | ||
Строка 179: | Строка 193: | ||
* [[Media: Node-RED-demo-command.zip | Запрос информации с датчиков контроллера]] | * [[Media: Node-RED-demo-command.zip | Запрос информации с датчиков контроллера]] | ||
* [[Media: Node-RED-demo-command-full.zip | Запрос информации с нескольких датчиков контроллера одновременно]] | * [[Media: Node-RED-demo-command-full.zip | Запрос информации с нескольких датчиков контроллера одновременно]] | ||
== Полезные ссылки == | |||
* [[Node-RED|Node-RED]] | |||
* [[Rule_Examples#Отправка сообщения через Telegram-бота | Отправка сообщений в Telegram с помощью wb-rules]]. |