Zigbee: различия между версиями
(не показано 85 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:Подключение устройств Zigbee к контроллеру Wiren Board}} | {{DISPLAYTITLE:Подключение устройств Zigbee к контроллеру Wiren Board}} | ||
== Описание == | == Описание == | ||
Для использования Zigbee-устройств с контроллером Wiren Board понадобится: | Для использования Zigbee-устройств с контроллером [[Wiren Board]] понадобится: | ||
# Модуль расширения [[ | # Модуль расширения [[Wbe2r-r-zigbee|WBE2R-R-ZIGBEE]] или любой USB Zigbee стик. | ||
# Дополнительное ПО: | # Дополнительное ПО: | ||
#* zigbee2mqtt — мост, с помощью которого можно управлять Zigbee-устройствами через | #* zigbee2mqtt — мост, с помощью которого можно управлять Zigbee-устройствами через MQTT. | ||
#* wb-zigbee2mqtt — конвертер | #* wb-zigbee2mqtt — конвертер из zigbee2mqtt в Wiren Board MQTT Conventions. | ||
Инструкции по установке смотрите ниже на этой странице. | Инструкции по установке смотрите ниже на этой странице. | ||
== Установка и настройка zigbee2mqtt == | |||
=== Описание === | |||
[https://www.zigbee2mqtt.io/ Zigbee2mqtt] — это мост, с помощью которого вы можете управлять Zigbee устройствами через MQTT. | |||
=== Процесс установки === | === Процесс установки === | ||
Версия пакета zigbee2mqtt в стабильном релизе может отставать от актуальной версии, которая доступна у автора. | Версия пакета zigbee2mqtt в стабильном релизе может отставать от актуальной версии, которая доступна у автора. Все свежии версии доступны в [[testing | тестовом релизе]]. | ||
Мы рекомендуем устанавливать готовый пакет из нашего репозитория | Мы рекомендуем устанавливать готовый пакет из нашего репозитория, введите команду: | ||
<syntaxhighlight lang="bash"> | |||
apt update && apt install zigbee2mqtt | apt update && apt install zigbee2mqtt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Альтернативный способ установки — сборка из исходников по [[Zigbee2mqtt-src | инструкции]]. | Альтернативный способ установки — сборка из исходников по [[Zigbee2mqtt-src | инструкции]]. | ||
=== Конфигурация === | === Конфигурация === | ||
Если вы используете модуль расширения [[WBE2R-R-ZIGBEE]], убедитесь, что правильно выставили модуль в '''Settings''' → '''Configs''' → '''Hardware Modules Configuration'''. При использовании USB-стика порты будут называться <code>/dev/ttyUSB0</code> и <code>/dev/ttyUSB1</code>. | |||
Если вы используете модуль расширения [[WBE2R-R-ZIGBEE]], убедитесь, что правильно выставили модуль в '''Settings''' → '''Configs''' → '''Hardware Modules Configuration'''. При использовании USB-стика | |||
Настройка: | Настройка: | ||
# Откройте файл | # Откройте файл <code>configuration.yaml</code> для редактированияː | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# | # Приведите его к виду | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
homeassistant: false | homeassistant: false | ||
Строка 56: | Строка 40: | ||
server: 'mqtt://localhost' | server: 'mqtt://localhost' | ||
serial: | serial: | ||
port: /dev/ | port: /dev/ttyMOD3 | ||
advanced: | advanced: | ||
rtscts: false | rtscts: false | ||
last_seen: epoch | last_seen: epoch | ||
</syntaxhighlight> | </syntaxhighlight> | ||
#: | #:в параметре '''port''' укажите порт, куда физически вставлен модуль. | ||
# | # Сохраните и закройте файл. | ||
# Перезапустите сервис <code>zigbee2mqtt</code>: | # Перезапустите сервис <code>zigbee2mqtt</code>: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
systemctl restart zigbee2mqtt | systemctl restart zigbee2mqtt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Теперь вы можете установить конвертер wb-zigbee2mqtt и Zigbee-устройства | |||
Теперь вы можете установить конвертер wb-zigbee2mqtt и Zigbee-устройства можно будет добавить на вкладку '''Devices'''. | |||
=== Управление сервисом === | |||
Сервис запускается по умолчанию, но вы можете управлять им с помощью команд: | |||
<syntaxhighlight lang="bash"> | |||
systemctl start zigbee2mqtt # запуск | |||
systemctl stop zigbee2mqtt # остановка | |||
systemctl restart zigbee2mqtt # перезапуск | |||
systemctl status zigbee2mqtt # получить статус | |||
</syntaxhighlight> | |||
=== Веб-интерфейс (Frontend) === | === Веб-интерфейс (Frontend) === | ||
Веб-интерфейс zigbee2mqtt потребляет ресурсы контроллера — не включайте его, если не используете: добавлять и удалять устройства можно через наш конвертер wb-zigbee2mqtt. | |||
Веб-интерфейс zigbee2mqtt | |||
Если вам всё же нужен родной веб-интерфейс zigbee2mqtt, то его можно включить в файле настроек: | Если вам всё же нужен родной веб-интерфейс zigbee2mqtt, то его можно включить в файле настроек: | ||
# Откройте файл <code>configuration.yaml</code> для редактированияː | # Откройте файл <code>configuration.yaml</code> для редактированияː | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# Добавьте в него блок: | # Добавьте в него блок: | ||
Строка 94: | Строка 85: | ||
Веб-интерфейс моста zigbee2mqtt будет доступен по адресу http://wb-ip-address:PORT, например, если IP-адрес контроллера '''192.168.42.1''', а порт указан '''8081''', то веб-интерфейс будет доступен по адресу http://192.168.42.1:8081 | Веб-интерфейс моста zigbee2mqtt будет доступен по адресу http://wb-ip-address:PORT, например, если IP-адрес контроллера '''192.168.42.1''', а порт указан '''8081''', то веб-интерфейс будет доступен по адресу http://192.168.42.1:8081 | ||
=== | == Установка конвертера wb-zigbee2mqtt == | ||
=== Описание === | |||
Wb-zigbee2mqtt — это простой конвертер из zigbee2mqtt в [https://github.com/wirenboard/conventions/ Wiren Board MQTT Conventions]. Конвертер написан на движке правил [[wb-rules]] и устанавливается в папку с системными правилами wb-rules-system. | |||
<gallery mode="traditional" widths ="382px" heights="300px"> | |||
Image: wb-zigbee2mqtt pair device.png | Добавление устройства в wb-zigbee2mqtt. Найдено устройство '''Aqara single switch module T1 (without neutral)''' | |||
Image: wb-zigbee2mqtt new device in Devices.png | Новое Zigbee-устройство на вкладке Devices — в заголовке указан friendly_name | |||
</gallery> | |||
=== Принцип работы === | === Принцип работы === | ||
Конвертер | Конвертер wb-zigbee2mqtt запрашивает у zigbee2mqtt список всех подключенных устройств и подписывается на их топики. При получении данных от физических устройств конвертер парсит json, создает виртуальное устройство и посылает в него полученную информацию. | ||
Так же конвертер создает виртуальное устройство | Так же конвертер создает виртуальное устройство «zigbee2mqtt» и передает в него логи, версию и состояние (online\offline) моста zigbee2mqtt. Можно включить и выключить режим добавления устройств. Также там расположена кнопка «update devices». При нажатии на эту кнопку конвертер заново запрашивает у моста список добавленных устройств и, если они появились — подписывается на них. | ||
=== Установка === | === Установка === | ||
Подключитесь к контроллеру по [[SSH]] и выполните команду: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt update && apt install wb-zigbee2mqtt | apt update && apt install wb-zigbee2mqtt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
После этого в | После этого в веб-интерфейса контроллера на вкладке Devices появится устройство «zigbee2mqtt». | ||
=== Добавление устройств === | === Добавление устройств === | ||
[[Image: WebUI Add Zigbee Device.png |300px|thumb|right| Добавление устройства, сообщение '' | [[Image: WebUI Add Zigbee Device.png |300px|thumb|right| Добавление устройства, сообщение ''interview_successful'']] | ||
Устройства можно добавлять по одному или все разом. Чтобы добавить новые устройства: | Устройства можно добавлять по одному или все разом. Чтобы добавить новые устройства: | ||
# Перейдите в | # Перейдите в веб-интерфейс контроллера. | ||
# Откройте вкладку '''Devices'''. | # Откройте вкладку '''Devices'''. | ||
# Найдите там карточку устройства '''Zigbee2mqtt''' и проверьте статус в поле '''State''' — должно быть написано '''online''' | # Найдите там карточку устройства '''Zigbee2mqtt''' и проверьте статус в поле '''State''' — должно быть написано '''online'''. | ||
# Включите переключатель '''Permit join'''. | # Включите переключатель '''Permit join'''. | ||
# Следуйте инструкции к Zigbee-устройству: в основном требуется зажать на устройстве кнопку '''pair''' на несколько секунд и дождаться | # Следуйте инструкции к Zigbee-устройству: в основном требуется зажать на устройстве кнопку '''pair''' на несколько секунд и дождаться «мигания» светодиода. | ||
# В процессе добавления устройства в карточке '''Zigbee2mqtt''' в поле Log по очереди будут появляться сообщения '' | # В процессе добавления устройства в карточке '''Zigbee2mqtt''' в поле Log по очереди будут появляться сообщения ''interview_started → announce → interview_successful''. Последнее сообщение означает, что устройство добавлено успешно. | ||
# Повторите шаги 5 и 6 для каждого Zigbee-устройства, которое у вас есть. | # Повторите шаги 5 и 6 для каждого Zigbee-устройства, которое у вас есть. | ||
# Завершите добавление устройств, для этого выключите переключатель '''Permit join'''. | # Завершите добавление устройств, для этого выключите переключатель '''Permit join'''. | ||
# Нажмите кнопку '''Update devices''' | # Нажмите кнопку '''Update devices'''. | ||
Добавленные устройства будут доступны на вкладке '''Devices'''. | |||
=== Управление устройствами === | === Управление устройствами === | ||
Управление через конвертер wb-zigbee2mqtt пока не реализовано | Управление устройствами через конвертер wb-zigbee2mqtt пока не реализовано. Но управлять устройствами можно стандартными инструментами [https://www.zigbee2mqtt.io/information/mqtt_topics_and_message_structure.html#zigbee2mqttfriendly_nameset zigbee2mqtt] через wb-rules (функция publish) | ||
Пример | Пример управления устройством в правилах [[wb-rules]]: | ||
<syntaxhighlight lang="js"> | <syntaxhighlight lang="js"> | ||
publish("zigbee2mqtt/0x00158d0001f3fc34/set", JSON.stringify({ state: "ON" }), 2, false); | publish("zigbee2mqtt/0x00158d0001f3fc34/set", JSON.stringify({ state: "ON" }), 2, false); | ||
publish("zigbee2mqtt/0x00158d0001f3fc34/set", JSON.stringify({ state: "OFF" }), 2, false); | publish("zigbee2mqtt/0x00158d0001f3fc34/set", JSON.stringify({ state: "OFF" }), 2, false); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Удаление устройств === | === Удаление устройств === | ||
Чтобы удалить устройство: | Чтобы удалить устройство нужно: | ||
# | # Разорвать связь устройства с координатором. Обычно для этого нужно зажать кнопку сопряжения на 5 секунд. | ||
# Проследить, чтобы в карточке с заголовком Zigbee2mqtt в поле Log появилось сообщение ''left_network''. | |||
# | # Удалить карточку Zigbee-устройства, которое хотите удалить из веб-интерфейса, для этого наведите на него курсор мыши и нажмите на корзинку в заголовке. | ||
# | # Подключиться к контроллеру по [[SSH]] и перезапустить wb-rules: | ||
# | |||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
systemctl restart wb-rules | systemctl restart wb-rules | ||
Строка 194: | Строка 143: | ||
<gallery mode="packed" heights="180px"> | <gallery mode="packed" heights="180px"> | ||
Image: WebUI Zigbee Device Left Network.png | Сообщение ''left_network'' | Image: WebUI Zigbee Device Left Network.png | Сообщение ''left_network'' | ||
Image: WebUI Zigbee Device Remove.png | Корзинка для удаления | Image: WebUI Zigbee Device Remove.png | Корзинка для удаления Zigbee-устройства | ||
</gallery> | </gallery> | ||
Версия 19:50, 12 мая 2022
Описание
Для использования Zigbee-устройств с контроллером Wiren Board понадобится:
- Модуль расширения WBE2R-R-ZIGBEE или любой USB Zigbee стик.
- Дополнительное ПО:
- zigbee2mqtt — мост, с помощью которого можно управлять Zigbee-устройствами через MQTT.
- wb-zigbee2mqtt — конвертер из zigbee2mqtt в Wiren Board MQTT Conventions.
Инструкции по установке смотрите ниже на этой странице.
Установка и настройка zigbee2mqtt
Описание
Zigbee2mqtt — это мост, с помощью которого вы можете управлять Zigbee устройствами через MQTT.
Процесс установки
Версия пакета zigbee2mqtt в стабильном релизе может отставать от актуальной версии, которая доступна у автора. Все свежии версии доступны в тестовом релизе.
Мы рекомендуем устанавливать готовый пакет из нашего репозитория, введите команду:
apt update && apt install zigbee2mqtt
Альтернативный способ установки — сборка из исходников по инструкции.
Конфигурация
Если вы используете модуль расширения WBE2R-R-ZIGBEE, убедитесь, что правильно выставили модуль в Settings → Configs → Hardware Modules Configuration. При использовании USB-стика порты будут называться /dev/ttyUSB0
и /dev/ttyUSB1
.
Настройка:
- Откройте файл
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
:systemctl restart zigbee2mqtt
Теперь вы можете установить конвертер wb-zigbee2mqtt и Zigbee-устройства можно будет добавить на вкладку Devices.
Управление сервисом
Сервис запускается по умолчанию, но вы можете управлять им с помощью команд:
systemctl start zigbee2mqtt # запуск
systemctl stop zigbee2mqtt # остановка
systemctl restart zigbee2mqtt # перезапуск
systemctl status 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
:systemctl restart zigbee2mqtt
Веб-интерфейс моста zigbee2mqtt будет доступен по адресу http://wb-ip-address:PORT, например, если IP-адрес контроллера 192.168.42.1, а порт указан 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». При нажатии на эту кнопку конвертер заново запрашивает у моста список добавленных устройств и, если они появились — подписывается на них.
Установка
Подключитесь к контроллеру по SSH и выполните команду:
apt update && apt install wb-zigbee2mqtt
После этого в веб-интерфейса контроллера на вкладке Devices появится устройство «zigbee2mqtt».
Добавление устройств
Устройства можно добавлять по одному или все разом. Чтобы добавить новые устройства:
- Перейдите в веб-интерфейс контроллера.
- Откройте вкладку Devices.
- Найдите там карточку устройства Zigbee2mqtt и проверьте статус в поле State — должно быть написано online.
- Включите переключатель Permit join.
- Следуйте инструкции к Zigbee-устройству: в основном требуется зажать на устройстве кнопку pair на несколько секунд и дождаться «мигания» светодиода.
- В процессе добавления устройства в карточке Zigbee2mqtt в поле Log по очереди будут появляться сообщения interview_started → announce → interview_successful. Последнее сообщение означает, что устройство добавлено успешно.
- Повторите шаги 5 и 6 для каждого 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);
Удаление устройств
Чтобы удалить устройство нужно:
- Разорвать связь устройства с координатором. Обычно для этого нужно зажать кнопку сопряжения на 5 секунд.
- Проследить, чтобы в карточке с заголовком Zigbee2mqtt в поле Log появилось сообщение left_network.
- Удалить карточку Zigbee-устройства, которое хотите удалить из веб-интерфейса, для этого наведите на него курсор мыши и нажмите на корзинку в заголовке.
- Подключиться к контроллеру по SSH и перезапустить wb-rules:
systemctl restart wb-rules