ZigBee на Raspberry, часть 2, установка софта
Итак, в первой части мы прошили стикер CC2531, теперь наша малинка готова стать шлюзом. Обычно схема работы Raspberry следующая:

ZigBee2MQTT — нужен для того чтобы принять пакеты со стика CC2531 и отправить их в брокер сообщений. Которые в дальнейшем уже обработают скрипты для автоматизации чего-либо.
Сначала поставим брокер сообщений mosquitto (как самое легкое):
sudo apt-get install mosquitto
И настроим файл конфигурации /etc/mosquitto/mosquitto.conf :
pid_file /run/mosquitto/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
allow_anonymous true # доступ для всех
listener 1883 0.0.0.0 # слушаем все сетевые адреса
Можно задать логин пароль для доступа, и разрешить слушать только localhost, но я это считаю излишним, т.к. всё равно чаще всего raspberry pi лежит в локальной сети и в интернет не смотрит. Далее включаем службу и стартуем её:
sudo systemctl enable mosquitto
sudo systemctl restart mosquitto
Теперь ставим и настраиваем ZigBee2MQTT. Можно по туториалу на сайте разработчиков, а можно так, как описано ниже (без подробностей).
sudo apt-get install nodejs git
corepack enable
sudo mkdir /opt/zigbee2mqtt
sudo chown -R ${USER}: /opt/zigbee2mqtt
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
pnpm install --frozen-lockfile
cd /opt/zigbee2mqtt
pnpm start
После успешного старта будет доступен веб интерфейс для дальнейшей настройки в браузере http://ip:8080. Необходимо зайти, выбрать порт где расположен стик, и ввести данные для подключения к брокеру. После сохранить. Конфиг будет сохранен в /opt/zigbee2mqtt/data/configuration.yaml
Далее оформим запуск ZigBee2MQTT как службу, создав и сохранив файл:
[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
sudo systemctl enable zigbee2mqtt
sudo systemctl start zigbee2mqtt
Ну и теоретически всё. По идее можно подключать устройства zigbee. В следующей части собственно это и рассмотрю.





