AlexxIT Smart Home
7.67K subscribers
320 photos
27 videos
288 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
Выпустил обновление компонента YandexStation.

С недавнего времени в рамках борьбы с потенциальными вредителями, неустанно желающими добраться до ваших приватных данных (здравствуйте, служба безопасности Сбербанка), Яндекс ввел строгое ограничение на допустимые символы в фразах к Алисе.

Последняя версия компонента избавится от таких символов за вас. А ещё сама обрежет текст, если он выходит за разрешённые 100 символов. Так что ваша фраза в любом случае дойдёт до колонки без ошибок.

Заодно починил проигрывание плейлистов на локальных станциях.

А также перелопатил документацию. Поправил что устарело. И разобрал толпу issue на GitHub. Если про кого-то забыл, пишите. Проектов много. В Яндексе более 10 тысяч сотрудников, а я тут один и тащу не только Яндекс 😅

https://github.com/AlexxIT/YandexStation/releases/tag/v2.3.1
Новый рекорд доставки. За 5 дней из Китая. Никогда не понимал статус "подготовлено к отправке"...

А приехало новое двухканальное реле Yeelight с поддержкой Wi-Fi и BLE.

Очень хотел проверить, работает ли оно с Xiaomi Gateway 3 по BLE и ответ - не работает. Похоже, BLE в устройствах Yeelight используется только для первой настройки и для подключения к фирменным пультам. Протокол этих пультов пока никто не расшифровал.

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

В Home Assistant такое реле ещё не научились поддерживать. Но я без проблем уже нашёл и опробовал команды API.

А ещё в реле есть функция interlock. В приложении Mi Home её нет, но через API включается и работает.

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

Думаю, надо добавить в компонент возможность получения исходного кода автоматизаций.
Очень частым вопросом по Xiaomi Gateway 3 звучит: как создать автоматизацию кнопки?

1. Им посвящен отдельный раздел документации и снято видео

2. Состояние кнопки выведено в сенсор, как это делает zigbee2mqtt и компонент для второго (старого) шлюза

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

4. Я даже повторил события кнопок старого компонента Gateway 2, потому что мигрирующие пользователи почему-то думали, что и они должны работать. Теперь они и вправду работают

Но вопросы появлялись в чатах снова и снова.

В новой версии компонента появятся GUI-автоматизации кнопок!

Они уже есть в мастер-версии, кому не терпится, могут себе её установить.

Важный момент - не каждая кнопка поддерживает все варианты нажатий. Что умеет именно ваша кнопка - можете посмотреть в атрибутах её сенсора Action.
Я знаю, что там Яндекс навыпускал всякого, но сейчас пост не про это. Мне вообще пока мультирум не завезли, хотя у других пользователей уже работает. Надо просто сказать "включи музыку везде".

В последней мастер версии Xiaomi Gateway 3 начал поддерживать Aqara-термостат. Первое Zigbee устройство, которое пока даже zigbee2mqtt не умеет, а в Home Assistant уже работает.

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

Пишут "works like a charm!". Как часто я такое слышу 😅
На Хабре вышла большая статья про разработку новой колонки во всех технических подробностях.

Разрешение пиксельного экрана 25×16. Исключительно белые светодиоды с 256 градаций яркости. 50 кадров в секунду.

Жаль, в старой стации почти нет места под похожий экранчик. Можно было бы придумать какой-нибудь DIY. Место есть лишь в нижней части примерно на 20 пикселей (чтоб просвечивались через пластмассовую сетку). По сравнению с 400 пикселями Яндекса это конечно большая разница.

https://habr.com/ru/company/yandex/blog/529770/
Не только транснациональные компании с многотысячным штатом способны удивлять и восхищать своими разработками.

Надеюсь, многим знаком выдающийся изобретатель AlexGyver, подаривший миру много прикольных проектов. Если нет - скорее гуглите его сайт и YouTube.

Один из таких проектов собирал и я - знаменитая Огненная WiFi лампа, именуемая в народе как Gyver Lamp. Видео моих экспериментов можно найти в истории канала. Я даже написал компонент Home Assistant для оригинальной прошивки.

Но @miruff пошёл ещё дальше и "натянул" идею на ёлку!

https://t.me/homassistant/300956

На оригинальную прошивку к лампе появилось много более продвинутых альтернатив. Вот одна из самых популярных, написанная @Whilser. В ёлке используется именно она.

https://sprut.ai/client/blog/1641

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

Сегодня мы будем звонить на колонку с Алисой из приложения Home Assistant!

Ну как из Home Assistant. Звонок всё равно будет через приложение Яндекса. Но правильная кнопка будет нажата в Home Assistant.

Эта новая функция пока работает не на всех колонках с Алисой.

А ещё я вас научу делать "тихий" звонок на колонку. На колонке не будет гудка и она сама снимет трубку.

Можно придумать много разных применений. Радионяня, поболтать с питомцем и прочие полезности, а может и гадости...

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

Развлекайтесь.

https://gist.github.com/AlexxIT/5dd25dbe3306d673ad013f05617a8056
Человек из Магнитогорска, который репостит мои сообщения себе на личный канал. Я конечно понимаю, что на канале почти нет супер критичной информации, но в любом случае он открытый. Лучше скрыть его от посторонних глаз.

Кстати последний диван нормальный. У меня такой. Уже второй взамен старого такого же. Цена позволяет менять их не напрягаясь раз в несколько лет.

PS. Конечно, на сами репосты я не ругаюсь. Количество репостов позволяет понять, что тема интересна.

PS. Канал пропал. Всегда следите за своей приватностью в Интернете!
Так. Я вас дезинформировал. Чтоб позвонить СЕБЕ на колонку с Алисой - опцию "принимать входящие звонки" включать НЕ надо! Себе вы можете позвонить вне зависимости от этой настройки. Эта галка нужна, чтоб вам мог кто-то позвонить. Так что хорошо подумайте, на каких колонках стоит её включать.

Звонить можно из мобильного приложения Яндекс. Для этого нужно войти в Мессенджер (бумажный самолётик сверху справа) и добавить друга, например, по его нику на Яндексе.

Звонок пройдёт на его телефон и на его колонки с включенной опцией "принимать звонки".
Вслед за идеей "тихого звонка на колонку", давайте немного поднимем тему приватности.

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

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

Любое умное устройство с Wi-Fi стоимостью от 300 рублей уже может пустить злоумышленника в ваш дом.

И никакие Apple вас не спасут. Или все забыли историю, как через Facetime можно было провернуть этот самый "тихий звонок" на любой яблочный телефон? А истории про слитые фото Голливудских звёзд или Дзюбы. Думаете, у них был Android?

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

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

Какие-то уязвимости возникают по ошибке, какие-то специально. Самая гениальная дыра в HTTPS существовала более двух лет. Еслиб за такие "закладки" давали нобелевские премии, дыра, несомненно, была достойна такой премии.

Переживаю ли я по поводу камер? Скажем так, я смирился с этим и просто не хожу мимо них без трусов.
Приехала новая кнопка от Sonoff SNZB-01 и... она ужасна. Буд-то инженеры АвтоВАЗ резко поняли, что они делают что-то не то и решили попробовать себя в Zigbee.

К сожалению, в Mi Home, кнопка не работает.

Но! Кнопка поддерживает Zigbee 3, а значит, на ней работает прямой binding. Напоминаю, это настройка прямой связи кнопка => устройство, которая будет работать даже без хаба/стика. И, конечно, я не мог не попробовать её завести на Xiaomi Gateway 3.

Розетка продолжает работать в Mi Home и может управляться с кнопки при выключенном хабе:

https://youtu.be/peRCgClxO0w

Вообще я разочарован функцией биндинга и поэтому не сильно спешу её реализовать в компоненте. Функция поддерживается только на новых кнопках с Zigbee 3, а их не так много в природе. И хитрую логику на ней не построишь.

Например, у кнопки Sonoff одно нажатие - переключает устройство, два нажатия - всегда включает устройство, долгое нажатие - всегда выключает устройство. Всё. Больше вариантов нет.

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

С биндингом так нельзя. Он тупой как валенок. Хоть и позволяет организовать отказоустойчивое управление устройствами.

Ещё конечно бывают пульты-диммеры. Например, Hue, IKEA или Opple. Они могут включать/выключать свет и менять его яркость. Opple даже умеет менять температуру.

Но особой сути это не меняет. Свой Opple на шесть кнопок в режим биндига я не переведу.
Прикупил новую версию iStat Menus. Пользуюсь ими уже много лет, но остановился на 5й версии. Обновление было платным. А сегодня у них скидки в честь Black Friday. Лучше брать версию именно на сайте разработчика, как и любой другой софт для macOS. С одной стороны софт не будет урезан ограничениями App Store. С другой стороны авторы получат порядочно больше денег, чем бы им осталось от злодеев из Купертино.

Пишу про злодеев из Купертино, а сам покупаю софт по скидкам 🙈
Алексей @Rodchenkov из комментариев к инструкции "тихого" звонка предложил вариант, как совершить тихий звонок на колонку с Алисой в один клик через кастомный компонент - button-card (неожиданно).

А я записал по этому поводу демо-видео для тех, кто совсем не разбирается, куда тыкать в интерфейсе.

https://youtu.be/Xp0Z91ndnLg

Идентификатор скрипта можно взять из адресной строки браузера при его редактировании. Это довольно большая цифра.

Чтоб с установкой кастомных карточек не было проблем - нужно пользоваться HACS и никаких mode: yaml в configuration.yaml! При этом возможность настраивать интерфейс в формате yaml не теряется, просто переносится... в интерфейс.
Друзья. Вы уже мне как-то помогли с поиском отличной утилиты для преобразования RTSP в WebRTC. Может, поможете и сейчас.

Давно мечтаю реализовать светомузыку. Вероятно, технически это должно быть снятие звука с микрофона на сервере Home Assistant и преобразование его в RGB-цвет. Вообще не было с таким опыта. Накидаете проектов по этому поводу?

Желательно такие примеры, которые потом можно легко завернуть в аддон Hass.io. Можно какие-нибудь готовые библиотеки.
В компоненте YandexStation пополнение.

Как бы странно это не звучало, но компонент помимо колонок поддерживает Кондиционеры и ИК-пульты, заведённые в Умный дом Яндекса.

Тут важно не путать историю с компонентом Дмитрия. Его компонент прокидывает устройства из Home Assistant в умный дом Яндекса. А компонент YandexStation делает наоборот - из умного дома Яндекса назад в Home Assistant.

Вот тут статья, как потратив 9 баксов и 2 минуты своего времени, можно сделать почти любой старый тупой кондиционер умным:
https://sprut.ai/client/blog/3254

Сегодня я добавил поддержку Телевизоров. Обновления пока не в релизе, а в master-версии. Кому не терпится - могут установить её через HACS.

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

Но теперь это больше не проблема. Его будет включать ИК-пульт от Яндекса (Tuya). По команде с Zigbee выключателя Opple.

One more thing...

Чтоб два раза не открывать исходники YandexStation, я добавил поддержку лампочек и выключателей!

Да-да. Теперь можно добавить умную лампочку и умную розетку от Яндекса в Home Assistant. Впрочем, не обязательно от Яндекса. Поддерживаются любые Кондиционеры, Телевизоры, Лампочки и Выключатели, что есть в Яндексе.

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

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

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

PS. Для работы компонента не обязательно иметь колонку от Яндекса!
Так выглядит телевизор, добавленный через ИК-пульт Яндекса (Tuya) в Home Assistant
У меня для вас ещё один лайфхак.

Самым частым вопросом по колонкам Алисы звучит: как спросить температуру в комнате?

Для этого в компоненте YandexStation есть интенты. Правда, для их работы нужна интеграция с умным домом Яндекса, а это значит белый IP и HTTPS. И заводятся они довольно запутанно, не все справляются.

Ещё есть YandexDialogs. Но там тоже нужен белый IP и HTTPS. И постоянно нужно произносить название навыка в каждой фразе.

И вот для владельцев локальных колонок я предлагаю ещё один способ реакции на три любые фразы. Работает полностью локально. К сожалению, фраз может быть только три и работает только с локальными колонками.

Но. Интеграция с умным домом не нужна и можно узнать, с какой именно локальной колонки пришёл запрос!

https://gist.github.com/AlexxIT/d4995839aedde2bbcf822831a71a52c5
Вот и у Xiaomi Gateway 3 пополнение. Спасибо @great_kvazis, добавлена поддержка нового реле Aqara Relay T1 на один канал без нуля.

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

На данный момент на новом API протокола Zigbee 3 работают всего два устройства - новый датчик освещённости и это вот реле.

И тут очень непонятная история. Реле добавляется в Mi Home, но для него нет плагина. Поэтому пользоваться им в приложении нельзя, делать на него автоматизации тоже. Но в Home Assistant реле работает исправно.

Подробнее про реле можно посмотреть в последнем видео Алекса. Лайки, колокольчики, всё как вы умеете:

https://youtu.be/_78BnS8fWTM
#wifi #gateway3
Есть в настройках Wi-Fi одна важная опция, про которую не все знают:

Интервал обновление групповых ключей Wi-Fi

Она очень сказывается на работе умных устройств. У Keenetic есть статья по этому поводу. Вообще у них есть очень много грамотных статей по сетевым технологиям. Инженеры Keenetic, возможно единственные среди конкурентов, делают отличные роутеры для умного дома из коробки.

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

У Кинетиков этот интервал ранее был 1 час. Но в новых прошивках его повысили до 24 часов. В моём MikroTik этот интервал вообще равен 5 минутам. Из-за чего третий гейт часто терял Wi-Fi. Сейчас я повысил интервал до 1 часа, и всё стало хорошо. Возможно, ранее проблемы были и у других девайсов, просто я их не замечал.

https://help.keenetic.com/hc/ru/articles/115003690689
Играюсь с картой сети на Xiaomi Gateway 3. Теперь понятно, почему движение на кухне в редких случаях может не отработать. Надо бы его переспарить напрямую на гейт. И видно пару устройств, которые гарантированно в офлайне.

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

Но особо пытливые пользователи с базовым знанием python всё же смогут найти эту пасхалочку 😉