Telegram node red настройка

Программа Дом от компании Apple позволяет нам получать уведомления от определенных датчиков, где текст уведомления уже заложен Apple и нам остается использовать заложенные функции «как есть», либо не использовать. Многие уже пишут более сложные автоматизации и, соответственно, возникает вопрос о передаче уведомлений, которые не предусмотрены Apple или используют Андроид, где этого вообще не предусмотрено.

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

Установка Telegram

Если Вы читаете статью, то скорее всего, мессенджер у Вас уже установлен и нужно установить своего собственного бота.

Через вкладку manage palette устанавливаем плагин node-red-contrib-telegrambot. Открываем пустое флоу и добавляем две ноды Telegram и ноду debug, как на картинке снизу. Она нам понадобится для получения значения chatId, необходимого для формирования отправляемого сообщения.

Как создать Telegram bot программой Node Red.

Заходим в ноду Sender, выбираем add new telegram bot и заполняем поля Имя бота, Токен бота, update mode — polling, polling interval — 1000. Если хотите использовать Socks5, то поставьте галочку и введите необходимые данные. Далее в ноде Receiver выбираем тоже имя бота, которое ввели в ноде Sender. После чего делаем deploy.

Теперь можно отправить сообщение с вашего Мессенджера и вы должны получить ответ в качестве эха, причем в debag ноде будет цифровое значение chatId, которое надо будет ввести в функции Telegramm, ссылка на тестовое флоу. Принцип работы этой функции прост — она посылает текстовое сообщение, которое вы сформируете в msg.payload и перешлете на вход этой функции.

Пример работы с сообщениями

Так выглядит тестовое флоу для работы с сообщениями. Левый верхний угол занимает установка глобальных данных погоды при старте Node-Red, на тот случай, если у Вас нет датчика Aqara или вы его не пробросили в Node-Red. Правая часть — это, собственно, проброс датчика Aqara через Deconz с записью показаний в глобальные данные. Выход данных функций можно смело заводить прямо на Китовые ноды, но при этом надо помнить, что давление в Кит здесь проброшено как датчик освещенности.

Средняя часть — работа датчика открытия двери с возможностью симуляции, если пока датчика нет в наличии. Нода inject «Переключатель» меняет состояние каждый раз на противоположное. Ноды change содержат в себе необходимый текст. И конечно, если вы открыли дверь и не закрыли в течении 30 секунд, то получите сообщение о незакрытой двери.

Еще по теме:  Добавит часы в сообщение Телеграм

Нижняя часть — непосредственно работа с Telegram. На вход функции Telegramm отправляете все необходимые сообщения в текстовом формате, предварительно не забываем исправить номер chatId на ваш собственный. Более детально остановлюсь на функции Weather.

Simple IoT Telegram Notifications & Commanding, Node-RED & Telegram Integration

Ее необходимость возникла при отправке не только текстовых данных, но и числовых значений, а также если я хочу отправить несколько предложений одним блоком. Она считывает показатели Температуры, влажности и давления и формирует блок данных, можно также добавлять эмоджи в текстовое поле, предварительно их скопировав.

Если воспользоваться нодой inject «Погода», то получите сообщение одним блоком. Эта же нода настроена на отправку данных каждый час. Switch TelegrammIn позволяет пропускать события, если будет отправлено сообщение «Погода» с вашего бота и как результат, вы получите сообщение, сформированное функцией Weather. Обязательно загрузите тестовое флоу, там много комментариев, среди которых Вы найдете возможность надежно отправлять сообщения, а также можно сразу тестировать альтернативный способ доставки сообщений и управления через мессенджер.

В дополнение ко всему сказанному: если у Вас нет желания получать сообщения при определенных условиях (Вы дома, временной интервал или что-то еще) вы всегда можете воспользоваться логическими нодами, которые будут пропускать или не пропускать сообщения по вашему желанию. Если очень нужно, то можете пробросить в HomeKit виртуальный переключатель, который будет включать/выключать отправку сообщений. Как работать с логическими нодами и глобальными данными Вы найдете в статье по ссылке.

Источник: sprut.ai

Бот Telegram для умного дома на Node-Red

t_logo

Одним из методов общения с умным домом может стать бот для мессенджера Telegram. Бот Телеграм должен анализировать комманды и сообщения предназначенные для него и соответствующим образом реагировать на них. Для написания ботов для Node-Red можно воспользоваться набором компонентов telegrambot, который является обёрткой над библиотекой для Node.JS node-telegram-bot-api. Для более тонкого управления компонентами для НодеРед Вам наверняка необходимо будет не раз заглянуть в справку и примеры по библиотеке и в документацию по ботам на сайте телеграма.

Устанавливаем компоненты с помощью npm, но не забываем проверить актуальность версии. Мне пришлось поверху перезаливать последнюю версию из ГитХаба из-за ошибки в авторизации (бот не хотел принимать никаких входящих сообщений ругаясь на не авторизованного пользователя).

Создаём простейший бот, который будет отвечать на две комманды: /help (выводим список команд и информацию о пользователе) и /status (выводим состояние системы и показатели датчиков). Также бот будет отсылать нам сообщение при старте системы.

Еще по теме:  Почему пропал второй аккаунт в Телеграмме

noderedflow

Код можно взять из примеров на ГитХабе и откорректировать под свои нужды.

Несколько нюансов. При деплое Ваших изменений в Node-Red делайте Full deploy, иначе бот начинает чудить, слать по несколько сообщений, изменённый код не работает и т.д. Видимо это связано с нюансами реализации. Не забывайте, что на данный момент бот не может быть инициатором общения, потому общение должно быть инициировано пользователем. Имея после первого сообщения боту chatId (идентификатор чата, передаётся в структурах сообщений) можно заставить бота слать Вам сообщения уже самостоятельно.

Источник: andreyosipchuk.wordpress.com

Wapanapa

В этой статье мы научим Node-RED принимать данные о погоде с одного из сторонних сервисов, и отправлять его вам в Telegram через свежесозданного Telegram-бота.

На мой взгляд, Telegram это самый удобный, не требовательный к ресурсам, и запускающийся абсолютно на всем месенджер который невозможно оставить без внимания. Согласитесь, было бы очень удобно научится управлять с помощью Telegram вашей системой на Node-RED.

Давайте разберемся, как подключатся через Node-RED к одному из погодных сервисов, принимать от него данные и выводить их в Telegram.

Для того чтобы подключатся к сторонним сервисам в Node-RED, как и для всех остальных действий, используются ноды. К счастью они уже написаны за нас как для телеграма так и для ресурса openweathermap.com. OpenWeatherMap это такой онлайн сервис который предоставляет API для доступа к информации о погоде.

Ну так вот. Прежде всего нам будет нужна нода для соединения с погодным сервисом openweathermap. Чтобы установить новую ноду надо воспользоватся Manage palette (управление палитрой) Node-RED. Находится эта штука здесь:

Откроется окно. В нем выберите закладку install:

Вводим «openweathermap» и жмем install. Выскочит окно — там тоже install. Думаю, разберетесь.
После этого в палитре появятся две погодные ноды для подключения к openweathermap.

Теперь для того чтобы нам подключится к сервису надо зарегистрироватся и получить API key на сайте http://openweathermap.org/appid

Следите за рукой:

После регистрации вас перекинет на ваш хоум пейдж, где можно будет уточнить данные и сгенерировать свой API- key:

Вводим свое имя и генерим себе новый API-key. Его активация может занять некоторое время.
Теперь создадим поток, который будет брать погодную инфу с этого сайта.

Перетаскиваем входную погодную ноду «openweathermap» (нижняя).

Входная погодная нода генерит сообщение просто при первом запуске либо при изменении погоды, а нода обработки соотвественно при поступлении чего-либо на вход.

Еще по теме:  Индикаторы в Телеграмме в левом углу

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

Давайте настроим эту ноду и посмотрим что за информация с нее приходит. Дважды кликаем по ноде и заполняем поля. Можно ввести город а можно просто географические координаты. Просто сделайте как на картинке.

Добавим ноду debug и привяжем ее к нашей openweathermap. Как мы можем видеть, структура сообщения JSON содержит кучу различной инфы:

Теперь надо сделать почти тоже самое но с Telegram. Идем в manage palette, выбираем закладку install, вводим в поиск telegram. Устанавливаем «node-red-contrib-telegrambot».

Добавятся следующие ноды:

Описание их можно почитать в info в панели справа, как всегда. Создадим простого бота, который будет просто отправлять нам погоду в ответ на любое сообщение ему в телеграмме.

В терминологии самого телеграма «бот» это фактически не сам бот как таковой а просто учетка телеграма, созданная специально для того, чтобы какая-либо программа используя API телеграма могла подключатся к нему, и пользоваться его функциями. Короче бот — это учетка но не для человека а для программ. В данном случае нашей прогой будет Node-RED, который будет логинится в телеграм, и получать/отправлять сообщения.

1) Заходим в Telegram, ищем там бота botfather.

2) говорим боту /start — он откроет список команд.
3) нажимаем /newbot — бот скажет «Alright, a new bot. How are we going to call it? Please choose a name for your bot.»
говорим ему имя бота. Оно может быть любое.
4) Бот ответит «Good. Now let’s choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.»
в ответ сообщаем username нашего бота, которое обязательно должно заканчиватся на ..bot.
я назвал wapanapa_bot. В ответ бот предложит нам ввести инфо про нашего бота и поздравит с успешным его созданием. Но что самое главное — он даст нам токен бота. Никому его не показывайте, это будет ваш ключ к нему. Токен если что можно будет потом менять.

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

Теперь создадим наш поток. Сделаем так, чтобы бот в ответ на абсолютно любое сообщение присылал нам, например температуру в Гонрурасе, город Тегусигальпа.

Рейтинг
( Пока оценок нет )
Загрузка ...