Zigbee: различия между версиями

1883 байта добавлено ,  2 месяца назад
Метка: ручная отмена
(не показаны 23 промежуточные версии 4 участников)
Строка 2: Строка 2:
== Описание ==
== Описание ==
Для использования Zigbee-устройств с контроллером Wiren Board понадобится:
Для использования Zigbee-устройств с контроллером Wiren Board понадобится:
# Модуль расширения [[WBE2R-R-ZIGBEE v.1 ZigBee Extension Module|WBE2R-R-ZIGBEE v.1]] ([[WBE2R-R-ZIGBEE v.2 ZigBee Extension Module|WBE2R-R-ZIGBEE v.2]]) или любой USB Zigbee стик.
# Модуль расширения [[WBE2R-R-ZIGBEE v.2 ZigBee Extension Module|WBE2R-R-ZIGBEE v.2]] ([[WBE2R-R-ZIGBEE v.1 ZigBee Extension Module|WBE2R-R-ZIGBEE v.1]]) или любой USB Zigbee стик.
# Дополнительное ПО:
# Дополнительное ПО:
#* zigbee2mqtt — мост, с помощью которого можно управлять Zigbee-устройствами через [[MQTT]], [https://www.zigbee2mqtt.io/supported-devices/ поддерживаемые устройства].
#* zigbee2mqtt — мост, с помощью которого можно управлять Zigbee-устройствами через [[MQTT]], [https://www.zigbee2mqtt.io/supported-devices/ поддерживаемые устройства].
Строка 14: Строка 14:
=== Процесс установки ===
=== Процесс установки ===
Версия пакета zigbee2mqtt в стабильном релизе может отставать от актуальной версии, которая доступна у автора. Самая свежая версия всегда доступна в [[testing | тестовом релизе]].
Версия пакета zigbee2mqtt в стабильном релизе может отставать от актуальной версии, которая доступна у автора. Самая свежая версия всегда доступна в [[testing | тестовом релизе]].
{{SupportedSinceRelease
 
| release = wb-2204
|content=
Мы рекомендуем устанавливать готовый пакет из нашего репозитория, их там два:
Мы рекомендуем устанавливать готовый пакет из нашего репозитория, их там два:
* zigbee2mqtt — всегда свежая версия, рекомендуем ставить её.
* zigbee2mqtt — всегда свежая версия, рекомендуем ставить её.
Строка 26: Строка 24:
</syntaxhighlight>
</syntaxhighlight>


Для установки старой версии 1.18.1 версии, введите команду:
Чтобы установить 1.18.1, выполните:
:<syntaxhighlight lang="bash">
:<syntaxhighlight lang="bash">
apt update && apt install zigbee2mqtt-1.18.1
apt update && apt install zigbee2mqtt-1.18.1
</syntaxhighlight>
</syntaxhighlight>
}}
 
Альтернативный способ установки — сборка из исходников по [[Zigbee2mqtt-src | инструкции]].
Альтернативный способ установки — сборка из исходников по [[Zigbee2mqtt-src | инструкции]].


Строка 48: Строка 46:
# Откройте файл конфигурации для редактированияː
# Откройте файл конфигурации для редактированияː
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
</syntaxhighlight>
</syntaxhighlight>
# Приведите его к виду:
# По умолчанию файл конфигурации выглядит так, в параметре '''port''' укажите порт, куда физически вставлен модуль:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
homeassistant: false
homeassistant: false
Строка 58: Строка 56:
   server: 'mqtt://localhost'
   server: 'mqtt://localhost'
serial:
serial:
   port: /dev/ttyMOD3
   port: /dev/ttyMOD4
advanced:
advanced:
   rtscts: false
   rtscts: false
Строка 65: Строка 63:
   network_key: GENERATE
   network_key: GENERATE
</syntaxhighlight>
</syntaxhighlight>
#:в параметре '''port''' укажите порт, куда физически вставлен модуль.
#: вместо GENERATE после первого запуска моста появятся значения, не изменяйте их.
# Сохраните и закройте файл.
# {{Wbincludes:Save nano}}
# Перезапустите сервис <code>zigbee2mqtt</code>:
# Перезапустите сервис <code>zigbee2mqtt</code>:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
systemctl restart zigbee2mqtt
systemctl restart zigbee2mqtt
</syntaxhighlight>
</syntaxhighlight>
Теперь вы можете установить конвертер wb-zigbee2mqtt и Zigbee-устройства будут добавлены на вкладку '''Devices''' в стандартном веб-интерфейсе контроллера.
Теперь вы можете установить конвертер wb-zigbee2mqtt и Zigbee-устройства будут добавлены на вкладку '''Devices''' в стандартном веб-интерфейсе контроллера.


Строка 80: Строка 77:
# Откройте файл <code>configuration.yaml</code> для редактированияː
# Откройте файл <code>configuration.yaml</code> для редактированияː
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
</syntaxhighlight>
</syntaxhighlight>
# Добавьте в него блок:
# Добавьте в него блок:
Строка 97: Строка 94:


=== Обновление ===
=== Обновление ===
Для обновления zigbee2mqtt на свежую версию просто обновите программное обеспечение контроллера по [[Wiren Board Firmware Update | инструкции]]. Будут сохранены все настройки и подключенные устройства.
Для обновления zigbee2mqtt на свежую версию просто обновите программное обеспечение контроллера по [[Wiren_Board_Software | инструкции]]. Будут сохранены все настройки и подключенные устройства.


Если у вас старый адаптер [[WBE2R-R-ZIGBEE v.1 ZigBee Extension Module | WBE2R-R-ZIGBEE v.1]], выпущенный до января 2022 года, то новая версия работать не будет, в этом случае у вас есть три варианта:
Если у вас старый адаптер [[WBE2R-R-ZIGBEE v.1 ZigBee Extension Module | WBE2R-R-ZIGBEE v.1]], выпущенный до января 2022 года, то новая версия работать не будет, в этом случае у вас есть три варианта:
* Прошить старый адаптер свежей прошивкой,  [[WBE2R-R-ZIGBEE v.1 ZigBee Extension Module#flashing | инструкция]].
* Прошить старый адаптер свежей прошивкой,  [[WBE2R-R-ZIGBEE v.1 ZigBee Extension Module#flashing | инструкция]].
* Поставить пакет с версией, которая работает с этими адаптерами:
* Поставить пакет с версией, которая работает с этими адаптерами — это возможно сделать только на релизе wb-2207, в более свежих релизах на bullseye этого пакета нет:
*:<syntaxhighlight lang="bash">
*:<syntaxhighlight lang="bash">
apt install zigbee2mqtt-1.18.1
apt install zigbee2mqtt-1.18.1
</syntaxhighlight>
</syntaxhighlight>
*: этот пакет не обновляется, поэтому проблем при будущих обновлениях ПО контроллера не будет.
* Заменить адаптер на [[WBE2R-R-ZIGBEE v.2 ZigBee Extension Module | WBE2R-R-ZIGBEE v.2]] или использовать [https://www.zigbee2mqtt.io/guide/adapters/ поддерживаемый USB-стик].
* Заменить адаптер на [[WBE2R-R-ZIGBEE v.2 ZigBee Extension Module | WBE2R-R-ZIGBEE v.2]] или использовать [https://www.zigbee2mqtt.io/guide/adapters/ поддерживаемый USB-стик].


Строка 128: Строка 124:


=== Добавление устройств ===
=== Добавление устройств ===
[[Image: WebUI Add Zigbee Device.png |300px|thumb|right| Добавление устройства, сообщение ''interview_successful'']]
[[Image: WebUI Add Zigbee Device.png |300px|thumb|right| Добавление устройства, сообщение ''Device '0x00158d0007013f71' is supported.'']]
[[Image: WebUI Add Zigbee Device Unsupported.png |300px|thumb|right| Неподдерживаемое устройство. Опрос прошёл успешно (''interview_successful''), но устройство не поддерживается (''supported:false'')]]
[[Image: WebUI Add Zigbee Device Unsupported.png |300px|thumb|right| Неподдерживаемое устройство, сообщение ''Device '0x2c1165fffeabe0b8' not supported.'']]
Устройства можно добавлять по одному или все разом. Чтобы добавить новые устройства:
Устройства можно добавлять по одному или все разом. Чтобы добавить новые устройства:
# Перейдите в [[Wiren Board Web Interface | стандартный веб-интерфейс контроллера]].
# Перейдите в [[Wiren Board Web Interface | стандартный веб-интерфейс контроллера]].
Строка 136: Строка 132:
# Включите переключатель '''Permit join'''.
# Включите переключатель '''Permit join'''.
# Следуйте инструкции к Zigbee-устройству: в основном требуется зажать на устройстве кнопку '''pair''' на несколько секунд и дождаться мигания индикатора на устростве.
# Следуйте инструкции к Zigbee-устройству: в основном требуется зажать на устройстве кнопку '''pair''' на несколько секунд и дождаться мигания индикатора на устростве.
# В процессе добавления устройства в карточке '''Zigbee2mqtt''' в поле Log по очереди будут появляться сообщения ''interview_started announce → interview_successful''. Последнее сообщение означает, что устройство успешно опрошено. В этом сообщении не должно быть параметра ''supported:false'' (устройство не поддерживается).
# В процессе добавления устройства в карточке '''Zigbee2mqtt''' в поле Log по очереди будут появляться сообщения ''Starting interview on 0xN Device 0xN is supported''. Последнее сообщение означает, что устройство успешно опрошено.
# Повторите шаги 5 и 6 для каждого Zigbee-устройства, которое у вас есть.
# Повторите шаги 5 и 6 для каждого Zigbee-устройства, которое у вас есть.
# Завершите добавление устройств, для этого выключите переключатель '''Permit join'''.
# Завершите добавление устройств, для этого выключите переключатель '''Permit join'''.
Строка 146: Строка 142:
systemctl restart wb-rules
systemctl restart wb-rules
</syntaxhighlight>
</syntaxhighlight>
# Некоторые устройства не поддерживаются zigbee2mqtt, для таких устройств в сообщении об успешном опросе ''interview_successful'' будет указано ''supported:false''. В этом случае убедитесь, что устройство есть в [https://www.zigbee2mqtt.io/supported-devices/ списке поддерживаемых] и у вас установлена свежая версия zigbee2mqtt.
# Некоторые устройства не поддерживаются zigbee2mqtt, для таких устройств в сообщении будет указано ''Starting interview on 0xN → Device 0xN ... is NOT supported''. В этом случае убедитесь, что устройство есть в [https://www.zigbee2mqtt.io/supported-devices/ списке поддерживаемых] и у вас установлена свежая версия zigbee2mqtt.


Ещё бывает так, что карточка устройства появилась, но пустая — это значит, что устройство добавлено, но данные пока не были получены. Если это датчик, то тут нужно немного подождать, а в случае с выключателем — выключить или включить его.
Ещё бывает так, что карточка устройства появилась, но пустая — это значит, что устройство добавлено, но данные пока не были получены. Если это датчик, то тут нужно немного подождать, а в случае с выключателем — выключить или включить его.
Строка 154: Строка 150:
# Откройте файл конфигурации для редактированияː
# Откройте файл конфигурации для редактированияː
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
</syntaxhighlight>
</syntaxhighlight>
# Найдите в секции '''devices''' ваше устройство.
# Найдите в секции '''devices''' ваше устройство.
Строка 162: Строка 158:
systemctl restart zigbee2mqtt
systemctl restart zigbee2mqtt
</syntaxhighlight>
</syntaxhighlight>
# В стандартном веб-интерфейсек контроллера на вкладке Devices должно появиться устройство с заданным именем.
# В стандартном веб-интерфейсе контроллера на вкладке Devices должно появиться устройство с заданным именем.
# Удалите карточку устройства со старым именем с вкладки Devices, для этого нажмите на корзинку в заголовке.
# Удалите карточку устройства со старым именем с вкладки Devices, для этого нажмите на корзинку в заголовке.


Новое имя устройства должно соответствовать [https://www.zigbee2mqtt.io/guide/configuration/devices-groups.html#common-device-options этим требованиям] и не должно быть одинаковым для нескольких устройств.
Новое имя устройства должно соответствовать [https://www.zigbee2mqtt.io/guide/configuration/devices-groups.html#common-device-options этим требованиям] (плюс нельзя использовать косую черту <code>/</code>) и не должно быть одинаковым для нескольких устройств, а также соответствовать определённым правилам — так называемым соглашениям ([https://github.com/wirenboard/conventions/blob/main/README.md Wiren Board MQTT Conventions]).


<gallery mode="packed" heights="150px" caption="Изменение friendly_name">
<gallery mode="packed" heights="150px" caption="Изменение friendly_name">
Строка 181: Строка 177:
  publish("zigbee2mqtt/0x00158d0001f3fc34/set", JSON.stringify({ state: "OFF" }), 2, false);
  publish("zigbee2mqtt/0x00158d0001f3fc34/set", JSON.stringify({ state: "OFF" }), 2, false);
</syntaxhighlight>
</syntaxhighlight>
Вместо wb-rules вы можете использовать [[Node-RED]].


=== Удаление устройств ===
=== Удаление устройств ===
Строка 197: Строка 195:
Image: WebUI Zigbee Device Remove.png | Корзинка для удаления карточки Zigbee-устройства
Image: WebUI Zigbee Device Remove.png | Корзинка для удаления карточки Zigbee-устройства
</gallery>
</gallery>
=== Как переустановить с сохранением данных ===
В некоторых случаях может потребоваться переустановить конвертер с сохранением данных, например, если мост не стартует после обновления.
Инструкция:
# Перейдите в домашний каталог:
#:<syntaxhighlight lang="bash">
cd ~
</syntaxhighlight>
# Сохраните настройки:
#:<syntaxhighlight lang="bash">
cp -R /mnt/data/root/zigbee2mqtt/data data-backup
</syntaxhighlight>
# Удалите zigbee2mqtt командой:
#:<syntaxhighlight lang="bash">
apt purge zigbee2mqtt
</syntaxhighlight>
# Если остался каталог с node-modules — удалите его:
#:<syntaxhighlight lang="bash">
rm -r /mnt/data/root/zigbee2mqtt/node_modules
</syntaxhighlight>
# Заново поставьте zigbee2mqtt:
#:<syntaxhighlight lang="bash">
apt install zigbee2mqtt
</syntaxhighlight>
# Восстановите настройки из архива:
#:<syntaxhighlight lang="bash">
cp -R data-backup/* /mnt/data/root/zigbee2mqtt/data
</syntaxhighlight>
# Перезапустите сервис:
#:<syntaxhighlight lang="bash">
systemctl restart zigbee2mqtt
</syntaxhighlight>


== Диагностика неисправностей  ==
== Диагностика неисправностей  ==
Строка 274: Строка 306:
== Полезные ссылки ==
== Полезные ссылки ==
* [https://www.zigbee2mqtt.io/ Документация zigbee2mqtt]
* [https://www.zigbee2mqtt.io/ Документация zigbee2mqtt]
* [https://habr.com/ru/company/wirenboard/blog/713274/ Работаем с Zigbee-устройствами через Zigbee2mqtt и Node-RED]
* [https://habr.com/ru/companies/wirenboard/articles/750640/ Подключаем Zigbee-устройства к контроллеру Wiren Board и пишем сценарии на wb-rules]
* [[zigbee2mqtt-src| Сборка zigbee2mqtt из исходников]]
* [[zigbee2mqtt-src| Сборка zigbee2mqtt из исходников]]