AlexxIT Smart Home
8.34K subscribers
325 photos
28 videos
291 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
Не только транснациональные компании с многотысячным штатом способны удивлять и восхищать своими разработками.

Надеюсь, многим знаком выдающийся изобретатель 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 всё же смогут найти эту пасхалочку 😉
Самая страшная из свобод - свобода выбора.

Пока Яндекс выпускает релиз за релизом - Станция Макс, мультирум, датчики в умном доме (наконец-то)! У меня тут свои эксперименты.

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

Даже когда я встроил в Xiaomi Gateway 3 возможность добавлять некоторые Zigbee-устройства напрямую в Mi Home, а затем вообще добавил поддержу Zigbee Home Automation (ZHA), пользователям всё равно было мало. Хаб так и оставался в тени сотен поддерживаемых устройств из проекта zigbee2mqtt.

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

При этом устройства Xiaomi продолжают работать в Mi Home и в Home Assistant в обычном режиме. А так же видны данные от датчика движения и кнопки Sonoff. Она всё ещё управляет розеткой Xiaomi в режиме прямого биндинга.
SonoffLAN внезапно набрал 700 звёзд. У YandexStation 277 звёзд. А у XiaomiGateway3 не хватает 7 звёзд до 300. Вообще я не из тех, кто считает цифру 7 счастливой, просто забавный факт.

А ещё yandex_smart_home_fix уже успел набрать 40 звёзд. Даже больше, чем HassWP, MorphNumbers или YandexDialogs за всё время.

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

https://t.me/AlexxIT_SmartHome/252

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

Хотя Python умеет SQLite "из коробки", его реализация не подошла. Ведь он умеет читать только локальный файл с базой данных, а в моём случае файл лежал где-то далеко на шлюзе. Конечно, при каждом старте Home Assistant можно скачивать эту БД и временно сохранять куда-то на сервер ХА. Такой себе "костыль". И выбирая между двух костылей, я остановился именно на варианте с собственной реализацией алгоритма чтения без всяких временных файлов.

Конечно, я не стал полностью повторять спецификацию, и сделал минимально рабочий код, чтоб типичная база именно с этого шлюза могла прочитаться.

Всё работало хорошо до тех пор, пока не появился человек с 30 Mesh-лампами. Дело в том, что большие таблицы с данными сохраняются немного в другом формате, на чтение которого я изначально подзабил.

Но в последней мастер-версии компонента всё поправлено. На случай, если и кто-то из вас решился сделать такую же основательную ставку на Bluetooth Mesh технологию.
Хоть многие WiFi-ненавистники боготворят Zigbee за функцию "роутинга" - именно она является, возможно, основной причиной отказа при использовании этой технологии.

Когда вы пользуетесь WiFi - все устройства подключаются напрямую к роутеру и общаются друг с другом только через него. Исключениями вроде Apple с их функцией AirDrop можно пренебречь.

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

Когда вы пользуетесь Zigbee с надеждой на функцию роутинга - вам нужно быть очень уверенным, что:

1. Все ваши датчики поддерживают быструю смену роутера. А в случае с некоторыми Xiaomi/Aqara это далеко не так. Легко можно лишиться какого-нибудь датчика на сутки.

2. ПО вашего стика совместимо со всеми роутерами в вашей сети. И опять в случае с устройствами Xiaomi/Aqara это не всегда так.

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

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

Напоминаю, что Xiaomi Gateway 3 умеет поддерживать 32 прямых подключения к датчикам и дополнительно к 26 роутерам. Максимальное количество устройств неизвестно, но злоупотреблять в любом случае не стоит.
Сегодня Яндекс выпустил кучу обновлений по Алисе.

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

2. Развитие NLP грамматики. Обязательно ознакомьтесь, если пользуетесь моим компонентом YandexDialogs

https://yandex.ru/blog/dialogs/parad-poleznykh-anonsov-novye-vozmozhnosti-dlya-razrabotchikov-navykov

3. API уведомлений для умного дома. Пока доступны только датчики. Но! Данные теперь обновляются не по запросу от Яндекса, а посылаются в Яндекс из вашего умного дома. Конечно, это ещё надо реализовать в компоненте Дмитрия. И самая заветная фраза:

"теперь можно подключить датчики, а в недалёком будущем — даже настроить автоматизированные сценарии с их использованием"

https://yandex.ru/blog/dialogs/datchiki-v-umnom-dome-s-alisoy-novyy-api

4. В отелях можно использовать преднастроенные колонки с Алисой. Они будут рассказывать всякую полезную информацию о отеле.

"гости смогут использовать свой аккаунт на Яндексе или получить гостевой доступ"

https://yandex.ru/blog/dialogs/novye-vozmozhnosti-dlya-biznesa-integratsii-s-alisoy

5. В Алисе появляются Аудиотокены. По некоторому звуку колонка активирует ваш навык. Примерно как это происходит при настройке WiFi на колонке. История опять доступна только бизнесу 🙁