Подключаем новый Xiaomi Gateway 3 к Home Assistant без паяльника и смс

    Новый хаб от Xiaomi с поддержкой технологий Zigbee 3, Bluetooth Mesh, HomeKit и его подключение к достаточно популярной системе умного дома — Home Assistant, интересует?



    Введение


    Устройства умного дома можно встретить на разных беспроводных протоколах.


    Важно понимать, что поверх каждого протокола производители устройств накладывают что-то своё. А это значит, что нельзя выбрать какой-то один протокол и все устройства всех фирм будут автоматически поддерживаться.


    Wi-Fi


    Чаще всего новички выбирают устройства на технологии Wi-Fi. Ведь Wi-Fi роутер сегодня есть у всех. Умным устройством можно пользоваться сразу после покупки. Но тут есть нюанс: в количестве устройств слабость Wi-Fi. Роутеры от провайдеров в большинстве своём тот ещё хлам, способный справиться с 1-2 десятками устройств. И пять новых умных лампочек могут быть проблемой для всей сети.


    Здесь выходом будет хороший двухдиапазонный роутер. Весь умный дом можно повесить на диапазон 2.4 ГГц, а мультимедиа-устройства (смартфоны, ноутбуки, телевизоры, колонки) на 5 ГГц.


    Bluetooth


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


    В таких случаях производители рекомендуют покупать BLE Gateway. Это устройство, которое будет посредником между Bluetooth и серверами производителя. Здесь уже далеко не все пользователи соглашаются на дополнительные траты и лишнюю железку в доме.


    Некоторые производители встраивают возможности BLE Gateway в камеры и лампы, закрывая проблему лишних затрат и лишнего устройства в доме.


    Zigbee


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


    Дополнительную проблему составляет, что каждый такой Gateway поддерживает только дочерние устройства своего производителя. Купив устройства Philips Hue, IKEA, Sonoff, Xiaomi и Tuya, вы, скорее всего, должны будете докупить пять Gateway соответственно.


    Эта технология заслуживает внимания по следующим причинам:


    • Беспроводные датчики довольно маленькие и в последнее время не такие и дорогие: 500 рублей за простейший датчик или кнопку — это реальность, Xiaomi и AliExpress сделали своё дело.
    • Беспроводные датчики могут продержаться на одной батарее несколько лет, без шуток — лет!
    • В количестве Zigbee устройств их сила: технология поддерживает Mesh, проводные устройства, скорее всего, будут ретрансляторами сигнала между Gateway и удалёнными датчиками, заодно снимая нагрузку с самого Gateway.
    • Технология поддерживает прямое управление в обход Gateway, можно связать кнопку и лампочку. В случае выхода Gateway из строя управление светом продолжит работать. Правда далеко не все кнопки это умеют.

    Xiaomi


    Фирма Xiaomi сделала многое для продвижения технологии Zigbee в альтернативных системах умного дома. Их старенький Xiaomi Gateway 2 (DGNWG02LM, lumi.gateway.v3) имел на борту "режим разработчика", который открывал локальный протокол доступа к управлению Zigbee устройствами этого шлюза. Интеграции этого протокола есть в множестве open source систем.


    В евро-версии этого шлюза Xiaomi Gateway EU (DGNWG05LM, lumi.gateway.mieu01), а также в обновлённой версии Xiaomi Gateway 3 (ZNDMWG03LM, lumi.gateway.mgl03) этого протокола нет.


    Обновлённая версия шлюза получила новый чип на Zigbee 3 (EFR32MG1B), а также поддержку технологии Bluetooth Mesh и HomeKit. В HomeKit поддерживаются не все устройства, будьте внимательны.


    Xiaomi Gateway 3


    В отличие от всех остальных шлюзов, обновлённая версия имеет уникальную особенность: на ней программно можно открыть Telnet-доступ. Доступ открывается только при наличии Mi Home токена, так что всё вполне секьюрно.


    В этом шлюзе стоит чип серии EFR32 от фирмы Silicon Labs. Те в свою очередь поставляют вместе с чипом набор SDK. В составе SDK есть MQTT-транспорт, обеспечивающий доступ к Zigbee проколу из любого ПО, установленного как на шлюзе, так и за его пределами.


    По умолчанию MQTT-брокер не доступен извне, но у нас ведь теперь есть Telnet!


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


    В итоге получился такой вот компонент для Home Assistant — XiaomiGateway3.


    Он автоматически включает Telnet и публичный MQTT, используя токен Mi Home.


    Сейчас токен нужно получать нехитрым образом (инструкция в readme). Но в будущем я планирую добавить получение токена с серверов Xiaomi, используя аккаунт Mi Home. Ведь недавно в сети появилась рабочая реализация авторизации в их облаке.


    Сейчас компонент получает список устройств и последние значения их атрибутов с Хаба. Но в дальнейшем я планирую добавить получение списка устройств из облака. Там есть пользовательские названия всех устройств.


    BLE Gateway


    С этим пришлось повозиться. Работа с Bluetooth-устройствами не отражается в MQTT. Зато все данные отражаются в консоли. Поэтому компонент подключается к хабу через Telnet отдельным потоком, перезапускает утилиту работы с Bluetooth и читает её вывод в реальном времени. Это самый стабильный способ, что я нашёл. В syslog данные от этой утилиты попадают с перебоями. Моих знаний Linux не хватает, чтоб понять, почему так происходит.


    Первым делом компонент научился поддерживать стандартный набор Bluetooth-устройств Xiaomi: датчики температуры, анализаторы почвы и освещенности, фумигатор.


    А пару дней назад в нём появилась поддержка умных Bluetooth-замков. На сегодняшний день это единственный из известных мне способов подключить BLE-умный замок Xiaomi в альтернативную систему умного дома.


    Чайника у меня нет, но присылайте логи — добавлю и его. Правда чайники Xiaomi не поддерживают функцию удалённого включения, это большой минус.


    BLE-устройства и их атрибуты отображаются по мере поступления данных. Когда появится поддержка облака — полный список BLE устройств с их моделями, именами и последними посланными данными можно будет получить оттуда. Такая информация на хабе не хранится.


    Поддержка Bluetooth Mesh ламп пока в разработке. Работа с ними сильно отличается от BLE-устройств.


    Планы


    Грандиозные.


    Нужно отладить работу хаба со всем списком официально поддерживаемых Zigbee-устройств. Добавить возможность настройки "тонких" параметров:


    • настройки хаба: например, мощность (и её можно сильно увеличить!),
    • изменение настроек дочерних устройств: режим логических кнопок на выключателях, чувствительность датчика вибрации и многое другое.

    Нужно добавить поддержку облака для получения токена хаба и полного списка Zigbee и Bluetooth-устройств.


    Нужно добавить поддержку Bluetooth Mesh ламп.


    И самое главное — добавить поддержку устройств других производителей. Да, это возможно. Мне удалось подключить все сторонние устройства, что у меня были, и управлять ими. Такие устройства не отображаются в Mi Home и HomeKit. Но управлять ими можно с помощью "сырых" Zigbee-команд.


    Для понимания полного масштаба проблемы такой поддержки загляните в исходники замечательного проекта zigbee2mqtt: devices, fromZigbee, toZigbee.


    Почти каждое устройство требует свой собственный обработчик. В случае с Xiaomi Gateway 3 и официально поддерживаемыми устройствами — роль такого обработчика выполняет софт хаба.


    Другие мои разработки можно найти на GitHub. Среди русскоговорящей аудитории наиболее популярный проект — YandexStation. Глобально очень хорошо себя зарекомендовал SonoffLAN. Но, думаю, XiaomiGateway3 его легко обгонит. За развитием этого и других моих проектов можно следить на моём канале Telegram.

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 42

      +2
      Огромное спасибо за проделанную тобой работу! Я уже почти решил отказаться от хабов xiaomi но ты их «вылечил» в моих глазах ))
        0
        А ещё может таки чатик для телеграм канала сделаешь? ;)
          0
          В сообществе уже есть несколько чатов по Home Assistant. В одном из них я даже Админ :)
            0
            Ну я тут больше про возможность комментирования. Если у канала будет привязанный чат — посты будут кросспостится туда и их можно будет удобно комментить ;)
            0
            Вот здесь ещё можно обсудить: t.me/xiaomi_gw_hack
          0
          Интересно, через что будут стабильней работать устройства Xiaomi, через USB свисток и z2m или через Gateway 3 и это модуль?
            0
            По отзывам розетки Xiaomi ломают работу сети через стик при длительном использовании. А через родной шлюз работают идеально. Но стики тоже бывают разные. И прошивки на них разные.
              0
              У меня сейчас пол квартиры по свистку. За полгода ничего не ломалось особо. Но конечно это может быть вопрос в девайсах. Но у меня там и розетки и кнопки.
                0

                Аналогично свистки сс2531 сс2538, проблем нет.

                  0
                  Вот, чтоб не быть голословным:
                  github.com/Koenkk/zigbee2mqtt/issues/4392

                  И таких примеров много. И на родном хабе подобное не повторяется.
              0

              Оно при этом работать без интернета может? Я очень хочу сделать-таки smart home, но без участия посторонних серверов, и с минимальным количеством кулибинства.

                0
                Плотно не успел протестировать работу без Интернета. Компоненту интернет не нужен. Разве что ПО самого хаба начнёт глючить, если не сможет подключиться к своим серверам.

                Плюс, в отличии от Gateway 2, компонент работает даже через VPN (когда хаб и Home Assistant в разных физических сетях).
                  +1

                  Тогда вас ждут Home Assistant, стик от deconz (conbee 2, например) и зигби устройства. Им не нужен будет интернет.

                    0
                    Имхо, связка cc253x+z2m все же лучше по списку поддерживаемых устройств как минимум
                      0
                      Кстати чип шлюза порядочно лучше чипа ConBee II. А последний в сообществе очень нахваливают по дальности, стабильности и количеству дочерних устройств.
                        +1

                        Чуть ниже назвали интересный вариант (Hubitat Elevation). Но, за ещё одно название спасибо. Я начал возиться с zigbee2mqtt, но приложение на ноде у меня вызвало глубокий docker-транс.

                        +1
                        Я недавно перевёл весь свой УД с SmartThings на Hubitat Elevation. Как раз из-за облаков. На Hubitat всё работает локально. В конце концов это готовое коммерческое устройство в поддержкой и большим комьюнити. Соответственно есть резервное копирование, обновления и тд.
                          0

                          Спасибо за название.

                            +1
                            А почему не Home Assistant?
                              0
                              Потому что HA — значит какой-то из свистков. Значит крутиться это будет на каком-то компе или в виртуалке. Значит надо ставить обновления каждый раз скрестив пальцы, чтобы что-нибудь не отвалилось. Всё же мне надо чтобы УД в первую очередь просто работал. Плюс к тому Hubitat — это маленькая такая коробочка размером меньше пачки сигарет с питанием от microusb. У меня сейчас нет сколько свободного времени, чтобы строить всё на OpenSource. Искать рецепты, бороться с прошивками стиков.
                              Да, для того чтобы всё в Hubitat заработало, тоже пришлось потратить много времени. Но один раз. Теперь вся автоматизация просто работает. И я бы не сказал, что функциональность хуже, чем в HA.
                                +2
                                А зачем ставить обновления? Можно так же настроить все один раз на HA и забыть.
                                  +1

                                  Не нужно никаких прошивок, рецептов и прочего. Raspberry Pi, стик или шилд от Phoscon, образ home assistant с официального же сайта их. Вообще ни разу не возникало желания залезть внутрь этой штуки и что-то править руками.

                            0
                            Если xiaomi принудительно закрыли LAN-mode для предыдущих gateway, то у меня есть подозрение, что и на это этом telnet тоже закроют. Лучше уж стиком и zigbee2mqtt.
                              0
                              Подозреваю, это был просто баг в одной из прошивок. Слышал, что на свежих партиях этой проблемы уже нет.

                              Я покупал хаб с этим багом. Порты были закрыты. И открыл я их без паяльника. Я не знаю, какие именно действия открыли порты, поэтому инструкцию написать не могу. Но слышал отзывы, как другим людям аналогично удавалось открыть порты без паяльника.
                                0
                                Мне товарищ буквально два дня назад писал, что у него у работающего рута, внезапно отрубился LAN-mode.
                                  0
                                  Пусть напишет мне в Телеграм, интересно узнать подробности.
                                  У меня больше года второй хаб в качестве основного без нареканий.
                                  Знаю человека, у кого таких хабов семь.
                                    0
                                    у меня 2 вторых хаба. Первый куплен на старте продаж. Второй через год. Оба отлично работают в lan mode без каких либо откатов. Прошивки все последние.
                              0
                              Работа конечно колоссальная проделана, за это огромный респект автору.
                              Но.
                              Если речь идет о Zigbee устройствах, а уж тем более о затаскивании их в HA, то ты либо сидишь на всей экосистеме Xiaomi с его шлюзом, либо уползаешь на проекты zigbee2mtt/zha. А что немаловажно, когда в сети есть и шлюз со своими устройствами и другой координатор со своими начинаются интересные чудеса. К тому же первом варианте круг доступных устройств ограничен, во втором выбор уже в раз шире.
                              У меня шлюз второго поколения выполняет только роль дверного звонка и некой моргалки/оповещалки.
                                0
                                В планах как раз добавить поддержку ZHA. Прошли времена, когда шлюзы Xiaomi это только устройства Xiaomi :)
                                  0
                                  Какое количество устройств максимально может он поддерживает по Zigbee?

                                  UPD нашел, как и старые 32 устройства.
                                  Сейчас в квартире у меня уже 27 + еще в пути 4 и еще будет докуплено как минимум 5. И это обычная такая московская 3-х комнатная квартирка с минимальным объемом датчиков и исполнительных устройств.
                                  Про дачу вообщу молчу…

                                  Шлюз Xiaomi хорош как старт, но потом из него вырастаешь.
                                    0
                                    В документации Mi Home они пишут 32 прямых соединений и 128 всего с учётом роутеров. Но понятное дело, нужно проверять на практике.

                                    Там внутри очень достойный чип, по характеристикам он лучше ConBee II и сравним с cc2538+cc2592.
                                      +1

                                      Ну если уж речь зашла за само железо в рублях, то уж точно дешевле купить уже прошитый 2538+2592.

                                        0
                                        Я про стоимость ничего не говорил. Но покупал третий шлюз ~1380 рублей включая доставку.

                                        Да и это не война со стиками. У меня самого есть два стика. Правда, пока не было необходимости их распаковать :)
                                0
                                AlexxIT По поводу авторизации в клауде, встречал подобный код уже на петоне.
                                вот ссылка: github.com/Xento/valeCLOUDo/blob/27a7c7cd10a8583ed4b8554ed682e0bc4147d697/lib/SmarthomeAPI.js Может пригодится ) и ждем от тебя твое реализации!
                                  0
                                  Спасибо. Я привёл ссылку на обсуждение. Там есть ссылка на готовую библиотеку. Я уже пробовал — всё работает. В списке устройств из облака очень много всего интересного.
                                    0
                                    о, это очень интересно,
                                    а можно ссылочку на GitHub этой библиотеки?
                                    не нашел в телеграмме в переписке (
                                      0
                                      Ссылка на обсуждение в статье была. А библиотека вот github.com/squachen/micloud
                                        0
                                        Спасибо
                                  0
                                  Положил hacs в /home/homeassistant/.homeassistant/custom_components/, перезапустил HA, но в интеграции hacs не появился. Что можно посмотреть?
                                    0
                                    Плюсик нажимали в окне интеграций? В readme есть ссылка на видео по установке.
                                    0
                                    Купив устройства Philips Hue, IKEA, Sonoff, Xiaomi и Tuya, вы, скорее всего, должны будете докупить пять Gateway соответственно.
                                    Или взять тот же deCONZ Conbee 2 и получить работу практически всего перечисленного набора «из коробки».
                                      0
                                      Да много чего можно взять. Разные стики cc25xx, Sonoff ZBBridge, SLS-шлюз, евро шлюз Xiaomi, который сейчас многие сети даром отдают, только заберите. Последний по железу очень хорош. Там так же кроме Zigbee есть Bluetooth.

                                      Каждое решение имеет свои плюсы и минусы и конечно найдёт своего пользователя.

                                    Only users with full accounts can post comments. Log in, please.