Node-RED: различия между версиями

Отметить эту версию для перевода
(Отметить эту версию для перевода)
Строка 1: Строка 1:
<languages/><translate>
<languages/><translate>
<!--T:19-->
{{DISPLAYTITLE:Установка Node-RED на контроллер Wiren Board}}
{{DISPLAYTITLE:Установка Node-RED на контроллер Wiren Board}}
[[Файл:Node-red.PNG|500px|thumb|right| Node-RED на контроллере Wiren Board]]
[[Файл:Node-red.PNG|500px|thumb|right| Node-RED на контроллере Wiren Board]]


== Описание ==  
== Описание == <!--T:20-->
{{YouTube
{{YouTube
|link= https://youtu.be/cKQmU4LZo4c
|link= https://youtu.be/cKQmU4LZo4c
Строка 10: Строка 11:
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}}
{{Wbincludes:Installing Software In Console}}


== Установка ==  
== Установка == <!--T:23-->
Для установки Node-RED 2.2 на контроллер Wiren Board подключитесь к нему по [[SSH]] и введите в консоль несколько команд.
Для установки Node-RED 2.2 на контроллер Wiren Board подключитесь к нему по [[SSH]] и введите в консоль несколько команд.


<!--T:24-->
Установите необходимые компоненты:
Установите необходимые компоненты:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 22: Строка 26:
</syntaxhighlight>
</syntaxhighlight>


<!--T:25-->
Запустите установку Node-RED:
Запустите установку Node-RED:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 27: Строка 32:
</syntaxhighlight>
</syntaxhighlight>


<!--T:26-->
Если потребуется обновить версию Node-RED, выполните команду установки ещё раз.
Если потребуется обновить версию Node-RED, выполните команду установки ещё раз.


== Создание сервиса ==  
== Создание сервиса == <!--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">
mcedit /etc/systemd/system/nodered.service
mcedit /etc/systemd/system/nodered.service
</syntaxhighlight>
</syntaxhighlight>


<!--T:30-->
Затем вставьте в этот файл строки:
Затем вставьте в этот файл строки:
<pre>
<pre>
Строка 43: Строка 52:
Wants=network.target
Wants=network.target


<!--T:31-->
[Service]
[Service]
Type=simple
Type=simple
Строка 49: Строка 59:
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"
Строка 56: Строка 67:
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 && systemctl start nodered
systemctl enable nodered && systemctl start nodered
</syntaxhighlight>
</syntaxhighlight>


<!--T:36-->
Проверьте статус сервиса командой, в выводе должна быть строчка <code>Active: active (running)</code>:
Проверьте статус сервиса командой, в выводе должна быть строчка <code>Active: active (running)</code>:
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
Строка 76: Строка 91:
           └─2757 node /usr/bin/node-red --max_old_space_size=256
           └─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: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]: 3 Dec 06:32:36 - [info]
Строка 86: Строка 102:
</syntaxhighlight>
</syntaxhighlight>


== Удаление ==
== Удаление == <!--T:38-->
Если вам больше не нужен Node-RED, то его можно удалить:
Если вам больше не нужен Node-RED, то его можно удалить:
# Остановите, отключите и удалите сервис:
# Остановите, отключите и удалите сервис:
Строка 97: Строка 113:
</syntaxhighlight>
</syntaxhighlight>


<!--T:39-->
Node.js, тоже можно удалить, но убедитесь, что у вас не установлены другие програмы, которые его используют, например, zigbee2mqtt. Чтобы удалить node.js, выполните команду:
Node.js, тоже можно удалить, но убедитесь, что у вас не установлены другие програмы, которые его используют, например, zigbee2mqtt. Чтобы удалить node.js, выполните команду:
:<syntaxhighlight lang="bash">
:<syntaxhighlight lang="bash">
Строка 102: Строка 119:
</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 ==  
== WB Nodes == <!--T:42-->
[[Файл:Installing node-red-contrib-wirenboard.PNG|500px|thumb|right| Установка WB Nodes на контроллер Wiren Board]]
[[Файл: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]]:
Установим его через [[#Веб-интерфейс Node-RED | веб-интерфейс Node-RED]]:
{{Node-RED Installing plugin
{{Node-RED Installing plugin
Строка 121: Строка 139:


После установки, в левой панели появится секция Wiren Board.
После установки, в левой панели появится секция Wiren Board.
=== Настройка ===
=== Настройка === <!--T:44-->
После того как вы установили WB Nodes, вам нужно настроить соединение с MQTT-брокером контроллера Wiren Board:
После того как вы установили WB Nodes, вам нужно настроить соединение с MQTT-брокером контроллера Wiren Board:
# Добавьте в рабочую область ноду '''WB-input''', которая находится в левой панели, в секции '''Wiren Board'''.
# Добавьте в рабочую область ноду '''WB-input''', которая находится в левой панели, в секции '''Wiren Board'''.
Строка 131: Строка 149:
{{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'''.
Строка 139: Строка 158:
# В окне '''Edit in node''' нажмите кнопку '''Refresh Device List'''.
# В окне '''Edit in node''' нажмите кнопку '''Refresh Device List'''.


<!--T:47-->
Если соединение настроено верно, то в выпадающем списке поля '''Сhannel''' появится список доступных для использования каналов.
Если соединение настроено верно, то в выпадающем списке поля '''Сhannel''' появится список доступных для использования каналов.


=== Примеры ===
=== Примеры === <!--T:48-->
В комплекте с WB-Nodes есть примеры для [[Node-RED Apple HomeKit | Apple HomeKit]] и Яндекс.Алисы, найти их можно в '''Menu''' → '''Import''' → '''Examples'''.
В комплекте с WB-Nodes есть примеры для [[Node-RED Apple HomeKit | Apple HomeKit]] и Яндекс.Алисы, найти их можно в '''Menu''' → '''Import''' → '''Examples'''.
<gallery mode="packed" heights="200px" caption="Примеры из комплекта WB-Nodes">
<gallery mode="packed" heights="200px" caption="Примеры из комплекта WB-Nodes">
Строка 148: Строка 168:
</gallery>
</gallery>


== Использование нод ''mqtt in'' и ''mqtt out'' для взаимодействия с Wiren Board ==
== Использование нод ''mqtt in'' и ''mqtt out'' для взаимодействия с Wiren Board == <!--T:49-->
=== Настройка подключения ===
=== Настройка подключения ===
[[Image: NodeRed_mqtt_nodes.jpg |300px|thumb|right| Ноды MQTT в Node-Red ]]
[[Image: NodeRed_mqtt_nodes.jpg |300px|thumb|right| Ноды MQTT в Node-Red ]]
Альтернативный вариант — использовать ноды '''mqtt in''' и  '''mqtt out'''. Для этого вам понадобятся адреса топиков, взять их можно в веб-интерфейсе контроллера на странице [[Wiren Board Web Interface#mqtt-channels |MQTT-каналы]].
Альтернативный вариант — использовать ноды '''mqtt in''' и  '''mqtt out'''. Для этого вам понадобятся адреса топиков, взять их можно в веб-интерфейсе контроллера на странице [[Wiren Board Web Interface#mqtt-channels |MQTT-каналы]].


<!--T:50-->
Для настройки MQTT-соединения в Node-RED выполните следующие действия:
Для настройки MQTT-соединения в Node-RED выполните следующие действия:
#Перетащите ноду '''mqtt in''' в рабочую область.  
#Перетащите ноду '''mqtt in''' в рабочую область.  
Строка 164: Строка 185:
#Нажмите кнопку '''Done'''.
#Нажмите кнопку '''Done'''.


<!--T:51-->
По такому же принципу настраивается нода '''mqtt out'''.
По такому же принципу настраивается нода '''mqtt out'''.
<gallery mode="packed" heights="150px" caption="Настройка MQTT-брокера (Server)>
<gallery mode="packed" heights="150px" caption="Настройка MQTT-брокера (Server)>
Строка 170: Строка 192:
</gallery>
</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]].
Для отправки команды контроллеру по 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">
<gallery mode="packed" heights="150px" caption="Настройка нод для работы с MQTT">
Строка 189: Строка 211:
</gallery>
</gallery>


<!--T:53-->
После настройки ввода и вывода можно обрабатывать данные внутри Node-RED и настроить использование сторонних сервисов, например, [[Node-RED_Alice | Умный дом с Алисой]].
После настройки ввода и вывода можно обрабатывать данные внутри Node-RED и настроить использование сторонних сервисов, например, [[Node-RED_Alice | Умный дом с Алисой]].


<!--T:54-->
<gallery mode="packed" heights="150px">
<gallery mode="packed" heights="150px">
Image: NodeRed_mqtt5.jpg | Пример управления с помощью Алисы
Image: NodeRed_mqtt5.jpg | Пример управления с помощью Алисы
</gallery>
</gallery>


== Примеры использования ==
== Примеры использования == <!--T:55-->
Примеры использования Node-RED с WB-Nodes на контроллерах Wiren Board:
Примеры использования Node-RED с WB-Nodes на контроллерах Wiren Board:
* [[Node-RED_Telegram | Настройка Telegram-бота]].
* [[Node-RED_Telegram | Настройка Telegram-бота]].
translator, wb_editors
4251

правка