translator, wb_editors
4444
правки
Matveevrj (обсуждение | вклад) |
Matveevrj (обсуждение | вклад) (Отметить эту версию для перевода) |
||
Строка 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-бота]]. |