Описание

Для использования Zigbee-устройств с контроллером Wiren Board понадобится:

  1. Модуль расширения WBE2R-R-ZIGBEE или любой USB Zigbee стик.
  2. Дополнительное ПО:
    • zigbee2mqtt — мост, с помощью которого можно управлять Zigbee-устройствами через MQTT.
    • wb-zigbee2mqtt — конвертер из zigbee2mqtt в Wiren Board MQTT Conventions.

zigbee2mqtt

Описание

Zigbee2mqtt — это мост, с помощью которого вы можете управлять Zigbee устройствами через MQTT. Он работает на Node.js и позволяет интегрировать Zigbee устройства в различные системы автоматизации: Home Assistant, Node Red и тд. Официальный сайт — zigbee2mqtt.

Установка

Установка с помощью apt

Так как пакет в свой репозиторий мы собираем сами, его версия может отличаться от текущей актуальной версии zigbee2mqtt.

Запустите консоль и введите команду:

apt update && apt install -y zigbee2mqtt

Сборка из исходников

Это альтернативный метод установки, который позволяет установить актуальную версию zigbee2mqtt. Оригинальная инструкция.

  1. Установите необходимые компоненты
    apt-get install -y nodejs git make g++ gcc
    
  2. Скопируйте файлы из репозитория zigbee2mqtt:
    git clone https://github.com/Koenkk/zigbee2mqtt.git /mnt/data/root/zigbee2mqtt
    
  3. Настройте права на папку:
    chown -R root:root /mnt/data/root/zigbee2mqtt
    
  4. Перейдите в папку с исходниками zigbee2mqtt:
    cd /mnt/data/root/zigbee2mqtt
    
  5. Запустите установку:
    npm ci
    
    В процессе установки будет показано несколько предупреждений. Их можно игнорировать.

Настройте автоматический запуск zigbee2mqtt, для этого создайте сервис:

  1. Создайте новый файл и откройте его на редактирование:
    mcedit /etc/systemd/system/zigbee2mqtt.service
    
  2. Скопируйте в него следующий текст:
    [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
    
  3. Сохраните файл.
  4. Разрешите автозапуск сервиса командой:
    systemctl enable zigbee2mqtt.service
    

Конфигурация

Если вы используете модуль расширения WBE2R-R-ZIGBEE, убедитесь, что правильно выставили модуль в SettingsConfigsHardware Modules Configuration.

  1. Откройте файл configuration.yaml для редактированияː
    mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
    
  2. Приведите его к виду
    homeassistant: false
    permit_join: false
    mqtt:
      base_topic: zigbee2mqtt
      server: 'mqtt://localhost'
    serial:
      port: /dev/ttyMOD3
    advanced:
      rtscts: false
      last_seen: epoch
    
    в параметре port укажите порт, куда физически вставлен модуль.
  3. Сохраните и закройте файл.
  4. Перезапустите сервис zigbee2mqtt:
    systemctl restart zigbee2mqtt
    

Теперь вы можете установить конвертер wb-zigbee2mqtt и Zigbee-устройства можно будет добавить на вкладку Devices.

Управление сервисом

Сервис запускается по умолчанию, но вы можете управлять им с помощью команд:

systemctl start zigbee2mqtt # запуск
systemctl stop zigbee2mqtt # остановка
systemctl restart zigbee2mqtt # перезапуск
systemctl status zigbee2mqtt # получить статус

Добавление устройств

Если вы не используете wb-zigbee2mqtt, то для добавления нового устройства в настройках zigbee2mqtt включите параметр permit_join:

permit_join: true

Далее следуйте инструкции к устройству. В основном требуется зажать кнопку «pair» на несколько секунд и дождаться «мигания» светодиода. После этого устройство должно передать информацию о себе на контроллер. Иногда требуется дополнительно нажимать на кнопку каждую секунду, что бы устройство не «уснуло». После успешного добавления устройство автоматически появится во вкладке Devices.

Более подробная информация на сайте zigbee2mqtt.

Веб-интерфейс (Frontend)

Веб-интерфейс zigbee2mqtt потребляет ресурсы контроллера — не включайте его, если не используете: добавлять устройства удобно через wb-zigbee2mqtt, а удалять можно из файла конфигурации вручную.

Настройка веб-интерфейса zigbee2mqtt:

  1. Откройте файл configuration.yaml для редактированияː
    mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
    
  2. Добавьте в него блок:
    frontend:
      port: 8081
      host: 0.0.0.0
    
  3. Сохраните и закройте файл.
  4. Перезапустите сервис zigbee2mqtt:
    systemctl restart zigbee2mqtt
    

Веб-интерфейс моста zigbee2mqtt будет доступен по адресу http://wb-ip-address:8081, например, http://192.168.42.1:8081

wb-zigbee2mqtt

Описание

Wb-zigbee2mqtt — это простой конвертер из zigbee2mqtt в Wiren Board MQTT Conventions. Конвертер написан на движке правил wb-rules и устанавливается в папку с системными правилами wb-rules-system.

Принцип работы

Конвертер wb-zigbee2mqtt запрашивает у zigbee2mqtt список всех подключенных устройств, подписывается на их топики. При получении данных от физических устройств конвертер парсит json, создает виртуальное устройство и посылает в него полученную информацию. Так же конвертер создает виртуальное устройство «zigbee2mqtt» и передает в него логи, версию и состояние (online\offline) моста zigbee2mqtt. Можно включить и выключить режим добавления устройств. Также там расположена кнопка «update devices». При нажатии на эту кнопку конвертер заново запрашивает у моста список добавленных устройств и если они появились — подписывается на них.

Установка

Для установки откройте консоль и введите команду:

apt update && apt install wb-zigbee2mqtt

Правильная настройка zigbee2mqtt

Если вы установили zigbee2mqtt через apt, то мост уже настроен для правильной работы с конвертером и этот шаг можно пропустить.

Если вы установили zigbee2mqtt исходников, то убедитесь, что параметр базового топика выставлен верно:

  1. Откройте файл configuration.yaml
    mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
    
  2. Проверьте строки:
    mqtt:
      base_topic: zigbee2mqtt
      server: 'mqtt://localhost'
    
    другие настройки на работу конвертера не влияют.

Добавление устройств

Устройства можно добавлять по одному или все разом. Чтобы добавить новые устройства:

  1. Перейдите в веб-интерфейс контроллера.
  2. Откройте вкладку Devices.
  3. Найдите там карточку устройства Zigbee2mqtt и проверьте статус в поле State — должно быть написано online.
  4. Включите переключатель Permit join.
  5. Следуйте инструкции к Zigbee-устройству: в основном требуется зажать на устройстве кнопку pair на несколько секунд и дождаться «мигания» светодиода.
  6. Если устройство будет добавлено, то в карточке устройства Zigbee2mqtt, в логе появится новая строка с именем устройства.
  7. Повторите шаг 5 для каждого Zigbee-устройства, которое у вас есть.
  8. Завершите добавление устройств, для этого выключите переключатель Permit join.
  9. Нажмите на кнопку Update devices.

Добавленные устройства появятся на вкладке Devices.

Управление устройствами

Управление устройствами через конвертер 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);