Zigbee: различия между версиями
(→Добавление устройств: Добавил про Frotnend) |
|||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:Подключение устройств Zigbee к контроллеру Wiren Board}} | {{DISPLAYTITLE:Подключение устройств Zigbee к контроллеру Wiren Board}} | ||
== | == Описание == | ||
Для использования Zigbee-устройств с контроллером [[Wiren Board]] понадобится: | Для использования Zigbee-устройств с контроллером [[Wiren Board]] понадобится: | ||
# Модуль расширения [[Wbe2r-r-zigbee|WBE2R-R-ZIGBEE]] или любой USB Zigbee стик. | # Модуль расширения [[Wbe2r-r-zigbee|WBE2R-R-ZIGBEE]] или любой USB Zigbee стик. |
Версия 07:17, 7 сентября 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.
- Откройте файл
configuration.yaml
для редактированияːmcedit /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
Теперь вы можете установить конвертер wb-zigbee2mqtt и Zigbee-устройства можно будет добавить на вкладку Devices.
Управление сервисом
Сервис запускается по умолчанию, но вы можете управлять им с помощью команд:
service zigbee2mqtt start # запуск
service zigbee2mqtt stop # остановка
service zigbee2mqtt restart # перезапуск
service zigbee2mqtt status # получить статус
Добавление устройств
Если вы не используете wb-zigbee2mqtt, то для добавления нового устройства в настройках zigbee2mqtt включите параметр permit_join:
permit_join: true
Далее следуйте инструкции к устройству. В основном требуется зажать кнопку «pair» на несколько секунд и дождаться «мигания» светодиода. После этого устройство должно передать информацию о себе на контроллер. Иногда требуется дополнительно нажимать на кнопку каждую секунду, что бы устройство не «уснуло». После успешного добавления устройство автоматически появится во вкладке Devices.
Более подробная информация на сайте zigbee2mqtt.
Веб-интерфейс (Frontend)
Веб-интерфейс zigbee2mqtt потребляет ресурсы контроллера — не включайте его, если не используете: добавлять устройства удобно через wb-zigbee2mqtt, а удалять можно из файла конфигурации вручную.
Настройка веб-интерфейса zigbee2mqtt:
- Откройте файл
configuration.yaml
для редактированияːmcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
- Добавьте в него блок:
frontend: port: 8081 host: 0.0.0.0
- Сохраните и закройте файл.
- Перезапустите сервис
zigbee2mqtt
:service zigbee2mqtt restart
Веб-интерфейс моста 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 исходников, то убедитесь, что параметр базового топика выставлен верно:
- Откройте файл
configuration.yaml
mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
- Проверьте строки:
mqtt: base_topic: zigbee2mqtt server: 'mqtt://localhost'
- другие настройки на работу конвертера не влияют.
Добавление устройств
Устройства можно добавлять по одному или все разом. Чтобы добавить новые устройства:
- Перейдите в веб-интерфейс контроллера.
- Откройте вкладку Devices.
- Найдите там карточку устройства Zigbee2mqtt и проверьте статус в поле State — должно быть написано online.
- Включите переключатель Permit join.
- Следуйте инструкции к Zigbee-устройству: в основном требуется зажать на устройстве кнопку pair на несколько секунд и дождаться «мигания» светодиода.
- Если устройство будет добавлено, то в карточке устройства Zigbee2mqtt, в логе появится новая строка с именем устройства.
- Повторите шаг 5 для каждого Zigbee-устройства, которое у вас есть.
- Завершите добавление устройств, для этого выключите переключатель Permit join.
- Нажмите на кнопку 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);