Новый хаб от Xiaomi с поддержкой технологии Zigbee 3, Bluetooth Mesh, HomeKit и его подключение к довольно популярной системе "умный дом" — Home Assistant, интересно?
Умные домашние устройства можно найти на различных беспроводных протоколах.
Важно понимать, что поверх каждого протокола производители устройств накладывают что-то свое. А это значит, что нельзя выбрать ни один протокол, и все устройства всех фирм будут автоматически поддерживаться.
Чаще всего новички выбирают устройства по технологии Wi-Fi. Ведь сегодня у каждого есть Wi-Fi роутер. Интеллектуальное устройство можно использовать сразу после покупки. Но есть нюанс: количество устройств имеет слабость Wi-Fi. Маршрутизаторы от провайдеров в большинстве своем его барахла, способны справиться с 1-2 десятками устройств. А пять новых интеллектуальных ламп могут стать проблемой для всей сети.
Здесь на выходе будет хороший двухдиапазонный маршрутизатор. Весь смарт-хаус можно повесить на диапазоне 2,4 ГГц, а мультимедийные устройства (смартфоны, ноутбуки, телевизоры, колонки) — на 5 ГГц.
Устройства на Bluetooth новички выбирают так же охотно, потому что сегодня почти у каждого есть смартфон. Проблема в том, что диапазон Bluetooth очень ограничен. Уже из соседнего помещения не видно температуры на датчике, не включается чайник или лампочка.
В таких случаях производители рекомендуют вам приобрести шлюз BLE. Это устройство будет посредником между Bluetooth и серверами производителя. Здесь не все пользователи соглашаются с дополнительными расходами и дополнительным утюгом в доме.
Некоторые производители встраивают функции BLE Gateway в камеры и лампы, закрывая проблему дополнительной стоимости и ненужного устройства в доме.
От этой технологии чаще всего отказываются новички из-за необходимости покупки дополнительного устройства-посредника, так как ничто не работает с Zigbee в их доме. Некоторые производители встроили поддержку этой технологии в "умные" колонки, и я думаю, что это очень интересный ход.
Дополнительной проблемой является то, что каждый такой шлюз поддерживает только детей своего производителя. Если вы покупаете устройства Philips Hue, IKEA, Sonoff, Xiaomi и Tuya, вам, скорее всего, придется купить пять устройств Gateway соответственно.
Эта технология заслуживает внимания по следующим причинам:
- Беспроводные датчики довольно маленькие и в последнее время не такие уж и дорогие: 500 рублей за самую простую матрицу или кнопку — это реальность, Xiaomi и AliExpress выполнили свою работу.
- Беспроводные датчики могут прослужить на одной и той же батарее несколько лет, без шуток — лет!
- В количестве Zigbee устройств их сила: технология поддерживает Mesh, проводные устройства, скорее всего, будут ретрансляторами сигнала между шлюзом и удаленными датчиками, одновременно с этим снимая нагрузку с самого шлюза.
- Технология поддерживает прямое управление в обход шлюза, можно связать кнопку и лампочку. Если шлюз выйдет из строя, управление светом будет продолжено. Правда, не все кнопки могут это сделать.
Xiaomi много сделал для продвижения технологии Zigbee в альтернативных интеллектуальных домашних системах. Их старый Xiaomi Gateway 2 (DGNWG02LM, lumi.Gateway.V3) имел на борту "режим разработчика", который открывал локальный протокол доступа для управления устройствами Zigbee этого шлюза. Интеграция этого протокола есть во многих системах с открытым исходным кодом.
В европейской версии этого шлюза Xiaomi Gateway EU (DGNWG05LM, lumi.Gateway.Mieu01), а также в обновлённой версии Xiaomi Gateway 3 (ZNDMWG03LM, lumi.Gateway.Mgl03) этот протокол недоступен.
Обновлённая версия шлюза получила новый чип на Zigbee 3 (EFR32MG1B), а также поддержку Bluetooth Mesh и HomeKit. В HomeKit поддерживаются не все устройства, будьте внимательны.
В отличие от всех других шлюзов, обновленная версия имеет уникальную особенность: на ней можно программно открывать Telnet-доступ. Доступ доступен только с токеном Mi Home, поэтому все работает в режиме безопасности.
В этом шлюзе находится чип EFR32 серии от Silicon Labs. Те, в свою очередь, поставляются вместе с набором микросхем SDK. В состав SDK входит транспорт MQTT, обеспечивающий доступ к проколу Zigbee из любого программного обеспечения, установленного на шлюзе и за его пределами.
По умолчанию MQTT-брокер не доступен извне, но теперь у нас есть Telnet!
У брокера есть две корневые темы: "сырые" данные Zigbee и обработанные данные Xiaomi. Я решил использовать обработанные данные за основу. Атрибуты устройств описаны в псевдокодах, но они все равно легче понятны человеку, который ничего не понимает в Zigbee.
В результате у нас появился такой компонент для домашнего помощника — XiaomiGateway3.
Он автоматически включает Telnet и public MQTT с помощью токена Mi Home.
Теперь вам нужно получить токен хитрым способом (инструкция в readme). Но в будущем я планирую добавить получение токена с серверов Xiaomi с помощью учетной записи Mi Home. Ведь недавно в сети появилась рабочая реализация авторизации в их "облаке".
Теперь компонент получает из концентратора список устройств и последние значения их атрибутов. Но в будущем планирую добавить получение списка устройств из облака. Есть пользовательские имена для всех устройств.
Мне пришлось с этим разобраться. Работа с устройствами Bluetooth не отражается в MQTT. С другой стороны, все данные отражаются в консоли. Поэтому компонент подключается к концентратору через Telnet в отдельном потоке, перезапускает утилиту Bluetooth и считывает ее выход в реальном времени. Это самый стабильный способ, который я нашел. В syslog данные от этой утилиты получаются с перебоями. Моих знаний Linux недостаточно, чтобы понять, почему это происходит.
В первую очередь компонент научился поддерживать стандартный набор Bluetooth-устройств Xiaomi: температурные датчики, анализаторы грунта и света, фумигатор.
Пару дней назад он поддерживал интеллектуальные замки Bluetooth. На сегодняшний день это единственный способ, которым я знаю, как подключить интеллектуальный замок Xiaomi BLE к альтернативной системе "умный дом".
У меня нет чайника, но пришлите мне журнал, и я его добавлю. Однако манекены Xiaomi не поддерживают удаленную активацию, это большой недостаток.
BLE-устройства и их атрибуты отображаются по мере получения данных. Когда появляется поддержка облака — оттуда можно получить полный список BLE-устройств с их моделями, именами и последними отправленными данными. Такая информация не хранится на концентраторе.
Поддержка ламп Bluetooth Mesh в процессе разработки. Работа с ними сильно отличается от работы с BLE-устройствами.
Грандиозные.
Нужно отладить концентратор со всем списком официально поддерживаемых устройств Zigbee. Добавьте возможность настройки "тонких" настроек:
Вам нужно добавить поддержку облака, чтобы получить маркер концентратора и полный список устройств Zigbee и Bluetooth.
Нужно добавить поддержку для ламп Bluetooth Mesh.
И самое главное, добавить поддержку устройств других производителей. Да, это возможно. Я смог подключить все устройства сторонних производителей и управлять ими. Такие устройства не отображаются в Mi Home и HomeKit. Но управлять ими можно с помощью "сырых" команд Zigbee.
Чтобы понять всю полноту проблемы такой поддержки, посмотрите на исходники замечательного проекта zigbee2mqtt: devices, fromZigbee, toZigbee.
Почти каждое устройство требует своего обработчика. В случае с Xiaomi Gateway 3 и официально поддерживаемыми устройствами, роль такого обработчика выполняет программный концентратор.
Остальные мои разработки можно найти на GitHub. Среди русскоязычной аудитории наиболее популярным проектом является ЯндексСтацион. Во всем мире SonoffLAN зарекомендовал себя очень хорошо. Но я думаю, что XiaomiGateway3 легко его обогнает. Вы можете следить за развитием этого и других моих проектов на моем канале "Телеграмма"