AlexxIT Smart Home
8.34K subscribers
325 photos
28 videos
291 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
А вот и новые плоды вчерашнего обновления. Данные от BLE датчиков идут просто в бешеных количествах. Особенно в сравнении с Zigbee аналогом. Теперь нужно придумывать защиту от дребезга.

https://t.me/xiaomi_gw_v3_hack/37266
Ух, новая логика работы с BLE в компоненте Xiaomi Gateway 3 не только изменила количество обрабатываемых данных от датчиков. Она, совершенно неожиданно, добавила поддержку чайников!

Важно понимать, что управлять чайником нельзя. Можно лишь получать с него данные - температуру и режим работы (их четыре). Теперь можно написать автоматизацию, чтоб Алиса пригласила вас к столу, когда чайник закипит.

Ещё нужно проверить, вдруг случайно появилась поддержка самокатов, а может и браслетов Xiaomi.

https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v1.1b2
Всё же очень душевные ребята из китайского сообщества Home Assistant. Речь идёт про вскрытие Xiaomi Gateway 3 для прошивки. Что на сегодняшний день более не актуально
За полтора года SonoffLAN перешагнул отметку в тысячу звёзд, а Xiaomi Gateway 3 за полгода - 600. Но всё ещё остаётся очень много задач по всем этим проектам.

В SonoffLAN нужно, наконец, добавить настройку через GUI.

В Gateway3 - повысить общую стабильность, добавить настройку устройств, обновление прошивок дочерних устройств, поддержку z2m и хабов M1S, M2, G2H.

В YandexStation - навигацию по каталогу Яндекс Музыки, уже есть готовый код от @alryaz, осталось в него внимательно вникнуть и принять.

RTSP2WebRTC
нужно собрать в виде готового контейнера, у многих проблемы со сборкой на своих серверах. И добавить обновления Go части от оригинального автора, должно поддерживаться больше веб-камер.

В YandexDialogs нужно починить авторизацию для автоматического создания навыка.

И это только существующие проекты. А ещё в мыслях поддержка камер Xiaomi Dafang и проект gateway2mqtt по которым уже были успешные рабочие прототипы.
После достижения тысячи звёзд, GitHub начал сильно волноваться, что в моём аккаунте не указан "преемник", которому перейдёт управление всеми моими публичными репозиториями в случае моей смерти 😱

Речь не про один репозиторий, а про вообще все. Но уведомление показывается только в репозитории SonoffLAN.
Настают интересные времена в развитии Zigbee технологий. И в частности наших любимых датчиков Xiaomi/Aqara.

1. Mi Home научился обновлять прошивки Zigbee устройств. Поговаривают, он и раньше это умел. Но делал это тихо и непредсказуемо. Мои старенькие розетки Plug за долгое время использования на втором, а затем и на третьем шлюзе, так и не получили обновление прошивки.

2. Появились первые обновления батарейных датчиков. Исторически батарейные устройства поддерживают обновления прошивок довольно редко. Все старые батарейные устройства Xiaomi/Aqara не поддерживают обновления. Но, похоже, все новые датчики серии Т1 имеют такую возможность.

На скриншоте датчик вибрации серии Т1 (zigbee 3), подключенный к шлюзу Xiaomi Gateway 3. Также обновления поддерживаются на шлюзе M1S.

Кстати последняя версия одноимённого компонента для Home Assistant показывает версию прошивки zigbee устройств, если она известна.
Home Assistant это настоящий комбайн, способный решить практически любую задачу умного дома с помощью сотен интеграций и десятков аддонов. Но у такого подхода есть и огромная боль - Обновления.

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

И тут я могу сказать спасибо любимой многими фруктовой компании. Именно ребята из Купертино отучили меня ставить обновления программ сразу после выхода. Несколько лет назад я заметил, что каждое их обновление приносит мне больше боли и страдания, чем радости от нового функционала. Появилось впечатление, что Джобс был единственным, кто контролировал качество в этой компании. Сейчас обновление мажорной версии macOS вызывает у меня ужас, схожий с мажорным обновлением Home Assistant. Но этот пост не про то, как перемывать косточки Apple.

В подавляющем большинстве случаев обновления запускаются вручную пользователем. Будь то обновление ХА или обновление прошивки вашего устройства.

Например, очередное обновление Xiaomi Gateway 3 закрыло доступ к использованию этого хаба в сторонних системах без паяльника (на сегодняшний день более не актуально). А ещё на новых прошивках не работает Mesh и вообще весь протокол miio без подключения к облаку. На моей любимой версии 1.4.6_0012 всё отлично.

В обновлении Xiaomi Bedside Lamp 2 отключили поддержку локального прокола Yeelight. Тут снова спасибо Apple - благодаря правилу НЕ обновляться, меня не постигла эта участь.

А вот недавнее обновление Яндекс.Станции Мини уронило весь интерфейс Home Assistant. Полностью.

Пару дней назад колонка стала присылать громкость в формате "минус бесконечность". Home Assistant был не знаком с высшей математикой и просто не мог отобразить свой интерфейс. А искать проблему и отключать интеграцию приходилось уже через командную строку.

Конечно это не укор в сторону Яндекса. Просто хороший пример, как слаба архитектура Home Assistant к внешним воздействиям. И очень жаль, что с умными колонками не работает "правило Apple".

А в последней версии компонента уже всё хорошо
https://github.com/AlexxIT/YandexStation/releases/tag/v3.1.1
Приехали несколько Bluetooth Mesh ламп на тесты. YLTS02YL, YLTS04YL и MJTS01YL. Это далеко не все точечные Mesh светильники на рынке. Есть ещё две модели с красными лапками от Yeelight.

Скорых отзывов не ждите, совсем нет на это времени. Даже лампы Aqara и Сбера ещё не успел распаковать. Постоянно приходится что-то фиксить в своих компонентах в борьбе с новыми версиям прошивок разных устройств.
Стоило только пожаловаться, что всё время уходит на исправление новых проблем в старых компонентах, как во всех колонках с Алисой отвалился TTS.

Но теперь снова всё хорошо
https://github.com/AlexxIT/YandexStation/releases/tag/v3.1.3

А я вчера весь вечер убил на доработку Yeelight Flex Switch напильником. А точнее лобзиком.

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

Теперь две люстры с Bluetooth Mesh лампочками отлично управляются по проводу, не теряя управление яркостью и цветовой температурой.

Ранее на этом месте стоял умный безнулевой выключатель eWeLink и с ним были проблемы. Ему просто не хватало питания через умные лампы, комплектный конденсатор не помогал и выключатель постоянно подвисал.

Начинаю задумываться, не проще было бы закоротить провода, прилепить к стене беспроводные Aqara, а локальные автоматизации настроить на шлюзе 🤔
У SonoffLAN вышла новая версия с очень интересным фиксом. Впервые мне пожаловались на проблему ещё полгода назад. Состояние реле в интерфейсе Home Assistant в некоторых случаях было неверным. Тогда найти причину не удалось.

Вы, наверное, помните, что компонент работает одновременно по локальному и облачному протоколу eWeLink. Это сильно повышает отказоустойчивость в случае отказа одного из протоколов.

Внимательный читатель сразу задумается, как же локальный протокол может отказать? Ведь это самое надёжное, что может быть на свете. Но, к сожалению, он базируется на технологии mDNS, придуманной инженерами Apple. И, как следствие, работает вся эта штука очень непредсказуемо и ненадёжно. Поэтому я всегда рекомендую пользоваться только автоматическим режимом работы компонента.

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

https://github.com/AlexxIT/SonoffLAN/releases/tag/v2.4.1
Я наконец-то заменил свой бестолковый робот пылесос от iRobot Roomba на нормальную модель от Xiaomi Roborock и начал изучать всё то море интеграций, которое имеется на сегодняшний день в Home Assistant.

И как оказалось, ни одна интеграция не пытается решить вопрос уборки помещений.

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

Только вот как получить нормальный список своих комнат с их номерами никто не сказал. И мне пришлось это исправить в компоненте Xiaomi Gateway 3.

Теперь для любого Wi-Fi устройства Xiaomi легко можно получить токен.

Для старого гейта Xiaomi - ключ разработчика.

Для пылесоса - номера комнат, к которым он привязан.

А для BLE устройств - заветный bindkey для подключения к шлюзу на ESPHome.
Сегодня утром у меня не запустился Home Assistant. И что бы вы думали? Виной замечательная колонка Яндекс Мини и баг с громкостью минус бесконечность.

HACS по какой-то причине забыл, что должен обновлять компонент YandexStation и я пропустил фикс в своём же компоненте.

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

https://t.me/AlexxIT_SmartHome/462
Media is too big
VIEW IN TELEGRAM
В продолжении вопроса зональной уборки я решил написать очередную интеграцию 😅

Антон @anton_v_ermolov в комментариях к прошлому посту предложил крутой лайфхак: если создать несколько виртуальных пылесосов с именами ваших комнат - они будут отлично управляться из Алисы.

Например, вы создаёте пылесосы "Прихожая" и "Под столом". И говорите Алисе - "уберись в прихожей" или "пропылесось под столом". То есть любые варианты фраз про уборку комнаты или зоны.

А самое интересное - Алиса отлично выполняет команды вроде "уберись в прихожей и под столом".

И вот чтоб такие команды работали в Home Assistant - я написал новый компонент. Он позволяет удобно создать набор виртуальных пылесосов и поддерживает уборку комнат по очереди. Пылесос не поедет в новую комнату, пока не уберётся в текущей. Поддерживаются как комнаты, так и зоны.

Говорят такой подход хорошо работает не только с Алисой, но и с Сири. И, вероятно, с Google.

https://github.com/AlexxIT/VacuumZones
Ну и вишенкой на торте всей этой пылесосной истории - YandexStation теперь поддерживает пылесосы!

Это полезно, если ваш пылесос можно добавить в Яндекс, но у него нет прямой поддержки в Home Assistant. Правда, в этом случае не может быть и речи о зональной уборке. Зато есть батарейка и управление скоростями.

https://github.com/AlexxIT/YandexStation/releases/tag/v3.2.0

Не прошло и недели с момента покупки, как три мои интеграции начали поддерживать пылесосы.

Но это не последняя хорошая новость...

Сегодня ночью Яндекс.Станции большая и Мини начали показывать актуальную громкость! Теперь можно придумывать крутые автоматизации с использованием правильной громкости колонки.
Вчера помогал другу подружить телевизор Samsung с Алисой, и это был настоящий ад.

Ничего не предвещало беды. В теории создаёшь аккаунт Samsung, вводишь его в телевизоре, затем вводишь его в умном доме Яндекса и наслаждаешься управлением телевизора из Алисы.

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

Яндекс был установлен на телефоне Samsung. И вот с него связать аккаунт Samsung с Алисой никак не удавалось. Ошибка 500 после ввода логина/пароля и хоть ты тресни.

Пришлось устанавливать Яндекс на ещё один телефон - Xiaomi. Там авторизация уже прошла успешно, но вот устройств в аккаунте Samsung не нашлось.

Вспомнив, что весь умный дом Samsung крутится вокруг приложения SmartThings - я установил и его. Но вот незадача, теперь не удавалось авторизоваться уже в этом приложении. Ошибки 500 не было, но телефон спрашивал логин/пароль и шесть цифр из двухфакторной авторизации снова и снова и снова и... Ну вы поняли.

Ну ладно, попробуем установить SmartThings на телефон от Samsung. Там то точно должно быть всё отлично. Но вот незадача, для этого телефона этого приложения нет в Play Market. Зато есть приложение Smart Home. Уж не знаю, чем они отличаются, но надо пробовать. Без проблем получилось его установить и даже авторизоваться. Но... Приложение не поддерживает телевизоры. Ладно, мы не привыкли сдаваться.

И тут я вспомнил, что в телефонах Samsung есть свой магазин приложений, и там уже SmartThings был. Он легко установился и даже сам автоматически нашёл телевизор!

Очередная попытка добавить аккаунт Samsung в умных дом Яндекса к успеху не привела. Снова ошибка 500. Возвращаемся в телефон Xioami и получаем долгую крутилку обновления списка устройств. После пары минут ожидания пришлось принудительно закрыть приложение и запустить процесс заново.

И вот спустя полчаса мучений и кучи потерянных нервов - телевизор наконец появился в списке устройств Яндекса и заработало управление с Алисы. Такие дела.
Спустя месяц от прошлого релиза у Xiaomi Gateway 3 выходит новая версия. О большинстве изменений я уже писал в прошлых постах. Среди главных из них:

Новый способ получения BLE данных. Теперь компонент получает данные с датчиков намного чаще, чем это было раньше. Должно стать на порядок меньше пропусков. Но поддерживаются не все прошивки шлюза - 0012, 0043, 0160. На остальных прошивка BLE обрабатывается в старом режиме.

Компонент научился обрабатывать BLE данные одновременно с нескольких шлюзов.

Теперь дочерние устройства будут уходить в оффалайн, когда пропадает подключение к шлюзу. В случае с BLE и Mesh проверяется доступность всех ваших шлюзов. Но работу Mesh ещё надо дотачивать.

Теперь с помощью интеграции можно получить bindkey для ваших BLE устройств и собирать с них данные через шлюзы на ESPHome.

Доработан процесс настройки компонента. Теперь ошибки отображаются более точно - шлюз недоступен, ошибка в токене или неправильная команда для открытия Telnet.

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

В случае если ваш сервер умного дома работает по Wi-Fi задержки могут быть десятые доли секунды. А вот если сервер подключен по проводу - задержки составляют символические сотые доли секунды.

Ну и куча других улучшений и исправлений:
https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v1.1.0
Я устал, я ухожу... (шутка)

А если серьёзно, я оставляю поддержку только двух прошивок для Xioami Gateway 3 - v1.4.6_0012 и v1.4.7_0160.

Ранее я тестировал также v1.4.6_0043. Именно с ней продаются евро версии этого хаба. А также после 2020.10 её стали устанавливать на китайскую версию. Но вчера я обнаружил в этой прошивке критичный баг. В ней не работают группы Mesh-ламп. Вообще.

Кроме последней версии прошивки я пока поддерживаю и довольно старую, которую долгое время использую сам в качестве основной. Проблема в том, что, начиная с прошивки v1.4.6_0043, шлюз перестаёт отвечать на локальные команды при отсутствии подключения к своему облаку. Это не влияет на работу Zigbee устройств, но ломает работу с Mesh устройствами. Это не похоже на случайную ошибку разработчиков Xioami и возможно сделано намеренно. Я не встречал такого поведения в других устройствах экосистемы Mi Home.

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

Надо ли вам понижать прошивку, если пользуетесь последней? Если также не замечаете проблем - можете продолжать пользоваться 0160. У меня в планах вообще отказаться от протокола miio, чтоб максимально отвязать стабильность работы шлюза от облака.

Ещё раз отвечаю на частый вопрос - всё взаимодействие со шлюзом происходит полностью локально. Для полноценной работы вводить свой аккаунт Mi Home совсем необязательно. Он лишь помогает автоматически получить токен шлюза и нормальные имена всех ваших устройств из облака Xiaomi.

Но вот самому шлюзу подключение к облаку иногда требуется: при добавление Zigbee устройства, при обновлении списков BLE и Mesh устройств. Один раз: при блокировке обновления прошивки или включении режима Zigbee Home Automation (ZHA), а скоро и при включении режима zigbee2mqtt.
В честь интеграции Zigbee2MQTT с Xiamoli cloud я также выпустил долгожданное обновление Xiaomi Gateway 3 с поддержкой zigbee2mqtt!

Самое время задать себе вопрос, шучу ли я...

https://youtu.be/esJ0nsqjejc

https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v1.2.0
Только что случилось чудо.

У меня в доме отключили свет. К слову это бывает довольно редко. А вот когда свет вернулся - перестали работать все автоматизации по датчикам движения.

Я полез проверять Home Assistant - он успешно запустился сам. Проверил Node-RED, ведь все автоматизации на нём - он живой. Стал смотреть на датчики - все недоступны.

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

Но самое интересное, пока я выяснял причину поломки, один свет всё же включился сам. Не подвёл BLE ночник:
https://t.me/AlexxIT_SmartHome/428

Он у меня подключен, через тот самый шлюз в режиме zigbee2mqtt с этого вот видео:
https://youtu.be/esJ0nsqjejc

Напоминаю, что режимы ZHA или z2m не ломают работу BLE и Mesh устройств. А BLE и Mesh устройства не привязаны к какому-либо конкретному шлюзу, они работают со всеми шлюзами одновременно и последние версии компонента это поддерживают.

Такая вот история про отказоустойчивость в умном доме.