- PVSM.RU - https://www.pvsm.ru -
Новый хаб от Xiaomi с поддержкой технологий Zigbee 3, Bluetooth Mesh, HomeKit и его подключение к достаточно популярной системе умного дома — Home Assistant [1], интересует?

Устройства умного дома можно встретить на разных беспроводных протоколах.
Важно понимать, что поверх каждого протокола производители устройств накладывают что-то своё. А это значит, что нельзя выбрать какой-то один протокол и все устройства всех фирм будут автоматически поддерживаться.
Чаще всего новички выбирают устройства на технологии Wi-Fi. Ведь Wi-Fi роутер сегодня есть у всех. Умным устройством можно пользоваться сразу после покупки. Но тут есть нюанс: в количестве устройств слабость Wi-Fi. Роутеры от провайдеров в большинстве своём тот ещё хлам, способный справиться с 1-2 десятками устройств. И пять новых умных лампочек могут быть проблемой для всей сети.
Здесь выходом будет хороший двухдиапазонный роутер. Весь умный дом можно повесить на диапазон 2.4 ГГц, а мультимедиа-устройства (смартфоны, ноутбуки, телевизоры, колонки) на 5 ГГц.
Устройства на Bluetooth новички выбирают так же охотно, ведь сегодня смартфоны есть почти у всех. Проблема в том, что дальность Bluetooth весьма ограничена. Уже из соседней комнаты вы не сможете посмотреть температуру на датчике или включить чайник или лампочку.
В таких случаях производители рекомендуют покупать BLE Gateway. Это устройство, которое будет посредником между Bluetooth и серверами производителя. Здесь уже далеко не все пользователи соглашаются на дополнительные траты и лишнюю железку в доме.
Некоторые производители встраивают возможности BLE Gateway в камеры и лампы, закрывая проблему лишних затрат и лишнего устройства в доме.
От этой технологии новички отказываются чаще всего из-за необходимости приобретать дополнительное устройство-посредник, ведь ничего работающего с Zigbee в их доме скорее всего нет. Некоторые производители встраивают поддержку этой технологии в умные колонки и, на мой взгляд, это очень интересный ход.
Дополнительную проблему составляет, что каждый такой Gateway поддерживает только дочерние устройства своего производителя. Купив устройства Philips Hue, IKEA, Sonoff, Xiaomi и Tuya, вы, скорее всего, должны будете докупить пять Gateway соответственно.
Эта технология заслуживает внимания по следующим причинам:
Фирма 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 поддерживаются не все устройства, будьте внимательны.
В отличие от всех остальных шлюзов, обновлённая версия имеет уникальную особенность: на ней программно можно открыть Telnet-доступ. Доступ открывается только при наличии Mi Home токена, так что всё вполне секьюрно.
В этом шлюзе стоит чип серии EFR32 от фирмы Silicon Labs. Те в свою очередь поставляют вместе с чипом набор SDK. В составе SDK есть MQTT-транспорт, обеспечивающий доступ к Zigbee проколу из любого ПО, установленного как на шлюзе, так и за его пределами.
По умолчанию MQTT-брокер не доступен извне, но у нас ведь теперь есть Telnet!
В брокере есть два корневых топика: это "сырые" данные Zigbee и обработанные данные от Xiaomi. Я решил взять за основу обработанные данные. Там атрибуты устройств хоть и описаны псевдокодами, но в них всё же проще разобраться человеку, ничего не понимающему в Zigbee.
В итоге получился такой вот компонент для Home Assistant — XiaomiGateway3 [2].
Он автоматически включает Telnet и публичный MQTT, используя токен Mi Home.
Сейчас токен нужно получать нехитрым образом (инструкция в readme). Но в будущем я планирую добавить получение токена с серверов Xiaomi, используя аккаунт Mi Home. Ведь недавно в сети появилась рабочая реализация [3] авторизации в их облаке.
Сейчас компонент получает список устройств и последние значения их атрибутов с Хаба. Но в дальнейшем я планирую добавить получение списка устройств из облака. Там есть пользовательские названия всех устройств.
С этим пришлось повозиться. Работа с 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 [4]: devices [5], fromZigbee [6], toZigbee [7].
Почти каждое устройство требует свой собственный обработчик. В случае с Xiaomi Gateway 3 и официально поддерживаемыми устройствами — роль такого обработчика выполняет софт хаба.
Другие мои разработки можно найти на GitHub [8]. Среди русскоговорящей аудитории наиболее популярный проект — YandexStation [9]. Глобально очень хорошо себя зарекомендовал SonoffLAN [10]. Но, думаю, XiaomiGateway3 [2] его легко обгонит. За развитием этого и других моих проектов можно следить на моём канале Telegram [11].
Автор: Алексей
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/gadzhety/357075
Ссылки в тексте:
[1] Home Assistant: https://www.home-assistant.io/
[2] XiaomiGateway3: https://github.com/AlexxIT/XiaomiGateway3
[3] рабочая реализация: https://github.com/rytilahti/python-miio/issues/728#issuecomment-658661919
[4] zigbee2mqtt: https://www.zigbee2mqtt.io/
[5] devices: https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/devices.js
[6] fromZigbee: https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/converters/fromZigbee.js
[7] toZigbee: https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/converters/toZigbee.js
[8] GitHub: https://github.com/AlexxIT
[9] YandexStation: https://habr.com/ru/post/508106/
[10] SonoffLAN: https://github.com/AlexxIT/SonoffLAN
[11] Telegram: https://t.me/AlexxIT_SmartHome
[12] Источник: https://habr.com/ru/post/519644/?utm_source=habrahabr&utm_medium=rss&utm_campaign=519644
Нажмите здесь для печати.