AlexxIT Smart Home
8.31K subscribers
327 photos
28 videos
291 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
Вышел релиз YandexStation 2.0

Теперь у вас есть идеальный голос для TTS, что дальше?

Можно создавать автоматизации с разными уведомлениями. Но есть проблемка. Если в уведомлениях есть цифры - произношение всё равно будет кривым, вроде:

"температура в комнате 21 градуса" - послушайте как Алиса говорит эту фразу, ужаснётесь.

Но у меня конечно есть для вас решение! В виде очередного компонента:
https://github.com/AlexxIT/MorphNumbers
Кто-нибудь в курсе, можно как-то на 4pda отжать ник? А то какой-то однодневка зарегил себе заветные буквы 😢
Подключив Home Assistant к Яндексу через навык умного дома - можно управлять всеми своими колонками голосом с других колонок.

Это гораздо удобнее, чем создавать сценарии для каждой такой команды.

А на больших колонках уже можно сделать мультирум. Не ждать же пока Яндекс это всё запрограммирует сам.

А у меня нет двух больших колонок, чтоб его отладить 😜
Aut cum scuto, aut in scuto?
Media is too big
VIEW IN TELEGRAM
Итак, вам очень хочется попробовать умный дом, но вы ничего не понимаете в Линуксах, Малинках, Консолях, Докерах и прочих матерных словах? Эта тема для вас!

Я тут довольно нехитрым образом собрал:
Home Assistant Windows Portable (HassWP)

Всё как вы любите: качаете, распаковываете, запускаете и пользуетесь.

В комплекте уже идёт HACS и пара моих компонентов, готовых к бою. В комплекте уже идёт NotePad, он частично поможет избежать вам ошибок с отступами в YAML, которые так часто бывают у новичков.

Вам всё ещё нужно самостоятельно изучить документацию к 1500+ интеграций, тут уж я вам не помощник.

И не стоит рассматривать HassWP, как боевое решение системы умного дома на века. Он будет полезен скорее для ознакомления и для экспериментов.
https://github.com/AlexxIT/HassWP
Docker версию Home Assistant скачали 💯 миллионов раз.

Ещё раз. Сто миллионов раз!
https://twitter.com/home_assistant/status/1241046840403001353
Ну что я могу сказать. Так всё и было, без шуток 🤣
Современным миром движет Мода, а не логика и собственное мнение.

Например принято считать, что Windows и Android глючные, Apple наше всё.
RF 433 и Wi-Fi не годятся для умного дома, ZigBee тащит.
Если ты пользуешься Home Assistant, то ни о каком Node-RED не может быть и речи.
Если ты адепт HomeKit или Node-RED, то Home Assistant 💩

В отличии от ребят из Купертино я не стремлюсь привязать пользователя к единой вере.

Home Assistant вполне может быть не основным, а вспомогательным инструментом. Если выкинуть из конфига всё лишнее и оставить лишь REST API - сам HA будет стартовать меньше секунды. При этом все те тысячи официальных и сторонних интеграций - продолжат работать.

И вы сможете управлять устройствами Sonoff на оригинальной прошивке или отправлять TTS на Яндекс Станцию из командной строки, из любой альтернативной системы умного уома или даже с ESP (мне задавали такие воросы, серьёзно)!

В последних версиях Home Assistant REST API не может работать без токена.
Получить его не проблема, но зачем усложнять себе жизнь.
Специально для этого случая я написал очередной компонент 🙈
https://github.com/AlexxIT/BypassAPI
Добавил в SonoffLAN малозаметную, технически сложную и интересную доработку.

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

Такое бывает в очень редких случаях, когда в многоканальных устройствах (например Sonoff 4CH Pro) пользователь объединил несколько каналов в группу. Home Assistant считает каждый канал независимым. При включении группы - отправляет команду каждому каналу в отдельности. И привет...

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

Похожим образом работает двойной клик на компьютерной мыши. Компьютер заранее не знает, нажмёте ли вы второй раз в тоже место или нет.

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

Первый про поддержку довольно популярных китайских устройств на родной прошивке. Сейчас сообщество пользуется альтернативной прошивкой. Но лично мне нравятся именно функции оригинальный прошивки. За исключением невозможности интеграции со сторонними системами. Надеюсь в обозримом будущем это поправить. Думаю это будет маленькая революция.

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

Третий про не супер популярную развлекательную технологию околоумнодомной тематики. Такого точно никто не делал. Да что там, никто даже не задумывался, "что так можно было"... (c)

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

И завтра планируется первый анонс! 😎
Как многие догадались, первым проектом идёт поддержка камер Xiaomi Dafang.

Эти камеры в стандартной прошивке умеют:
- писать на microSD карту, на USB флешку, на многие NAS или роутеры
- писать постоянно или только по движению
- режим сигнализации и уведомления в облако с видео движения (без всяких абон.плат!)
- доступ по LAN или удалённый доступ (не раз выручал)
- удобный просмотр истории движений по часам и дням (хранится на камере)
- двухстороннюю аудиосвязь (мне такое важно)
- отображение видео в настоящем real-time (и такое мне очень важно)
- 1080p, ночное видение и вращение на 360 градусов
- режимы круиз и слежение за объектом
- и кучу прочих фишек и настроек

На старте продаж эта камера стоила 800 (восемьсот) рублей! Я видел примеры, как их десятками скупали.

В общем мечта, а не девайс. Только вот есть (или уже можно говорить "была"?) проблемка с невозможностью интеграции всего этого добра куда-либо ещё, кроме мобильного приложения Mi Home.
Общение с Камерой происходит через системные библиотеки платформы Kalay. Они не распространятся публично, но загуглить можно.

Четыре долгих дня я пытался провести процедуру "рукопожатия". За это время попробовав десяток разных версий библиотек и написав код на: Python под Windows, Python под Linux, Go + Cpp, Java под PC, Java под Android. Но камера всегда обрывала соединение.

Как оказалось ответ был у меня ещё на первый день и ошибка была в неправильной системе счисления. Кто вообще описывает бинарные протоколы в десятичной форме?!

Это ещё не победа и уж точно не релиз. Ведь я пока даже не получил изображение с камеры. Stay tuned, всё как обычно.
Хм. По поводу управления HDMI на Яндекс.Станции (большой).

Яндекс его не поломали, а починили! Теперь на телевизор выводится только звук видео, а звук музыки и голос Алисы остаются на Станции. Сравните песню на Яндекс Музыке и клип YouTube.

Так что смело включайте опцию control_hdmi: true у компонента YandexStation. В будущих обновлениях я её вероятно уберу, ведь теперь всё работает хорошо.
Там Телеграм наконец официально разблокировали. Но чем же он так хорош и привлекает умнодомостроителей?

Да просто у Телеграм ботов что называется "API для людей". Нет сложных процедур получения токенов, простановки их в заголовки, мудрёных авторизаций с кучей редиректов и самодельными шифрованиями (на них сейчас тормоза с Xioami Dafang).

Токен бота просто является частью URL API. Кстати у Philips Hue похожий подход, но там нужно бежать к своему шлюзу и нажимать на нём кнопку в правильный момент времени (так раздражает).

Плюс Телеграм не стал заморачиваться с WebSockets и делать WebHooks обязательными. Они ввели не очень технически популярную, но достаточно простую технологию WebPooling, которая позволяет запрогить общение с ботом буквально "на коленке".

Про кучу достоинств самого Телеграма я тут писать не буду. Думаю самым важным будет очень оптимальная работа приложения с мобильным Интернетом. Когда у меня плохой сигнал - я первым делом открываю приложение Телеграма. Если у него не получится достучаться до своих серверов, то у остальных приложений на телефоне вообще без шансов.
А тут у нас схема алгоритма шифрования, используемого при авторизации в камерах Xiaomi Dafang.

Два вечера я повторял его на Python. Проблема в том, что в Python нет родных 4х байтовых целых. Поэтому большинство алгоритмов шифрования пишутся на Cpp и требуют отдельной реализации под каждую ОС. А потом любители venv создают issue на github, почему у них модуль Crypto не поставился для компонента SonoffLAN. Честно скажу - я хз почему 🤔

И вот когда код заработал - я решил загуглить название алгоритма. Сперва я думал, это вообще случайный набор букв 🙈. Но оказалось любезный китайский коллега уже сделал библиотеку с реализацией под Python 🤦

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

Это пока ещё не видео. Теперь нужно научиться паковать этот поток картинок в какой-нибудь протокол...
Ахтунг! Яндекс поломал авторизацию YandexStation!😱

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

Но вот, если новая установка - авторизация уже не пройдёт. Берегите свой .yandex_station.json как зеницу ока (он лежит в папке конфига).