AlexxIT Smart Home
7.6K subscribers
320 photos
27 videos
287 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
Итак, актуальные новости про прошивки 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-сервис.
Прошлый заумный пост про сон многим зашёл.

Сразу признаюсь, новый ролик я ещё не смотрел. Но Лёха очень крутой! Всем советую пересмотреть все его ролики и по нескольку раз! Обязательно! Лучше начинать со старых (3-4 летней давности).

Сердце, холестерин, похмелье, инсульт, инфаркт, гипертония, давление, кардио, бег и всё, всё, всё...

https://youtu.be/LwjAf3mnsMU
Ну что, владельцы локальных колонок Яндекса. Готовы прикрутить в Home Assistant ещё одну забавную и бесполезную функцию?
Сегодня мы будем добавлять вашу Алису в Home Assistant.

Стоп, скажете вы, у нас уже есть Алиса в ХА!

Да вот нет. У вас есть Умный дом Яндекса в ХА (компонент Дмитрия). У вас есть колонки Яндекса в ХА (YandexStation). У вас даже есть Алиса в Telegram (опять же YandexStation).

А вот сегодня у вас будет Алиса прям в ХА.

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

Но в отличии от владельцев Гуглов, Алекс и Сири - у нас есть преимущество в виде Яндекс Алисы, которая может обрабатывать все эти фразы за нас.

Работает в любом браузере, где поддерживается ХА. Колонка нужна локальная!

А если это браузер Google Chrome - работает даже голосовой ввод! Кроме телефонов Apple, там спасибо ребятам из Купертино нет альтернативных браузеров. И Chrome там ненастоящий. Сюрприз, да? 😅
Инженеры Intel, ну что за бред. Почему из всей моей коллекции дисков 2.5" в ваши салазки влазит только один?! Вам сделал погоду этот один миллиметр? И главное, салазки неразборные. Они намертво прикреплены к корпусу.

Будьте внимательны при покупке толстых нуков!
Вопрос, волнующий многих: сколько же устройств поддерживает Xiaomi Gateway 3?

Официальная документация Xiaomi говорит о 32 дочерних устройствах и 128 устройствах при использовании роутеров.

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

Устройства Zigbee могут быть роутерами и конечными устройствами.

Конечные устройства, как правило "спящие" (батарейные). И, довольно редко среди них встречаются устройства с постоянным питанием, например Aqara выключатели без нуля (они не могут быть роутерами).

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

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

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

Итого прямых подключений у хаба получается до 58.

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

Кстати ограничения в 128 устройств я нигде не видел. Хаб может помнить до 255 "маршрутов".
Яндекс не перестаёт удивлять. Помните, на днях они запретили кучу символов в фразах к Алисе? Так вот там нельзя использовать два пробела подряд! Будьте внимательны и осторожны, двери закрываются...
Похоже, Xiaomi наконец выпустили релизную прошивку на свой Gateway 3. Она пришла почти всем. И среди нас уже есть потери от случайных нажатий на кнопку Обновить.

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

А ещё я очень сильно переписал всю работу с Telnet и BLE. Теперь BLE, как и Zigbee, работают через MQTT. Поэтому один шлюз можно безопасно использовать с несколькими Home Assistant.

Тем, кто неудачно обновился, не стоит сильно переживать. Надеюсь на днях таки выпустить инструкцию по откату прошивки. Готовьте паяльник, USB-TTL UART адаптер и можете потихоньку аккуратно вскрывать шлюз.

А заодно можете прикупить разъём HR911105A. Ну конечно, если есть желание прикрутить к шлюзу Ethernet. Правда его работа на родной прошивке пока не подтверждена.

Не болейте

https://youtu.be/9BMoKq19yCI