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

1555 байт добавлено ,  2 месяца назад
(не показано 15 промежуточных версий 2 участников)
Строка 24: Строка 24:
</syntaxhighlight>
</syntaxhighlight>


Если у вас релиз wb-2207 и старее, для установки старой версии 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-1.18.1 и новых версий nodejs.


Альтернативный способ установки — сборка из исходников по [[Zigbee2mqtt-src | инструкции]].
Альтернативный способ установки — сборка из исходников по [[Zigbee2mqtt-src | инструкции]].
Строка 49: Строка 48:
nano /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
Строка 57: Строка 56:
   server: 'mqtt://localhost'
   server: 'mqtt://localhost'
serial:
serial:
   port: /dev/ttyMOD3
   port: /dev/ttyMOD4
advanced:
advanced:
   rtscts: false
   rtscts: false
Строка 64: Строка 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''' в стандартном веб-интерфейсе контроллера.


Строка 96: Строка 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-стик].


Строка 127: Строка 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 | стандартный веб-интерфейс контроллера]].
Строка 135: Строка 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'''.
Строка 145: Строка 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.


Ещё бывает так, что карточка устройства появилась, но пустая — это значит, что устройство добавлено, но данные пока не были получены. Если это датчик, то тут нужно немного подождать, а в случае с выключателем — выключить или включить его.
Ещё бывает так, что карточка устройства появилась, но пустая — это значит, что устройство добавлено, но данные пока не были получены. Если это датчик, то тут нужно немного подождать, а в случае с выключателем — выключить или включить его.
Строка 161: Строка 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">
Строка 180: Строка 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]].


=== Удаление устройств ===
=== Удаление устройств ===
Строка 196: Строка 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: Строка 307:
* [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/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 из исходников]]