Для чего нужен node red

Node-Red основные блоки и пример их использования в автоматизации

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Предисловие

Добрый день, уже выложили множество статей для новичков про Node-Red. Я так же хочу дополнить эту нишу и описать основы для построения автоматизаций. К каждому примеру будет прикреплен flow, который вы можете импортировать себе и проверить. Давайте начнем.

P.S. рекомендую ознакомиться со статьями:

Термины

Нода (node) – «кубик», набор которых позволяет вам исполнить ваши желания. Вы можете их найти в правой части веб интерфейса.

Флоу (flow) – «вкладка» в веб интерфейсе Node-Red. Вы можете разнести логические части по разным флоу. Так, у меня, например, есть флоу с Deconz, Z-Way, Roborock.

Дебаг (debug) – термин из программирования, что значит отладка. С помощью дебага мы находим ошибки в нашем флоу.

Сообщение (message, msg) – набор данных, которые ноды принимают для обработки и отдают на выходе.

Пейлоад (payload) – термин, означающий полезную нагрузку. Сообщение может содержать в себе множество данных, но основные (наиболее полезные) передаются в объекте payload.

Деплой (deploy) – применение изменений.

Inject & Debug

Это две наиболее часто используемые ноды.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Давайте выведем в дебаг «Hello, sprut.ai!». Для этого нам необходимо настроить ноду inject так, чтобы она отсылала строку и нажать на кнопку (слева от ноды).

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Работы с данными:

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Настройки этой ноды позволяют нам оперировать данными в соответствии с заданными нами правилами. Мы можем удалять данные по ключу, переносить из одного ключа в другой, изменять данные по ключу, устанавливать данные в новый ключ. Для примера, давайте заменим в строке из предыдущего примера подстроку «Hello,» на «Welcome to». Для этого, в ноде change мы указываем, что данные нужно изменить (Change) в msg.payload, указываем необходимую строку для поиска и значение, на которые ее надо заменить.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Своя логика:

Мы можем написать логику на языке javascript внутри ноды Function. Давайте с помощью Function выведем в дебаг знакомую нам строку «Hello, sprut.ai». Для этого в объект msg.payload запишем желаемое значение и отдадим на выход Function наше сообщение. Что посылает Inject нам значения не имеет, мы все равно перепишем это.

Настройки ноды Function:

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Разделяем логически данные:

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

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Тригер:

Разберем последнюю ноду для нашей автоматизации – Trigger. Документация говорит нам следующее: » При срабатывании может отправить сообщение, а затем дополнительно второе сообщение, если оно не было расширено или сброшено. » Давайте разберем на примере. Мы включили свет и через 30 секунд нам нужно его выключить.

С помощью Inject пошлем на вход строку «on», далее настроим триггер таким образом:

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Автоматизация:

Самое время применить наши знания и написать автоматизацию со следующими условиями:

Будем использовать плагины node-red-contrib-deconz, node-red-contrib-zway, node-red-contrib-homekit-bridged.

По своему желанию вы можете взять датчик движения с Deconz или же выключатель Z-Way и внести изменения во флоу самостоятельно. Вам поможет использование Debug, чтобы узнать, какие данные шлются и что фильтровать. С вопросами не стесняйтесь писать мне в телеграме.

Источник

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

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

В этой статье я опишу установку и настройку Node-RED на Raspberry Pi deCONZ и интеграцию ZigBee устройств в HomeKit.

Установка deCONZ

Установка Node-RED

Подключаемся к малине по SSH и устанавливаем Node-RED следующей командой:

Соглашаемся два раза, нажав »Y».

После успешной установки Node-RED, запускаем веб-интерфейс, вбив в браузере: IP малины:1880.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Установка необходимых нам contributions:

В данной статье мы будем использовать всего несколько нод. Существует два способа их установки:

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Установим контрибьюшн для связи с HomeKit через веб-интерфейс. Для этого нужно перейти:

Теперь в нодах (раздел advanced) появилась нода HomeKit.

Вводим в строке поиска node-red-contrib-deconz и устанавливаем.

Теперь перезагрузим Node-RED и почистим кэш, выполнив следующие команды:

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Как видим, у нас появились новые ноды:

Рассмотрим добавление на примере геркона от Aqara и проводного одноклавишного выключателя без нулевой линии Aqara, которые у нас уже добавлены в deCONZ. В процессе добавления первого устройства, нам потребуется добавить сервер deCONZ и мост HomeKit, но делается это единоразово.

В ноде in имеется 2 выхода(серые маленькие квадратики):

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

В ноде in пишем любое название, выбираем созданный нами сервер и выбираем нужное нам устройство.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Дважды нажимаем на ноду homekit, нажимаем на карандашик напротив строки Bridge.

Pin Code и Name пишем любые (Пин код должен быть строго в таком же формате ***-**-***).

Нажимаем кнопку Add, Confim. Мост настроен.

Нажимаем кнопку Deploy в правом верхнем углу.

Теперь мы можем добавить мост в приложении Дом на устройстве Apple. Вместе с мостом добавится и наш датчик касания.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

У датчика касания есть батарейка, поэтому нам нужно добавить ноду батареи. Для этого перетягиваем ноду battery и homekit.

В ноде battery выбираем наш датчик и пишем любое имя в строке «название». Нажимаем Done.

В ноде homekit в строке «Service Hierarchy» выбираем Linked (т.к батарея у нас это дочерний сервис). В строке «Parent service» выбираем наше родительское устройство (т.е сам датчик касания). В строке «Service» выбираем BatteryService. Имя выбираем любое.

Возле кнопки Deploy нажимаем на треугольник и выбираем Modified Nodes.

Теперь в HomeKit мы сможем увидеть заряд батареи на нашем датчике касания.

Далее устройства добавлять гораздо проще т.к сервер и мост уже есть.

Источник

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Вместо предисловия

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

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

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для того, чтобы сделать субфлоу универсальным кирпичиком для использования в различных автоматизациях, необходимо передавать ему определенные данные, которые будут различаться при управления другими объектами. А для их передачи и необходимы переменные окружения. Свойства субфлоу можно задавать через переменные окружения и применяются они в момент выполнения субфлоу. Для понимания сказанного, я приведу пример переменных окружения моего субфлоу управления светом по датчику движения и описание функционала.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

В настройках субфлоу созданы следующие переменные окружения:

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Примеры настроек в моих флоу управлением светом на кухне и в прихожей. Поскольку субфлоу у меня универсальный кирпич для управления светом от датчика движения, а управлять светом в прихожей мне надо постоянно, независимо от времени суток, то я создал постоянную глобальную переменную Global_on, которая всегда true и, соответственно, свет всегда управляется там в любое время суток. Тоже самое я сделал и для ванной комнаты.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

К вышесказанному

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

Существует 3 выхода данного субфлоу:

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

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

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

В комментариях к статье буду рад ответить на вопросы или критику.

Источник

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

В качестве предисловия

На портале уже есть информация о том, как установить Node Red и как подключить к нему zigbee hub от компании Deconz. Также существуют дополнительные библиотеки (плагины), которые расширяют функциональность Node Red и позволяют работать с различными программами через API или отдельными устройствами, подключаемыми через USB или по сети. Некоторые плагины для Node Red написаны участниками нашего сообщества. Вы можете их найти в разделе плагины. Неплохая информация по работе в Node Red из нескольких уроков по ссылке (Английский).

Глобальные переменные (Global)

Для начала разберемся, какие переменные бывают и чем они отличаются.

Для чего нужны глобальные переменные

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

Если настроить запись события в глобальную переменную, то она сохраняет последнее событие и нет необходимости проводить опрос датчика или условия перед выполнением определенной автоматизации. М ожно сразу эту переменную ставить в условие выполнения. Также можно использовать глобальные переменные для фиксированных значений (например, яркость, температура цвета для ламп и т.д.) и в дальнейшем использовать эти значения в зависимости от условий или времени суток.

У меня в глобальных переменных хранится набор параметров для различных сценариев, которые передаются в зависимости от выбранного действия.

Для изменения параметров сценария (ну не устраивает заданная яркость ночью), нет необходимости долго искать место, где это прописано. Заходишь во флоу с глобальными переменными и корректируешь значение.

Как правильно использовать

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Примеры использования

В качестве примера использования переменных я выбрал флоу тестирования работы ноды AND (логическое И). В автоматизациях всегда возникает необходимость выполнять какую-то функцию в зависимости от определенных условий. Их может быть несколько и они могут различаться (например: открыто/закрыто, меньше/больше значения и т.д.). Для того, чтобы реализовать данный функционал, я использую ноду AND (плагин: node-red-contrib-bool-gate). В этом плагине есть еще и нода OR (логическое ИЛИ). Само флоу показано на картинке ниже и ее левая часть используется только для тестирования (симуляция устройств). Она заменяется на статусы датчиков в реальной автоматизации.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Описание левой часть экрана.

Нода функции Дверь отдает готовый статус для HomKit ноды контактного датчика Открытия/Закрытия двери.

Теперь переходим к правой части экрана

Переключателями Toggle 1 и 2 меняем состояния глобальных переменных Value 1 и 2, которые были заданы при старте Node Red в верхней части экрана. Как раз эти значения будут условиями, которые разрешают прохождению статуса от ноды Дверь.

Вот мы и добрались до ноды AND. Параметры этой ноды показаны на картинке ниже.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Тип ноды AND, но можно выбрать NAND (инверсное И ).

В True restriction обязательно выбираем галочку.

Еще раз напомню, что существует и нода ИЛИ из этого же плагина.

Теперь, загрузив данное флоу, можете попробовать его работу. Пощелкайте нодами inject, меняя состояния глобальных переменных. Убедитесь в том, что статус от ноды Дверь, будет проходить только тогда, когда значения Value 1 и 2 равны 1.

Как я это использовал (или буду использовать) у себя

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

Очень легко добавить ноду AND для блокировки прохождения любого события или статуса по вашим условиям, так как предела совершенства автоматизаций НЕТ.

Флоу, которое было описано в статье, вы можете загрузить по ссылке.

Если есть вопросы, пишите в комментариях или на канале Node Red.

Источник

HMI на основе Node-red и Scadavis.io

Scadavis.io

Начну описание scadavis с той информации, которая представлена в официальных источниках. На странице сайта scadavis.io указано: «Powerful SCADA-like visualization tools, free-form synoptic graphics for real-time data display. A pure HTML5 solution, mobile friendly, framework agnostic, with no special server requirements needed. All your data and graphics stay on your servers and clients.» (Мощные SCADA-подобные инструменты визуализации, сводные графики произвольной формы для отображения данных в реальном времени. Чистое решение HTML5, мобильное, независимое от фреймворка, без особых требований к серверу. Все ваши данные остаются на ваших серверах и клиентах.)

Далее представлены примеры страниц, которые можно спроектировать.

Затем идет информация о графическом редакторе построения экранных страниц SCADAvis.io Synoptic Editor, который можно преобрести в Microsoft Store.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Также на сайте представлена таблица с планами использования Scadavis.io. Их три: Basic, Pro, Enterprise. Основные характеристики Basic-плана: бесплатный, нет технической поддержки, исходный код расположен на SCADAvis.io.

Дисклеймер – в данном абзаце я хочу показать файловую структуру проекта, которую мне было любопытно увидеть. Это никоим образом не призывает нарушать лицензионные права данной системы. Тем более список файлов легко просматривается с помощью инструментов разработчика в консоли браузера.

Подключение скрипта проекта, документация API и Synoptic Editor представлены на ресурсе scadavis.io/learn.html

Node-red

Node-red – чрезвычайно популярная платформа. На просторах сети есть огромное количество статей и видеороликов о ней. На wikihandbk.com следующее определение: Node-RED – это инструмент визуального программирования для интернета вещей, позволяющий подключать друг к другу устройства, API и онлайн-сервисы. Сами авторы позиционируют Node-red как IoT edge платформу:

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

В блоге Ricardo Olsenn показаны шаги по интеграции системы Scadavis.io и платформы Node-red, а также представлены исходные файлы экранных страниц формата svg. Автор рекомендует использовать плагин для Node-red — node-red-contrib-uibuilder, который позволяет создавать динамический веб-интерфейс с помощью различных js-библиотек, а также использовать веб-фреймворк VueJS.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Однако это не единственный способ, позволяющий построить пользовательский интерфейс на базе Node-red. Имеется достаточно популярный модуль, содержащий ряд нод для создания дашбордов в реальном времени от создателей самой платформы node-red-dashboard.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Виджет Template может содержать любые допустимые директивы html и Angular/Angular-Material. Этот узел можно использовать для создания динамического элемента пользовательского интерфейса, который изменяет свой внешний вид на основе входящего сообщения и может отправлять сообщения обратно в Node-RED. С помощью ноды Template можно создать объект экранной страницы Scadavis, задать необходимые свойства, эмулировать поведение объекта и связать теги (переменные) экранной страницы с внешней средой

В статье Node-RED Dashboard Template Examples (AngularJS) хорошо показаны примеры взаимодействия ноды Template с другими нодами, которые обмениваются сообщениями msg в контексте Angular Scope.

Допустим, мы хотим в качестве свойства объекта msg.topic передавать имя тега, а в качестве значения msg.payload. И при каждом изменении объекта msg обновляем объект SCADA с помощью методов storeValue и updateValues

Графический редактор

Как уже упоминалось выше, на официальном сайте предлагается приобрести SCADAvis.io Synoptic Editor для построения визуальных страниц SCADA-системы. Однако это не единственный возможный вариант. Как известно из самого описания, редактор построен на базе Inkscape SVG Editor. Практически — это Inkscape с плагином позволяющий назначать теги (переменные) и другие свойства различным графическим компонентам svg файла. То есть для простого отображения в контексте scadavis странице достаточно иметь svg файл, который можно редактировать в любом удобном редакторе. Но это еще не все. Есть большое сходство между редактором компании ECAVA INTEGRAXOR www.integraxor.com Inkscape 0.91 SAGE 4.16, который распостраняют бесплатно (необходимо только зарегистрироваться на сайте) и Synoptic Editor. Как в итоге оказалось, действительно возможно создавать и редактировать svg файлы для Scadavis, используя Inkscape 0.91 SAGE 4.16. Разница наблюдается при проектировании скриптовой анимации и некоторых других специфических вещах, которые отсутствуют в Object properties редактора SAGE.

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Согласно описанию SCADAvis.io Synoptic Editor, для того чтобы назначить цвет объектов по условию включения, необходимо в колонке Limit указать цифру 2:

Плагин для работы с PLC Siemens

В арсенале Node-red имеется плагин для работы с PLC Siemens — node-red-contrib-s7, основанный на фреймворке nodeS7. Плагин достаточно прост и интуитивно понятен. Он содержит три ноды: S7 in, S7 out, S7 control. В основном используются первые две ноды для чтения и записи тегов в PLC. Один нюанс, который нужно учитывать при работе с S7-1200, описан в документации к плагину. Я с этим сталкнулся ранее, когда использовал библиотеку Snap7

Для чего нужен node red. Смотреть фото Для чего нужен node red. Смотреть картинку Для чего нужен node red. Картинка про Для чего нужен node red. Фото Для чего нужен node red

Необходимы некоторые дополнительные шаги настройки в ПЛК:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *