AlexxIT Smart Home
8.89K subscribers
338 photos
29 videos
299 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
AlexxIT Smart Home
Смотрите, какая ко мне пришла посылка. Спасибо @icoderus купил, прошил и прислал мне два Xiaomi Gateway 3 для разработки. Шлюзы вверх ногами, чтоб показать аккуратность вскрытия. Вообще я не знал, что приедет два шлюза. Я лишь просил припаять к шлюзу Ethernet…
А я тем временем несколько дней изучаю работу BLE на нескольких шлюзах.

В этом вопросе очень сильно помогают два шлюза, присланные Андреем @icoderus. Спасибо всем, кто поддержал Андрея по ссылке из прошлого поста. Теперь у меня есть три тестовых шлюза на прошивках 0012, 0043 и 0115.

Кстати, если вы пользовались специальными веб-страницами для понижения версии прошивки шлюза или для получения пароля от Telnet - эти страницы тоже дело рук Андрея. Если ещё не успели сказать ему спасибо - ссылка всё там же в прошлом посте.

А собственно парадокс в том, что BLE на нескольких шлюзах работает хуже, чем на одном 🤦

Каждый из шлюзов начинает передавать данные от окружающих датчиков гораздо реже, чем он бы был один в помещении. В шлюзах есть проверка на слишком частые сообщения. Они не отправляют один и тот же параметр с датчика чаще, чем раз в 10 минут. На некоторые параметры есть фильтрация на обязательное изменения значения. Если значение не изменилось - оно так же не будет отправлено. И даже когда все условия соблюдены - сообщение также может быть не отправлено по неизвестной причине.

Но есть и хорошая новость. Похоже на уровне железа в шлюзе всё нормально. Он принимает на порядок больше BLE данных, чем затем отправляет в облако. Пока я ищу способ, достать сырые данные со шлюза в момент приёма. Но в отличии от zigbee части тут всё гораздо сложнее поддаётся вмешательству.
Как думаете, сколько issue на тему manifest version успеют создать ВО ВСЕХ моих репозиториях?
Приехали новые железки на опыты.

Розетка Xiaomi Mijia Smart Socket 2 с функцией BLE шлюза. Для тестирования, как влияют несколько BLE шлюзов друг на друга. Надежды, что можно будет использовать подобные устройства в качестве BLE шлюзов в сторонних системах практически нет, если вы вдруг ждёте такую фичу.

Лампочка Aqara. Она нужна для двух задач:
- тестирование обновления прошивки на этой лампе с помощью Xiaomi Gateway 3
- добавление в компонент возможности включить функцию "запоминать состояние лампы" при потере питания

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

За информацию о скидке спасибо @bessarabov, без неё бы не стал брать. А вы читаете Ивана?
https://t.me/bessarabov_ha/386
23 февраля Xiaomi Gateway 3 праздновал своё второе рождение. А сегодня своё второе рождение празднует его неотъемлемая спутница - технология BLE на шлюзе.

Я больше недели изучал, как четыре разных шлюза на трёх разных прошивках шлют данные с окружающих их датчиков. И внёс в это поведение значительные коррективы.

Теперь Home Assistant получает BLE данные с датчиков не реже, чем решения на ESPHome и другие аналоги. Лишь помните, что физику радио-сигнала никто не отменял. По моим наблюдениям шлюз, спрятанный глубоко в шкафу около роутера и сервера - получает намного меньше данных по сравнению со своими, более грамотно размещёнными собратьями.

И что немаловажно - теперь корректно обрабатываются BLE данные одновременно с нескольких шлюзов, подключенных к одному ХА.

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

https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v1.1b1

Ну и конечно с праздником, дорогие дамы!
👍1
А вот и новые плоды вчерашнего обновления. Данные от 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.
👍2
Сегодня утром у меня не запустился 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
👍1
Ну и вишенкой на торте всей этой пылесосной истории - 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