16 583
правки
Vvzvlad (обсуждение | вклад) |
(Официальный способ установки — пакетами, в докер только в крайнем случае. Вынес правки пользователя в отдельную страницу и дал ссылку.) |
||
Строка 1: | Строка 1: | ||
<languages/><translate> | <languages/><translate> | ||
<!--T:19--> | <!--T:19--> | ||
Строка 18: | Строка 17: | ||
{{Wbincludes:Installing Software In Console}} | {{Wbincludes:Installing Software In Console}} | ||
== Установка == <!--T:23--> | |||
Для установки Node-RED 2.2 на контроллер Wiren Board подключитесь к нему по [[SSH]] и введите в консоль несколько команд. | |||
<!--T:24--> | |||
Установите необходимые компоненты: | |||
<syntaxhighlight lang="bash"> | |||
apt update && apt install -y nodejs git make g++ gcc build-essential | |||
</syntaxhighlight> | |||
== | <!--T:25--> | ||
Для | Запустите установку Node-RED: | ||
*:<syntaxhighlight lang="bash"> | |||
npm install -g --unsafe-perm node-red | |||
</syntaxhighlight> | |||
<!--T:26--> | |||
Если потребуется обновить версию Node-RED, выполните команду установки ещё раз. | |||
В релизах wb-2207 и старее устаревшая версия NodeJS, поэтому свежий Node-RED можно поставить только в docker — [[Node-RED_docker|инструкция по установке Node-RED в docker]]. | |||
== Создание сервиса == <!--T:27--> | |||
<!--T:28--> | |||
Для автозапуска Node-RED необходимо настроить сервис. Для этого в папке <code>/etc/systemd/system/</code> создайте файл <code>nodered.service</code>: | |||
<!--T:29--> | |||
<syntaxhighlight lang="bash"> | |||
nano /etc/systemd/system/nodered.service | |||
</syntaxhighlight> | |||
<!--T:30--> | |||
Затем вставьте в этот файл строки: | |||
<pre> | |||
[Unit] | |||
Description=Node-RED graphical event wiring tool | |||
Wants=network.target | |||
<!--T:31--> | |||
[Service] | |||
Type=simple | |||
User=root | |||
Group=root | |||
WorkingDirectory=/home | |||
<!--T:32--> | |||
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 | |||
<!--T:33--> | |||
[Install] | |||
WantedBy=multi-user.target | |||
</pre> | |||
<!--T:34--> | |||
Сохраните изменения и закройте файл. Теперь включите сервис и запустите его командой: | |||
<!--T:35--> | |||
<syntaxhighlight lang="bash"> | |||
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"> | #:<syntaxhighlight lang="bash"> | ||
systemctl stop nodered && systemctl disable nodered && rm /etc/systemd/system/nodered.service | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# | # Удалите сам Node-RED: | ||
#:<syntaxhighlight lang="bash"> | #:<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"> | |||
apt remove nodejs | |||
</syntaxhighlight> | |||
==Веб-интерфейс Node-RED== <!--T:40--> | ==Веб-интерфейс Node-RED== <!--T:40--> | ||
Строка 88: | Строка 172: | ||
=== Решение проблем === | === Решение проблем === | ||
Иногда, если во флоу есть ошибка, то веб-интерфейс Node-RED может перестать загружаться, в этом случае нужно | Иногда, если во флоу есть ошибка, то веб-интерфейс Node-RED может перестать загружаться, в этом случае нужно проверить логи сервиса nodered. | ||
Если в логах будет видна ошибка во флоу, то | Если в логах будет видна ошибка во флоу, то: | ||
# | # Подключиться к контроллеру по [[SSH]]. | ||
# Остановить службу, если она запущена: | # Остановить службу, если она запущена: | ||
#: <syntaxhighlight lang="bash"> | #: <syntaxhighlight lang="bash"> | ||
systemctl stop nodered | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# | # Запустить Node-RED в безопасном режиме: | ||
#: <syntaxhighlight lang="bash"> | #: <syntaxhighlight lang="bash"> | ||
node-red --safe | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# Установить проблему и остановить запущенный в безопасном режиме Node-RED. | |||
# Снова запустить сервис: | |||
<syntaxhighlight lang="bash"> | #: <syntaxhighlight lang="bash"> | ||
systemctl start nodered | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Если вы ставили Node-RED в docker, воспользуйтесь инструкцией на странице [[Node-RED_docker|Установка Node-RED в docker]]. | |||
== Использование нод ''mqtt in'' и ''mqtt out'' для взаимодействия с Wiren Board == <!--T:49--> | == Использование нод ''mqtt in'' и ''mqtt out'' для взаимодействия с Wiren Board == <!--T:49--> | ||
=== Настройка подключения === | === Настройка подключения === |