Подключение устройств по протоколу Zigbee
August 30, 2021Краткое описание протокола
Zigbee - беспроводная сеть, схожая по принципу работы на Wi-Fi или Bluetooth. От вышеупомянутых сетей отличается, прежде всего, высокой энергоэффективностью - устройства могут работать от одной батарейки год и более. Сеть поддерживает не только простые сети типа точка-точка, но и ячеистую (mesh). Существует три типа устройств в zigbee-сети:
- координатор - главное устройство сети, без которого невозможно взаимодействие пользователя с конечными устройствами;
- маршрутизатор - вспомогательное устройство, позволяющее передавать данные с конечных устройств на маршрутизатор. Маршрутизатором может выступать практически любое конечное устройство, работающее от постоянного источника питания;
- конечное устройство - непосредственно сами датчики, или исполнительные устройства. Если устройство питается от батареек, то большую часть времени оно находится в спящем режиме, за счет чего и достигается высокая энергоэффективность.
Для работы с zigbee сетями мы используем сервис zigbee2mqtt.io, поэтому все его требования к поддерживаемым устройствам остаются актуальными и для BARY.
Выбор координатора
Для начала работы вам нужно приобрести координатор (Zigbee адаптер). Список совместимых адаптеров:
Фото | Наименование | Описание | Прошивка | Инструкции | Ссылки |
![]() |
Electrolama zig-a-zig-ah! (zzh!) | USB connected adapter with external antenna based on CC2652R chip | Coordinator Router |
Flashing | Tindie |
![]() |
Slaesh's CC2652RB stick | USB connected adapter with external antenna. Based on CC2652RB chip | Coordinator Router |
Flashing | Slae.sh |
![]() |
SMARTLIGHT CC2652P Zigbee USB dongle | CC2652P factory-made Zigbee USB coordinator with external 6dB antenna and worldwide delivery | Coordinator Router |
Description Flashing |
eBay Aliexpress Official store Telegram |
![]() |
ZigStar Stick v4 | Powerfull Open source dongle with external antenna based on CC2652P | Coordinator Router |
Description Flashing |
ZigStar Shop |
![]() |
ZigStar LAN Coordinator | Powerfull Open source LAN Coordinator with external antenna on CC2652P | Coordinator Router |
Description Flashing |
ZigStar Shop |
![]() |
ZigStar Shield | Powerfull Open source Pi Shield based on CC2652P | Coordinator Router |
Description Flashing |
ZigStar Shop |
![]() |
Tube's CC2652P2 USB Coordinator | Open source hardware CC2652P based USB connected adapter with external antenna and USB extension cable | Coordinator Router |
Flashing | Tube's ZB Store |
![]() |
Tube's Zigbee Gateways (CC2652P2 variant) | Open source hardware CC2652P and ESP32 based Zigbee to Ethernet Coordinator | Coordinator | Flashing | Tube's ZB Store |
![]() |
Tube's Zigbee Tube's Zigbee PoE Serial Coordinator (CC2652P2 variant) | Open source hardware CC2652P and ESP32 based Zigbee to Ethernet Coordinator powered via PoE (Power Over Ethernet) | Coordinator | Flashing | Tube's ZB Store |
![]() |
CircuitSetup's CC2652P2 USB Coordinator | CC2652P based USB connected adapter pre-programmed with Z-Stack | Coordinator Router |
Flashing | CircuitSetup's Store |
![]() |
Texas Instruments CC2531 (not recommended) | USB connected Zigbee adapter with PCB antenna |
Coordinator Router |
Flashing | AliExpress |
![]() |
Texas Instruments CC2530 (not recommended) | Serial connected adapter with external antenna optionally with CC2591 or CC2592 RF frontend |
Coordinator Router |
Flashing Connecting | AliExpress GBAN Tindie RF ZU USB |
![]() |
Texas Instruments CC2538 PCB | Serial connected adapter with CC2592 RF Amplifier |
Coordinator |
Flashing | AliExpress Tindie |
![]() |
Texas Instruments CC2538 HAT | Raspberry pinout compatible HAT with CC2538 and optional external antenna |
Coordinator |
Flashing | Tindie |
![]() |
Gio-dot Z-Bee Duo with CC2652P | 3 in 1 adapter: USB Stick, PI Zero Hat, Ser2net, with external antenna and 3D printed case | Coordinator Router |
Flashing | Tindie |
![]() |
cod.m Zigbee CC2652P RPi Module | Raspberry Pi GPIO module with CC2652P and integrated power amplifier (+20dBm) | Coordinator Router |
Flashing | cod.m Shop |
![]() |
Egony Stick V4 (Ebyte ver.) | Powerful CC2652P Zigbee USB dongle and Raspberry Pi GPIO module | Coordinator Router |
Description Flashing |
Contact |
![]() |
Egony Stick V4 (RFSTAR ver.) | Powerful CC2652P Zigbee USB dongle and Raspberry Pi GPIO module | Coordinator Router |
Description Flashing |
Contact |
![]() |
cyijun OpenZ3Gateway | An open source Zstack3 gateway powered by ESP8266 and CC2652P modules. One costs less than 60 CNY in China. | Coordinator Router |
Description | Contact |
![]() |
XGG 52PZ2MGateway | An open source Zstack3 gateway powered by ESP8266 and CC2652P modules. One costs less than 60 CNY in China. | Coordinator Router |
Description | Contact |
![]() |
XGG 38PZ2MGateway | An open source zigbee gateway powered by ESP8266 and CC2538+CC2592PA modules. One costs less than 50 CNY in China. | Coordinator Router |
Description | Contact |
![]() |
XGG 30Z2MGateway | An open source zigbee gateway powered by ESP8266 and CC2530 modules. One costs less than 40 CNY in China. | Coordinator Router |
Description | Contact |
![]() |
Texas Instruments LAUNCHXL-CC26X2R1 | USB connected development kit, based on CC2652R chip | Coordinator Router |
Flashing | Texas Instruments |
![]() |
Texas Instruments LAUNCHXL-CC1352P-2 | USB connected development kit, based on CC1352P chip | Coordinator Router |
Flashing | Texas Instruments |
![]() |
ConBee II (experimental) | USB connected adapter | Coordinator |
Flashing | Phoscon |
![]() |
ZiGate USB-TTL (experimental) | USB connected adapter based on NXP JN516x (JN5168/JN5169), 3.1d firmware or later required | Coordinator |
ZiGate | |
![]() |
Silicon Labs EZSP v8 (experimental) | Initial development started on experimental (pre-alpha stage) support for various adapters based on Silicon Labs EM35X and EFR32MG SoC families with EmberZNet NCP 6.7.8 firmware or later via EZSP version 8 (EmberZNet Serial Protocol) interface. This include all hardware based on SoCs/Modules from Silabs EFR32MG21/MGM210 and EFR32MG12/MGM12 series. | Coordinator |
Перед покупкой адаптера прочтите рекомендации ниже!
- Рекомендуются адаптеры с микросхемой CC2652R, CC2652P, CC2652RB или CC1352P (например, Electrolama zig-a-zig-ah! (Zzh!)). Они очень мощные, имеют хороший диапазон, хорошо протестированы с Zigbee2MQTT и могут быть прошиты без дополнительного оборудования.
- Следующие адаптеры требуют дополнительного оборудования для прошивки: адаптеры на базе CC2530 и CC2531 требуют отладчика CC и кабеля загрузчика, адаптеры на базе CC2538 требуют прошивки JTAG.
- Адаптеры на базе чипов CC2652R, CC2652RB, CC2652P и CC1352P очень похожи друг на друга, поскольку используют (почти) один и тот же чип. Различия:
- CC2652P и CC1352P имеют усилитель мощности, который поддерживает выходную мощность до 20 дБм против 5 дБм на CC2652R (B).
- CC1352P поддерживает частоту ниже 1 ГГц (что неактуально для Zigbee, поскольку он использует 2,4 ГГц), CC2652* поддерживает только 2,4 ГГц
- Разница между CC2652R и CC2652RB заключается в том, что CC2652RB не требует кристалла на печатной плате, это актуально только для производственного процесса.
- Адаптеры на базе микросхемы CC2530 или CC2531 очень слабые и не рекомендуются для сетей с количеством устройств более 20.
- Адаптеры, которые могут обрабатывать большие сети: адаптеры, использующие следующие микросхемы CC2652R, CC2652P, CC2652RB, CC1352P, CC2538 и Conbee II.
- Из всех адаптеров Texas Instruments CC2531 имеет худший диапазон, другие адаптеры с антенной на печатной плате, такие как Texas Instruments LAUNCHXL-CC26X2R1 и ConBee II, обеспечивают лучший диапазон. Адаптеры с внешней антенной имеют лучший диапазон.
- При переходе на другой адаптер обязательно измените
pan_id
в конфигурации, иначе Zigbee2MQTT не запустится. Для перехода на другой адаптер может потребоваться переподключение всех устройств. - Поддержка Conbee II (обсуждение), ZiGate USB-TTL (обсуждение) и Silicon Labs EZSP (обсуждение) является экспериментальной, это означает, что функционал может быть неполным и не рекомендуется для стабильной работы.
- Мосты Serial-to-IP на основе WiFi не рекомендуются для адаптеров Silicon Labs EZSP, поскольку последовательный протокол не обладает достаточной отказоустойчивостью, чтобы обрабатывать потерю пакетов или задержки, которые обычно возникают при подключении WiFi. Если невозможно использовать локально подключенный адаптер USB или UART / GPIO, рекомендуется использовать удаленный адаптер, подключенный через Ethernet (проводной), чтобы избежать проблем с EZSP, вызванных подключениями WiFi.
Более подробную и актуальную информацию можно найти на сайте zigbee2mqtt.io
Прошивка координатора
После того, как определились и приобрели нужный адаптер, его нужно прошить. Для этого воспользуйтесь инструкцией на приобретенный адаптер по ссылкам выше.
Настройка BARY
После того, как адаптер прошит можно, приступить к подключению. Инструкцию по установке zigbee2mqtt можно не читать, т.к. актуальная версия интегрирована в BARY.
Подключите адаптер к хабу и определите порт, к которому он подключен. Обычно это:
/dev/ttyACM0
или /dev/ttyUSB0
Проверить это можно командой в терминале:
ls -l /dev/serial/by-id
Результат будет примерно такой:
lrwxrwxrwx 1 root root 13 Sep 7 14:49 usb-1a86_USB_Serial-if00-port0 -> ../../ttyUSB0
Далее приступаем к настройке в BARY. Для этого перейдите в Настройки, выберите пункт Устройства и нажмите кнопку добавить:
Рис. Добавление устройства
Выберите в списке Шлюзы - zigbee2mqtt:
Рис. Выбор типа устройства
В следующем окне укажите порт, который вы определили:
Рис. Указание настроек устройства
Галочка Permit join означает, что адаптер будет постоянно в режиме добавления устройств. Рекомендуется поставить для первоначальной настройки, но отключить после подключения всех устройств.
Поле MQTT address указывает адрес MQTT сервера, рекомендуется оставить по умолчанию.
Нажимаем Продолжить, в следующем окне можно задать имя, комнату (обязательно укажите любую комнату, иначе взаимодействовать с адаптером не получится) и поменять иконку, после чего сохраняем.
Рис. Указание комнаты
Добавление устройств
Для добавления zigbee устройств в сеть координатор и устройство нужно перевести в режим сопряжения. Координатор переводится в режим сопряжения либо галочкой Permit join в настройках устройства, либо нажатием соответствующей кнопки в интерфейсе устройства.
Для перехода в интерфейс устройства нажмите Главная, далее выберите комнату, которую вы выбрали в настройках zigbee2mqtt
Рис. Выбор комнаты
Затем выберите zigbee2mqtt:
Рис. Выбор zigbee2mqtt
Вы попадете в интерфейс zigbee2mqtt, в котором можно посмотреть статус всех подключенных устройств, а также активировать режим сопряжения кнопкой Include device
Рис. Интерфейс zigbee2mqtt
После активации режима сопряжения адаптера, нужно включить режим сопряжения у устройства. Делается это разными способами, поэтому воспользуйтесь оригинальной инструкцией к вашему устройству. После успешного включения режима сопряжения и у устройства, и у координатора будет запущен процесс сопряжения, в BARY будут соответствующие уведомления. Процесс сопряжение состоит из следующих этапов:
- Соединение устройства с сетью;
- Начало опроса устройства;
- Окончание опроса устройства.
Рис. Успешное окончание опроса устройства
После успешного сопряжения устройство автоматически попадает в группу нераспределенные устройства. Если сообщения об успешном интервью нет, то повторите сопряжение.
Рис. Нераспределенные устройства
Вам остается выбрать подходящее название устройства и комнату, в которой оно будет расположено.