Zigbee: различия между версиями
Строка 134: | Строка 134: | ||
=== Принцип работы === | === Принцип работы === | ||
Конвертер wb-zigbee2mqtt запрашивает у zigbee2mqtt список всех подключенных устройств, подписывается на их топики. При получении данных от физических устройств конвертер парсит json, создает виртуальное устройство и посылает в него полученную информацию. Так же конвертер создает виртуальное устройство «zigbee2mqtt» и передает в него логи, версию и состояние (online\offline) моста zigbee2mqtt. Можно включить и выключить режим добавления устройств. Также там расположена кнопка «update devices». При нажатии на эту кнопку конвертер заново запрашивает у моста список добавленных устройств и если они появились — подписывается на них. | |||
=== Установка === | === Установка === |
Версия 12:36, 24 августа 2021
Аппаратная часть
Для использования Zigbee-устройств с контроллером Wiren Board понадобится:
- Модуль расширения WBE2R-R-ZIGBEE или любой USB Zigbee стик.
- Дополнительное ПО:
- zigbee2mqtt — мост, с помощью которого можно управлять Zigbee-устройствами через MQTT.
- wb-zigbee2mqtt — конвертер из zigbee2mqtt в Wiren Board MQTT Conventions.
zigbee2mqtt
Описание
Zigbee2mqtt — это мост, с помощью которого вы можете управлять Zigbee устройствами через MQTT. Он работает на Node.js и позволяет интегрировать Zigbee устройства в различные системы автоматизации: Home Assistant, Node Red и тд. Официальный сайт — zigbee2mqtt.
Установка
Запустите консоль и введите команду:
apt update && apt install -y zigbee2mqtt
Установка и сборка из исходников (альтернативный метод):
Настраиваем репозиторий Node JS
curl -sL https://deb.nodesource.com/setup_12.x | bash -
Устанавливаем необходимые компоненты
apt-get install -y nodejs git make g++ gcc
Копируем файлы из репозитория zigbee2mqtt
git clone https://github.com/Koenkk/zigbee2mqtt.git /mnt/data/root/zigbee2mqtt
Настраиваем права
chown -R root:root /mnt/data/root/zigbee2mqtt
Заходим в директорию и запускаем установку
cd /mnt/data/root/zigbee2mqtt npm ci
В процессе установки будет показано несколько предупреждений. Их можно игнорировать.
Оригинальная инструкция по установке zigbee2mqtt на официальном сайте zigbee2mqtt.io
Для автоматического запуска zigbee2mqtt необходимо создать сервис. Для этого зайдите в папку /etc/systemd/system/ и создайте файл zigbee2mqtt.service
Откройте файл и скопируйте в него следующий текст:
[Unit] Description=zigbee2mqtt After=network.target [Service] ExecStart=/usr/bin/npm start WorkingDirectory=/mnt/data/root/zigbee2mqtt StandardOutput=inherit StandardError=inherit Restart=always User=root [Install] WantedBy=multi-user.target
И сохраните файл. После этого для активации сервиса следует ввести в консоль команду
systemctl enable zigbee2mqtt.service
Полную инструкцию можно найти на сайте zigbee2mqtt.
Конфигурация
Если Вы используете модуль расширения WBE2R-R-ZIGBEE, убедитесь, что правильно выставили модуль в Settings → Configs → Hardware Modules Configuration.
Далее в папке /mnt/data/root/zigbee2mqtt/data
отредактируйте файл configuration.yaml
ː
homeassistant: false permit_join: false mqtt: base_topic: zigbee2mqtt server: 'mqtt://localhost' serial: port: /dev/ttyMOD3 advanced: rtscts: false last_seen: epoch
изменив значение «port» в соответствии с расположением модуля. Полное описание настроек можно найти на сайте zigbee2mqtt.
После изменения настроек введите команду
service zigbee2mqtt restart
Запуск
Для запуска, остановки и перезапуска сервиса используйте команды
service zigbee2mqtt start service zigbee2mqtt stop service zigbee2mqtt restart
Добавление устройств
Что бы добавить Zigbee устройство убедитесь, что в настройках моста включен параметр «permit_join» :
permit_join: true
Далее следуйте инструкции к устройству. В основном требуется зажать кнопку «pair» на несколько секунд и дождаться «мигания» светодиода. После этого устройство должно передать информацию о себе на контроллер. Иногда требуется дополнительно нажимать на кнопку каждую секунду, что бы устройство не «уснуло». После успешного добавления устройство автоматически появится во вкладке Devices.
Более подробная информация на сайте zigbee2mqtt.
wb-zigbee2mqtt
Описание
Wb-zigbee2mqtt — это простой конвертер из zigbee2mqtt в Wiren Board MQTT Conventions. Конвертер написан на движке правил wb-rules>=2.6.0, скрипт устанавливается в папку с системными правилами wb-rules-system.
Принцип работы
Конвертер wb-zigbee2mqtt запрашивает у zigbee2mqtt список всех подключенных устройств, подписывается на их топики. При получении данных от физических устройств конвертер парсит json, создает виртуальное устройство и посылает в него полученную информацию. Так же конвертер создает виртуальное устройство «zigbee2mqtt» и передает в него логи, версию и состояние (online\offline) моста zigbee2mqtt. Можно включить и выключить режим добавления устройств. Также там расположена кнопка «update devices». При нажатии на эту кнопку конвертер заново запрашивает у моста список добавленных устройств и если они появились — подписывается на них.
Установка
Для установки откройте консоль и введите команду:
apt update && apt install wb-zigbee2mqtt
Правильная настройка zigbee2mqtt
Если ставить zigbee2mqtt через apt, то мост уже заранее настроен для правильной работы с конвертером. Если же вы ставите zigbee2mqtt вручную — убедитесь, что параметр базового топика выставлен верно:
mqtt: base_topic: zigbee2mqtt server: 'mqtt://localhost'
Другие настройки на работу конвертера не влияют.
Добавление устройств
Для добавления нового устройства переведите контрол «Permit join» в положение «on». Далее следуйте инструкции к устройству. В основном требуется зажать кнопку «pair» на несколько секунд и дождаться «мигания» светодиода.
Управление устройствами
Управление устройствами через конвертер wb-zigbee2mqtt пока не реализовано. Но управлять устройствами можно стандартными инструментами zigbee2mqtt через wb-rules (функция publish)
Пример управления устройством в правилах WB-Rules:
publish("zigbee2mqtt/0x00158d0001f3fc34/set", JSON.stringify({ state: "ON" }), 2, false);
publish("zigbee2mqtt/0x00158d0001f3fc34/set", JSON.stringify({ state: "OFF" }), 2, false);