Wb-zigbee2mqtt
Конвертер wb-zigbee2mqtt
Описание
Был помечен как устаревший с релиза 2606
wb-zigbee2mqtt — конвертер данных zigbee2mqtt в топики виртуальных устройств, написан на движке правил wb-rules и устанавливается в папку с системными правилами wb-rules-system. Умеет отображать Zigbee-устройства в интерфейсе контроллера Wiren Board, но для управления пользователь должен сам писать в контролы zigbee2mqtt с помощью функции publish.
Принцип работы
Конвертер wb-zigbee2mqtt запрашивает у zigbee2mqtt список всех подключенных устройств и подписывается на их топики. При получении данных от физических устройств конвертер парсит json, создает виртуальное устройство и посылает в него полученную информацию.
Так же конвертер создает виртуальное устройство zigbee2mqtt и передает в него логи, версию и состояние (online\offline) моста zigbee2mqtt. Можно включить и выключить режим добавления устройств. Также там расположена кнопка Update devices. При нажатии на эту кнопку конвертер заново запрашивает у моста список добавленных устройств и, если они появились — подписывается на них.
Установка
wb-zigbee2mqtt ставится автоматически при установке пакета zigbee2mqtt, если этого не произошло, установите его командой:
apt update && apt install wb-zigbee2mqtt
После этого в стандартном веб-интерфейсе контроллера на вкладке Devices появится устройство zigbee2mqtt.
Добавление устройств
Устройства можно добавлять по одному или все разом. Чтобы добавить новые устройства:
- Перейдите в стандартный веб-интерфейс контроллера.
- Откройте вкладку Devices.
- Найдите там карточку устройства Zigbee2mqtt и проверьте статус в поле State — должно быть написано online. Если вы только, что установили zigbee2mqtt и указан статус offline — подождите пару минут.
- Включите переключатель Permit join.
- Следуйте инструкции к Zigbee-устройству: в основном требуется зажать на устройстве кнопку pair на несколько секунд и дождаться мигания индикатора на устройстве.
- В процессе добавления устройства в карточке Zigbee2mqtt в поле Log по очереди будут появляться сообщения Starting interview on 0xN → Device 0xN is supported. Последнее сообщение означает, что устройство успешно опрошено.
- Повторите шаги 5 и 6 для каждого Zigbee-устройства, которое у вас есть.
- Завершите добавление устройств, для этого выключите переключатель Permit join.
- Нажмите кнопку Update devices, добавленные устройства будут доступны на вкладке Devices.
Иногда, новые устройства не появляются на вкладке Devices — это может быть по причинам:
- Произошла ошибка в конвертере при разборе данных от zigbee2mqtt, в этом случае перезапустите движок правил:
systemctl restart wb-rules
- Некоторые устройства не поддерживаются zigbee2mqtt, для таких устройств в сообщении будет указано Starting interview on 0xN → Device 0xN ... is NOT supported. В этом случае убедитесь, что устройство есть в списке поддерживаемых и у вас установлена свежая версия zigbee2mqtt.
Ещё бывает так, что карточка устройства появилась, но пустая — это значит, что устройство добавлено, но данные пока не были получены. Если это датчик, то тут нужно немного подождать, а в случае с выключателем — выключить или включить его.
Изменение friendly_name
friendly_name — это человекочитаемое имя устройства. Вы можете оставить значение по умолчанию, или настроить своё:
- Откройте файл конфигурации для редактированияː
nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
- Найдите в секции devices ваше устройство.
- Измените friendly_name.
- Сохраните файл настроек и перезапустите сервис:
systemctl restart zigbee2mqtt
- В стандартном веб-интерфейсе контроллера на вкладке Devices должно появиться устройство с заданным именем.
- Удалите карточку устройства со старым именем с вкладки Devices, для этого нажмите на корзинку в заголовке.
Новое имя устройства должно соответствовать этим требованиям (плюс нельзя использовать косую черту /) и не должно быть одинаковым для нескольких устройств, а также соответствовать определённым правилам — так называемым соглашениям (Wiren Board MQTT Conventions).
- Изменение friendly_name
Управление устройствами
Управление через конвертер wb-zigbee2mqtt пока не реализовано, но вы можете управлять устройствами стандартными инструментами zigbee2mqtt через wb-rules, отправляя команды с помощью функции publish.
Другими словами, вместо ожидаемого по традиции wb-rules:
dev["friendly_name/control_name"] = "OFF"
надо в скрипте делать:
publish("zigbee2mqtt/friendly_name/set", JSON.stringify({ control_name: "OFF" }), 2, false);
Вот пример включения и отключения реле с friendly_name равным 0x00158d0001f3fc34 в правилах wb-rules:
publish("zigbee2mqtt/0x00158d0001f3fc34/set", JSON.stringify({ state: "ON" }), 2, false); publish("zigbee2mqtt/0x00158d0001f3fc34/set", JSON.stringify({ state: "OFF" }), 2, false);
Если wb-rules для вас сложен, вы всегда можете использовать визуальный редактор автоматизаций Node-RED.
Удаление устройств
Чтобы удалить устройство:
- Убедитесь, что в карточке устройства с заголовком Zigbee2mqtt перключатель Permit join находится в положении OFF.
- Разорвите связь устройства с координатором. Обычно для этого нужно зажать кнопку сопряжения на 5 секунд, смотрите документацию на устройство.
- Проследите, чтобы в карточке с заголовком Zigbee2mqtt в поле Log появилось сообщение left_network.
- Удалите карточку этого Zigbee-устройства из веб-интерфейса, для этого наведите на заголовок карточки курсор мыши и нажмите на корзинку.
- Подключитесь к контроллеру по SSH и перезапустите wb-rules — это перезапустит конвертер wb-zigbee2mqtt:
systemctl restart wb-rules
Как переустановить с сохранением данных
В некоторых случаях может потребоваться переустановить конвертер с сохранением данных, например, если мост не стартует после обновления.
Инструкция:
- Перейдите в домашний каталог:
cd ~
- Сохраните настройки:
cp -R /mnt/data/root/zigbee2mqtt/data data-backup
- Удалите zigbee2mqtt командой:
apt purge zigbee2mqtt
- Если остался каталог с node-modules — удалите его:
rm -r /mnt/data/root/zigbee2mqtt/node_modules
- Заново поставьте zigbee2mqtt:
apt install zigbee2mqtt
- Восстановите настройки из архива:
cp -R data-backup/* /mnt/data/root/zigbee2mqtt/data
- Перезапустите сервис:
systemctl restart zigbee2mqtt



