Установка на Orange Pi Node.js и Zigbee2MQTT

 

Что такое Zigbee2MQTT можно почитать здесь.

Как всегда запускаем PuTTY и обновляемся.

sudo apt update

sudo apt -y upgrade


Все выпуски Node.js являются производными из официального репозитория APT. 

Однако это необходимо добавить в вашу систему вручную.


sudo apt update

sudo apt -y install curl dirmngr apt-transport-https lsb-release ca-certificates

sudo curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -


Репозиторий Node.js был добавлен.

Все, что нужно для установки, - это выполнить следующие команды.

sudo apt-get install -y nodejs git make g++ gcc


Подтвердите установку Node.js , проверив установленную версию.

Убедитесь, что правильные nodejs и npm (автоматически устанавливаются вместе с nodejs)

Должен выводить v14.X, V16.x, V17.x or V18.X

node --version

Должен выводить 6.X, 7.X or 8.X

npm --version


Создайте каталог для zigbee2mqtt 

sudo mkdir /opt/zigbee2mqtt


Клонируем репозиторий Zigbee2MQTT

sudo git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt


Установить зависимости

cd /opt/zigbee2mqtt

npm ci


Установите своего пользователя в качестве его владельца

sudo chown -R pi:pi  /opt/zigbee2mqtt


Проверяем:

ls -lh /opt/zigbee2mqtt


Прежде чем мы сможем запустить Zigbee2MQTT, нам нужно отредактировать configuration.yaml файл. Этот файл содержит конфигурацию, которая будет использоваться Zigbee2MQTT.


Откройте файл конфигурации:

nano /opt/zigbee2mqtt/data/configuration.yaml


Для базовой конфигурации, вероятно, подходят настройки по умолчанию.

Единственное, что нам нужно изменить, - это URL-адрес сервера MQTT и аутентификацию (если применимо).

# MQTT server URL

  server: 'mqtt://192.168.178.2'

  # MQTT server authentication, uncomment if required:

  # user: my_user

  # password: my_password


Так же указываем на каком порту у нас появился стик:

Для raspberry это возможно будут /dev/ttyACM0, /dev/ttyACM1

Для Orange Pi это будут /dev/ttyUSB0, /dev/ttyUSB1


Сохраняем файл CTRL + O и выходим. CTRL + X


--------Не пробовал----------------------------------------------------------------------------------------

Рекомендуется использовать собственный сетевой ключ. Это можно сделать, добавив в ваш configuration.yaml. Благодаря этому Zigbee2MQTT сгенерирует сетевой ключ при следующем запуске.

advanced:

    network_key: GENERATE

Это можно сделать с помощью следующей команды:

echo "\n\nadvanced:\n    network_key: GENERATE" >> /opt/zigbee2mqtt/data/configuration.yaml

---------------------------------------------------------------------------------------------------------------------------

Теперь, когда мы все настроили правильно, мы можем запустить Zigbee2MQTT.


cd /opt/zigbee2mqtt

npm start

При успешном запуске вы увидите что-то вроде:


Zigbee2MQTT:info  2019-11-09T13:04:01: Logging to directory: '/opt/zigbee2mqtt/data/log/2019-11-09.14-04-01'

Zigbee2MQTT:info  2019-11-09T13:04:01: Starting Zigbee2MQTT version 1.6.0 (commit #720e393)

Zigbee2MQTT:info  2019-11-09T13:04:01: Starting zigbee-herdsman...

Zigbee2MQTT:info  2019-11-09T13:04:03: zigbee-herdsman started


Выйти можно, нажав CTRL + C.


----------------------------------------------------------------------------------


Запуск в качестве демона с systemctl #

Чтобы запустить Zigbee2MQTT как демон (в фоновом режиме) и запускать его автоматически при загрузке, мы запустим Zigbee2MQTT с помощью systemctl.

sudo nano /etc/systemd/system/zigbee2mqtt.service

Добавьте в этот файл следующее:


[Unit]

Description=zigbee2mqtt

After=network.target


[Service]

ExecStart=/usr/bin/npm start

WorkingDirectory=/opt/zigbee2mqtt

StandardOutput=inherit

StandardError=inherit

Restart=always

User=pi


[Install]

WantedBy=multi-user.target


ПРИМЕЧАНИЕ: Если вы используете Raspberry Pi 1 или Zero, и если вы следовали этому руководству , замените 

ExecStart=/usr/bin/npm start 

на 

ExecStart=/usr/local/bin/npm start.


Сохраните файл и выйдите. CTRL + O и CTRL + X


------------------------------------------------------


Убедитесь, что конфигурация работает:

Запускаем Zigbee2MQTT

sudo systemctl start zigbee2mqtt

Проверяем статус

systemctl status zigbee2mqtt.service

Результат должен выглядеть примерно так:

pi@raspberry:/opt/zigbee2mqtt $ systemctl status zigbee2mqtt.service

● zigbee2mqtt.service - zigbee2mqtt

   Loaded: loaded (/etc/systemd/system/zigbee2mqtt.service; disabled; vendor preset: enabled)

   Active: active (running) since Thu 2018-06-07 20:27:22 BST; 3s ago

 Main PID: 665 (npm)

   CGroup: /system.slice/zigbee2mqtt.service

           ├─665 npm

           ├─678 sh -c node index.js

           └─679 node index.js


Теперь, когда все работает, мы сделаем чтобы systemctl автоматически запускал Zigbee2MQTT при загрузке, это можно сделать, выполнив:

sudo systemctl enable zigbee2mqtt.service

Готово! 😃

-----------------------------------------------------------------------------------------------------------------------

Для Majordomo

Изменим владельца директории /opt/zigbee2mqtt  на  www-data.

chown -R www-data:www-data /opt/zigbee2mqtt


Проверяем:

ls -lh /opt/zigbee2mqtt


Несколько советов, которые могут пригодиться позже:

Остановка Zigbee2MQTT

sudo systemctl stop zigbee2mqtt

Запуск Zigbee2MQTT

sudo systemctl start zigbee2mqtt

Посмотреть журнал Zigbee2MQTT

sudo journalctl -u zigbee2mqtt.service -f


Чтобы обновить Zigbee2MQTT до последней версии, выполните:

1. Остановите Zigbee2MQTT и перейдите в каталог

sudo systemctl stop zigbee2mqtt

cd /opt/zigbee2mqtt

2. Backup конфигурации

cp -R data data-backup

3. Обновление

git checkout HEAD -- npm-shrinkwrap.json

git pull

npm ci

4. Восстановить конфигурацию

cp -R data-backup/* data

rm -rf data-backup

5. Запуск Zigbee2MQTT

sudo systemctl start zigbee2mqtt


Комментарии

Популярные сообщения из этого блога

Перенос Armbian на SSD

Установка Home Assistants на Orange pi

Радиореле 220В 433МГц c кодировкой сигнала eV1527