Небольшое описание и заметки по установке zigbee2mqtt 2.0 на свежеустановленную систему на Rapberry Pi 3B, на 2025-01-24.
Возможно будет несколько дополняться.
Обновляем операционную систему (RPOS Debian 12 lite):
sudo apt update && sudo apt full-upgrade -y && sudo reboot
Устанавливаем MajorDoMo согласно скрипту (пока без установки zigbee2mqtt).
Страница скрипта установки MajorDoMo
Вместе с MajorDoMo устанавливается и MQTT брокер Mosquitto (настраивать его в последующем нет необходимости, но он или другой брокер необходимы для работы zigbee2mqtt).
Переходим к установке zigbee2mqtt.
Стик CC2531 установлен в USB порт и определяется на порту как TTY0
ls -l /dev/serial/by-id
total 0
lrwxrwxrwx 1 root root 13 Jan 24 09:29 usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001CCC3E3E-if00 -> ../../ttyACM0
Установка по шагам с инструкции сайта разработчиков z2m
zigbee2mqtt.io
Все действия, если не указан sudo делал от пользователя pi, начинаю делать из домашней директории /home/pi
1) Установка node, node.js и зависимостей
sudo curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs git make g++ gcc libsystemd-dev
1.2 Установка pnpm (в доке указано от пользователя pi) – не сразу не получилось, установка от рута – не совсем правильный вариант, потом возможны проблемы.
npm install -g pnpm
Вывыливается куча ошибок (пример вывода):
npm install -g pnpm
npm error code EACCES
npm error syscall mkdir
npm error path /usr/lib/node_modules/pnpm
npm error errno -13
npm error Error: EACCES: permission denied, mkdir /usr/lib/node_modules/pnpm
npm error A complete log of this run can be found in: /home/pi/.npm/_logs/2025-01-24T06_39_18_455Z-debug-0.log
Исправление: пытаемся установить, чтоб не было ошибок и запуск корректно происходил именно от пользователя pi
1.2.1 В командной строке в домашнем каталоге создаю каталог для глобальных установок:
mkdir ~/.npm-global
1.1.2 Настроиваем npm для использования нового пути к каталогу:
npm config set prefix '~/.npm-global'
1.1.3 В открываем (если нет, то создаём) в домашней директории /home/pi (у меня уже создан) ~/.profile файл добавляю следующую строку в самом конце файла:
export PATH=~/.npm-global/bin:$PATH
1.1.4 В командной строке обновляю системные переменные:
source ~/.profile
1.1.5 Запускаем по новому установку pnpm
npm install -g pnpm
Сейчас прокатило без ошибок, вывод после установки:
added 1 package in 12s
1 package is looking for funding
run `npm fund` for details
Проверка и вывод версий (должны соответствовать оф инструкции):
node --version # Should output V18.x, V20.x, V22.X
pnpm --version # Should output 9.X
pi@majordomo:~ $ node --version
v20.18.2
pi@majordomo:~ $ pnpm --version
9.15.4
2 Создаём директорию для zigbee2mqtt, меняем права на неё, клонируем репозиторий и т.д (согласно оф инструкции).
!!!Внимание если не указан sudo – действия делаем от текщего пользователя pi
# Create a directory for zigbee2mqtt and set your user as owner of it
sudo mkdir /opt/zigbee2mqtt
sudo chown -R ${USER}: /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
# Clone Zigbee2MQTT repository
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
# Install dependencies (as user "pi")
cd /opt/zigbee2mqtt
pnpm i --frozen-lockfile
# Build Zigbee2MQTT
pnpm run build
Собралось без ошибок
3.1 Копируем файл дефолтный конфигурации, (вариант со старым своим, который ранее пользовался приводит к миграции и у меня как то нестабильно мигрировалось – большая часть с ошибками, но иногда проскальзывал успех). Скопировал, но у себя ничего не менял (после первого запуска конфиг всё рано меняется, пример изменённого конфига).
cp /opt/zigbee2mqtt/data/configuration.example.yaml /opt/zigbee2mqtt/data/configuration.yaml
nano /opt/zigbee2mqtt/data/configuration.yaml
3.2 Даём права на папку zigbe2mqtt по принципу всё – всем (команда возможно лишняя, осталась после выполнения нескольких команда из под судо, но оставил её на всякий случай, не помешает)
sudo chmod -R 777 /opt/zigbee2mqtt
Если не в директории z2m, переходим в неё и производим первый запуск (обращаю внимание команда запуска несколько изменилась):
cd /opt/zigbee2mqtt
pnpm start
запускаем и ждем минут 2-5:
У меня всё время Малинка зависает, какое то время пингуется, потом пинг пропадает, делаю жесткий ребут по питанию,
После пергруза малинки опять заходим в директорию зигби
cd /opt/zigbee2mqtt/
nano /opt/zigbee2mqtt/data/configuration.yaml
смотрим файл конфигурации, он изменился.
Запускаем по новой из консоли.
И – удача, запуск произошёл успешно, можем зайти в веб интерфейс zigbee2mqtt по порту 8080, для пользования совместно с модулем HA Discovery можно в веб-интерфейсе в настройках влючить интеграцию с HA. Как обычно при сопряжении устройств (после обнаружения), вносятся изменения в конфигурационный файл.
В этой части, если всё ранее правильно сделано, то проблем у меня не возникло (хотя при первых попытках установки были и много), всё по инструкции:
# Create a systemctl configuration file for Zigbee2MQTT
sudo nano /etc/systemd/system/zigbee2mqtt.service
Содержимое файла сервиса:
[Unit]
Description=zigbee2mqtt
After=network.target
[Service]
Environment=NODE_ENV=production
Type=notify
ExecStart=/usr/bin/node index.js
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)
StandardError=inherit
WatchdogSec=10s
Restart=always
RestartSec=10s
User=pi
[Install]
WantedBy=multi-user.target
# Запуск Zigbee2MQTT
sudo systemctl start zigbee2mqtt
# Статус status
systemctl status zigbee2mqtt.service
Перечитываем сервиса в автозапуске и активируем автозапуск сервиса zigbee2mqtt
sudo systemctl daemon-reload
sudo systemctl enable zigbee2mqtt.service
Перегружаем, пользуемся ))
PS: Небольшие заметки по конфигурации zigbee2mqtt v 2.0
Настройка Home Assistant legacy action sensors - (поддержка старых действий action), включается в веб интерфейсе - настройки - интеграция с HA. Или ж в файле конфигураций секция HA. Там же второй параметр - включение эксперементальных (новых) функций. После установки эти параметры отсутствуют.
```homeassistant:
enabled: true
experimental_event_entities: true
legacy_action_sensor: true
Минск, Беларусь
На форуме: udvnl