Собираем DIY шлюз для Zigbee устройств

Вступление


Пока крупные производители конечных устройств Zigbee в борьбе за кошельки пользователей имитируют поддержку оборудования сторонних производителей, группы энтузиастов изучают стандарты протоколов и изобретают "альтернативные" всеядные программные и аппаратные решения для работы с устройствами Zigbee.


image


Наибольший толчок развития DIY шлюзам дал проект zigbee2mqtt. На момент написания заметки в проекте реализована поддержка 785 устройства от 140 производителей.


image


Поиск показал наличие интересных конкурентных проектов AqaraHub(написан на с, похоже, что развитие приостановлено, последний коммит был 5 месяцев назад), нативная поддержка в ioBroker (проект ведет наш соотечественник Киров Илья), нативная поддержка в Home-assistant (поддержка появилась после появления библиотеки zigpy, активно развивается, но пока далека от совершенства). Обзор программных шлюзов хорошо разобран в интернете, имеется множество статей, желающий найдет информацию по тэгам в конце статьи.


После того, как zigbee2mqtt набрал достаточную популярность, пользователи ощутили и недостатки "программных" шлюзов. Среди наиболее заметных можно выделить следующие:


  1. необходимость использования отдельного сервера или одноплатного компьютера raspberry или аналога;
  2. на одноплатном компьютере для работы USB устройств нужен хороший блок питания, необходимо предусмотреть охлаждение одноплатного компьютера, также требуется карта памяти хорошего качества с достаточным свободным местом. При использовании одного мини-компьютера для "программного" шлюза и системы управления умным домом, необходимо следить за наличием свободного места на карте памяти, которое может внезапно заполниться логами или другими файлами;
  3. загрузка и поддержка актуальности версий интерпретатора и библиотек Node.JS. Обновление версий zigbee2mqtt производится из консоли, при обновлении есть необходимость в создании резервной копии конфигурации и последующего обновления;
  4. отсутствие визуального интерфейса из коробки.

image


Все указанные недостатки были отмечены группой энтузиастов, которые постарались на базе доступных для заказа на Aliexpress комплектующих разработать альтернативный DIY Zigbee шлюз. Использование аппаратного шлюза должно уменьшить количество сбоев, связанных с работой операционной системы и сделать более надежное решение, которое можно использовать из коробки. Для поддержки оборудования была написана прошивка SLS Zigbee Gateway, которая распространятся бесплатно. В настоящее время полноценно поддерживается работа более 100 видов устройств, список постоянно расширяется.


Ведется работа по наполнению и актуализации руководства по использованию шлюза. Уже сейчас реализована возможность использования сценариев на языке lua (доступны функции работы с сервером MQTT, вызов url методом POST или GET, изменение состояний устройств в зависимости от состояний устройств). Для интеграции с системами умного дома доступен поддерживаемыми почти всеми системами протокол MQTT. Для ускорения интеграции устройств шлюза в системы умного дома, структура топиков полностью соответствует структуре zigbee2mqtt.


Для интеграции с MajorDoMo разработано дополнение. Интеграция с Home-assistant описана в инструкции. В скором времени будет реализован механизм discovery для home-assistant. Также доступен вариант управления устройствами шлюза через HTTP API. В среднесрочной перспективе будет реализована работа с оборудованием BLE.


Стоит отметить, что имеются альтернативные прошивки и решения, имеющие в основе похожее причины для создания DIY шлюза. Ведется аналогичный проект на том же оборудовании по названием ZESP. К сожалению, обновления проекта Zesp для ESP32 свободно не распространяются, поэтому оценить текущую функциональность не представляется возможным.


Также команда авторов прошивки Tasmota запустила проект реализации подобного шлюза на базе микроконтроллера ESP8266 и трансивера сс2530.


Самостоятельная сборка шлюза


В качестве аппаратной начинки шлюза используется современный микроконтроллер ESP32-WROVER-B от Espressif, который согласно даташиту с сайта производителя может одновременно работать с WiFi и BLE, имеет достаточный для работы шлюза объем оперативной памяти и хорошую производительность. Еще одной полезной особенностью данного чипа является доступность написания кода в Arduino IDE или PlatformIO, а также его цена.


image


Работоспособность протокола Zigbee обеспечивает трансивер от Texas Instruments сс2538 с усилителем сс2592. Пользователем @Jager_f было проведено тестирование дальности связи беспроводной кнопки от компании Xiaomi, которое показа показало до 800 метров уверенного приема на открытой местности.


image


Главным преимуществом трансивера является многофункциональность. Он может работать как через встроенную эмуляцию USB, так и через UART. Для использования UART была написана прошивка.


Более подробно информация по перепрошивке разобрана в статье Прошиваем СС2538 с помощью J-Link на сайте modkam.ru.


Также существуют готовые модификации плат для Raspberry через UART.


image


Схема подключения ESP32 и сс2538 сс2592 указана на рисунке:


image


Готовые герберы и файлы для заказа плат можно взять на сайте modkam.ru


Отличную видео-инструкцию по сборке шлюза подготовил Руслан Надыршин на своем канале "Электроника в объективе"


image


Имеется "альтернативный" (прямоугольный) вариант платы от @vofkindt


image


Также SLS Zigbee шлюз можно собрать на базе ESP32 и устаревшего модуля сс2530. Производительность старого чипа от TI сильно отстает от сс2538, поэтому рекомендуется их использовать только для ознакомления. Более подробная информация представлена в начале обсуждения темы по ссылке.


image


image


Готовые шлюзы, собранные энтузиастами, можно приобрести в группе в telegram


Начало работы


После прошивки zigbee модуля и ESP32, при включении шлюза создается точка доступа zgwABCD, где ABCD — последние символы MAC-адреса ESP32. Далее необходимо с помощью телефона подключиться к новой точке доступа и ввести реквизиты вашей сети Wi-Fi.


После того, как шлюз подключился к сети, в настройках вашего маршрутизатора можно уточнить его ip адрес. Интерфейс управления может быть доступен на 80 порту по адресу, который выдал маршрутизатор, например http://192.168.1.93.


image


После того, как вы подключитесь к шлюзу SLS Zigbee Gateway, вам необходимо зайти на страницу настроек GPIO микроконтроллера (из меню основной страницы Settings -> HW Setup) и выставить настройки портов GPIO. Ниже приведены настройки для круглой платы:


image


Если шлюз собран и прошит правильно, то на главной странице в разделе Zigbee вы должны увидеть Zigbee DeviceState: 9 [OK]


Сопряжение устройств


Добавление устройств zigbee осуществляется при включении режима сопряжения. Его можно осуществлять через меню Zigbee -> Join, либо командами mqtt или http (информацию можете найти в документации). Новые сопряженные устройства будут появляться нарастающим итогом, пока включен режим сопряжения.


image


Список всех сопряженных устройств можно открыть через меню Zigbee -> Devices


image


Можно посмотреть карту сети Zigbee -> Map


image


Интеграция с системами умного дома


Интеграция с системами умного дома доступна по mqtt или http. Структура топиков mqtt соответствует описанию zigbee2mqtt. Настроить адрес вашего mqtt брокера можно на странице Settings -> Link Setup -> MQTT SETUP


image


Дальнейшие шаги по интеграции с системами умного дома описаны в соответствующих инструкциях (Majordomo, home-assistant)


image


image


Настройка автоматизаций


В шлюзе SLS Zigbee Gateway доступны следующие виды автоматизаций:


  1. SimpleBind
  2. Скрипты Lua
  3. Binding средствами протокола Zigbee

Примеры использования


Оборудование самого популярного в СНГ китайского брэнда Xiaomi поддерживается шлюзом почти в полном объеме. К сожалению почти все оборудование этого брэнда (за исключением оборудования новой серии на zigbee 3) не поддерживает Binding согласно стандарта, т.е. не может работать автономно, без координатора. Как раз для таких случаев был создан вариант автоматизации на шлюзе SLS — SimpleBind. Он позволяет настроить автоматизацию внутри одной сети Zigbee, где решение об изменении состояния будет принимать шлюз SLS на основе простейших инструкций.


Ниже на скрине указан пример правила управления устройством (реле KS-SM001 от Ksentry Electronics) в зависимости от нажатия правой кнопки двухкнопочного пульта WXKG02LM от Xiaomi.


image


Датчики движения, дыма, открытия двери и другие можно настроить аналогичным образом. Более подробные сведения об использовании функции SimpleBind можно прочесть в описании функционала.


Оборудование компании Ikea, Philips, Nue, Gledopto, Trust и др. производителей имеют прошивки с поддержкой необходимых кластеров. Это позволяет настроить прямые автоматизации. Например круглый магнитный пульт IKEA ICTC-G-1 может самостоятельно без использования шлюза управлять почти всеми видами доступных ламп zigbee. Такая автоматизация на основе прописанных в прошивке устройств кластеров называется Binding. Обычно шлюз (координатор) настраивает связи устройств, далее устройства общаются между собой без использования координатора. Описание методов настройки связей устройств указаны в руководстве. С помощью Binding удалось настроить управление всеми лампами Ikea, Trust, Philips и даже лампочку Aqara ZNLDP12LM. Ниже на скрине пример привязки круглого пульта-диммера икея (беспроводной реостат) к имеющимся лампочкам zigbee.


image
image
image


После нажатия Bind каждая из ламп может менять яркость при вращении пульта-реостата.


Дальнейшие перспективы


  1. разработка облачного личного кабинета, где можно будет управлять своими устройствами;
  2. интеграция шлюза с голосовыми ассистентами Google Home, Яндекс Алиса и др.;
  3. реализация возможности считывания информации устройств BLE средствами ESP32;
  4. разработка шлюза для проводных интерфейсов с поддержкой протоколов MODBUS, DALI, DMX, DI-DO, 1-wire, I2C, счетчиком импульсов;
  5. разработка второй версии шлюза для Zigbee с поддержкой Ethernet и ИК портов;
  6. добавление поддержки групп.

Полезные ссылки


Руководство по использованию шлюза


Группа в Telegram


Канал новостей в Telegram


Список поддерживаемых устройств


Обзор от Alex Kvazis


Где купить


Обсуждение на форуме Majordomo

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 33

    –4
    Но почему lua для скриптов??? Почему не популярный питон? Мне кажется для таких вещей нужно использовать максимально популярный скриптовый язык, а не заставлять пользователей учить ещё один…
      +7
      В смысле еще один? lua достаточно часто встречается. Он изначально разрабатывался как втсраеваемый: очень простой и лёгкий, гибко интегрируется в другие яп (не знаю как сейчас, а раньше интерпритатор был вроде около 35кб).
      То что python так популярен — это не значит что его надо во все щели пихать, в embedded и подавно.
      +1
      У нас есть то же самое, но без посредника в виде esp и wi-fi, тот же модуль ZigBee с прошивкой координатора zigbee2mqtt, но установленный прямо на Raspberry Pi в корпусе на din-рейку, плюсом RTC, PoE и RS-485: ab-log.ru/forum/viewtopic.php?f=1&t=1719
      image
        +1

        Ваше решение выглядит здорово, сам на него недавно засматривался, но цена в 11к деревянных против цены в 3к за SLS...

          +1
          И у нас есть похожее, на базе Orange Pi Zero, с zigbee2mqtt, homebridge и своей интеграцией в Я.Алису из коробки, сейчас еще Google Home модерацию ждем.
          www.swiitch.ru/index.php?data=model_full&model_id=0
          image
            0
            С Алисой интеграция через облачный аккаунт, или колонка будет стучаться непосредственно в устройство по локальной сети?
              0
              Через облачный аккаунт, для интеграции в домашние системы есть REST JSON, MQTT и Modbus TCP
              0
              Расскажите пож-та, как решили вопросы с охлаждением и стабильностью Orange Pi zero. Хватает ли памяти 512 мб? Может был смысл заменить на Compute Module 3+ от raspberry как у Дмитрия Ермакова?
                0
                Для стабильной работы снизили скорость процессора, сам orange pi работает отлично, wifi на нем не очень, хотя и его хватало для серфинга 3х человек, когда модуль использовался в качестве точки доступа. Дома был uptime 45 суток пока электрики не выключили электричество на час, а так стояло бы и дальше. Насчет CM3+ думал, но это приведет к удорожанию, а выгода от этой замены сомнительна.
                Загрузка процессора и памяти видно на прикрепленном скриншоте, стоит z2m, homebridge и сервер для web интерфейса, MQTT, Modbus RTU, Modbus TCP

                0

                Покажите, что внутри пожалуйста.

                  0
                    0
                    Почему все таки OrangePi есть. же хорошие промышленные процы
                      0
                      Потому что дешевый, готовый модуль для использования и достаточно мощный. А какой бы вы посоветовали использовать?
                        0
                        Меня в этих модулях всегда напрягала ихняя не стабильность ( раз в пол года эти модуля точно вышибало… и нужно было заниматься перепрошивкой и прочим. Но с аргументом дешевый я уже не поспорю. Все остальное дороже.
                          0

                          Я первый opiz купил полтора года назад, попробовал — тормозит, глючит. А когда начал проект модуля ПЛК на din-рейку, решил его ещё раз попробовать, убрал из дистрибутива почти все, работу с сетью на своих скриптах сделал и зажал скорость немного и стало все хорошо, сам сервер прямо на ней собирается. Одно напрягает z2m и homebridge, из-за js, будет время начну переписывать z2m на c++. А в целом текущий модуль opiz пробыл в 24/7 почти год, с редкими сбросами из-за отключения электричества, максимальный uptime был 45 суток.

                +1
                Так это же не шлюз, а полноценный компьютер под сервер умного дома. И внутри не ESP32, а Raspberry Pi и много чего ещё в корпусе шириной два модуля на din-рейку.
                0
                Дмитрий, это крутая железяка и мы давно следим за развитием ваших решений на сайте ab-log, но основной посыл шлюза на esp32 — уменьшить количество точек отказа за счет отсутствия ос реального времени, носителя sd или emmc. Мы надеемся, что в ближайшее время получится отладить стабильную работу чтение информации с устройств BLE, тогда может возникнуть необходимость использования шлюза в каждой комнате. Также недавно появилась прошивка роутера для cc2538.
                  0
                  Не понял про ОС реального времени. ОС реального времени как раз логичное решение в данном случае, в противовес полноценному линуксу на одноплатных микрокомпьютерах. Что имеется ввиду? В SLS не используется операционная система совсем? Если да, то почему? Проект кажется довольно сложным, чтобы функционал ОС был востребованным.
                    0
                    В основе прошивки ESP32 лежит ОС реального времени, RTOS. Преимущество использования микроконтроллера над одноплатниками:
                    1) позволяет отказаться от ядра linux, отказаться от зависимостей версий пакетов программ;
                    2) уменьшить количество точек отказа связанных с питанием, внешними носителями информации, охлаждением;
                    3) отказаться от интерпретаторов (например node.js) в пользу более быстрого бинарного кода;
                    4) дешевизна решения, актуально в случаях, когда необходимо использование протоколов, где mesh пока только на бумаге (BLE).
                      0
                      Это все было бы красиво и замечательно если бы прошивка была написана на ИДФ. А она все таки написана на Ардуино ИДЕ с использованием ардуино фриртоса. А проблемы с ним существуют, и их достаточно сложно отлавливать и отлаживать. Ну и плюс преимуществ у чистого линукса все таки в разы побольше, нежели чем у еп32
                        0
                        Прошивка написана в platformIO, в том числе с использованием ESP-IDF.
                    0
                    уменьшить количество точек отказа за счет отсутствия ос реального времени, носителя sd или emmc.

                    Но ведь в ESP32 тоже есть флеш-память. Только она неизвестного качества, а учитывая стоимость…
                    При выходе её из строя придется менять весь модуль.
                    Я бы это к недостаткам приписал, а не к достоинствам.
                  +1
                  Статью прочитал, но так и не понял, существуют ли открытые прошивки шлюзов и устройств Zigbee, исходники которых можно загрузить и поковырять самостоятельно?
                    0

                    Исходники конечных устройств есть тут https://github.com/diyruz/freepad

                      0
                      В проекте Тасмоты есть реализация координатора на esp8266 с открытыми исходниками. Ну и zigbee2mqtt впереди паровоза.
                      +1

                      Проекты SLS и ZESP очень интересные.
                      Но большой недостаток в том, что исходники закрыты.
                      Черный ящик, в который не добавить ничего в случае чего.
                      Всё держится на энтузиазме авторов, который рано или поздно может закончится и эти коробочки могут превратится в тыкву, к сожалению.

                        0
                        SLS то открыт вроде, github.com/slsys/Gateway
                          0
                          Прошивка шлюза доступна только в виде бинарников. Распространение исходников не планируется.
                            0
                            Если просто поковырятся как работает зигби то держите одну из ссылок github.com/lmahmutov/ESP32-JN5169
                            ТОлько продолжать работу над ним я не буду. Ресурсов для полноценной работы с сетью у епс32 не хватает.
                            0
                            Жаль, что ссылка «приобрести на сайте Smart Logic System» ведет на страницу 404. Я бы купил готовое устройсво, которое не надо паять самому, но можно прошивать самому.
                              0
                              Пока можно приобрести собранные платы от членов сообщества, поэтому покупка через группу в телеграм. Как только будет отлажен процесс производства, будет запущен интернет магазин.
                              0

                              Я новый в умном доме, хочу этим заняться, дело в том, что мне надо z-wave для управления диммерами-выключателями света.


                              В Канаде США они только Zwave без нейтрали или Wi-Fi с нейтралью. Вообщем подключил один такой на ноль, но это не по правила.


                              Стоит мне купить хаб Самсунг смартсинг 3?


                              Буду ставить мажордомо в будущем

                                0
                                В РФ не так развит смартфингс, у нас больше интерес к более дешевому китайскому оборудованию, к которому и приходится писать свое координаторы. В США и Канаде да, смартфингс в топе.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое