Маршрутизатор zigbee: Zigbee роутер с WiFi или прокачиваем модуль управления Триколор GS SMH-ZW-I1 / Хабр
|Содержание
Zigbee роутер с WiFi или прокачиваем модуль управления Триколор GS SMH-ZW-I1 / Хабр
Увлечение умным домом постепенно захватывает все больше и больше людей, ведь на рынке появляются разнообразные решения, отличающиеся не только ценой, экосистемой и используемыми протоколами, но и возможностью интеграции в Opensource системы УД, такие как HomeAssistant, OpenHAB и так далее и тому подобное.
А те устройства, что не умеют или не хотят интегрироваться никуда кроме родной экосистемы, многочисленные энтузиасты шевелят палочкой дорабатывают с помощью паяльника, программатора и инопланетных технологий полученных из Ноосферы, и все равно интегрируют!
Триколор GS SMH-ZW-I1
Предлагаю вам, уважаемые читатели Хабра, обратить внимание на модуль управления умным домом Триколор GS SMH-ZW-I1, и сделать на его основе что-нибуть полезное, необычное и практичное.
«Почему именно модуль управления GS SMH-ZW-I1 от компании Триколор?» — спросите вы, и будете правы. Причин, как оказалось, вполне достаточно. Тем, кому стало интересно, прошу проследовать под кат.
Что за зверь и с чем его едят?
Модуль управления GS SMH-ZW-I1
Модуль управления GS SMH-ZW-I1 – главное устройство сервиса «Триколор Умный дом». Все периферийные устройства сервиса (умная розетка, умные лампы, датчики, сирена и т.д.) объединены в единую систему, которая контролируется модулем управления посредством беспроводного протокола Zigbee.
Этот девайс на момент написания поста можно купить в официальном магазине Триколор всего за 299р. И нет, это не реклама, хотя очень похоже. Но, забегая вперед, скажу что вы нигде не найдете WiFi+Bluetooth USB стик и стик Zigbee CC2531 распаянный на одной плате с USB-хабом дешевле чем за 299р. Ну а если найдете — дайте знать!
Анбоксинг
Комплект
Девайс поставляется в небольшой коробке размерами 13см х 11,5см. Внутри можно обнаружить сам модуль управления, USB дата-кабель длиной 27см и немного макулатуры.
Размеры модуля управления составляют 82мм х 82мм х 22мм.
Вид сверху
На верхней части модуля управления расположены два светодиодных индикатора, указывающие на работу WiFI (синий) и Zigbee (зеленый) модулей.
Вид снизу
На нижней части корпуса видны два винта и крепления на стенку.
С торца расположен micro-usb разъем для питания и подключения устройства к компьютеру.
Когда я первый раз заказывал эту коробочку, я, по сути, брал кота в мешке. В начале этого года в интернете еще не было упоминания о внутренностях модуля управления от Триколор, поэтому пришлось рискнуть и стать первопроходцем.
Снимаем крышку
Сразу скажу, что начинка модуля управления меня приятно удивила. Как я уже упоминал, под капотом модуля управления находится плата с маркировкой MB_ZigBeeModule rev01, на которой распаян четырехпортовый USB 2.0 High Speed хаб на микросхеме FE1.1-AQFN48A, два порта из которых уже заняты WiFi+BT чипом Realtek RTL8723BU и Zigbee контроллером на микросхеме CC2531 от Texas Instruments.
Верхняя часть платыНижняя часть платы
USB 2.0 концентратор FE1.1
USB 2.0 концентратор FE1.1
Два оставшихся порта не распаяны. Как видно на фотографии, там много чего не распаяно. Можно потратить немного денег и времени, и сделать функциональными нераспаянные USB порты, но я не вижу в этом особого смысла. Во первых, придется модифицировать корпус. Во вторых, в обвязке USB-портов отсутствует фильтр, защищающий от разрядов статического электричества и конденсаторы на линии питания. А в третьих, линия питания +5в на нераспаянных разьемах тоже не распаяна. В общем, слишком много мелочевки пожалели китайцы, чтобы сделать этот мир лучше.
Однако, ради тестов, я припаивал к дорожкам USB флешку (не забывая о статическом электричестве, заземленным паяльником, с антистатическим браслетом на руке), кидал 5в с первого попавшегося пятака с необходимым потенциалом (а лучше непосредственно с дорожек микро-usb разъема), и флешка успешно определялась в компьютере, к которому подключен модуль управления.
Только не забывайте, что USB концентратор в случае добавления дополнительных USB разъемов также потребует и дополнительного питания. При подключении к нему мощных устройств (например переносной жесткий диск) хаб не сможет обеспечить необходимый для работы этих устройств ток, так как по стандарту USB 2.0 с одного порта компьютера, к которому будет подключен модуль управления, можно снять не более 500 мА, а модули WiFi+BT и Zigbee, распаянные на плате, во время работы потребляют ток около 150 мА. В случае подключения модуля управления к компьютеру через порт USB 3.0 проблема с питанием уйдет на второй план, так как по стандарту USB 3.0 максимальный потребляемый ток увеличен, составляет 900 мА. Но, к сожалению, скорость USB хаба ограничена стандартами USB 2.0, и все устройства, подключенные через хаб в модуле управления Триколора будут работать медленнее, чем позволяет стандарт USB 3.0.
Разъем для дополнительного питания хоть и предусмотрен, но так же не распаян. Поэтому идея превратить модуль управления Триколор в настольный USB концентратор является вполне реализуемой, но экономически нецелесообразной.
Внешние антенны
Установка внешней Zigbee антенны
Что еще можно распаять? На плате управления имеются посадочные места под разъемы антенн как для WiFi, так и для Zigbee модуля. Ради интереса припаял разъем для антенны модуля Zigbee, предварительно перерезав дорожку родной антенны и впаяв перемычку.
Модификация для внешней Zigbee антенны
Просверлил отверстие в корпусе под установку коннектора, накрутил на него антенну от старого роутера (протокол Zigbee работает на той же частоте, что и WiFi, поэтому подойдет любая WiFi антенна на 2.4Мгц), но увеличения зоны покрытия Zigbee сети я не ощутил. LQI беспроводных Zigbee устройств также не увеличился.
Общий вид после установки антенны в корпус
Скорее всего это связано с низкой мощностью приемопередатчика CC2531, которая составляет 4.5 dBm, и в данном случае внешняя антенна будет ничем не лучше внутренней. Более мощные Zigbee стики на базе модуля CC2538 работают в паре с усилителем на чипе CC2592, с помощью которого можно достичь показателей в 20dBm с использованием внешней антенны.
Модификация для WiFi антенны
Разъем для подключения внешней WiFi антенны так же отсутствует, но это легко исправить, припаяв sma коннектор. Я сдул феном такой коннектор со старого ноутбучного mini-pcie беспроводного модуля. Для работы внешней антенны также необходимо убрать резистор R37, отключив таким образом внутреннюю антенну.
Готовый результат
WiFi+BT на чипе Realtek RTL8723BU
Его величество Realtek RTL8723BU
Из спецификации на данный чип становится ясно, что беспроводной WiFi модуль может работать в диапазоне частот 2.4ГГц, поддерживает стандарты 802.11bgn и обеспечивает скорость беспроводного соединения до 150Mbps с одной антенной. Встроенный Bluetooth контроллер поддерживает стандарт 4.0 и приятно дополняет картину.
В операционной системе Windows 10 WiFi и Bluetooth работает из коробки, дополнительных драйверов устанавливать не нужно. Под ОС семейства Linux проблем тоже не должно возникнуть, у меня получилось завести сабж даже под OpenWrt с соответствующими модулями ядра (kmod-rtl8xxxu и rtl8723bu-firmware). Что касается использования этого чипа совместно с системами умного дома — тут все хорошо. OpenHab отлично работает с ним через стандартный Bluetooth биндинг (в системе должен быть установлен Bluez), HomeAssistant также должен поддерживать его стандартными средствами.
Zigbee модуль на чипе CC2531
Zigbee модуль на чипе CC2531
В модуле управления умным домом Триколор используется довольно популярный чип CC2531 от фирмы Texas Instruments, поддерживающий стандарты Zigbee и IEEE 802.15.4, имеющий на борту 256КБ флеш-памяти и 8КБ RAM.
Несмотря на то, что производительность этого чипа сильно отстает от более современного CC2538, радиус покрытия Zigbee сети довольно небольшой (10-15м без антенны) и общее количество Zigbee устройств в сети с этим чипом не должно превышать 20шт, в целом это неплохой вариант для ознакомления новичков с основами построения умного дома на Zigbee.
Чип прошит под использование с умным домом Триколор, но это легко исправить вооружившись паяльником и программатором. Таким образом можно получить универсальный стик, работающий как под популярное решение zigbee2mqtt, так и нативно работающее в системах умного дома OpenHAB (с помощью биндинга Zigbee) и HomeAssistant (с помощью интеграции ZHA — Zigbee Home Automation).
Для тех, кто впервые слышит слово «стик», очень рекомендую ознакомиться с материалом на сайте Ивана Бессарабова «Что такое Zigbee», постами на Хабре Zigbee 101: руководство для начинающих, а также Собираем DIY шлюз для Zigbee устройств.
Вкратце, беспроводная сеть Zigbee строится с помощью Координатора (Coordinator), расширяется с помощью Роутеров (Router). К Zigbee сети подключаются конечные устройства (End-Devices) — лампочки, розетки, кнопки, датчики движения, etc.
Из вышеперечисленного следует, что чип CC2531, используемый в модуле управления умным домом Триколор можно прошить в качестве Координатора или Роутера. Процедура прошивки одинакова, отличается лишь сам файл прошивки.
Выбор прошивки
В связи с тем, что у меня уже имеется Zigbee Координатор, на котором уже функционирует сеть для умных устройств, прошивать чип CC2531 буду в Роутер. Это позволит расширить покрытие существующей сети и улучшить качество связи с конечными устройствами.
Для чипов CC2530, CC2531, CC2538, CC1352P, CC2652R и CC2652RB существует прошивка Z-Stack, прошить которую можно несколькими способами: с помощью программатора CC Debugger или Raspberry Pi/Arduino/ESP8266. Программатора у меня нет, зато есть Arduino UNO, которая отлично подойдет для этой задачи!
Но для начала давайте разберемся с прошивками. Как я уже упоминал, существуют прошивки для Координатора и прошивки для Роутера. Они в свою очередь подразделяются на версии:
Прошивка | Чип | Версия Zigbee | Количество устройств | Количество маршрутов |
Z-Stack_Home_1.2 (default) | CC2531 | 1.2 HA | 20 | 30/0 |
CC2530, CC2530 + CC2591, CC2530 + CC2592 | 1. 2 HA | 16 | 30/0 | |
Z-Stack_Home_1.2 (source_routing) | CC2531, CC2530, CC2530 + CC2591, CC2530 + CC2592 | 1.2 HA | 5 | 40/40 |
Z-Stack_3.0.x | CC2531 | 3.0 | 15 | 40/0 |
CC2530, CC2530 + CC2591, CC2530 + CC2592 | 3.0 | 10 | 40/0 | |
CC2538 + CC2592 | 3.0 | 100 | 200/400 |
Прошивка Zigbee 3.0 не рекомендуется для чипов CC2530 и CC2531 (в связи с тем что они слишком маломощные)
Если в вашей сети будет 1 — 15 устройств, рекомендуется использовать Z-Stack_Home_1.2 default.
Если в вашей сети будет более 15+ устройств, рекомендуется использовать прошивку Z-Stack_Home_1. 2 source routing.
Если вы используете прошивку source routing, то количество устройств, напрямую работающих с Координатором не может превышать 5шт, остальным устройствам необходим Роутер поблизости.
Исходя из вышеперечисленного, лучшим вариантом для небольших Zigbee сетей является прошивка чипа CC2531 в Координатор с помощью Z-Stack_Home_1.2 (default).
Но как я уже говорил, второй Координатор в моей существующей сети мне не нужен, поэтому качаем прошивку роутера. Для тех, кому нужен Координатор, скачиваем эту прошивку. Процедура прошивки одинакова как для Координатора, так и для Роутера.
Прошиваем чип CC2531
Для прошивки я буду использовать Arduino UNO. Это довольно популярная плата для разработки на основе ATmega328. У многих она уже имеется, а если нет, то купить ее не составит труда. Несомненно удобнее и правильнее прошивать Zigbee чипы Texas Instruments с помощью специально предназначенного для этого программатора CC Debugger, но покупать его для одноразового действа я не вижу смысла.
Помимо платы Arduino, для прошивки чипа CC2531 понадобится установленная на персональный компьютер среда программирования Arduino IDE и проводочки.
Далее необходимо скачать файлы для прошивки с помощью Arduino, и положить куда нибудь в папочку. Затем открыть с помощью Arduino IDE файл скетча CCLoader.ino и прошить им подключенную к компьютеру Arduino UNO.
Конфигурация пинов
В файле скетча CCloader.ino по умолчанию прописаны пины именно для Arduino Uno, если у вас другая плата, или например, Wemos D1 Mini, не забудьте поправить конфигурацию пинов в скетче. Подробнее об этом можно почитать тут.
Прошиваем Arduino UNO
После загрузки скетча CCLoader.ino в плату Arduino UNO можно переходить непосредственно к прошивке чипа CC2531.
На плате модуля управления умным домом Триколор имеются технологические площадки, специально предназначенные для прошивки Zigbee чипа. Их распиновка соответсвует стандартной распиновке под CC Debugger. Для прошивки нам понадобится всего четыре контакта.
Соединяем контакты DD с пином 6 Arduino Uno, DC с пином 5, RST с пином 4, а контакт GND с соответствующим контактом GND на плате Arduino UNO.
В результате должно получиться нечто похожее:
Теперь нужно подготовить прошивку CC2531 для загрузки через Arduino UNO. Дело в том, что скачанная прошивка из архива предназначена для использования с CC Debugger (файл .hex) или SerialBootTool (файл .bin), и прошить ее непосредственно не получится. Прошиться с помощью SerialBootTool можно только в том случае, если в чип уже залита прошивка, поддерживающая SerialBootLoader (SBL). Стоковая прошивка модуля управления не поддерживает этот способ обновления прошивки, а прошивка Роутера не поддерживает SBL в принципе, поэтому нам ничего не остается как брать шаманский бубен и преобразовывать то что есть в то что надо.
Для того, чтобы преобразовать прошивку в формат для заливки через Arduino UNO нам потребуется утилита objcopy. Тем у кого есть Linux крупно повезло, эта утилита входит в состав пакета binutils, который необходимо поставить с помощью пакетного менеджера вашего дистрибутива (ну или собрать из исходников, если очень хочется).
Для преобразования файла прошивки в ОС Linux необходимо выполнить команду
objcopy --gap-fill 0xFF --pad-to 0x040000 -I ihex CC2531ZNP-Prod.hex -O binary /tmp/CC2531ZNP-Prod.bin
где CC2531ZNP-Prod.hex — имя файла исходной прошивки из скачанного архива, а CC2531ZNP-Prod.bin — имя файла на выходе. Его мы и будем прошивать через Arduino Uno.
А вот владельцем компьютеров с ОС Windows повезло меньше. Им придется где то найти скомпилированную под Windows утилиту objcopy.exe и необходимую для нее библиотеку libiconv-2.dll
На просторах интернета мне удалось найти место, где лежат эти файлы. Качаем их, кладем в папку с прошивкой для чипа CC2531, и запускаем следующую команду в командной строке
objcopy.exe --gap-fill 0xFF --pad-to 0x040000 -I ihex CC2531ZNP-Prod.hex -O binary CC2531ZNP-Prod.bin
Только не забудьте сначала перейти в командной строке в папку, где лежат файлы прошивки и objcopy.exe, иначе фокус не получится.
Теперь у нас есть необходимый файл прошивки для чипа CC2531, прошитая файлом CCLoader. ino Arduino UNO. Можно прошиваться! Только как? Уместный вопрос.
Правильно, нам потребуется еще одна утилита — CCLoader! Под ОС Windows можно скачать готовый бинарник отсюда и скопировать в ту папку, где лежит подготовленная прошивка для CC2531.
Для ОС Linux надо будет собрать утилиту CCLoader самому. Исходники лежат тут. Для компиляции достаточно выполнить в папке с исходниками команду
gcc main.c -o CCLoader
А вот теперь у нас все готово для прошивки чипа CC2531. Подключаем Arduino UNO в USB порт компьютера, проверяем правильность соединения модуля управления Триколор с Arduino и подключаем модуль управление во второй USB порт компьютера.
Смотрим на каком COM порту висит Arduino UNO и выполняем команду
CCLoader [номер COM порта] имяпрошивки.bin 0
Должен начаться процесс прошивки
Успешное завершение прошивки чипа CC2531 выглядит примерно так
Если что то пошло не так, еще раз проверьте правильность подключение модуля управления к Arduino UNO и наличие всех необходимых для прошивки файлов. Иногда помогает переподключение девайсов к USB.
Но надеюсь что все прошло гладко, и мы имеем полностью работоспособный Роутер (или Координатор). Давайте попробуем добавить Роутер к существующей Zigbee сети. После прошивки отключите модуль управления Триколор от Arduino UNO и от USB порта. Разрешите добавление новых устройств, подключите модуль умного дома Триколор в порт USB (или в зарядное устройство мобильного телефона) и ждите пока пройдет интервью.
Роутер успешно добавлен в zigbee2mqtt
Подробная информация о Zigbee Роутере
Tuya Smart, интеграция в Home Assistant / Комфортный дом и бытовая техника / iXBT Live
Здравствуйте друзья
Темой этого обзора будет гаджет для умного дома, который не является ни сенсором, ни исполнительным устройством. Он не передает никаких показаний и не выполняет каких-то действий, соответственно не может использоваться в автоматизациях. Это — Zigbee роутер и его задачей является передача данных от других устройств сети, тем самым расширяя ее емкость и покрытие.
Содержание
- Параметры
- Поставка
- Внешний вид
- Tuya Smart
- zigbee2mqtt
- SLS Gateway
- Использование
- Видео версия обзора
- Вывод
Купить на Aliexpress — цена на момент публикации $12.19
Параметры
- Модель: RP280, в zigbee2mqtt — TS0207_repeater
- Протокол: Tuya ZigBee 3.0
- Радиус действия: 20 ~ 30 метров
- Мощность: 10 Дб
- Питание: USB A — 5 В до 1 А
- Размеры: 28 мм * 18 мм * 7 мм
- Цвет: белый
Поставка
Поставляется устройство в небольшой белой коробке, хотя с учетом размеров устройства и в нее можно было бы поместить с десяток таких роутеров. Надписи на лицевой стороне, кроме слова Zigbee выполнены иероглифами — это признак того, что устройство предназначено для внутреннего рынка. На задней стороне написаны технические параметры устройства, про которые я уже рассказал и тут тоже обилие иероглифов.
Первое что пришло в голову, после того как я открыл коробку — царское ложе. Зато все доедет в целости и сохранности. К слову говоря — магазин очень добросовестно отнесся к внешней упаковке.
Комплектная инструкция — на китайском языке, так то без переводчика понять из нее что-то довольно сложно. Но и тут магазин показал себя с лучшей стороны.
В посылку была вложена инструкция на английском, причем это инициатива именно магазина, так как коробка была запечатана, а инструкция была отдельно. Кроме этого на ней есть название магазина. Самое полезное что в ней есть — это способ сброса настроек роутера, для чего его нужно трижды подряд подключить и отключить из USB.
Внешний вид
Внешне устройство идентично флешке. Или точнее будет сказать — внешнему USB Bluetooth адаптеру белого цвета, так как производители флешек обычно больше уделяют внимания дизайну, а тут все довольно просто. На одной из сторон — указан интерфейс Zigbee и номер модели.
Вот сравнительно с попавшей мне под руки флешкой от Xiaomi на 64 GB. Устройство очень компактное.
USB нужен для получения питания — и для роутера подойдет любой свободный разъем стандарта Type A — на зарядной станции, на телевизоре, компьютере, колонке, блоке питания, да где угодно, их сейчас ставят буквально везде.
Потребление очень скромное — всего 150 миллиВатт, это 0.02 А. Так что можно даже подключить к power bank — одно заряда хватит очень надолго, если есть конечно необходимость в таком решении.
На гаджете имеется один единственный светодиод, который светится при его включении. В режиме сопряжения — он мерцает.
Tuya Smart
Устройство предназначено для работы с шлюзами Tuya смарт и обзор логической части начнем с этого приложения. Запускаем плагин Zigbee шлюза — у меня это Ethernet версия от Moes и запускаем процесс добавления, предварительно подключив роутер в USB разъем.
После этого устройство обнаруживается и подключается к шлюзу — выбираем имя для него и указываем локацию. На этом процесс подключения завершается и роутер появляется в списке дочерних устройств шлюза.
На этом собственно все — устройство просто есть в системе, какой-либо дополнительной информации по нему в приложении получить нельзя. В плагине есть надпись о том что шлюз работает. В автоматизациях роутер не участвует.
zigbee2mqtt
Но брал я его не для шлюза Tuya, а для работы с zigbee2mqtt. Процесс подключения — стандартный, роутер должен быть в режиме сопряжения, кстати после удаления из Tuya Smart — он автоматически сбрасывается в заводские и переводится в этот режим. Обнаруживается он быстро, забегая вперед скажу, что в ходе тестирования я несколько раз его сбрасывал и подключал и никаких проблем ни разу с этим не было.
Модель определяется как TS0207_repeater. Поддержка официальная и полная — вплоть до корректной картинки устройства. Определяется как роутер, что логично так как это единственная функция гаджета.
Единственный параметр который можно от него получить — это уровень качества сигнала.
Он же пробрасывается и в Home Assistant
Карта сети сразу после подключения выглядит так. В моем случае большинство связей пока построено на координатор, так как я, не так давно переносил все устройства с стика CC2538 на CC2652, причем пришлось это делать вручную по одному устройству — объединив два zigbee2mqtt в одном системе mqtt брокеров связанных в режиме моста.
Гаджет построил связи с другими роутерами в пределах видимости.
Вообще, для оптимизации связей — будет полезно на пару часов отключить координатор, но из-за карантина, так как вся семья постоянно находится дома, у меня это пока не получается сделать, конечные устройства сами решают переходить им на роутер или нет.
SLS Gateway
По обыкновению проверим поддержку на альтернативе zigbee2mqtt — SLS шлюзе. При тестировании использовалась самая актуальная прошивка на дату тестирования от 4 апреля 2021 года.
Устройство подключилось быстро и без проблем, правда удивило своей картинкой. Тут изображен датчик протечки от Tuya Smart, у которого совпал номер модели TS0207, видимо поэтому в zigbee2mqtt к ней добавлено слово repeater
Но кроме картинки — в остальном никаких проблем нет, устройство будет работать как роутер для Zigbee
В SLS шлюзе кроме уровня качества сигнала будет отображаться еще один параметр — last seen, время последнего отклика от устройства, в UNIX формате, это количество секунд с 00:00 1 января 1970 года.
На карте сети — гаджет, он справа, с изображением датчика протечки, отображается с синей, роутерной связью.
Использование
В моем случае — роутер предназначен для установки в ванную, где есть настенная розетка с USB портами (не управляемая), один из которых время от времени используется для зарядки зубных щеток и диспенсера, второй — всегда пустой. Был до этого момента. В ней (ванной) есть несколько датчиков — движения, открытия, климата и пара датчиков открытия. Еще есть роутер — розетка Aqara которая управляет бойлером.
Но она встроена в стену и уровень сигнала к ней довольно слабый — вот для сравнения, герой обзора в чуть более чем метре от розетки 108, а розетка 33. Поэтому все датчики — они ниже в этом списке, названия начинаются с BT, предпочитают цепляться куда угодно но не к розетке.
Процесс самостоятельного перехода датчиков — не быстрый, но уже через сутки один из них решил перейти на новый роутер. За остальными — наблюдаю.
Видео версия обзора
youtube.com/embed/e5p9_OJzl5U»>
Вывод
Подведем итоги. Герой обзора — компактный, но при этом достаточно мощный роутер с неплохим уровнем сигнала, который сможет решить проблему неустойчивой или слабой связи с удаленными устройствами. Для питания необходим стандартный USB A порт на 5 вольт, причем подойдет любой незадействованный, требования в мощности у него весьма скромные.
Подойдет для тех кейсов, где нет необходимости или возможности устанавливать Zigbee розетку, реле, лампочку — устройства с стационарным питанием, которые также выполняют роль роутера.
Спасибо за внимание !
Плейлист уроков по Home Assistant
Мой канал в телеграмм
Zigbee-сети | Zigbee2MQTT
Типы устройств
В Zigbee существует три различных типа устройств: конечное устройство, маршрутизатор и координатор. Сеть Zigbee всегда имеет координатор , один (и не более), а также может иметь несколько маршрутизаторов и конечных устройств. В случае Zigbee2MQTT координатором является ваша флешка CC2531.
Конечное устройство
Конечные устройства не направляют трафик. Они также могут спать, что делает конечные устройства подходящим выбором для устройств с батарейным питанием. У конечного устройства есть только один родитель, либо координатор, либо маршрутизатор, обычно это ближайшее устройство, когда оно было сопряжено. Все коммуникации с конечным устройством и с него осуществляются через родительское устройство. Если родительский маршрутизатор отключится, весь трафик к его дочерним устройствам прекратится до тех пор, пока эти конечные устройства не истечет время ожидания и не попытаются найти нового родительского маршрутизатора. Некоторые модели конечных устройств, в частности Xiaomi, не пытаются найти нового родителя, поэтому остаются изолированными до повторного сопряжения с сетью.
Примеры: WXKG01LM, RTCGQ01LM, MCCGQ11LM
Маршрутизатор
Маршрутизаторы отвечают за маршрутизацию трафика между различными узлами. Маршрутизаторы могут не спать. Таким образом, маршрутизаторы не являются подходящим выбором для устройств с батарейным питанием. Маршрутизаторы также несут ответственность за получение и хранение сообщений, предназначенных для их потомков. В дополнение к этому, маршрутизаторы являются привратниками в сеть. Они отвечают за то, чтобы новые узлы могли присоединиться к сети.
Примеры: LED1545G12, 7146060PH, ZNCZ02LM, CC2531 USB-сниффер прошился с прошивкой роутераоткрыть в новом окне
Примечание: Настенные коммутаторы Xiaomi (без нейтральной линии — QBKG03LM и QBKG04LM) не работают как роутеры в сети Zigbee.
Координатор
Координатор — это специальный маршрутизатор. В дополнение ко всем возможностям маршрутизатора координатор отвечает за формирование сети. Для этого он должен выбрать соответствующий канал, идентификатор PAN и расширенный сетевой адрес. Он также отвечает за выбор режима безопасности сети.
Примеры: CC2531 Сниффер USB прошит с прошивкой координатораopen in new window
Определение типа вашего устройства
Zigbee2MQTT регистрирует тип ваших устройств при запуске, например:
2018-05-28 39:46 INFO 0x00158d00018255df (0x00158d00018255df): ZNCZ02LM — разъем питания Xiaomi Mi ZigBee (маршрутизатор) 2018-5-28 20:39:46 INFO 0x00158d0001b79111 (0x00158d0001b79111): WSDCGQ01LM - датчик температуры и влажности Xiaomi MiJia (EndDevice)
Сеть Zigbee
В этом разделе представлен обзор того, как стек протоколов Zigbee делится на уровни (см. Википедия — IP-уровниоткрыть в новом окне). Количество слоев в этом типе описания часто варьируется; в этом обсуждении используются 4:
- физический уровень и уровень MAC,
- сетевой и транспортный уровень,
- прикладной уровень и
- уровень Zigbee2MQTT.
Основное внимание будет уделено последним двум слоям.
Физический и MAC-уровни
Физический и MAC-уровни протокола Zigbee определяются стандартом IEEE 802.15.4открыть в новом окне. Это общий набор стандартов, которые используются несколькими стеками протоколов, включая Zigbee, 6LoWPAN, Thread и Z-Wave. На самом деле существует несколько различных частотных диапазонов, которые может использовать IEEE 802.15.4; тот же диапазон 2,4 ГГц, который может использовать WiFi, а затем диапазон 800 МГц и 900 МГц, использование которых зависит от страны. Как правило, устройства, использующие один стек, выбирают один из них и избегают других. Например, устройства Zigbee обычно используют диапазон 2,4 ГГц, а устройства Z-Wave обычно используют диапазон 8/9. Диапазоны 00 МГц (в зависимости от страны).
Сетевой и транспортный уровни
Сетевой и транспортный уровни определяют маршрутизацию, безопасность и транспорт между различными узлами в сети Zigbee. Сюда входят такие вещи, как модель сетевого шифрования. Здесь также определяется разница между контроллером, маршрутизаторами и конечными узлами в сети Zigbee — см. типы устройств. Есть еще одна концепция Zigbee, которую я размещу на транспортном уровне; понятие конечных точек. Подобно портам в TCP/IP, конечные точки позволяют каждому физическому устройству иметь несколько виртуальных устройств в сети. Например, 3-клавишный Zigbee-коммутатор может иметь один радиомодуль и, следовательно, только один MAC-адрес и только один сетевой адрес Zigbee, но иметь три конечных точки — по одной для каждого коммутатора. Затем каждая конечная точка может запускать один интерфейс «переключателя».
Прикладной уровень
Zigbee — это больше, чем просто сетевая технология; он определяет набор стандартных приложений, работающих в сети. Эти приложения определены в спецификации библиотеки кластеров Zigbee (см. спецификацию библиотеки кластеров Zigbee v7open в новом окне). Каждый «кластер» определяет один тип взаимодействия приложений. Каждый тип кластера имеет свой собственный целочисленный идентификатор и бывает двух видов; клиент и сервер. Существуют кластеры для низкоуровневого сбора информации — получения номера модели устройства, перечисления конечных точек и кластеров, реализуемых каждой конечной точкой (каждая конечная точка может реализовывать несколько кластеров). Существуют кластеры для простых целей настройки сети, такие как кластер «Идентификация», который позволяет кому-то запрашивать устройство, чтобы идентифицировать себя, например. свет, которого просят идентифицировать себя, может начать пульсировать. Существуют кластеры для управления включением/выключением света, где свет может реализовывать включение/выключение серверного кластера, а переключатель может реализовывать включение/выключение клиентского кластера. Существуют кластеры для конфигурации, которые позволяют контроллеру настраивать устройства различными способами.
Как отмечалось выше, каждая гроздь бывает двух вкусов; клиент и сервер. Как правило, сервер является конечной точкой, которая запускается чаще, и клиент выбирает подключение к серверу. Во многих случаях это не является четким при рассмотрении функциональности кластера, поэтому спецификация принимает решение в значительной степени произвольно.
Контроллер Zigbee может «связывать» кластеры для двух конечных точек вместе. Он соединит одну конечную точку, которая реализует клиентский вариант кластера, с другой конечной точкой, которая реализует серверный вариант того же кластера.
Есть также несколько специальных кластеров. Кластер «группа» позволяет определять «группы», каждая из которых определяется небольшим целым числом. Если конечная точка реализует групповой кластер, ее можно настроить так, чтобы она была частью некоторого количества групп. Устройство запоминает, в каких группах оно состоит. Затем группу можно рассматривать как виртуальную конечную точку. Сообщения, отправленные на определенный идентификатор группы, передаются по сети, и все устройства, входящие в эту группу, будут отвечать на сообщение. Точно так же клиент может быть привязан к группе, а не к другой конечной точке, так что, например, один переключатель может управлять целой группой источников света.
Аналогично, кластер сцены позволяет настроить устройство для запоминания параметров из других кластеров, реализованных на этом устройстве. Свет может помнить яркость. Рулонные шторы могут запоминать установленную высоту. Каждое устройство может запомнить небольшое количество сцен, идентифицируемых по идентификатору.
Сцены и группы предназначены для совместной работы. Можно представить себе настройку множества разных устройств, затем объединение их всех в группу, а затем отправку группе команды «запомнить сцену». Затем можно отправить группе команду «отозвать сцену» с соответствующим идентификатором сцены, чтобы заставить множество устройств настроить себя заданным образом с минимальным сетевым трафиком и, следовательно, с минимальной задержкой.
Zigbee2MQTT
В стеке Zigbee уже определено определенное количество протоколов домашней автоматизации; как уже говорилось, устройства могут быть объединены в группы и определены сцены, коммутаторы могут быть привязаны к этим группам. В такой настройке контроллер Zigbee может помочь настроить сеть, но после этого он пассивен на уровне приложения.
Если требуется больше гибкости, чем в предопределенных кластерах Zigbee, например, «Включить вентилятор, когда относительная влажность превышает 70%», то вам нужен более умный контроль. Именно здесь в дело вступает Zigbee2MQTT. Он выполняет перевод между Zigbee и MQTT.
Когда устройство добавляется в сеть с помощью контроллера Zigbee-Herdsman, контроллер использует низкоуровневые кластеры конфигурации для опроса устройства и выяснения, что это за устройство, какие у него конечные точки и какие кластеры каждая из этих конечных точек реализует. Затем преобразователи Zigbee-Herdsman-Converters записывают для каждой модели устройства, к каким кластерам должен быть привязан контроллер, и как должно выполняться преобразование в MQTT. Большинство устройств в Zigbee-Herdsman-Converters используют универсальные преобразователи, которые привязываются к каждому кластеру Zigbee и предоставляют стандартный интерфейс MQTT для этого кластера.
При такой настройке при активации коммутатора он отправляет сообщение на контроллер Zigbee2MQTT. Затем контроллер отправляет сообщение MQTT. Контроллер MQTT (который отличается от контроллера Zigbee, например, пакет Home Assistant) затем решает, что делать на основе этого сообщения. Например, он может решить включить определенный свет, поэтому он отправит сообщение MQTT с запросом на включение света. Zigbee2MQTT получит это сообщение, а затем отправит сообщение Zigbee на конечную точку источника света, используя соответствующий кластер Zigbee.
Эта система значительно более гибкая, чем базовая система Zigbee. Но у него также более высокая задержка (системе требуется больше времени, чтобы отреагировать на переключение переключателя) и больше точек отказа. При базовой настройке Zigbee даже контроллер не задействован после завершения настройки. При настройке Zigbee2MQTT есть два сообщения Zigbee, два сообщения MQTT и три дополнительных этапа обработки (главный контроллер решает, что делать, а MQTT обрабатывает сообщения в каждом направлении).
Обратите внимание, что в некоторых коммерческих системах Zigbee, таких как Phillips Hue, узел контроллера в сети Zigbee также является контроллером автоматизации, который может добавлять дополнительные интеллектуальные функции поверх базовой настройки Zigbee. Zigbee2MQTT вставляет MQTT между ними, позволяя разделить их.
Есть ли список устройств, которые можно использовать в качестве маршрутизатора или повторителя? — Зигби
анон56756846
#1
Одним из преимуществ ConBee II является «Диапазон сигнала», однако никакие устройства, которые у меня есть на данный момент, не могут быть использованы в качестве ретранслятора. У меня есть несколько проводных настенных коммутаторов от Aqara, но они не распознаются ни как маршрутизаторы, ни как коммутаторы. В настоящее время покрытие Zigbee в доме довольно плохое. Это приводит к тому, что датчики имеют медленный отклик, а иногда вообще не реагируют.
Я хотел бы добавить в дом ретранслятор, но я не уверен, какое устройство мне следует приобрести, чтобы расширить зону покрытия сигнала. Есть ли список устройств, которые можно использовать в качестве маршрутизатора или повторителя?
В чем разница между маршрутизатором и повторителем в следующем контексте?
Устройства, расположенные дальше, подключены через сеть Zigbee Mesh. В этой сети все устройства Zigbee с питанием от сети, такие как светильники и розетки, действуют как повторители и могут маршрутизировать сигнал.
пергола.фабио
#2
Я предпочитаю умные розетки/удлинители USB от Ikea…
Дешевый и надежный для меня в прошлом году…
Раньше у меня был OSRAM, но сетка/сигнал были не так хороши, как у Ikea
anon56756846
#3
Что лучше между удлинителем и вилкой? Или они работают одинаково с точки зрения надежности и охвата.
пергола.фабио
#4
Не уверен, у моего conbee 1 тоже сильный сигнал, оба в порядке
CentralCommand
(Майк)
#5
Недавно я купил несколько Xiaomi ZNCZ12LM (разъемы с измерением энергии). Мне они нравятся, так как они работают как повторители и довольно прочные штекеры, поскольку они могут переключаться, а также сообщать мне, когда устройство используется или нет.
Это действительно увеличило диапазон моего сигнала, но я заметил одну вещь: у меня было несколько случаев, когда устройства просто отключались от сети, и их приходилось заново связывать. Этого никогда не было, пока я не начал внедрять маршрутизаторы/повторители.
Я нашел эту проблему github для Zigbee2MQTT, которая звучала похоже. Прочитав его, проблема имеет смысл (по сути, закеширован неверный маршрут), но решение не совсем ясно.
Было любопытно, сталкивались ли вы когда-нибудь с чем-то подобным, когда вводили маршрутизаторы/повторители в сеть, или если у вас все прошло гладко.
пергола. фабио
#6
Нет, ни разу не было выпадения или ремонта штекеров Ikea… Только с моими датчиками xiaomi, когда я менял канал zigbee
123
(Тарас)
#7
Если устройство zigbee питается от сети, оно, скорее всего, будет работать и как конечный узел, и как маршрутизатор (см. это видео Андреаса Списса). Большинство лампочек zigbee будут функционировать как маршрутизаторы и пересылать сообщения на устройства, удаленные от координатора.
Если устройство zigbee питается от батареи, оно будет работать как конечный узел, но не как маршрутизатор (это разрядит батарею устройства).