AlexxIT Smart Home
7.98K subscribers
321 photos
28 videos
289 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
#gateway3
В последние дни разработка идёт довольно медленно, но это не значит, что совсем нечего не происходит.

Наконец руки дошли до BLE Mesh-групп и там много всего интересного.

1. Работая с BLE чипом напрямую, можно без проблем назначать и отнимать Mesh-группы. Через Mi Home у пользователей бывают с этим проблемы.

2. Одно устройство может быть в нескольких Mesh-группах.

3. Существуют глобальные группы, где можно разом послать команду всем вашим устройствам. Заодно убедиться, что они исправно работают и являются роутерами (повторителями сигнала), ведь есть отдельная группа "роутеров".

Mesh-устройств может быть в сети довольно много, согласно документации. Но, как я понял, Silicon Labs зашивают в свои чипы ограничение на порядка 255 устройств. А Xiaomi добавили сверху программное ограничение на всего 100 устройств.
#gateway3
Несколько новостей по развитию компонента Xiaomi Gateway 3.

1. В версиях 1.3.0-1.4.0 мною была допущена критическая ошибка. При включенной настройке отображения родительских устройств (выключена по умолчанию) - могла развалится вся Zigbee сеть. Это привело к первому отказу моей личной сети за год использования шлюза в боевом режиме.

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

2. В версии 1.4.0 появилась возможность обновлять прошивку Zigbee устройств. Но важно понимать, что в случае особой удачи устройство может превратиться в кирпич.

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

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

3. В версии 1.4.0 появилась возможность менять настройки Zigbee устройств. Например, функцию interlock в реле Aqara, функцию power memory для ламп Aqara или режим "быстрого клика" для новых кнопок Aqara E1.

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

4. В версии 1.5.0 поменялась формула для расчёта процента батарейки Zigbee-устройств. Раньше процент рассчитывал сам шлюз, но к этим цифрам было много вопросов у пользователей. Путём коллективного анализа была выведена новая формула. Посмотрим, как она себя покажет.

5. В master версию наконец-то вернулась продвинутая обработка BLE, которую я анонсировал ещё в начале лета. О ней расскажу отдельно позже.
#gateway3
Продолжаем развивать BLE-трекеры на Xiaomi Gateway 3, которые я анонсировал ещё в начале лета:

https://t.me/AlexxIT_SmartHome/508

В последней master-версии компонента трекеры, это наконец-то... трекеры (device_tracker)!

Раньше они были обычными сенсорами (sensor). Но теперь их можно привязать к человеку (person) для автоматизаций по условию home и not_home.

А если у вас несколько шлюзов и каждый привязан к комнате. То вместо home трекер будет указывать на комнату. Поэтому и пришлось указать тип трекера - GPS. Только такие трекеры могут быть привязаны к зонам. Но в нашем случае зоны это комнаты.

Ну и раньше интеграция не поддерживала "выход из зоны". Тут я не стал городить велосипед, и прикрутил к трекерам логику прогрессивных датчиков движения с режимом "быстро вернулся". Настройки аналогичны:

https://t.me/AlexxIT_SmartHome/342
#gateway3
Новый проект gw3 ещё не вышел в релиз, а его уже начинают пробовать в бою пользователи других платформ умного дома.

Вот тут интеграция умного замка Aqara Door Lock N100 (Bluetooth) напрямую в Node-RED без участия Home Assistant! Но, конечно, при участии Xiaomi Gateway 3.

Конечно, кроме замков поддерживаются все виды датчиков Xiaomi, весы, чайники (без управления), зубные щетки, Yeelight пульты (скоро), трекеры iBeacon/MiBand/Nut...

И всё это работает стабильнее, чем на обычном шлюзе, подключенным в Mi Home! Почему так происходит, я напишу в отдельной статье после релиза.
#gateway3
Если у вас есть такая Zigbee розетка Xiaomi - скорее проверяйте её прошивку. Если там что-то отличное от v90 - спешите её обновить, не ждите, пока ваша сеть развалится из-за проблем с роутингом. Проблемы есть у всех, и у "родных" шлюзов и на "народных" стиках.

Но если у вас zigbee2mqtt и очень старая прошивка розетки - вы не сможете её обновить. Прошивка старых розеток обновляется в два шага. Я рассказывал об этом Koen-у, но проект пока не поддерживает двухэтапное обновление устройств.

Зато вы можете обновить прошивку этой и других розеток через Xiaomi Gateway 3. Функция так и не появилась официально в Mi Home, но шлюз её поддерживает. И с недавних пор её поддерживает одноимённый компонент Home Assistant:

https://github.com/AlexxIT/XiaomiGateway3/wiki/Advanced-commands-to-Gateway#update-zigbee-device-firmware
#gateway3
Продолжаю улучшать инструменты для анализа проблем в вашей сети Zigbee.

Ещё в прошлом году я придумал считать количество "промахов" при передаче данных от устройств. Анализируя эти данные, мне удалось улучшить обработку движения на датчиках Aqara в проектах zigbee2mqtt и Xiaomi Gateway 3.

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

Информация о последнем также очень ценна. Если у вас отвалилась половина сети и у всех устройств одинаковый родитель - проблема очевидна. Привет розеткам Xiaomi на старой прошивке.

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

Кстати у датчика на Лоджии батарейка показывает 49%. Думаю, этим цифрам не стоит доверять.
#gateway3
Итак. Думаю я готов выпустить новую бета-версию Xiaomi Gateway 3. Изменений просто огромное количество:

1. Прекращена поддержка прошивок шлюза ниже v1.4.7. Они сильно отличаются от текущих и впустую отнимали очень много сил.

Нужно обновить шлюз ДО обновления компонента.

2. Режимы ZHA и zigbee2mqtt объединены в одну опцию. Теперь для них zigbee чип будет обновляться на свежую версию прошивки, работающую на пониженной скорости. Плюсом был переписан код обновления прошивки, и заменена утилита доступа к чипу по сети. Надеюсь на значительное улучшение стабильности работы этих режимов.

Нужно обязательно перевключить опцию, чтоб прошивка чипа обновилась.

3. Добавлена опция переноса баз данных zigbee и bluetooth в оперативную память шлюза. Это на два порядка снижает количество ошибок обоих чипов. С другой стороны повышается шанс, что базы испортятся. Поэтому опция пока экспериментальная.

4. Весь код компонента теперь асинхронный. Пришлось написать свои библиотеки работы с MQTT, Telnet и miIO. Надеюсь, компонент должен лучше работать в больших и сложных сетапах.

5. Полностью переписана логика запуска вспомогательных утилит на шлюзе. Также должно улучшить стабильность и предсказуемость работы.

6. Поправлена функция отключения пищалки для паяных датчиков движения. Теперь отключается только надоедливый звук, а не все звуки, включая кнопку и светодиод на хабе.

7. Сенсоры статистики шлюза и zigbee теперь показывают больше полезных данных.

https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v1.6.0-rc.2
#gateway3
Лично я не люблю, когда устройство создаёт 100500 сенсоров в Home Assistant. Особенно, когда большинством из этих сенсоров никогда не воспользуешься или включишь лишь раз. Например, poweroff memory на розетках или лампочках или interlock на реле Aqara. Причём все первичные настройки можно произвести в Mi Home.

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

Вот какую картину можно будет получить в следующем релизе Xiaomi Gateway 3 на обычной розетке Xiaomi Plug. Это будет следующий-следующий релиз. А не тот, который сейчас в бета тесте.

Конечно, список сенсоров настраивается. По умолчанию у розетки будут старые добрые switch, power и energy.
#gateway3
Страшный сон любого программиста: 18 изменённых файлов, 23 новых и 6 удалённых. Суммарно сопоставимо с текущим количеством файлов проекта.

Что бы это могло быть? 🤔
#gateway3 Всё идёт по плану
#gateway3 Это было больно
#gateway3
Почему новый Aqara Hub E1 достоин внимания и поддержки в Home Assistant?

1. Как и гейт от Xiaomi, его можно подключить в ХА без паяльника и прошивок. Купил, распаковал, подключил. That's easy.

2. Его стоимость на Али даже ниже, чем у гейта Xiaomi. Это важно.

3. Zigbee чип той же серии, что в гейте Xiaomi, но мощнее. А значит подключение сотен моделей сторонних устройств лишь вопрос написания правильного конвертера.

4. Железо в нём интереснее, чем в гейте Xiaomi. Более быстрый двуядерный процессор и нормально припаянный Zigbee чип. Надеюсь на идеальную работу сети.

Я планирую доверить ему свои самые нежные устройства - батарейные датчики. А всех роутеров оставить на Gateway 3. В таком сетапе стабильность работы должна быть максимальной.

Вот вам пример, как в правильных руках можно обойти все недостатки практически любых девайсов и оставить лишь одни достоинства.

А учитывая цену/качество устройств Xiaomi/Aqara - итоговое решение оставляет далеко позади остальных конкурентов на рынке.
#gateway3
Итак, основные приготовления сделаны и доки написаны. Я готов выпустить в бету вторую версию компонента Xiaomi Gateway!

К сожалению, новая логика BLE и Mesh пока сюда не попала. Но изменения настолько масштабные, что версия определённо заслуживает цифру 2 в названии.

1. Как и в остальных проектах про Zigbee, все устройства теперь описываются конвертерами. Но, в отличии от остальных проектов, Xiaomi интеграция поддерживает просто кучу спецификаций устройств:

- старые Xiaomi/Aqara Zigbee устройства в формате Lumi
- новые Xiaomi/Aqara Zigbee устройства в формате MIoT
- BLE устройства Xiaomi в формате MiBeacon
- Mesh устройства Xiaomi в формате MIoT
- Zigbee устройства любых фирм в формате Zigbee Alliance

2. Да. Теперь поддержка сотен сторонних моделей устройств, это лишь вопрос написания правильного конвертера. При этом шлюз продолжает работать в режиме Mi Home, но сами устройства в Mi Home не попадут!

3. Конечно, вы можете писать свои собственные внешние конвертеры. Изменять поведение уже существующих устройств (в любой из вышеупомянутых спецификаций) и добавлять поддержку новых.

4. Конвертеры принесли не только поддержку новых устройств, но и улучшили работу текущих. Теперь у кубика Aqara доступна информация о гранях, у лампочки или розетки можно изменить состояние после подачи питания, а датчику газа изменить чувствительность.

Так же легко можно вытащить данные о уровне Zigbee сигнала, количестве пропусков сообщений, температуры чипа розетки и даже информацию о родительском устройстве. Да, при желании, вы можете по истории отследить, куда и когда устройство прыгало.

5. Добавлена поддержка Aqara Hub E1. Да, на него распространяются все вышеперечисленные плюшки про Zigbee-устройства.

Пока я НЕ рекомендую ставить эту версию на боевой шлюз!

Саму версию можно поставить через HACS. А о всех новых плюшках можно почитать тут:

https://github.com/AlexxIT/XiaomiGateway3/tree/converters#supported-devices
#gateway3
Следующая версия интеграции Xiaomi Gateway 3 будет поддерживать два типа датчиков движения. Я назвал их motion и occupancy.

Классические датчики экосистемы Mi Home при обнаружении движения отправляют соответствующее событие. Затем, для экономии батареи, "слепнут" на заданное время.

У Zigbee датчиков Xiaomi/Aqara это 60 секунд, но, с помощью паяльника или карандаша, время можно сократить до 5 секунд.

У BLE датчика от Qingping и высокоточного Zigbee датчика Aqara, это время настраивается из приложения Mi Home.

При этом таймер сброса состояния движения настраивается на стороне Home Assistant. И каждое новое движение после периода blind_time, продлевает этот таймер. Gateway 3 поддерживает несколько режимов работы таймера.

А вот в датчике движения Sonoff этот таймер встроен, и его никак нельзя изменить. Датчик не шлёт события, если человек постоянно двигается перед ним.

Модель от Philips работает похожим образом, за исключением, что величину таймера можно настроить.
#gateway3
Пока добавлял поддержку новых выключателей Aqara E1/H1 в Xiaomi Gateway 3, чуть не лишился рассудка.

E1 бывают на 1 и 2 кнопки, с нулём и без. H1 бывают на 1, 2 и 3 кнопки, с нулём и без. Для 1 и 2 кнопок есть евро-версии. На 3 кнопки есть только китайская версия. Плюсом ко мне попала модель для США с пометкой US. Итого имеем 4+6+4+1 = 15 моделей устройств, в которых нужно не запутаться и правильно описать спецификацию 🤯

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

Но не все настройки из спецификации очевидны, такие непонятные моменты приходится просто пропускать.

Например, light-close-enble это состояние светодиода. С горем пополам можно догадаться.

А вот параметр overturn-light с значениями Flip и Disable Flip заставил задуматься.

Ответ нашёлся в последнем видео @great_kvazis
https://youtu.be/jpoDhFqH2kk

Настройка есть в E1 и H1 выключателях с нулевой линией и позволяет инвертировать логику работу светодиода 🤦

PS. Кстати, у большинства новых устройств есть много настроек по энергопотреблению, которых нет даже в официальных приложениях. За неимением устройств для отладки, такие настройки также приходится пропускать.
#gateway3
Внимание! В свежих евро-версиях Aqara Hub E1 EU (HE1-G01) заблокирована поддержка Mi Home.

Поэтому в интеграции Xiaomi Gateway 3 будет возможна поддержка только китайских версий Aqara Hub E1 CN (ZHWG16LM).

Напоминаю, у самого Xiaomi Mijia Smart Multi-Mode Gateway поддерживаются обе версии (ZNDMWG03LM и ZNDMWG02LM).
#gateway3
С появлением новых Aqara/Xiaomi устройств появилось много недопонимая по поддержке и региональным ограничениям в экосистеме Mi Home.

Я написал раздел в документации Gateway 3 и кратко изложу основные мысли здесь:

Шлюз Gateway 3, единственный в своём роде, не имеет отличий в CN и EU версиях вообще. Любая версия может работать в любом облаке.

Старые Xiaomi/Aqara Zigbee устройства исторически поддерживаются во всех облаках.

Новые Aqara Zigbee устройства E1 серии поддерживаются в Mi Home, но могут быть добавлены только в CN облако.

Новые Aqara Zigbee устройства серий H1 и T1 официально не поддерживаются в Mi Home (неактивная иконка). Но могут быть добавлены в шлюз и только на CN облаке. Некоторые модели успешно управляются из ХА и из Mi Home от Vevs.

С Bluetooth BLE и Mesh устройствами интереснее. Многие свежие устройства можно добавить только в CN облако. Но с помощью Mi Home от Vevs это ограничение можно обойти.

Для управления из ХА абсолютно неважно, какое у вас облако.
#gateway3
Итак, открываем новую эпоху Xiaomi Gateway 3 вместе с релизом компонента второй версии.

В Home Assistant есть интеграция Aqara, которая по факту поддерживает шлюз Xiaomi. И теперь я выпускаю интеграцию Xiaomi, которая по факту поддерживает шлюз Aqara. Такой вот каламбур. Пока только одну модель - Aqara Hub E1 CN. Но на очереди Aqara Camera Hub G3.

Коротко, что ещё нового:

- полностью переписана архитектура компонента для поддержки встроенных и внешних конвертеров Zigbee, BLE и Mesh устройств

- новые конвертеры позволяют поддерживают Zigbee устройства любых производителей

- у многих устройств расширился перечень управляющих объектов (entity)

- обновлена логика сохранения состояний датчиков между рестартами ХА

- обновлена логика проверки доступности устройств, включая активную проверку

- добавлена поддержка Zigbee биндинга

https://github.com/AlexxIT/XiaomiGateway3/releases
#gateway3
С помощью шлюзов Xiaomi и Aqara можно не только управлять устройствами любых Zigbee брендов, но и обновлять их прошивку.

О важности обновления прошивки на самой миниатюрной Zigbee розетке NAS-WR01B рассказывал Kvazis в недавнем видео

https://youtu.be/jG9SpJBwYFM

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

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

Я проверил, и розетка до и после обновления ведёт себя в точности, как на видео Kvazis'а. И конечно уже поддерживается в последней версии компонента Xiaomi Gateway 3.
#gateway3
Начинается новая эпоха в развитии Xiaomi шлюзов - эпоха Ключей.

В недавнем обновлении прошивки Xiaomi Multimode Gateway v1.5.5 был закрыт неофициальный способ выполнить произвольную команду на шлюзе.

На его место пришёл официальный способ. Но он требует "ключ" шлюза (не путать с токеном). Ключ зашивается на заводе и никогда не меняется. Узнать его можно только получив полный доступ к шлюзу.

Поэтому интеграция Xiaomi Gateway 3, начиная с версии v3.3.0, автоматически скачает и сохранит этот ключ в настройках интеграции.

Если вы уже обновились на прошивку 1.5.5, а ключа нет - остаётся один программный и один аппаратный способ открыть доступ. Подробности в документации.

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

https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v3.3.0