AlexxIT Smart Home
7.98K subscribers
321 photos
28 videos
289 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
Маленькое большое обновление Xiaomi Gateway 3.

Статусы unavailable для шлюза и zigbee-устройств. Для шлюза работает хорошо, на основании подключения mqtt. А вот zigbee-устройства могут в течение 20-30 минут после отключения питания, по мнению шлюза, оставаться online... Зато статус подтягивается при перезагрузке ХА.

Модели Bluetooth-устройств. Больше никаких непонятных BLE. Если вашей модели таки нет - пишите, добавлю.

Возможность отключить BLE при настройке интеграции. Два Home Assistant не могут работать с BLE одного шлюза. С Zigbee таких проблем нет.

Ещё есть выбранный канал Zigbee и его мощность в атрибутах шлюза.
Когда-то давно, мой первый комонент SonoffLAN избавил пользователей от большой боли - необходимости прошивать свои ESP-шки для работы в локальной сети с умным домом.

HassWP избавил начинающих пользователей от сложностей в установке Home Assistant на Windows.

А сегодня Xiaomi Gateway 3 решит ещё одну популярную проблему - получение токенов Xiaomi устройств.

Чтоб воспользоваться функцией, не обязательно иметь шлюз. Просто поставьте компонент и залогиньтесь через него в Mi Cloud.

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

А ещё у Zigbee и BLE устройств теперь есть имена, которые вы установили им в Mi Home.

https://youtu.be/rU_ATCVKx78
Вот не понимаю я всего этого трепета перед Apple HomeKit. Магия Купертино. Ничего лучше на рынке нет.

Зачем люди так хотят себе HomeKit? Сказать телефону голосом, чтоб он включил какой-то свет? Это работает плохо. Я пробовал. Какие-то лампы Сири включает хорошо, а название некоторых совершенно не хочет распознавать. Пытается включить песенки.

Управлять устройствами через родное приложение Дом? Так даже самые заядлые фанаты Apple признаются, что приложение работает так себе. И используют или даже разрабатывают альтернативные приложения.

Вот HomeKit исполнилось уже более 6 лет, а приложение до сих пор поддерживает только простейшие устройства, вроде переключателей и лампочек. Медиаплеер приходится интегрировать как 4 переключателя Power, Mute, Play/Pause/Stop. Прям как в песне Обломова и Сукачёва - Грёбанный стыд.

Удалённое управление умным домом? Ну как видно по скриншоту - к нему есть вопросы.

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

Конечно это не мой метод. В моей семье есть устройства Apple, и я постараюсь дать HomeKit шанс и настроить его максимально хорошо, насколько вообще способна эта экосистема. А потом уже делать окончательные выводы.
Тут Дуров на днях выпустил пост, как прожить долгую счастливую жизнь (с)

Ну что ж. И я поумничаю.

Часто вижу вопрос получения времени будильника с телефона или с колонки с Алисой, для использования в автоматизациях. Расскажу немного о своём опыте.

1. Уже много лет я ношу умные часы. Я начинал ещё с первых Pebble, а сейчас остановился на часах Garmin. Модель Apple никогда не рассматривал, потому что 1-2 недели работы от одной батареи сложно променять на 1 неполный день.

Так вот будильник у меня всегда на часах (вибро). Это способствует очень "мягкому" пробуждению. Плюс не будит домашних вашим будильником.

2. Будильник у меня всегда заведён на 7 утра 7 дней в неделю. Теория сна это вообще отдельная очень интересная тема.

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

3. А ещё слышали стереотип, что все ИТ-шники совы? Это не так. Идея в том, что компьютер вызывает очень высокую умственную активность. Которая потом мешает заснуть.

Тут важно придерживаться правила, как и с едой - за 2 часа до сна не налегать на еду и умственную деятельность. Можно почитать художественную книгу или посмотреть лёгкий сериал. Но книжка поумнее или фильм со смыслом уже могут подпортить планы на здоровый сон.

4. Хотя у меня установлен будильник на 7 часов - в 90% случаев я просыпаюсь раньше него. Это лучшая обратная связь от организма, что я всё сделал правильно в этом вопросе.

Вот довольно крутая аудиокнига на тему сна.
https://www.litres.ru/maklahov-nikita/roman-buzunov-kak-spat-i-vysypatsya-27442744/

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

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

https://gist.github.com/AlexxIT/5fb8fd32378cdc16c729f15d7a1bab28

А вот описание обновления:
https://t.me/yandexdb/413

Прикрутить получение текущих таймеров тоже можно. Но не очень понятно, где и как их отображать.
Итак, актуальные новости про прошивки Xiaomi Gateway 3.

Я уже писал о появлении на рынке Евро-версии хаба с Телнетом, закрытым паролем. Там прошивка v1.4.6_0043 идёт с завода.

И вот недавно для катайских хабов начало приходить обновление v1.4.7_0040, где Телнет вообще невозможно открыть командой. Обновление весьма редкое. Только пара людей его получило.

Я создал на github раздел, посвященный всем известным на сегодня версиям.

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

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

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

А вот когда новые хабы с завода будут требовать обязательного физического вмешательства для доступа к API - мы вернёмся на шаг назад. Продвинутый умный дом снова станет уделом гиков. И стики - единственным способом его организовать.
Итак, продолжение вчерашних новостей про прошивки Xiaomi Gateway 3.

Некоторым пользователям начала приходить версия v1.4.7_0063. Она приходит даже тем, у кого сейчас стоит v1.4.7_0040. В обеих версиях телнет невозможно включить командой. Его выпиливали весьма поспешно и не очень аккуратно. Могу предположить, что изначально они не собирались его убирать. Максимум закрыть паролем, как это случилось в евро-прошивке v1.4.6_0043.

Пока нет идей, что можно сделать с новой версией прошивки, даже если вас не смущает паяльник. Хаб довольно легко перевести в режим загрузчика, но пока это мало что даёт. Буду следить за новостями в этом направлении.

Ещё остаётся евро-хаб, в котором телнет хоть и с паролем, но всё же работает. Дождёмся, как он попадёт в руки толковым специалистам.

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

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

Кстати я написал здоровый такой FAQ по разным вопросам, связанным с хабом:
https://github.com/AlexxIT/XiaomiGateway3#faq
По поводу трансляции с камер в режиме реального времени. С этим в современном умном доме есть много вопросов.

Пока я занят другими делами - кто-то из вас может помочь.

Считаем, что у нас есть RTSP-камера и нужно посмотреть с неё картинку на мобильнике или в браузере. Для этого в любом случае нужно пропустить поток через сервер. Большинство решений используют на сервере ffmpeg и выдают на выходе HLS-поток, который по определению не является потоком в реальном времени. Можно настроить себе MJPEG-поток, у которого лучше с задержками, но всё ещё куча минусов. Наша цель - добиться стабильной задержки картинки не более 0.5 секунды.

Здесь решением будет использовать протокол WebRTC. Насколько он крутой вы можете попробовать тут:

https://demo.flashphoner.com/admin/demo.html

Это сторонний сервер, который будет пропускать видео с вашей камеры через себя. Для этого вам нужно прокинуть RTSP-поток вашей камеры в Интернет. И даже в этом случае задержка как раз будет менее 0.5 секунды. Я проверял.

Поскольку решение платное - кому-то нужно найти open source аналог и заставить его работать. Я находил GStreamer и Kurento. Но заставить их работать пока не получилось.

Если появится рабочее решение - его можно будет завернуть в Hass.io Addon и прикрутить в GUI. Так что на данный момент всё в ваших руках.
Человек, открывший миру знание про Телнет в Xiaomi Gateway 3, снова пришёл к нам на помощью в трудный час.

Сергей (Serrj) нашёл способ, как залить на хаб нужную прошивку. Да, придётся его вскрыть и подпаяться. Но это всё же выход, если вы случайно обновили хаб или если магазины начнут слать хабы с новой версией. Кстати, в случае второго хаба - старые прошивки выпускались с завода в течение нескольких лет...

Инструкции пока нет, как и подтверждения, что хаб нормально съест прошивку старой версии. Буду держать в курсе.

One more thing...

Есть некоторый шанс, что знакомые с паяльником люди смогут завести на хабе Ethernet!!!
Bluetooth Mesh для Xiaomi Gateway 3 в продакшене.

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

Работает не супер хорошо. Там задействован весёлый протокол miio, Telnet и родная утилита Xiaomi для работы с Bluetooth-устройствами. Поэтому команды иногда могут уходить с задержкой, обратная связь тоже может иногда запаздывать.

Родные Mesh-группы пока не поддерживаются. Там не так всё просто.

Если модель лампы не определилась - присылайте номер, который показывает ХА в колонке модели и точную модель вашей лампы.

И ни в коем случае не пользуйтесь всякими костылями и сырыми продуктами!
Угораздило меня несколько лет назад подсесть на бег.

Тогда я подошёл к вопросу с научной точки зрения и изучил все попсовые материалы в Интернете по этому поводу. Потом изучил кучу спортивной, медицинской и автобиографической литературы. Истории Усейна Болта, Лэнса Армстронга, Скотта Джурека особенно интересны, рекомендую.

Затем я приобрёл спортивные часы, и начал исследовать, как далеко продвинулась наука в этом вопросе. А продвинулась она прям очень далеко.

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

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

Или многие современные тренеры до сих пор считают формулу максимального пульса, как 220 минус возраст. Это полная чушь.

Почему люди так любят качать бицепс, когда гораздо важнее в этой жизни следить за самой главной мышцей - сердцем?
Я не сороконожка и не безумный фанат кроссовок. Просто беговые кроссовки имеют свой срок службы в километрах. Это в среднем от 300 до 1000, в зависимости от модели.

И вот сегодня общий мой километраж перевалил за 10 тысяч.

Средняя скорость весьма скромная. На московский Die Hard меня пока не пустят. Я три раза начинал с полного нуля ввиду некоторых обстоятельств.

Плюс большая часть километража приходится на пересеченную местность с перепадами высот. А это сильно влияет на скорость.

Влияет ли это увлечение на разработку? Ну, кончено да! Это более десятка часов живого времени в неделю. Плюс, если переборщить, в остальное свободное время вообще не хочется что-либо делать 😅
Месяц назад Google выкатил новые API для устройств линейки Nest.

Среди поддерживаемых устройств есть их умный экран Google Nest Hub Max (с камерой).

Так вот он поддерживает:
- получение RTSP-потока
- обработку событий (движение, человек, звук) и получение картинки по событию

Весьма любопытно. Жаль в своё время я решил сэкономить $50 и взял умный экран от Lenovo. Как показывает практика - интернет гиганты охотнее вкладываются и развивают именно свои родные устройства.

Примеры тут: умные экраны Google (серии Nest Hub), телефоны Google (серии Pixel), колонки Яндекса (большая и маленькая).
Ура! Спасибо @A4ENN, найдено простейшее и рабочее ПО для трансляции RTSP-потока с камер в формате WebRTC.

Слева картинка с камеры, справа таймер, на который эта камера смотрит. Как видно, задержка в пределах полсекунды, что очень здорово. ПО написано на go и полностью самостоятельно (не используется ffmpeg, gstreamer и прочие утилиты). Пересжатием не занимается, поэтому нагрузки на CPU нет совсем. Поддерживает звук!

Теперь нужно собрать его в виде аддона Hass.io под x86 и ARM платформы (малина). Так же нужно накидать кастомную карточку GUI. Плюс отладить трансляцию этой карточки на Chromecast. Ещё можно прикрутить решение в HassWP, спасибо языку go - это не должно быть проблемой.

Очень открытый вопрос, будет ли это всё работать при удалённом доступе. Как появится свободное время, обязательно займусь всем этим.
Вчера Яндекс немного поломали сценарии в своём умном доме. Они запретили создавать фразы Алисе менее двух букв и запретили использовать там символы градусов и процентов.

Из-за этого YandexStation поломался для некоторых пользователей, но в v2.2.11 всё поправлено.

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

Ещё я наконец-то позволил не указывать ответ в intents, где он не нужен. Раньше инструкция советовала поставить точку (которая глючила на некоторых станциях), а теперь можно просто оставить ответ пустым.

Ещё я попытался выкатить исправление проблемы "несколько TTS в конфиге". У меня уже давно есть на это дело рабочий фикс. Но! В версии 0.115.4 и выше разработчики ХА этот фикс поломали 🤦. Поэтому он потерял актуальность, так и не попав в продакшен.
Грусть и печаль. С ограничением на допустимые символы в фразах к Алисе - Яндекс закрыли поддержку "спецэффектов в TTS".

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

Пользователи локальных колонок (а это только большая и маленькая колонки Яндекса) пока ещё могут пользоваться media_content_type: dialog для спецэффектов.

Случайно дрогнула чья-то рука или война со сторонними системами умного дома?
Так забавно слышать насмешки по поводу использования неофициальных API Яндекса в моменты, когда они ломаются.

А ничего, что на Яндекс.Станции YouTube неофициальный, и прям сейчас он поломался?

Кстати таким ютубом грешат почти все приставки на Android. Те что "ненастоящие" Android TV.
Я обновил сборку Home Assistant Windows Portable (HassWP).

Python, Home Assistant, HACS, SonoffLAN, YandexStation подняты до актуальных версий.

В сборку добавлен XiaomiGateway3. А это значит с её помощью можно легко получать токены ваших Xiaomi-устройств. Даже если вы не пользуетесь ХА, как центром умного дома. Скачал, распаковал, запустил, ввел логин/пароль Mi Cloud и все токены как на ладони. Шлюз иметь не обязательно. Вот инструкция:

https://youtu.be/rU_ATCVKx78

Для переезда со старой версии HassWP - просто перенесите оттуда папку config.

Также вы всегда можете переехать с HassWP на боевую установку Home Assistant в venv, docker, hass.io простым переносом содержимого папки конфига.

Обе установки ХА перед переносом желательно остановить.

https://github.com/AlexxIT/HassWP
Пару историй про новое обновление YandexStation.

История 1.

Механизм intents позволял перехватывать фразы, сказанные вашей колонке. При этом можно было указать фиксированную фразу, которую колонка произнесёт тут же в ответ.

Если ответ оставить пустым - колонка ляпнет что-то от себя. Чтоб заставить её молчать - в readme предлагалось поставить в качестве ответа точку.

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

Фразы вроде хватит, пауза, отмена, меню - останавливали музыку на колонке, если она её играет. Это нехорошо.

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

Поэтому, если нужно чтоб колонка молчала в ответ - последняя версия YandexStation просит её "установить громкость плеера Yandex Intents на сотню". Плееру от такой громкости ни горячо, ни холодно. А вот колонка при этом ничего не вякает. Все довольны.

История 2.

В Home Assistant встроено несколько видов TTS. Все они работают одинаково.

Например, для Google Translate TTS делался запрос на серверы Google с требуемой фразой, и в результате скачивался mp3-файл. Файл сохраняется в папке tts папки конфига, чтоб не делать повторный запрос в Интернет для произнесения той же самой фразы в будущем.

Затем на медиа плеер отправляется команда - проиграть файл по ссылке, а ссылка указывает на сервер Home Assistant и конкретно на этот скаченный ранее mp3-файл. Довольно много медиа плееров умеют проигрывать файлы по ссылкам - колонки Google и другие Chromecast-плееры, KODI, MPD и т.д. Все они могут оповещать вас голосом о чем-то важном.

Но колонки Яндекса не умеют проигрывать файлы по ссылкам. Если вызвать TTS от Google и указать в качестве плеера такую колонку - ничего хорошего не произойдёт. Колонке нужна именно текстовая фраза в качестве команды.

Но! Разработчики Hass не просто сохраняют такие файлы, они записывают в них текстовую фразу в виде ID3 музыкального тега. Мало ли, пригодится.

И вот пригодилось. Я решил скачивать эти файлы и смотреть, по какой фразе они создавались.

Всё работало хорошо до очередного обновления Hass. Теги всё ещё сохранялись в файлы, но стали невалидными (битыми). Музыкальные программы больше не могли их считать.

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

Проверено только на mp3-файлах от Google TTS. Теперь для Яндекс.Станций и других колонок можно использовать один TTS-сервис.