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

Материал из Wiren Board
м (Поправил типографику и текст.)
Строка 11: Строка 11:
Для работы контроллера с ZigBee устройствами необходимо подключить специальный модуль. Есть несколько вариантовː
Для работы контроллера с ZigBee устройствами необходимо подключить специальный модуль. Есть несколько вариантовː


* [[Wbe2r-r-zigbee|WBE2R-R-ZIGBEE - Модуль расширения Zigbee]]  
* [[Wbe2r-r-zigbee|WBE2R-R-ZIGBEE Модуль расширения Zigbee]]  
* USB Стик CC2531 (Можно приобрести на [https://ru.aliexpress.com/wholesale?SearchText=CC2531 Aliexpress.com])
* USB Стик CC2531 (Можно приобрести на [https://ru.aliexpress.com/wholesale?SearchText=CC2531 Aliexpress.com])
* Модуль СС2530 c переходником usb-uart. Подключениеː
* Модуль СС2530 c переходником usb-uart. Подключениеː
Строка 36: Строка 36:


<!--T:9-->
<!--T:9-->
С завода модуль [[WBE2R-R-ZIGBEE]] уже прошит оптимизированной для WB и SprutHub прошивкой (Z-Stack 1.2). Однако если это необходимо, его можно перепрошить.
С завода модуль [[WBE2R-R-ZIGBEE]] уже прошит оптимизированной для WB и SprutHub прошивкой (Z-Stack 1.2). Но вы можете его перепрошить, если это потребуется.


Для прошивки [[WBE2R-R-ZIGBEE]] или USB стика потребуется CC Debugger и загрузочный кабель. (Можно приобрести на [https://ru.aliexpress.com/wholesale?SearchText=CC2531+загрузочный+кабель Aliexpress.com]) Перед прошивкой установите [http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=swrc212&fileType=zip драйвер.]
Для прошивки [[WBE2R-R-ZIGBEE]] или USB стика потребуется CC Debugger и загрузочный кабель. CC Debugger с кабелем можно приобрести на [https://ru.aliexpress.com/wholesale?SearchText=CC2531+загрузочный+кабель Aliexpress.com]. Перед прошивкой установите [http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=swrc212&fileType=zip драйвер].


Подключите CC Debugger к [[WBE2R-R-ZIGBEE]] или к USB стику через загрузочный кабель. Подключите USB кабель CC Debugger(a) к компьютеру. Скачайте и установите приложение [http://www.ti.com/tool/flash-programmer FLASH-PROGRAMMER] ( обычную версию, не v2) c сайта TI. Устройство должно определиться в таблице. Укажите путь к файлу прошивки. В области "Actions" выберите "Erase, program and verify" и нажмите кнопку "Perform actions". Полезную информацию по прошивке вы так же можете найти на [https://www.zigbee2mqtt.io/information/flashing_the_cc2531.html сайте zigbee2mqtt].
Подключите CC Debugger к [[WBE2R-R-ZIGBEE]] или к USB стику через загрузочный кабель. Подключите USB кабель CC Debugger(a) к компьютеру. Скачайте и установите приложение [http://www.ti.com/tool/flash-programmer FLASH-PROGRAMMER] ( обычную версию, не v2) c сайта TI. Устройство должно определиться в таблице. Укажите путь к файлу прошивки. В области «Actions» выберите «Erase, program and verify» и нажмите кнопку «Perform actions». Полезную информацию по прошивке вы так же можете найти на [https://www.zigbee2mqtt.io/information/flashing_the_cc2531.html сайте zigbee2mqtt].


Файлы прошивок: [https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator Z-Stack-firmware]
Файлы прошивок: [https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator Z-Stack-firmware].
Внимательно читайте описание к прошивкам. Для модуля [[WBE2R-R-ZIGBEE]] требуется прошивка "CC2530 + CC2592"
Внимательно читайте описание к прошивкам. Для модуля [[WBE2R-R-ZIGBEE]] требуется прошивка «CC2530 + CC2592».


== zigbee2mqtt == <!--T:10-->
== zigbee2mqtt == <!--T:10-->
Строка 49: Строка 49:
=== Описание ===
=== Описание ===
<!--T:11-->
<!--T:11-->
[https://github.com/Koenkk/zigbee2mqtt zigbee2mqtt] - Это мост, позволяющий управлять Zigbee устройствами через MQTT. Работает на Node.js, позволяет легко интегрировать Zigbee устройства в различные системы автоматизации такие как Home Assistant, Node Red и тд.
[https://github.com/Koenkk/zigbee2mqtt Zigbee2mqtt] — это мост, с помощью которого вы можете управлять Zigbee устройствами через MQTT. Он работает на Node.js и позволяет интегрировать Zigbee устройства в различные системы автоматизации: Home Assistant, Node Red и тд.
<!--T:12-->
<!--T:12-->
Вы найдете всю необходимую информацию на [https://www.zigbee2mqtt.io/ сайте zigbee2mqtt].
Вы найдете всю необходимую информацию на сайте [https://www.zigbee2mqtt.io/ zigbee2mqtt].


=== Установка === <!--T:15-->
=== Установка === <!--T:15-->
Строка 161: Строка 161:
=== Добавление устройств ===
=== Добавление устройств ===


Что бы добавить Zigbee устройство убедитесь, что в настройках моста включен параметр "permit_join" :
Что бы добавить Zigbee устройство убедитесь, что в настройках моста включен параметр «permit_join» :


<pre>
<pre>
Строка 167: Строка 167:
</pre>
</pre>


Далее следуйте инструкции к устройству. В основном требуется зажать кнопку "pair" на несколько секунд и дождаться "мигания" светодиода. После этого устройство должно передать информацию о себе на контроллер. Иногда требуется дополнительно нажимать на кнопку каждую секунду, что бы устройство не "уснуло". После успешного добавления устройство автоматически появится во вкладке Devices.
Далее следуйте инструкции к устройству. В основном требуется зажать кнопку «pair» на несколько секунд и дождаться «мигания» светодиода. После этого устройство должно передать информацию о себе на контроллер. Иногда требуется дополнительно нажимать на кнопку каждую секунду, что бы устройство не «уснуло». После успешного добавления устройство автоматически появится во вкладке Devices.


Более подробная информация на [https://www.zigbee2mqtt.io/ сайте zigbee2mqtt].
Более подробная информация на [https://www.zigbee2mqtt.io/ сайте zigbee2mqtt].
Строка 174: Строка 174:
== wb-zigbee2mqtt ==
== wb-zigbee2mqtt ==
=== Описание ===
=== Описание ===
wb-zigbee2mqtt - Это простой конвертер из zigbee2mqtt в Wiren Board MQTT Conventions. Конвертер написан на движке правил wb-rules>=2.6.0, скрипт устанавливается в папку с системными правилами wb-rules-system.  
Wb-zigbee2mqtt — это простой конвертер из zigbee2mqtt в Wiren Board MQTT Conventions. Конвертер написан на движке правил wb-rules>=2.6.0, скрипт устанавливается в папку с системными правилами wb-rules-system.  


=== Принцип работы ===
=== Принцип работы ===
В версии wb-rules 2.6.0 появилась возможность подписываться на произвольные mqtt топики. Конвертер wb-zigbee2mqtt запрашивает у zigbee2mqtt список всех подключенных устройств, подписывается на их топики. При получении данных от устройств конвертер парсит json, создает виртуальный девайс и посылает в него полученную информацию. Так же конвертер создает виртуальный девайс "zigbee2mqtt" и передает в него логи, версию, состояние (online\offline) моста zigbee2mqtt, Есть возможность включить и выключить режим добавления устройств. А так же там расположена кнопка "update devices". При нажатии на эту кнопку конвертер заново запрашивает у моста список добавленных девайсов и если появились какие-то новые устройства - так же подписывается на них.  
В версии wb-rules 2.6.0 появилась возможность подписываться на произвольные MQTT топики. Конвертер wb-zigbee2mqtt запрашивает у zigbee2mqtt список всех подключенных устройств, подписывается на их топики. При получении данных от физических устройств конвертер парсит json, создает виртуальное устройство и посылает в него полученную информацию. Так же конвертер создает виртуальное устройство «zigbee2mqtt» и передает в него логи, версию и состояние (online\offline) моста zigbee2mqtt. Есть возможность включить и выключить режим добавления устройств. Также там расположена кнопка «update devices». При нажатии на эту кнопку конвертер заново запрашивает у моста список добавленных устройств и если они появились подписывается на них.


=== Установка ===
=== Установка ===
Строка 187: Строка 187:
=== Правильная настройка zigbee2mqtt ===
=== Правильная настройка zigbee2mqtt ===


Если ставить zigbee2mqtt предложенным методом (через apt), то мост уже заранее настроен для правильной работы с конвертером. Если же вы ставите zigbee2mqtt вручную убедитесь, что параметр базового топика выставлен верно (как на примере):
Если ставить zigbee2mqtt через apt, то мост уже заранее настроен для правильной работы с конвертером. Если же вы ставите zigbee2mqtt вручную убедитесь, что параметр базового топика выставлен верно:


   mqtt:
   mqtt:
Строка 197: Строка 197:
=== Добавление устройств ===
=== Добавление устройств ===


Для добавления нового устройства переведите контрол "Permit join" в положение "on". Далее следуйте инструкции к устройству. В основном требуется зажать кнопку "pair" на несколько секунд и дождаться "мигания" светодиода.
Для добавления нового устройства переведите контрол «Permit join» в положение «on». Далее следуйте инструкции к устройству. В основном требуется зажать кнопку «pair» на несколько секунд и дождаться «мигания» светодиода.


=== Управление устройствами ===
=== Управление устройствами ===

Версия 13:26, 18 октября 2020


Статья в процессе редактирования. Информация может быть не точной.

Аппаратная часть

Лицевая сторона модуля WBE2R-R-ZIGBEE
Обратная сторона модуля WBE2R-R-ZIGBEE
USB стик СС2531

Для работы контроллера с ZigBee устройствами необходимо подключить специальный модуль. Есть несколько вариантовː

USB-Serial Adaper CC2530
3V3 VCC
GND GND
TXD P02
RXD P03

Прошивка

С завода модуль WBE2R-R-ZIGBEE уже прошит оптимизированной для WB и SprutHub прошивкой (Z-Stack 1.2). Но вы можете его перепрошить, если это потребуется.

Для прошивки WBE2R-R-ZIGBEE или USB стика потребуется CC Debugger и загрузочный кабель. CC Debugger с кабелем можно приобрести на Aliexpress.com. Перед прошивкой установите драйвер.

Подключите CC Debugger к WBE2R-R-ZIGBEE или к USB стику через загрузочный кабель. Подключите USB кабель CC Debugger(a) к компьютеру. Скачайте и установите приложение FLASH-PROGRAMMER ( обычную версию, не v2) c сайта TI. Устройство должно определиться в таблице. Укажите путь к файлу прошивки. В области «Actions» выберите «Erase, program and verify» и нажмите кнопку «Perform actions». Полезную информацию по прошивке вы так же можете найти на сайте zigbee2mqtt.

Файлы прошивок: Z-Stack-firmware. Внимательно читайте описание к прошивкам. Для модуля WBE2R-R-ZIGBEE требуется прошивка «CC2530 + CC2592».

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

Далее в папке /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

Полное описание настроек можно найти на сайте zigbee2mqtt.

После изменения настроек введите команду

service zigbee2mqtt restart

Запуск

Для запуска, остановки и перезапуска сервиса используйте команды

service zigbee2mqtt start
service zigbee2mqtt stop
service zigbee2mqtt restart

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

Что бы добавить Zigbee устройство убедитесь, что в настройках моста включен параметр «permit_join» :

permit_join: true

Далее следуйте инструкции к устройству. В основном требуется зажать кнопку «pair» на несколько секунд и дождаться «мигания» светодиода. После этого устройство должно передать информацию о себе на контроллер. Иногда требуется дополнительно нажимать на кнопку каждую секунду, что бы устройство не «уснуло». После успешного добавления устройство автоматически появится во вкладке Devices.

Более подробная информация на сайте zigbee2mqtt.


wb-zigbee2mqtt

Описание

Wb-zigbee2mqtt — это простой конвертер из zigbee2mqtt в Wiren Board MQTT Conventions. Конвертер написан на движке правил wb-rules>=2.6.0, скрипт устанавливается в папку с системными правилами wb-rules-system.

Принцип работы

В версии wb-rules 2.6.0 появилась возможность подписываться на произвольные MQTT топики. Конвертер wb-zigbee2mqtt запрашивает у zigbee2mqtt список всех подключенных устройств, подписывается на их топики. При получении данных от физических устройств конвертер парсит json, создает виртуальное устройство и посылает в него полученную информацию. Так же конвертер создает виртуальное устройство «zigbee2mqtt» и передает в него логи, версию и состояние (online\offline) моста zigbee2mqtt. Есть возможность включить и выключить режим добавления устройств. Также там расположена кнопка «update devices». При нажатии на эту кнопку конвертер заново запрашивает у моста список добавленных устройств и если они появились — подписывается на них.

Установка

Для установки откройте консоль и введите команду:

$ apt update && apt install wb-zigbee2mqtt

Правильная настройка zigbee2mqtt

Если ставить zigbee2mqtt через apt, то мост уже заранее настроен для правильной работы с конвертером. Если же вы ставите zigbee2mqtt вручную — убедитесь, что параметр базового топика выставлен верно:

 mqtt:
   base_topic: zigbee2mqtt
   server: 'mqtt://localhost'

Другие настройки на работу конвертера не влияют.

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

Для добавления нового устройства переведите контрол «Permit join» в положение «on». Далее следуйте инструкции к устройству. В основном требуется зажать кнопку «pair» на несколько секунд и дождаться «мигания» светодиода.

Управление устройствами

Управление устройствами через конвертер 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);