AlexxIT Smart Home
8.89K subscribers
338 photos
29 videos
299 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
После достижения тысячи звёзд, 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
Я устал, я ухожу... (шутка)

А если серьёзно, я оставляю поддержку только двух прошивок для 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 устройства не привязаны к какому-либо конкретному шлюзу, они работают со всеми шлюзами одновременно и последние версии компонента это поддерживают.

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

У части пользователей аддон не мог собраться на их сервере.

С версии 0.2.0 аддон собирается где-то в облаках GitHub под все поддерживаемые в Home Assistant архитектуры процессоров и загружается на Docker Hub в виде готовых образов.

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

Впрочем, пользователям необязательно это всё знать. Достаточно лишь настроить репозиторий аддонов и нажать кнопку Install.

Планировал ещё собрать карточку Lovelace, но всё время ушло на прошлую задачу. Хотя разработчики ХА создали инструмент для сборки аддонов, правильно его применить оказалось не очень то и тривиальной задачей. Забавно, что сам Френк (соавтор ХА и автор основных аддонов) этот инструмент не использует, так что подсмотреть было негде :)

https://github.com/AlexxIT/hassio-addons
Если вы думаете, что я всё свободное время посвящаю программированию, то это не так. Иногда я люблю поиграть в видеоигры.

Как сказал ирландский комик Дара О'Брайен, в одном из своих выступлений: индустрия видеоигр выгодно отличается от всех остальных индустрий. Невозможно плохо смотреть фильм. Невозможно плохо слушать музыкальный альбом. Но можно плохо играть в видеоигру, и она накажет вас за это, закрыв доступ к остальной части игры.

На прошлой неделе вышло шикарное продолжение сатирической стратегии про Злого Гения. Я в очередной раз отстраивал базу по пути к мировому господству и заметил, что все приборы в разных помещениях начали активно выходить из строя. Я проверил количество техников, пять штук, должно хватать на починку. Но приборы никто не чинил. Стал искать техников по базе, почему они не выполняют свою основную обязанность. И обнаружил всех их на кухне!

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

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

А ещё на портале Sprut.ai вышел долгожданный подкаст с моим участием:
https://sprut.ai/client/news/4190
Итак, сегодня у меня для вас новый Home Assistant компонент на старую тему - проигрывание видео с IP-камер в реальном времени без задержек.

Под капотом всё тот же RTSPtoWebRTC. Но теперь это не аддон Hass.io, а компонент Home Assistant, который можно установить через HACS. А значит, теперь он поддерживается не только в установках с Supervisor, но и в Docker-версии, в venv и даже в Windows, в том числе в HassWP.

А самое главное - компонент теперь поставляется с карточкой Lovelace, которую не нужно отдельно ставить и как-то добавлять в ресурсы. Оно само.

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

Конечно, не стоит ожидать, что все камеры мира заработают. Но те, что заработаю - будут выдавать картинку ОЧЕНЬ быстро.

https://youtu.be/2otE2dc6OAA
Случайно нашёл себя на ebay...
Всего пару дней компоненту WebRTC, а репозиторий уже посетило более 2000 человек. И за это время много всего улучшилось в компоненте.

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

Сервер WebRTC теперь сам находит свободный порт, если 8083 у вас по какой-то причине занят. А если что-то пойдёт не так - он сам перезапустится.

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

Если у вас с десяток и более камер - появилась настройка увеличить количество активных подключений. По умолчанию их всего десять.

В документации компонента появился большой раздел FAQ с ответами на самые частые вопросы и проблемы:

https://github.com/AlexxIT/WebRTC