SLS gateway. Или сказ о том как из китайского сделать шлюз здорового человека.
Обзор и личное мнение о реализации самодостаточного Zigbee шлюза. Переделка Xiaomi шлюза.
Когда речь заходит о строительстве умного дома многие без лишних сомнений выбирают решения от Китайского бренда Xiaomi и его суббрендов. Замыкаются в его экосистему и упираются в ее ограничения. А ограничений, к слову сказать, предостаточно. И назвать Xiaomi дом по-настоящему умным, честно говоря, язык не поворачивается. Особенно в сравнении с такими монстрами автоматизации как nodered или homeassistant.
Но вот незадача, как только умный дом Xiaomi исчерпает себя (у меня это случилось менее чем через 3 недели), начинаются поиски альтернативного решения. Есть Xiaomi оборудование, в лице неплохих датчиков и исполнителей. Есть шлюз, как качественное законченное решение со своим блоком питания, RGB подсветкой, но бездарной подсистемой автоматизации, построения логических зависимостей. Да еще и с китайским облаком (потому как жить в RU сегменте теоретически можно, но дико ограниченно, в виду отсутствия большого количества устройств).
Первое с чем сталкивается, как вариант решения, любой такой человек — использовать в качестве шлюза стик TI CC2531. Дешево и сердито. Прошивается не только через специализированные платы для прошивки, но даже через «малину» и arduino. Что делает его автоматически самым доступным из открытых zigbee шлюзов. Но…
Но у устройства есть куча ограничений, начиная от собственной мощности сигнала и заканчивая количеством устройств, которые будут подключены к нему одновременно (даже неактивные). И эти факторы делают из него прекрасную первую ступеньку, но никак не продуктивное решения для настоящего умного дома.
Следом идет, пожалуй, крайне популярный V3 стик. Который уже самому так просто не прошить (требуется доп. оборудование — прошивальщик), да и собирать придется самостоятельно, в отличии от предыдущего коллеги по цеху сс2531. Можно купить собранным силами увлеченных людей, но заводской реализации нет. Стик V3 основан на двух чипах от все той же TI — CC2538 с усилителем CC2592. Что решает обе основные проблемы cc2531, в лице дальности и количества устройств соединенных с шлюзом.
Но, к сожалению, нет предела совершенству и у V3 стика тоже есть свои минусы. Например то, что необходимо устройство держать рядом с вашим центром умного дома (малина, NAS, компьютер/сервер). Устройство является лишь аппаратным радиомодулем и вся логика, ровно, как и набор устройств, реализованы в программном решении zigbee2mqtt (и аналогичных).
Для решения этих и некоторых других проблем и появился SLS шлюз.
SLS шлюз. Характеристики
Шлюз построен так же, на наборе чипов TI CC2538 с усилителем CC2592 (однако есть интенции поддержки других Zigbee микромодулей). На борту у него помимо zigbee части есть чип ESP32 с 2.4ГГц wifi и Bluetooth (но пока не используется в прошивке, будет поддерживать BLE). Существует несколько типов исполнения печатных плат. На мой взгляд вариант с адаптированной для Xiaomi шлюзов платой является наиболее удачным и по-настоящему пользовательским. Лаконичный внешний вид, использование светодиодной ленты самого шлюза, помимо собственно блока питания, превращают решение использовать SLS в теле Xiaomi шлюза самым лучшим.
Gateway
Web site
Zigbee шлюз
Шлюз предназначен для работы с устройствами ZigBee. В основе лежит контроллер ESP32 от Espressif. В качестве связущего звена протокола Zigbee выступает тандем чипов от Texas Instruments ZIgbee CC2538 и усилителя сс2592.
Общие сведения
Шлюз выполняет роль координатора Zigbee и позволяет:
1) Использовать большинство доступного Zigbee оборудования. Список поддерживаемого и протестированного обрудования доступен по ссылке. Новое оборудование может быть добавлено после обсуждения с нами.
2) Отказаться от необходимости использования облаков производителей устройств. В качестве альтернативы, предлагается использовать облачный сервис Smart Logic System, либо нативные приложения для Android и Apple iPhone (в разработке).
3) Использовать распространенные локальные системы автоматизации, такие как MajorDomo, ioBroker Smarthome, HomeAssisiant, Node-Red и др. Для интеграции с этими системами используется протокол MQTT. Структура топиков протокола MQTT идентична проекту zigbee2mqtt, поэтому для использования и интеграции шлюза нет необходимости изучать скриптовые языки указанных выше систем, так как протокол в основном уже доступен с помощью модулей расширения.
Дополнительные возможности шлюза через Web интерфейс
Управление и просмотр сведений устройств через Web интерфейс шлюза по адресу http://ipadress (80 порт). Возможность отображения источника питания, уровня заряда батареи, доступных EndPoint устройств в web-интерфейсе.
Создание локальных автоматизаций внутри шлюза SimpleBind.
Возможность написания сценариев на языке Lua Книга по Lua на русском языке.
Возможность создания групп для управления несколькими устройствами одновременно (в разработке).
Возможность задавать имя устройству. Если вы планируете использовать шлюз с локальными системами автоматизации, рекомендуется установить галочку отправки адреса вместо устройств.
Возможность удаления устройства.
Возможность отображения маршрутов в web-интерфейсе (в разработке).
Возможность установить прямые связи Bind между устройствами ZigBee без участия координатора для управления конечными устройствами.
Возможность управлять звуком (при наличии распаянного усилителя) (в разработке)
Возможность изменить PanId и номер канала.
Возможность задать имя шлюза в сети.
Возможность перехода шлюза в режим АР при нажатии аппаратной кнопки в течение 2-5 секунд после подачи питания.
SLS Zigbee Gateway — очень интересный Zigbee шлюз для локальных систем умного дома
Если вы увлеклись построением умного дома на устройствах Zigbee, и если при этом еще пытаетесь отвязаться от облачных сервисов производителей датчиков, то наверняка у вас вставал вопрос — какой шлюз выбрать.
Основная проблема заключается в том, что редко какой брендовый шлюз дружит с устройствами конкурирующих фирм, хотя в стандарте zigbee 3, или как там это называется — описание, требования или. в общем не важно, вроде прописано что должна быть совместимость независимо от производителя, но в подавляющем большинстве случаев производители забивают на этот пункт, либо делают совместимость только для галочки — очень урезанной и ограниченно используемой.
Кроме того данные шлюзы, зачастую весьма проблематично подключить в альтернативные системы управления. И даже если в итоге всё подключается без проблем (например, как шлюз третьей версии от Xiaomi — как Home Kit шлюз в Home Assistant), то могут возникнуть сложности с подключением датчиков и прочего zigbee оборудования в эту систему. Далеко за примерами ходить не нужно — новые беспроводные выключатели Aqara Opple — ни в какую не хотят обнаруживаться, кнопка Aqara — не воспринимается как кнопа и наверняка есть еще куча проблемных устройств.
Существует очень популярный проект — Zigbee2mqtt, который позволяет из любого компьютера (как одноплатного, так и обычного) сделать Zigbee шлюз, который нормально дружит с альтернативными системами. Но в нём есть существенный недостаток — он работает на компьютере, что в какой-то степени усложняет систему и снижает надежность. Также если у вас всё работает на обычном компьютере, а не на Raspberry Pi, то могут возникнуть существенные трудности с расположением такого шлюза, что бы он нормально добивал до всех устройств.
Также существуют в природе комбинированные шлюзы для z-wave и zigbee устройств, но они относительно дороговаты.
Есть еще вариант, который на мой взгляд, на данный момент один из лучших, по крайней мере для пользователей Home Assistant — это проект под названием SLS Zigbee Gateway. О нём сегодня и поговорим.
Данный шлюз — разработка ]]> modkam.ru ]]> и ]]> slssys ]]> (@avenit).
При наличии желания и прямых рук можно собрать шлюз самостоятельно, он сделан таким образом, чтобы можно было купить все компоненты на AliExpress. Также в открытом доступе находятся gerber файлы для заказа печатных плат. Но как показал подсчет, если шлюз нужен в единственном экземпляре то, возможно его дешевле купить собранный, у умельцев. Продают их в ]]> Telegram ]]> .
Я приобрел уже готовый вариант. Приехал он прошитый и с корпусом, напечатанном на 3D принтере.
Корпус представляет собой небольшую шайбу, диаметром 7.5см, и высотой — 1.2см.
Сбоку корпуса находятся кнопка, отсек для карты памяти, а также порт Micro USB для питания.
Разбирается он без отвертки. 2 части держатся на штифте. К слову, в моем случае очень плотно, но тут всё зависит от того на каком принтере и каким материалом будет осуществляться 3D печать.
Размер и форма платы — выбраны не просто так. Она разработана, чтобы можно было заменить оригинальную плату в шлюзах Xiaomi. Но также данный шлюз вполне может работать самостоятельно, как в моём случае.
К слову, есть еще прямоугольные, альтернативные версии плат.
Существует 2 версии шлюза с поддержкой карт памяти и без неё. У меня версия с поддержкой карт памяти. Они добавлены для будущего функционала, такого, например, как воспроизведение аудио файлов. На момент снятия видео данные функции еще не реализованы.
Устройство работает на ESP32, в качестве Zigbee модуля выступает CC2538 с усилителем CC2592, выполненным в виде одного модуля. Данный Zigbee модуль поддерживает 3ю версию протокола, а значит к нему можно подключать новые устройства. Плата спроектирована так, что возможно использование и других модулей. В моём случае также используются внешние антенны, что увеличивает дальность действия.
Кстати, в ESP32 имеется поддержка Bluetooth, и в будущем разработчики планируют добавить возможность его использования.
Обмен данными данного шлюза с системой управления умным домом осуществляется через mqtt и через Rest API. Для mqtt топики повторяют аналогичные в zigbee2mqtt, что может значительно облегчить процесс настройки датчиков в Home Assistant.
На текущий момент поддерживается около 400 устройств и список постоянно расширяется. Народ пишет, что при одновременном подключении до 40 устройств — работа стабильная. Самостоятельно я это не поверял, т.к. пока не обзовелся таким количеством датчиков и прочего оборудования, работающего по Zigbee.
Web интерфейс выглядит довольно симпатично. На вкладке главная отображается информация о системе.
Недавно добавился раздел UI — тут можно, к примеру выводить показания датчиков в удобном виде, а также осуществлять простое управление, например включать релюшки, лампы и т.п.
В разделе Zigbee осуществляется управление устройствами.
Здесь помимо простого просмотра устройств, переименования, добавления и удаления, можно также настроить взаимодействие между устройствами напрямую (функция Direct bind) — при такой настройке даже если координатор, т.е. sls шлюз станет недоступен — действия будут выполняться, т. к. устройства будут общаться между собой напрямую. Очень хорошая функция, например можно повесить объединить выключатель и реле/лампу, но на сколько мне известно, далеко не во всех устройствах такое работает.
Еще в этом разделе можно посмотреть карту устройств, где отображается топология. Если у вас имеются zigbee роутеры, к примеру какие-нибудь умные розетки, расширяющие покрытие — это будет отражено на схеме — будет показано, что подключено напрямую к координатору, а что соединяется через роутер.
Кроме того, тут можно настроить специфические параметры zigbee, например указать канал, включить авто обнаружение mqtt, и т. д. Если у вас появится этот шлюз, и вы подключите к нему кнопки или выключатели — обратите внимание на параметр Clear States — он по умолчанию отключен, и из-за него могут возникнуть сложности с определением нажатия на кнопки в Home Assistant. Чтобы избежать проблем — лучше включить его.
Во вкладке settings, как вы уже наверное догадались, осуществляется настройка шлюза — подключение к WiFi, настройка параметров mqtt, время и параметры модулей.
Наконец из вкладки Actions можно обновить прошивку, сделать бэкап, сохранить настройки, перезагрузить шлюз и управлять файлами.
Данный шлюз поддерживает LUA скрипты, что даёт возможность делать простые автоматизации непосредственно на шлюзе, не используя при этом систему управления умным домом. В некоторых случаях данная возможность может оказаться очень удобной и полезной.
Давайте попробуем добавить какое-нибудь устройство. Для этого во вкладке Zigbee нужно включить обнаружение, после чего нужно перевести подключаемый девайс в режим сопряжения. Дальше следуем указаниям на экране — обычно подклюение производится самостояетльно, но иногда бывает нужно будить датчик нажатием на кнопку, о чем будет сообщаться.
После добавления, если включено авто обнаружение датчик автоматически появится в Home Assistant. По умолчанию он там появится так, что в качестве имени будет использоваться его сетевой адрес. Чтобы было чуть удобнее, в настройках zigbee можно включить Use Friendly Name. После чего можно переименовать устройство, удалить из HA и перезапустить шлюз — теперь устройство появится с человеческим именем.
Тут есть небольшая недоработка — при добавлении нового устройство оно появляется в HA сразу, то есть до того, как вы его переименуете, поэтому, процедуру с удалением и перезагрузкой шлюза нужно проводить всегда, при добавлении. Все показатели датчика можно также смотреть и на шлюзе.
Короче, подведем итог. Пользуюсь шлюзом уже месяца полтора, и пока у меня только положительные эмоции. Работает он стабильно — ничего не виснет, устройства не отваливаются, всё чётко и быстро. В устройствах имеются все функции, какие должны быть — к примеру, если помните из обзора на датчик движения Aqara — в Home Assistant, при подключении его как Home Kit устройство, не подбрасывались показатели освещенности. Здесь пробрасываются. Также нет пробллем с выключателями и кнопкой.
Еще проект очень активно развивается, и в планах у разработчиков есть довольно много идей, которые они хотят реализовать.
В общем, если вы пользуетесь альтернативными системами, такими как Home Assistant или Major Domo — то как минимум посмотреть на этот шлюз вы просто обязаны.