Установка на 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_20.x | sudo -E bash -
Репозиторий Node.js был добавлен.
Все, что нужно для установки, - это выполнить следующие команды.
sudo apt-get install -y nodejs git make g++ gcc libsystemd-dev
Подтвердите установку Node.js , проверив установленную версию.
Убедитесь, что правильные nodejs и npm (автоматически устанавливаются вместе с nodejs)
Должен выводить V20.X
node --version
Должен выводить 10.Xnpm --version
Создайте каталог для zigbee2mqtt
sudo mkdir /opt/zigbee2mqtt
Установите своего пользователя в качестве его владельца
sudo chown -R pi:pi /opt/zigbee2mqtt
Проверяем:
ls -lh /opt/zigbee2mqtt
Клонируем репозиторий Zigbee2MQTT
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
Установить зависимости
cd /opt/zigbee2mqtt
npm ci
Прежде чем мы сможем запустить 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
---------------------------------------------------------------------------------------------------------------------------
Создайте приложение
npm run build
Теперь, когда мы все настроили правильно, мы можем запустить 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
Комментарии
Отправить комментарий