Сетевой координатор Zigbee или первый шаг к резервированию сервера Умного дома
Ранее, в статье Делаем безоблачный умный дом на базе Home Assistant я описывал, как сделать USB координатор сети Zigbee в системе Home Assistant. С тех пор на рынке появилось множество готовых координаторов, к примеру Sonoff Zigbee Dongle-P на базе чипа TI CC2652P и Sonoff Zigbee Dongle-E на базе чипа EFR32. Эти устройства не требуют дополнительных программаторов и процедуры прошивки. И казалось бы вот оно наступило счастье, но у такой конфигурации есть проблема — при выключении/зависании сервера умного дома переключиться на резервный сервер с другим координатором нельзя. Решение лежит на поверхности — нужен сетевой координатор. И ребята из ZigStar это сделали
Схема резервирования проста, ее настройку планирую описать в следующих статьях. В нормальном режиме работы вся логика умного дома выполняется на основном сервере, резервный сервер периодически пингует основной (для примера, есть несколько вариантов). Аддоны Zigbee2mqtt запущены на обоих серверах к одному и тому же сетевому координатору. Команды к координатору отправляет основной сервер.
В аварийном режиме работы резервный сервер определяет, что основной не доступен и берет на себя выполнение логики умного дома, в том числе и отправку команд на сетевой координатор.
Существует несколько вариантов сетевых координаторов:
ZigStar LAN Gateway работает по LAN, но требует питание по USB
ZigStar LilyZig POE поддерживает два режима работы координатора: LAN или USB, питание так же либо по USB, либо POE (по сетевому кабелю Ethernet)
Второй вариант оказался для меня наиболее интересен, так как позволяет размещать координатор практически в любом месте без привязки к розеткам. Я было дернулся его заказать, но товар в РФ не доставляется, а значит будем делать сами по инструкции автора на GitHub
Итак, характеристики устройства:
— питание 802.3af PoE или USB C (нельзя подключать одновременно POE и USB)
— чип CC2652P TI усиление +20дБ
— 2 режима работы: LAN/POE координатор или USB координатор/маршрутизатор
— передача состояния устройства по MQTT (температура, )
— поддержка Zigbee2mqtt и ZHA
— обновление прошивки с помощью программы ZigStar Multi Tool без необходимости прямого доступа к устройству.
Сборка устройства
Основой выступает готовая плата LILYGO® TTGO T-Internet-POE На на ней распаян LAN/POE и WiFi модуль ESP32, обеспечивающий сетевые функции LAN, WiFi, передачи состояния устройства по MQTT и веб интерфейс
Вторым этажом идет Zigbee плата
Плату можно заказать на производстве. Ссылка на Gerber файл для заказа
На плате необходимо распаять:
Модуль Zigbee RF-STAR RF-BM-2652P1/P2 Автор рекомендует именно этот модуль и под него вверху ссылка на плату, но есть вариант с Ebyte E72-2G4M20S1E
— порт USB Type C
— чип USB to UART и обвязку к нему CH340B. Внимание, чип нужен со встроенным кварцем, в данном случае с литерой B
— датчик температуры с обвязкой DS18B20
— DC-DC преобразователь на 3.3V AMS 1117
— SMA разъем антенны Размер разъема выбирается в зависимости от толщины платы. В моем случае это 1,6мм
Ссылка на весь BOM лист. В теории его можно загрузить на LCSC, но доставка в РФ опять же сейчас не работает, поэтому идем на Алиэкспресс.
Пайка не представляет большой сложности, все SMD компоненты типоразмера 0806 и 1210, которые спокойно паяются даже обычным паяльником.
Прошивка
В готовое устройство необходимо залить две прошивки: для чипа ESP32 и для чипа RF-STAR RF-BM-2652P1/P2
Для заливки прошивки в ESP32 необходимо установить джампер в позицию, указанную на фото и подключить ВЕРХНИЙ USB к компьютеру.
Я использую NodeMCU-PyFlasher. Открываем программу, выбираем порт и файл ZigStarGW_v0.6.8.full.bin. Версия прошивки может отличаться.
Для заливки прошивки в RF-Star необходимо установить джампер в позицию, указанную на фото и подключить ВЕРХНИЙ USB к компьютеру.
Используем программу ZigStar Multi Tool. Открываем программу, выбираем порт и файл
CC1352P2_CC2652P_launchpad_coordinator_20220219.hex (дата может отличаться). Устанавливаем галочки Erase, Write, Verify и нажимаем Start.
После окончания прошивки, для использования устройства в режиме LAN необходимо установить джампер в следующую позицию.
Перезагружаем устройство и переходим в веб интерфейс. на главной странице показан статус устройства, количество подключенных клиентов zigbee2mqtt, ip адрес и атрибуты LAN подключения, статус подключения по MQTT
Подключение к Zigbee2Mqtt
Подключаем устройство в сеть, заходим в веб интерфейс ZigStar в раздел Serial. Нас интересует открытый сетевой порт. По умолчанию это 6638
Переходим в HomeAssistant, аддон Zigbee2Mqtt. В настройках прописываем сетевой адрес и порт устройства.
Внимание, при смене координатора в подавляющем большинстве случаем придется перепривязывать устройства.
Перезапускаем аддон, привязываем устройства.
Передача статуса и состояния ZigStar в Home Assistant
Устройство передает параметры состояния по MQTT, аналогично главной странице веб интерфейса. Для этого необходимо настроить MQTT подключение к брокеру умного дома.
В Home Assistant автоматически появится устройство Zig Star. Возможные команды и сенсоры показаны на скриншоте
В итоге я показал, как сделать устройство, способное работать в режиме LAN координатора с возможностью размещения в любом месте без привязки к розеткам или серверу и обеспечивающее возможность резервирования и повышения отказоустойчивости сервера умного дома Home Assistant
В заключении небольшое видео подключения устройств к сетевому координатору.
- Сигнатурный радар-детектор с GPS TrendVision Drive-1000 Signature LNA
- Светодиодный светильник Estares Atmosfera 38W R-380-TWIST-220-IP20 (без плафона)
- Две "Кроны" за 15 минут
- Фиксаторы простыни + лайфхак по их установке. "Всем, кто ложится спать - спокойная ночь...".
- Android TV BOX H96 Max X3 Amlogic S905X3 (4/32 GB)
- Аккумуляторная батарея для электроинструментов Makita 18 В 5 Ач
- Тестирование NiZn аккумуляторов PKCELL
- Интересный мини-компьютер HP ProDesk 600 G3 mini на базе десктопного процессора
- Защита очевидных и неочевидных мест кузова автомобиля от повреждений
- Автомобильное зарядное устройство Toocki за 40 рублей