Zigbee: различия между версиями
Brainroot (обсуждение | вклад) |
(→Добавление устройств: Добавил про Frotnend) |
||
(не показано 110 промежуточных версий 7 участников) | |||
Строка 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 | zigbee2mqtt]] — мост, с помощью которого можно управлять Zigbee-устройствами через MQTT. | ||
#* wb-zigbee2mqtt — конвертер | #* [[#wb-zigbee2mqtt | wb-zigbee2mqtt]] — конвертер из zigbee2mqtt в Wiren Board MQTT Conventions. | ||
== zigbee2mqtt == | |||
=== Описание === | |||
Zigbee2mqtt — это мост, с помощью которого вы можете управлять Zigbee устройствами через MQTT. Он работает на Node.js и позволяет интегрировать Zigbee устройства в различные системы автоматизации: Home Assistant, Node Red и тд. | |||
Официальный сайт — [https://www.zigbee2mqtt.io/ zigbee2mqtt]. | |||
=== Установка === | |||
Запустите консоль и введите команду: | |||
<pre>apt update && apt install -y zigbee2mqtt</pre> | |||
<div class="mw-collapsible mw-collapsed" style="width:600px"> | |||
Установка и сборка из исходников (альтернативный метод): | |||
<div class="mw-collapsible-content"> | |||
Настраиваем репозиторий Node JS | |||
<pre> | |||
curl -sL https://deb.nodesource.com/setup_12.x | bash - | |||
</pre> | |||
Устанавливаем необходимые компоненты | |||
<pre> | |||
apt-get install -y nodejs git make g++ gcc | |||
</pre> | |||
''Копируем файлы из репозитория zigbee2mqtt'' | |||
<pre> | |||
git clone https://github.com/Koenkk/zigbee2mqtt.git /mnt/data/root/zigbee2mqtt | |||
</pre> | |||
Настраиваем права | |||
<pre> | |||
chown -R root:root /mnt/data/root/zigbee2mqtt | |||
</pre> | |||
Заходим в директорию и запускаем установку | |||
<pre> | |||
cd /mnt/data/root/zigbee2mqtt | |||
npm ci | |||
</pre> | |||
В процессе установки будет показано несколько предупреждений. Их можно игнорировать. | |||
'''Оригинальная инструкция по установке zigbee2mqtt на [https://www.zigbee2mqtt.io/getting_started/running_zigbee2mqtt.html официальном сайте zigbee2mqtt.io]''' | |||
Для автоматического запуска zigbee2mqtt необходимо создать сервис. Для этого зайдите в папку /etc/systemd/system/ и создайте файл zigbee2mqtt.service | |||
Откройте файл и скопируйте в него следующий текст: | |||
<pre> | |||
[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 | |||
</pre> | |||
И сохраните файл. После этого для активации сервиса следует ввести в консоль команду | |||
<pre> | |||
systemctl enable zigbee2mqtt.service | |||
</pre> | |||
Полную инструкцию можно найти на [https://www.zigbee2mqtt.io/getting_started/running_zigbee2mqtt.html сайте zigbee2mqtt]. | |||
</div> | |||
</div> | |||
</ | |||
=== Конфигурация === | === Конфигурация === | ||
Если вы используете модуль расширения [[WBE2R-R-ZIGBEE]], убедитесь, что правильно выставили модуль в '''Settings''' → '''Configs''' → '''Hardware Modules Configuration'''. | |||
Если вы используете модуль расширения [[WBE2R-R-ZIGBEE]], убедитесь, что правильно выставили модуль в '''Settings''' → '''Configs''' → '''Hardware Modules Configuration''' | |||
# Откройте файл <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: | Строка 96: | ||
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"> | ||
service zigbee2mqtt restart | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Теперь вы можете установить конвертер wb-zigbee2mqtt и Zigbee-устройства | |||
{{note|info| Теперь вы можете установить конвертер [[#wb-zigbee2mqtt | wb-zigbee2mqtt]] и Zigbee-устройства можно будет добавить на вкладку '''Devices'''.}} | |||
=== Управление сервисом === | |||
Сервис запускается по умолчанию, но вы можете управлять им с помощью команд: | |||
<syntaxhighlight lang="bash"> | |||
service zigbee2mqtt start # запуск | |||
service zigbee2mqtt stop # остановка | |||
service zigbee2mqtt restart # перезапуск | |||
service zigbee2mqtt status # получить статус | |||
</syntaxhighlight> | |||
=== Добавление устройств === | |||
Если вы не используете [[#wb-zigbee2mqtt | wb-zigbee2mqtt]], то для добавления нового устройства в настройках zigbee2mqtt включите параметр '''permit_join''': | |||
<pre> | |||
permit_join: true | |||
</pre> | |||
Далее следуйте инструкции к устройству. В основном требуется зажать кнопку «pair» на несколько секунд и дождаться «мигания» светодиода. После этого устройство должно передать информацию о себе на контроллер. Иногда требуется дополнительно нажимать на кнопку каждую секунду, что бы устройство не «уснуло». После успешного добавления устройство автоматически появится во вкладке Devices. | |||
Более подробная информация на [https://www.zigbee2mqtt.io/ сайте zigbee2mqtt]. | |||
=== Веб-интерфейс (Frontend) === | === Веб-интерфейс (Frontend) === | ||
Веб-интерфейс zigbee2mqtt потребляет ресурсы контроллера — не включайте его, если не используете: добавлять | {{note|note| Веб-интерфейс zigbee2mqtt потребляет ресурсы контроллера — не включайте его, если не используете: добавлять устройства удобно через [[#wb-zigbee2mqtt | wb-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> | ||
# Добавьте в него блок: | # Добавьте в него блок: | ||
Строка 88: | Строка 147: | ||
# Перезапустите сервис <code>zigbee2mqtt</code>: | # Перезапустите сервис <code>zigbee2mqtt</code>: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
service zigbee2mqtt restart | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Веб-интерфейс моста zigbee2mqtt будет доступен по адресу http://wb-ip-address: | Веб-интерфейс моста zigbee2mqtt будет доступен по адресу http://wb-ip-address:8081, например, http://192.168.42.1:8081 | ||
== | == wb-zigbee2mqtt == | ||
[[Image: wb-zigbee2mqtt pair device.png|400px|thumb|right| Добавление устройства в wb-zigbee2mqtt. Найдено устройство '''Aqara single switch module T1 (without neutral)''']] | |||
[[Image: wb-zigbee2mqtt new device in Devices.png|400px|thumb|right| Новое Zigbee-устройство на вкладке Devices — в заголовке указан friendly_name]] | |||
=== Описание === | === Описание === | ||
Wb-zigbee2mqtt — это простой конвертер из zigbee2mqtt в Wiren Board MQTT Conventions. Конвертер написан на движке правил [[wb-rules]] и устанавливается в папку с системными правилами wb-rules-system. | |||
Wb-zigbee2mqtt — конвертер | |||
=== Принцип работы === | === Принцип работы === | ||
Конвертер | Конвертер wb-zigbee2mqtt запрашивает у zigbee2mqtt список всех подключенных устройств, подписывается на их топики. При получении данных от физических устройств конвертер парсит json, создает виртуальное устройство и посылает в него полученную информацию. Так же конвертер создает виртуальное устройство «zigbee2mqtt» и передает в него логи, версию и состояние (online\offline) моста zigbee2mqtt. Можно включить и выключить режим добавления устройств. Также там расположена кнопка «update devices». При нажатии на эту кнопку конвертер заново запрашивает у моста список добавленных устройств и если они появились — подписывается на них. | ||
Так же конвертер создает виртуальное устройство | |||
=== Установка === | === Установка === | ||
Для установки откройте консоль и введите команду: | |||
<pre>apt update && apt install wb-zigbee2mqtt</pre> | |||
=== Правильная настройка zigbee2mqtt === | |||
{{note|note|Если вы установили zigbee2mqtt через apt, то мост уже настроен для правильной работы с конвертером и этот шаг можно пропустить.}} | |||
Если вы установили zigbee2mqtt исходников, то убедитесь, что параметр базового топика выставлен верно: | |||
#Откройте файл <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"> | ||
mqtt: | |||
base_topic: zigbee2mqtt | |||
server: 'mqtt://localhost' | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# | #: другие настройки на работу конвертера не влияют. | ||
=== Добавление устройств === | |||
Устройства можно добавлять по одному или все разом. Чтобы добавить новые устройства: | |||
# Перейдите в веб-интерфейс контроллера. | |||
# Откройте вкладку '''Devices'''. | |||
# Найдите там карточку устройства '''Zigbee2mqtt''' и проверьте статус в поле '''State''' — должно быть написано '''online'''. | |||
# Включите переключатель '''Permit join'''. | |||
# Следуйте инструкции к Zigbee-устройству: в основном требуется зажать на устройстве кнопку '''pair''' на несколько секунд и дождаться «мигания» светодиода. | |||
# Если устройство будет добавлено, то в карточке устройства '''Zigbee2mqtt''', в логе появится новая строка с именем устройства. | |||
# Повторите шаг 5 для каждого Zigbee-устройства, которое у вас есть. | |||
# Завершите добавление устройств, для этого выключите переключатель '''Permit join'''. | |||
# Нажмите на кнопку '''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> | ||
Версия 11:28, 26 августа 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);