AlexxIT Smart Home
7.6K subscribers
320 photos
27 videos
287 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
Вчера Яндекс немного поломали сценарии в своём умном доме. Они запретили создавать фразы Алисе менее двух букв и запретили использовать там символы градусов и процентов.

Из-за этого 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
Письмо счастья от Steam. Уже не помню, когда во что-то игрался. Всё свободное время в этом году уходит, чтоб запилить что-то новенькое. Зачем я вообще в это всё ввязался 🙈

Кстати у этих ребят очень шикарные игры. Гробовщика и Боксёра прошёл взахлёб. Swag and Sorcery не пробовал, но если стиль и качество аналогичные - должно зайти.

https://store.steampowered.com/app/599140/Graveyard_Keeper/
Со всей этой суетой осталась незамеченной новая лампочка Яндекса. Не берусь судить о качестве самой лампочки, важно не это. Важно, что Яндексу удалось реализовать крутейший кейс первой настройки лампочки.

"Алиса, подключи лампочку Яндекса" и готово! Никаких мобильных приложений и прочих телодвижений. Колонка сделает всё сама.

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

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

"Алиса, уведоми меня, если CO2 в комнате превысит допустимые нормы".

"Алиса, выключай весь свет в доме, когда я закрываю замок на входной двери".
Итак, небольшие новости про Xiaomi Gateway 3.

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

Но и это не беда! Чем плоха новая прошивка? В ней закрыт Telnet. Значит, что нужно сделать? Взять исходники новой прошивки, открыть там Telnet, запаковать, подписать и подсунуть шлюзу как родные. И уже есть успешные наработки в этом направлении (не у меня).

Это можно сделать только на шлюзе с хорошей прошивкой! Шлюзу с уже установленной плохой прошивкой поможет только паяльник!

В общем, как появится стабильная и проверенная сборка - я смогу добавить опциональную функцию обновления в компонент. Никаких паяльников тут не надо. Прошивка будет на 99.99% соответствовать оригинальной.

PS: раньше времени не будем показывать Xiaomi все свои козыри 🤐
Беда. Пришёл первый шлюз с китайской вилкой (ZNDMWG03LM) и плохой прошивкой (1.4.6_0043). Дата производства 2020.10. Дата заказа 14 октября 2020.

Магазин Mijia Homes Store.

Инструкции на этот случай ещё нет. Она в процессе.

Есть только инструкция по откату прошивки на прошлую. Отличие в том, что на хабе с завода нет "прошлой" прошивки.

PS: есть второй заказ из этого магазина от 12 октября. Прошивка норм.

PS2: это прошивка с Telnet под паролем. Полный аналог прошивки евро-хаба. Для извлечения пароля всё же нужен паяльник.
Хочу напомнить, что даже Xiaomi Gateway 3 с плохой прошивкой можно подключить к Home Assistant по протоколу HomeKit.

Home Assistant сам найдёт новое устройство и предложит его добавить. Pairing Code находится на нижней стороне хаба (цифры около QR-кода).

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

Так можно подключить и другие хабы Aqara, которые умеют HomeKit.

Через HomeKit конечно пробрасываются не все Zigbee/BLE/Mesh-устройства. И принято считать, что такая интеграция работает весьма посредственно. Хотя в последних обновлениях ХА было много улучшений в этом направлении.

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

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

Такой фокус несложно проделать даже с Яндекс.Станцией. Если это локальная колонка - в атрибутах компонента есть ссылка на обложку на Яндекс.Музыке. А дальше автоматизация и дело техники.

Если есть Chromecast, Mi Box или другой Android TV - можно выводить обложку там.

Цена на рамку из видео, конечно, кусается. А у Samsung есть телевизоры с похожей идеей.

https://twitter.com/i/status/1320833401507745794
Одним из плюсов использования Xiaomi шлюза являются автоматизации Mi Home.

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

Простые автоматизации Mi Home выполняются локально на шлюзе. И более того! Простые автоматизации между двумя вашими шлюзами, тоже будут локальными!

Я только что проверил управление "Zigbee-кнопка на шлюзе 1 => Zigbee-лапмочка на шлюзе 2" и это работает при отключении Интернета.

Я также проверил "Zigbee-кнопка на шлюзе 1 => Mesh-лампочка на шлюзе 2" и это тоже работает без Интернета.

Со втором тестом забавная история. Похоже, автоматизация Mi Home запоминает, какой именно шлюз может управлять лампочкой. И при отключении Wi-Fi (разрываем связь между шлюзами) только кнопкой одного из шлюзов можно продолжать управлять Mesh-лампой.

На самом деле из Home Assistant я могу послать команду на любой из шлюзов, и он без проблем включит Mesh-лампу.
Ещё одна долгожданная функция - Mesh-группы. Ещё не в релизе, но уже на github.

Если кто-то жаждет попробовать - легко ставится через HACS: три точки в HACS - Reinstall - выпадающий список - master - Install.

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

Зато если в ХА придёт оповещение о изменение статуса любой из ламп группы - оно обновит статус всей группы целиком.

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

ХА не соберёт лампы в группу, если на хабе не будет такой настройки.
Часто в умном доме возникает потребность в реле с сухим контактом для управления, например, котлом. Или реле в режиме Interlock для управления открытием/закрытием электро-крана.

У Sonoff есть очень универсальное реле на многие случаи жизни. Это Pro серия их 4х канального реле. Где контакты реле выведены без особых хитростей.

На вход реле по умолчанию не подаётся питание. Значит, контакт является сухим.

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

Плюс Pro серия поддерживает управление с радио-пультов на 433 МГц.

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

В теории, если прошить ESPHome, прикрутить проводной сенсор влажности и аккумулятор питания на 12Вт - можно сделать автономную и надёжную систему защиты от протечек.