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

Нет описания правки
Строка 1: Строка 1:
<languages/><translate>
<languages/><translate>
<!--T:19-->
<!--T:19-->
Строка 16: Строка 17:
<!--T:22-->
<!--T:22-->
{{Wbincludes:Installing Software In Console}}
{{Wbincludes:Installing Software In Console}}


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


<!--T:24-->
# Установите docker по [[docker | инструкции]].
Установите необходимые компоненты:
# Создайте каталог под служебные файлы:
<syntaxhighlight lang="bash">
apt update && apt install -y nodejs git make g++ gcc build-essential
</syntaxhighlight>
 
<!--T:25-->
Запустите установку Node-RED:
* Для релизов на Debian Linux Stretch (wb-2207):
*:<syntaxhighlight lang="bash">
npm install -g --unsafe-perm node-red@2.2
</syntaxhighlight>
* Для релизов на Debian Linux Bullseye:
*:<syntaxhighlight lang="bash">
npm install -g --unsafe-perm node-red
</syntaxhighlight>
 
Узнать релиз можно командой <code>wb-release</code>. [[Wiren_Board_Firmware_Update#Кратко_о_релизах | Подробнее о релизах]].
 
<!--T:26-->
Если потребуется обновить версию Node-RED, выполните команду установки ещё раз.
 
 
После установки можно удалить неиспользуемые пакеты, нужные только для установки (это сэкономит 145мб места):
<syntaxhighlight lang="bash">
apt remove binutils-common libbinutils binutils-arm-linux-gnueabihf binutils libisl23 libmpfr6 cpp-10 libasan6 gcc-10 libdpkg-perl dpkg-dev build-essential dirmngr gnupg-l10n pinentry-curses fakeroot gnupg-utils gpg gpgconf gpgsm libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libassuan0 libcc1-0 libctf-nobfd0 libfakeroot libfile-fcntllock-perl libgomp1 libksba8 libnpth0 libubsan1
</syntaxhighlight>
 
== Создание сервиса == <!--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
mkdir /mnt/data/root/nodered
chown -R 1000:1000 /mnt/data/root/nodered
chmod -R 777 /mnt/data/root/nodered
</syntaxhighlight>
</syntaxhighlight>
# Удалите сам Node-RED:
# Запустите образ nodered — docker автоматически загрузит его из интернет и запустит:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
npm -g remove node-red && npm -g remove node-red-admin && rm -R ~/.node-red
docker run -d --name nodered --privileged --restart=unless-stopped -e TZ=Europe/Moscow -v /mnt/data/root/nodered:/data -e NODE_OPTIONS="--max_old_space_size=256"  --network=host nodered/node-red
</syntaxhighlight>
</syntaxhighlight>


<!--T:39-->
После установки и запуска, откройте браузер и введите [[How_to_find_IP_address | адрес своего контроллера]] в сети и порт 1880. Например: http://192.168.42.1:1880 Консоль можно закрыть.
Node.js, тоже можно удалить, но убедитесь, что у вас не установлены другие програмы, которые его используют, например, zigbee2mqtt. Чтобы удалить node.js, выполните команду:
:<syntaxhighlight lang="bash">
apt remove nodejs
</syntaxhighlight>


==Веб-интерфейс Node-RED== <!--T:40-->
==Веб-интерфейс Node-RED== <!--T:40-->
12

правок