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

Материал из Wiren Board
Метка: отменено
Метка: ручная отмена
Строка 15: Строка 15:
=== Установка ===
=== Установка ===


==== Установка с помощью apt ====
Запустите консоль и введите команду:
Так как пакет в своё репозиторий мы собираем сами, его версия может отличаться от текущей актуальной версии zigbee2mqtt.


Запустите консоль и введите команду:
<pre>apt update && apt install -y zigbee2mqtt</pre>
<syntaxhighlight lang="bash">
apt update && apt install -y zigbee2mqtt
</syntaxhighlight>


==== Сборка из исходников ====
<div class="mw-collapsible mw-collapsed" style="width:600px">
Это альтернативный метод установки, который позволяет установить актуальную версию zigbee2mqtt. [https://www.zigbee2mqtt.io/guide/installation/01_linux.html Оригинальная инструкция].
Установка и сборка из исходников (альтернативный метод):
<div class="mw-collapsible-content">


# Установите необходимые компоненты
Устанавливаем необходимые компоненты
#: <syntaxhighlight lang="bash">
<pre>
apt-get install -y nodejs git make g++ gcc
apt-get install -y nodejs git make g++ gcc
</syntaxhighlight>
</pre>
# Скопируйте файлы из репозитория zigbee2mqtt:
 
#: <syntaxhighlight lang="bash">
''Копируем файлы из репозитория zigbee2mqtt''
<pre>
git clone https://github.com/Koenkk/zigbee2mqtt.git /mnt/data/root/zigbee2mqtt
git clone https://github.com/Koenkk/zigbee2mqtt.git /mnt/data/root/zigbee2mqtt
</syntaxhighlight>
</pre>
# Настройте права на папку:
 
#: <syntaxhighlight lang="bash">
Настраиваем права
<pre>
chown -R root:root /mnt/data/root/zigbee2mqtt
chown -R root:root /mnt/data/root/zigbee2mqtt
</syntaxhighlight>
</pre>
# Перейдите в папку с исходниками zigbee2mqtt:
 
#: <syntaxhighlight lang="bash">
Заходим в директорию и запускаем установку
<pre>
cd /mnt/data/root/zigbee2mqtt
cd /mnt/data/root/zigbee2mqtt
</syntaxhighlight>
# Запустите установку:
#: <syntaxhighlight lang="bash">
npm ci
npm ci
</syntaxhighlight>
</pre>  
#: В процессе установки будет показано несколько предупреждений. Их можно игнорировать.
 
В процессе установки будет показано несколько предупреждений. Их можно игнорировать.
 
'''Оригинальная инструкция по установке zigbee2mqtt на [https://www.zigbee2mqtt.io/getting_started/running_zigbee2mqtt.html официальном сайте zigbee2mqtt.io]'''
 
Для автоматического запуска zigbee2mqtt необходимо создать сервис. Для этого зайдите в папку /etc/systemd/system/ и создайте файл zigbee2mqtt.service


Настройте автоматический запуск zigbee2mqtt, для этого создайте сервис:
Откройте файл и скопируйте в него следующий текст:
# Создайте новый файл и откройте его на редактирование:
<pre>
#: <syntaxhighlight lang="bash">
mcedit /etc/systemd/system/zigbee2mqtt.service
</syntaxhighlight>
# Скопируйте в него следующий текст:
#: <syntaxhighlight lang="bash">
[Unit]
[Unit]
Description=zigbee2mqtt
Description=zigbee2mqtt
Строка 69: Строка 66:
[Install]
[Install]
WantedBy=multi-user.target
WantedBy=multi-user.target
</syntaxhighlight>
</pre>  
# Сохраните файл.  
 
# Разрешите автозапуск сервиса командой:
И сохраните файл. После этого для активации сервиса следует ввести в консоль команду
#: <syntaxhighlight lang="bash">
<pre>
systemctl enable zigbee2mqtt.service
systemctl enable zigbee2mqtt.service
</syntaxhighlight>
</pre>
Полную инструкцию можно найти на [https://www.zigbee2mqtt.io/getting_started/running_zigbee2mqtt.html сайте zigbee2mqtt].
  </div>
 
</div>


=== Конфигурация ===
=== Конфигурация ===
Строка 100: Строка 101:
# Перезапустите сервис <code>zigbee2mqtt</code>:
# Перезапустите сервис <code>zigbee2mqtt</code>:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
systemctl restart zigbee2mqtt
service zigbee2mqtt restart
</syntaxhighlight>
</syntaxhighlight>


Строка 108: Строка 109:
Сервис запускается по умолчанию, но вы можете управлять им с помощью команд:
Сервис запускается по умолчанию, но вы можете управлять им с помощью команд:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
systemctl start zigbee2mqtt # запуск
service zigbee2mqtt start # запуск
systemctl stop zigbee2mqtt # остановка
service zigbee2mqtt stop # остановка
systemctl restart zigbee2mqtt # перезапуск
service zigbee2mqtt restart # перезапуск
systemctl status zigbee2mqtt # получить статус
service zigbee2mqtt status # получить статус
</syntaxhighlight>
</syntaxhighlight>



Версия 22:05, 8 декабря 2021

Описание

Для использования Zigbee-устройств с контроллером Wiren Board понадобится:

  1. Модуль расширения WBE2R-R-ZIGBEE или любой USB Zigbee стик.
  2. Дополнительное ПО:
    • 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

Установка и сборка из исходников (альтернативный метод):

Устанавливаем необходимые компоненты

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, убедитесь, что правильно выставили модуль в SettingsConfigsHardware Modules Configuration.

  1. Откройте файл configuration.yaml для редактированияː
    mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
    
  2. Приведите его к виду
    homeassistant: false
    permit_join: false
    mqtt:
      base_topic: zigbee2mqtt
      server: 'mqtt://localhost'
    serial:
      port: /dev/ttyMOD3
    advanced:
      rtscts: false
      last_seen: epoch
    
    в параметре port укажите порт, куда физически вставлен модуль.
  3. Сохраните и закройте файл.
  4. Перезапустите сервис 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:

  1. Откройте файл configuration.yaml для редактированияː
    mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
    
  2. Добавьте в него блок:
    frontend:
      port: 8081
      host: 0.0.0.0
    
  3. Сохраните и закройте файл.
  4. Перезапустите сервис zigbee2mqtt:
    service zigbee2mqtt restart
    

Веб-интерфейс моста zigbee2mqtt будет доступен по адресу http://wb-ip-address:8081, например, http://192.168.42.1:8081

wb-zigbee2mqtt

Добавление устройства в wb-zigbee2mqtt. Найдено устройство Aqara single switch module T1 (without neutral)
Новое Zigbee-устройство на вкладке Devices — в заголовке указан friendly_name

Описание

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 исходников, то убедитесь, что параметр базового топика выставлен верно:

  1. Откройте файл configuration.yaml
    mcedit /mnt/data/root/zigbee2mqtt/data/configuration.yaml
    
  2. Проверьте строки:
    mqtt:
      base_topic: zigbee2mqtt
      server: 'mqtt://localhost'
    
    другие настройки на работу конвертера не влияют.

Добавление устройств

Устройства можно добавлять по одному или все разом. Чтобы добавить новые устройства:

  1. Перейдите в веб-интерфейс контроллера.
  2. Откройте вкладку Devices.
  3. Найдите там карточку устройства Zigbee2mqtt и проверьте статус в поле State — должно быть написано online.
  4. Включите переключатель Permit join.
  5. Следуйте инструкции к Zigbee-устройству: в основном требуется зажать на устройстве кнопку pair на несколько секунд и дождаться «мигания» светодиода.
  6. Если устройство будет добавлено, то в карточке устройства Zigbee2mqtt, в логе появится новая строка с именем устройства.
  7. Повторите шаг 5 для каждого Zigbee-устройства, которое у вас есть.
  8. Завершите добавление устройств, для этого выключите переключатель Permit join.
  9. Нажмите на кнопку 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);