Node-RED: различия между версиями
м |
(Прибил гвоздями версию 3.1.11) |
||
(не показано 79 промежуточных версий 7 участников) | |||
Строка 1: | Строка 1: | ||
<languages/><translate> | |||
<!--T:19--> | |||
{{DISPLAYTITLE:Установка Node-RED на контроллер Wiren Board}} | {{DISPLAYTITLE:Установка Node-RED на контроллер Wiren Board}} | ||
[[Файл:Node-red.PNG|500px|thumb|right| Node-RED на | [[Файл:Node-red.PNG|500px|thumb|right| Node-RED на контроллере Wiren Board]] | ||
== Описание == | == Описание == <!--T:20--> | ||
{{YouTube | |||
|link= https://youtu.be/cKQmU4LZo4c | |||
|text= Видеоурок по Node-RED на Wiren Board от SetPoint | |||
}} | |||
Node-RED — это инструмент визуального программирования, основанный на Node.js и который разрабатывается и поддерживается открытым сообществом. | Node-RED — это инструмент визуального программирования, основанный на Node.js и который разрабатывается и поддерживается открытым сообществом. | ||
<!--T:21--> | |||
Подробное описание, инструкции и примеры использования можно найти на сайте [https://nodered.org/ nodered.org], а поддержку сообщества в телеграм-канале [https://t.me/SprutAI_NodeRED Node-RED]. | Подробное описание, инструкции и примеры использования можно найти на сайте [https://nodered.org/ nodered.org], а поддержку сообщества в телеграм-канале [https://t.me/SprutAI_NodeRED Node-RED]. | ||
== Установка == | <!--T:22--> | ||
{{Wbincludes:Installing Software In Console}} | |||
== Установка == <!--T:23--> | |||
{{Wbincludes:Installing Software In Console Catalog And Update}} | |||
{{Wbincludes:Installing Software In Console}} | |||
<!--T:24--> | |||
Установите необходимые компоненты: | Установите необходимые компоненты: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt install -y nodejs git make g++ gcc build-essential | apt update && apt install -y nodejs git make g++ gcc build-essential | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:25--> | |||
Запустите установку Node-RED: | Запустите установку Node-RED: | ||
<syntaxhighlight lang="bash"> | :<syntaxhighlight lang="bash"> | ||
npm install -g --unsafe-perm node-red | npm install -g --unsafe-perm node-red@3.1.11 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Создание сервиса == | <!--T:26--> | ||
Если потребуется обновить версию Node-RED, выполните команду установки ещё раз. | |||
В релизах wb-2207 и старее устаревшая версия NodeJS, поэтому свежий Node-RED можно поставить только в docker — [[Node-RED_docker|инструкция по установке Node-RED в docker]]. | |||
Также в docker следует устанавливать если требуется версия более новая чем из пакетов. | |||
== Создание сервиса == <!--T:27--> | |||
<!--T:28--> | |||
Для автозапуска Node-RED необходимо настроить сервис. Для этого в папке <code>/etc/systemd/system/</code> создайте файл <code>nodered.service</code>: | Для автозапуска Node-RED необходимо настроить сервис. Для этого в папке <code>/etc/systemd/system/</code> создайте файл <code>nodered.service</code>: | ||
<!--T:29--> | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
nano /etc/systemd/system/nodered.service | nano /etc/systemd/system/nodered.service | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:30--> | |||
Затем вставьте в этот файл строки: | Затем вставьте в этот файл строки: | ||
<pre> | <pre> | ||
Строка 35: | Строка 58: | ||
Wants=network.target | Wants=network.target | ||
<!--T:31--> | |||
[Service] | [Service] | ||
Type=simple | Type=simple | ||
Строка 41: | Строка 65: | ||
WorkingDirectory=/home | WorkingDirectory=/home | ||
<!--T:32--> | |||
Nice=5 | Nice=5 | ||
Environment="NODE_OPTIONS=--max_old_space_size=256" | Environment="NODE_OPTIONS=--max_old_space_size=256" | ||
Строка 48: | Строка 73: | ||
SyslogIdentifier=Node-RED | SyslogIdentifier=Node-RED | ||
<!--T:33--> | |||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
</pre> | </pre> | ||
Сохраните изменения и закройте файл. Теперь | <!--T:34--> | ||
Сохраните изменения и закройте файл. Теперь включите сервис и запустите его командой: | |||
<!--T:35--> | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
systemctl enable nodered.service && systemctl | systemctl enable nodered && systemctl start nodered | ||
</syntaxhighlight> | |||
<!--T:36--> | |||
Проверьте статус сервиса командой, в выводе должна быть строчка <code>Active: active (running)</code>: | |||
<syntaxhighlight lang="console"> | |||
# systemctl status nodered | |||
● nodered.service - Node-RED graphical event wiring tool | |||
Loaded: loaded (/etc/systemd/system/nodered.service; enabled; vendor preset: enabled) | |||
Active: active (running) since Fri 2021-12-03 06:32:25 UTC; 24s ago | |||
Main PID: 2757 (node) | |||
CGroup: /system.slice/nodered.service | |||
└─2757 node /usr/bin/node-red --max_old_space_size=256 | |||
<!--T:37--> | |||
Dec 03 06:32:25 wirenboard-AWQBNTYP systemd[1]: Started Node-RED graphical event wiring tool. | |||
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: 3 Dec 06:32:36 - [info] | |||
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: Welcome to Node-RED | |||
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: =================== | |||
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: 3 Dec 06:32:36 - [info] Node-RED version: v2.1.4 | |||
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: 3 Dec 06:32:36 - [info] Node.js version: v12.19.0 | |||
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: 3 Dec 06:32:36 - [info] Linux 5.10.35-wb6 arm LE | |||
Dec 03 06:32:41 wirenboard-AWQBNTYP Node-RED[2757]: 3 Dec 06:32:41 - [info] Loading palette nodes | |||
</syntaxhighlight> | |||
== Удаление == <!--T:38--> | |||
Если вам больше не нужен Node-RED, то его можно удалить: | |||
# Остановите, отключите и удалите сервис: | |||
#:<syntaxhighlight lang="bash"> | |||
systemctl stop nodered && systemctl disable nodered && rm /etc/systemd/system/nodered.service | |||
</syntaxhighlight> | |||
# Удалите сам Node-RED: | |||
#:<syntaxhighlight lang="bash"> | |||
npm -g remove node-red && npm -g remove node-red-admin && rm -R ~/.node-red | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:39--> | |||
Node.js, тоже можно удалить, но убедитесь, что у вас не установлены другие програмы, которые его используют, например, zigbee2mqtt. Чтобы удалить node.js, выполните команду: | |||
<syntaxhighlight lang="bash"> | :<syntaxhighlight lang="bash"> | ||
apt remove nodejs | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==Веб-интерфейс Node-RED== | ==Веб-интерфейс Node-RED== <!--T:40--> | ||
После запуска сервиса откройте браузер и введите адрес своего контроллера в сети и порт 1880. | После запуска сервиса откройте браузер и введите адрес своего контроллера в сети и порт 1880. | ||
Например: http://192.168.42.1:1880 | Например: http://192.168.42.1:1880 | ||
<!--T:41--> | |||
Инструкции по работе c Node-RED можно найти на [https://nodered.org/docs/getting-started/ сайте nodered.org] | Инструкции по работе c Node-RED можно найти на [https://nodered.org/docs/getting-started/ сайте nodered.org] | ||
== WB Nodes == | == Ноды ''mqtt in'' и ''mqtt out'' (рекомендуется) == <!--T:49--> | ||
=== Настройка подключения === | |||
[[Image: NodeRed_mqtt_nodes.jpg |300px|thumb|right| Ноды MQTT в Node-Red ]] | |||
Для работы по MQTT используются ноды '''mqtt in''' и '''mqtt out'''. Также вам понадобятся адреса топиков, взять их можно в веб-интерфейсе контроллера на странице [[Wiren Board Web Interface#mqtt-channels |MQTT-каналы]]. | |||
<!--T:50--> | |||
Для настройки MQTT-соединения в Node-RED выполните следующие действия: | |||
#Перетащите ноду '''mqtt in''' в рабочую область. | |||
#Войдите в конфигурацию ноды и нажмите на '''Карандаш''' напротив поля '''Server'''. | |||
#На вкладке '''Connecting''' задайте адрес брокера и номер порта. | |||
#:В поле '''Name''' введите любое имя сервера. | |||
#:На вкладке '''Security''' можно указать Имя пользователя и Пароль для подключения к брокеру. Если в качестве брокера выступает контроллер Wiren Board, это поле нужно оставить пустым. | |||
#После заполнения всех полей нажмите кнопку '''Update'''. Созданный брокер теперь можно использовать для настройки всех подключений. | |||
#Выберите созданные брокер из списка в поле '''Server'''. | |||
#Введите адрес mqtt-топика в поле '''Topic'''. | |||
#Нажмите кнопку '''Done'''. | |||
<!--T:51--> | |||
По такому же принципу настраивается нода '''mqtt out'''. | |||
<gallery mode="packed" heights="150px" caption="Настройка MQTT-брокера (Server)> | |||
Image: NodeRed_mqtt2.jpg | Вкладка ''Connecting'' | |||
Image: NodeRed_mqtt3.jpg | Вкладка ''Security'' | |||
</gallery> | |||
=== Отправка команд === <!--T:52--> | |||
Для отправки команды контроллеру по MQTT используется нода '''mqtt out'''. При этом в поле '''Topic''' указывается адрес mqtt-топика контроллера, в который необходимо записать параметр. Нужно учитывать, что в конце адреса ноды '''mqtt out''' нужно написать <code>/on</code>, иначе параметр в топик не запишется. Например, <code>/devices/wb-mrgbw-d-fw3_129/controls/RGB Strip/on</code>. Подробнее читайте на странице [[MQTT | MQTT]]. | |||
<gallery mode="packed" heights="150px" caption="Настройка нод для работы с MQTT"> | |||
Image: NodeRed_mqtt4.jpg | Пример настройки ноды '''mqtt in''' | |||
Image: mqtt_out_no.jpg | Пример настройки ноды '''mqtt out''' | |||
Image: NodeRed_mqtt1.jpg | Обмен данными через MQTT в Node-Red | |||
</gallery> | |||
Для отправки параметра в ноду '''mqtt out''' можно использовать ноду '''inject'''. | |||
#Перетащите ноду '''inject''' в рабочую область. | |||
#Подключите ее ко входу ноды '''mqtt out'''. | |||
#Зайдите в настройки ноды '''inject''' и задайте ''Имя'' ноды, ''Тип переменной'' и ее ''Значение''. Нажмите кнопку '''Done'''. | |||
<gallery mode="packed" heights="130px"> | |||
Image: Inject1.jpg | Пример настроек ноды '''inject''' для управления дискретным параметром | |||
Image: Inject2.jpg | Поле настройки периодов повторения отправки ноды '''inject''' | |||
</gallery> | |||
<gallery mode="packed" heights="100px"> | |||
Image: Node_inject.jpg | Пример использования ноды '''inject''' | |||
</gallery> | |||
<!--T:53--> | |||
После настройки ввода и вывода можно обрабатывать данные внутри Node-RED и настроить использование сторонних сервисов, например, [[Node-RED_Alice | Умный дом с Алисой]]. | |||
<!--T:54--> | |||
<gallery mode="packed" heights="150px"> | |||
Image: NodeRed_mqtt5.jpg | Пример управления с помощью Алисы | |||
</gallery> | |||
== WB Nodes (решение сообщества) == <!--T:42--> | |||
[[Файл:Installing node-red-contrib-wirenboard.PNG|500px|thumb|right| Установка WB Nodes на контроллер Wiren Board]] | |||
[[Image: nr+wb-settings.png |600px|thumb|right|Настройка соединения с контроллером Wiren Board]] | [[Image: nr+wb-settings.png |600px|thumb|right|Настройка соединения с контроллером Wiren Board]] | ||
Чтобы упростить взаимодействие Node-RED с контроллером Wiren Board, пользователь [https://support.wirenboard.com/t/node-red-contrib-wirenboard/2019 Andrej_Popov] написал модуль <code>node-red-contrib-wirenboard</code>. | Чтобы упростить взаимодействие Node-RED с контроллером Wiren Board, пользователь [https://support.wirenboard.com/t/node-red-contrib-wirenboard/2019 Andrej_Popov] написал модуль <code>node-red-contrib-wirenboard</code>. | ||
=== Установка === | === Установка === <!--T:43--> | ||
Установим его через | Установим его через веб-интерфейс Node-RED: | ||
{{Node-RED Installing plugin | {{Node-RED Installing plugin | ||
|search= wirenboard | |search= wirenboard | ||
Строка 82: | Строка 197: | ||
После установки, в левой панели появится секция Wiren Board. | После установки, в левой панели появится секция Wiren Board. | ||
=== Настройка === | |||
=== Настройка === <!--T:44--> | |||
После того как вы установили WB Nodes, вам нужно настроить соединение с MQTT-брокером контроллера Wiren Board: | После того как вы установили WB Nodes, вам нужно настроить соединение с MQTT-брокером контроллера Wiren Board: | ||
# Добавьте в рабочую область ноду '''WB-input''', которая находится в левой панели, в секции '''Wiren Board'''. | # Добавьте в рабочую область ноду '''WB-input''', которая находится в левой панели, в секции '''Wiren Board'''. | ||
# Дважды кликните на ней, откроется окно '''Edit in node'''. | # Дважды кликните на ней, откроется окно '''Edit in node'''. | ||
# Найдите в нём поле '''Server''' и нажмите на кнопку с карандашом. Откроется окно '''Add new wirenboard-server config node'''. | # Найдите в нём поле '''Server''' и нажмите на кнопку с карандашом. Откроется окно '''Add new wirenboard-server config node'''. | ||
# Заполните поля '''Name''', '''Host''' и '''MQTT Port'''. Если Node-RED установлен на контроллере — в поле Host пропишите <code>localhost</code>. | # Заполните поля '''Name''', '''Host''' и '''MQTT Port'''. Если Node-RED установлен на контроллере — в поле Host пропишите <code>localhost</code>. В поле '''Name''' укажите произвольное имя, а в поле '''MQTT Port''' — 1883. | ||
# Сохраните настройки сервера нажатием на кнопку '''Done'''. | # Сохраните настройки сервера нажатием на кнопку '''Done'''. | ||
# Закройте окно '''Edit in node''' нажатием на ''' | # Закройте окно '''Edit in node''' нажатием на '''Cancel'''. | ||
{{note|info| После настройки подключения, примените настройку сервера нажатием кнопки '''Deploy''' справа вверху. Только после этого будет доступен список каналов контроллера Wiren Board.}} | {{note|info| После настройки подключения, примените настройку сервера нажатием кнопки '''Deploy''' справа вверху. Только после этого будет доступен список каналов контроллера Wiren Board.}} | ||
<!--T:45--> | |||
Вы настроили WB Nodes и можете писать автоматизации с использованием Node-RED. | Вы настроили WB Nodes и можете писать автоматизации с использованием Node-RED. | ||
=== Проверка настроек === | === Проверка настроек === <!--T:46--> | ||
Чтобы проверить правильность настроек: | Чтобы проверить правильность настроек: | ||
# Добавьте в рабочую область любую ноду из группы Wiren Board, например, '''WB-input'''. | # Добавьте в рабочую область любую ноду из группы Wiren Board, например, '''WB-input'''. | ||
Строка 100: | Строка 217: | ||
# В окне '''Edit in node''' нажмите кнопку '''Refresh Device List'''. | # В окне '''Edit in node''' нажмите кнопку '''Refresh Device List'''. | ||
Если соединение настроено верно, то в выпадающем списке поля ''' | <!--T:47--> | ||
Если соединение настроено верно, то в выпадающем списке поля '''Сhannel''' появится список доступных для использования каналов. | |||
=== Примеры === <!--T:48--> | |||
В комплекте с WB-Nodes есть примеры для [[Node-RED Apple HomeKit | Apple HomeKit]] и Яндекс.Алисы, найти их можно в '''Menu''' → '''Import''' → '''Examples'''. | |||
<gallery mode="packed" heights="200px" caption="Примеры из комплекта WB-Nodes"> | |||
Image: WB-Nodes Examples 1.png | Список примеров | |||
Image: WB-Nodes Examples 2.png | Пример в рабочей области | |||
</gallery> | |||
=== Решение проблем === | |||
Иногда, если во флоу есть ошибка, то веб-интерфейс Node-RED может перестать загружаться, в этом случае нужно проверить логи сервиса nodered. | |||
Если в логах будет видна ошибка во флоу, то: | |||
# Подключиться к контроллеру по [[SSH]]. | |||
# Остановить службу, если она запущена: | |||
#: <syntaxhighlight lang="bash"> | |||
systemctl stop nodered | |||
</syntaxhighlight> | |||
# Запустить Node-RED в безопасном режиме: | |||
#: <syntaxhighlight lang="bash"> | |||
node-red --safe | |||
</syntaxhighlight> | |||
# Установить проблему и остановить запущенный в безопасном режиме Node-RED. | |||
# Снова запустить сервис: | |||
#: <syntaxhighlight lang="bash"> | |||
systemctl start nodered | |||
</syntaxhighlight> | |||
Если вы ставили Node-RED в docker, воспользуйтесь инструкцией на странице [[Node-RED_docker|Установка Node-RED в docker]]. | |||
== | == Примеры использования == <!--T:55--> | ||
Примеры использования Node-RED с WB-Nodes на контроллерах Wiren Board: | |||
* [[Node-RED_Telegram | Настройка Telegram-бота]]. | |||
* [[Node-RED_Alice | Настройка Алисы на контроллере Wiren Board]]. | |||
* [[Node-RED Apple HomeKit | Настройка Apple HomeKit на контроллере Wiren Board]]. | |||
* [[Node-RED Dashboards|Создание панелей (Dashboards) в Node-RED]]. | |||
* [https://youtu.be/cKQmU4LZo4c Видео от нашего партнёра: Wiren Board + Node-RED] | |||
</translate> | |||
* [https://habr.com/ru/company/wirenboard/blog/689098/ Умный дом на Wiren Board и Node-RED: четыре полезных сценария без программирования] | |||
* [https://habr.com/ru/company/wirenboard/blog/689826/ Умный дом на Wiren Board и Node-RED: ещё три полезных сценария без программирования] | |||
* [https://habr.com/ru/company/wirenboard/blog/713274/ Работаем с Zigbee-устройствами через Zigbee2mqtt и Node-RED] |
Текущая версия на 17:26, 25 июня 2024
Описание
Node-RED — это инструмент визуального программирования, основанный на Node.js и который разрабатывается и поддерживается открытым сообществом.
Подробное описание, инструкции и примеры использования можно найти на сайте nodered.org, а поддержку сообщества в телеграм-канале Node-RED.
Копируйте команды из инструкции, вставляйте их в консоль контроллера с помощью клавиш Shift+Insert и запускайте клавишей Enter. В случае ошибок, внимательно читайте вывод, там будут инструкции и подсказки.
Установка
Чтобы не потерять установленный софт и его данные, обновляйте ПО контроллера только через менеджер пакетов apt. Подробнее читайте в статье Программное обеспечение Wiren Board.
Встроенный флеш-накопитель контроллера разбит на разделы и для пользователя отведён самый большой из них, который монтируется в папку /mnt/data
. Нужно учесть эту особенность при установке программ, а также при обновлении прошивки контроллера.
Копируйте команды из инструкции, вставляйте их в консоль контроллера с помощью клавиш Shift+Insert и запускайте клавишей Enter. В случае ошибок, внимательно читайте вывод, там будут инструкции и подсказки.
Установите необходимые компоненты:
apt update && apt install -y nodejs git make g++ gcc build-essential
Запустите установку Node-RED:
npm install -g --unsafe-perm node-red@3.1.11
Если потребуется обновить версию Node-RED, выполните команду установки ещё раз.
В релизах wb-2207 и старее устаревшая версия NodeJS, поэтому свежий Node-RED можно поставить только в docker — инструкция по установке Node-RED в docker. Также в docker следует устанавливать если требуется версия более новая чем из пакетов.
Создание сервиса
Для автозапуска Node-RED необходимо настроить сервис. Для этого в папке /etc/systemd/system/
создайте файл nodered.service
:
nano /etc/systemd/system/nodered.service
Затем вставьте в этот файл строки:
[Unit] Description=Node-RED graphical event wiring tool Wants=network.target [Service] Type=simple User=root Group=root WorkingDirectory=/home Nice=5 Environment="NODE_OPTIONS=--max_old_space_size=256" ExecStart=/usr/bin/env node-red $NODE_OPTIONS $NODE_RED_OPTIONS KillSignal=SIGINT Restart=on-failure SyslogIdentifier=Node-RED [Install] WantedBy=multi-user.target
Сохраните изменения и закройте файл. Теперь включите сервис и запустите его командой:
systemctl enable nodered && systemctl start nodered
Проверьте статус сервиса командой, в выводе должна быть строчка Active: active (running)
:
# systemctl status nodered
● nodered.service - Node-RED graphical event wiring tool
Loaded: loaded (/etc/systemd/system/nodered.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-12-03 06:32:25 UTC; 24s ago
Main PID: 2757 (node)
CGroup: /system.slice/nodered.service
└─2757 node /usr/bin/node-red --max_old_space_size=256
Dec 03 06:32:25 wirenboard-AWQBNTYP systemd[1]: Started Node-RED graphical event wiring tool.
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: 3 Dec 06:32:36 - [info]
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: Welcome to Node-RED
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: ===================
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: 3 Dec 06:32:36 - [info] Node-RED version: v2.1.4
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: 3 Dec 06:32:36 - [info] Node.js version: v12.19.0
Dec 03 06:32:36 wirenboard-AWQBNTYP Node-RED[2757]: 3 Dec 06:32:36 - [info] Linux 5.10.35-wb6 arm LE
Dec 03 06:32:41 wirenboard-AWQBNTYP Node-RED[2757]: 3 Dec 06:32:41 - [info] Loading palette nodes
Удаление
Если вам больше не нужен Node-RED, то его можно удалить:
- Остановите, отключите и удалите сервис:
systemctl stop nodered && systemctl disable nodered && rm /etc/systemd/system/nodered.service
- Удалите сам Node-RED:
npm -g remove node-red && npm -g remove node-red-admin && rm -R ~/.node-red
Node.js, тоже можно удалить, но убедитесь, что у вас не установлены другие програмы, которые его используют, например, zigbee2mqtt. Чтобы удалить node.js, выполните команду:
apt remove nodejs
Веб-интерфейс Node-RED
После запуска сервиса откройте браузер и введите адрес своего контроллера в сети и порт 1880. Например: http://192.168.42.1:1880
Инструкции по работе c Node-RED можно найти на сайте nodered.org
Ноды mqtt in и mqtt out (рекомендуется)
Настройка подключения
Для работы по MQTT используются ноды mqtt in и mqtt out. Также вам понадобятся адреса топиков, взять их можно в веб-интерфейсе контроллера на странице MQTT-каналы.
Для настройки MQTT-соединения в Node-RED выполните следующие действия:
- Перетащите ноду mqtt in в рабочую область.
- Войдите в конфигурацию ноды и нажмите на Карандаш напротив поля Server.
- На вкладке Connecting задайте адрес брокера и номер порта.
- В поле Name введите любое имя сервера.
- На вкладке Security можно указать Имя пользователя и Пароль для подключения к брокеру. Если в качестве брокера выступает контроллер Wiren Board, это поле нужно оставить пустым.
- После заполнения всех полей нажмите кнопку Update. Созданный брокер теперь можно использовать для настройки всех подключений.
- Выберите созданные брокер из списка в поле Server.
- Введите адрес mqtt-топика в поле Topic.
- Нажмите кнопку Done.
По такому же принципу настраивается нода mqtt out.
- Настройка MQTT-брокера (Server)
Отправка команд
Для отправки команды контроллеру по MQTT используется нода mqtt out. При этом в поле Topic указывается адрес mqtt-топика контроллера, в который необходимо записать параметр. Нужно учитывать, что в конце адреса ноды mqtt out нужно написать /on
, иначе параметр в топик не запишется. Например, /devices/wb-mrgbw-d-fw3_129/controls/RGB Strip/on
. Подробнее читайте на странице MQTT.
- Настройка нод для работы с MQTT
Для отправки параметра в ноду mqtt out можно использовать ноду inject.
- Перетащите ноду inject в рабочую область.
- Подключите ее ко входу ноды mqtt out.
- Зайдите в настройки ноды inject и задайте Имя ноды, Тип переменной и ее Значение. Нажмите кнопку Done.
После настройки ввода и вывода можно обрабатывать данные внутри Node-RED и настроить использование сторонних сервисов, например, Умный дом с Алисой.
WB Nodes (решение сообщества)
Чтобы упростить взаимодействие Node-RED с контроллером Wiren Board, пользователь Andrej_Popov написал модуль node-red-contrib-wirenboard
.
Установка
Установим его через веб-интерфейс Node-RED:
- Зайдите в веб-интерфейс Node-RED.
- В правом верхнем углу вызовите меню.
- В открывшемся окне выберите вкладку Управление палитрой (Manager palette).
- Перейдите на вкладку Установка (Install), введите в поле поиска wirenboard и нажмите на клавиатуре Enter.
- Установите пакет с названием node-red-contrib-wirenboard.
- Закройте окно с настройками. Установка модуля завершена.
После установки, в левой панели появится секция Wiren Board.
Настройка
После того как вы установили WB Nodes, вам нужно настроить соединение с MQTT-брокером контроллера Wiren Board:
- Добавьте в рабочую область ноду WB-input, которая находится в левой панели, в секции Wiren Board.
- Дважды кликните на ней, откроется окно Edit in node.
- Найдите в нём поле Server и нажмите на кнопку с карандашом. Откроется окно Add new wirenboard-server config node.
- Заполните поля Name, Host и MQTT Port. Если Node-RED установлен на контроллере — в поле Host пропишите
localhost
. В поле Name укажите произвольное имя, а в поле MQTT Port — 1883. - Сохраните настройки сервера нажатием на кнопку Done.
- Закройте окно Edit in node нажатием на Cancel.
После настройки подключения, примените настройку сервера нажатием кнопки Deploy справа вверху. Только после этого будет доступен список каналов контроллера Wiren Board.
Вы настроили WB Nodes и можете писать автоматизации с использованием Node-RED.
Проверка настроек
Чтобы проверить правильность настроек:
- Добавьте в рабочую область любую ноду из группы Wiren Board, например, WB-input.
- Дважды кликните на ноде WB-input, откроется окно Edit in node.
- В окне Edit in node нажмите кнопку Refresh Device List.
Если соединение настроено верно, то в выпадающем списке поля Сhannel появится список доступных для использования каналов.
Примеры
В комплекте с WB-Nodes есть примеры для Apple HomeKit и Яндекс.Алисы, найти их можно в Menu → Import → Examples.
- Примеры из комплекта WB-Nodes
Решение проблем
Иногда, если во флоу есть ошибка, то веб-интерфейс Node-RED может перестать загружаться, в этом случае нужно проверить логи сервиса nodered.
Если в логах будет видна ошибка во флоу, то:
- Подключиться к контроллеру по SSH.
- Остановить службу, если она запущена:
systemctl stop nodered
- Запустить Node-RED в безопасном режиме:
node-red --safe
- Установить проблему и остановить запущенный в безопасном режиме Node-RED.
- Снова запустить сервис:
systemctl start nodered
Если вы ставили Node-RED в docker, воспользуйтесь инструкцией на странице Установка Node-RED в docker.
Примеры использования
Примеры использования Node-RED с WB-Nodes на контроллерах Wiren Board:
- Настройка Telegram-бота.
- Настройка Алисы на контроллере Wiren Board.
- Настройка Apple HomeKit на контроллере Wiren Board.
- Создание панелей (Dashboards) в Node-RED.
- Видео от нашего партнёра: Wiren Board + Node-RED
- Умный дом на Wiren Board и Node-RED: четыре полезных сценария без программирования
- Умный дом на Wiren Board и Node-RED: ещё три полезных сценария без программирования
- Работаем с Zigbee-устройствами через Zigbee2mqtt и Node-RED