AlexxIT Smart Home
8.89K subscribers
338 photos
29 videos
299 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
Хоть многие 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 на колонке. История опять доступна только бизнесу 🙁
Написал очередную обучающую статью про Home Assistant.

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

Показан пример как сделать сенсор из HTTP-запроса. Есть пример, как можно принудительно вызвать обновление сенсоров.

И есть пример использования одного из моих любимых кастомов - PythonScriptsPro. Который незаслуженно имеет так мало звёзд на GitHub. Ведь с его помощью можно решить кучу разных задач.

Например, можно делать более сложные HTTP-запросы, чем это позволяют стандартные компоненты. Или выполнять SSH-запросы из Docker контейнера на Host или на роутер, используя привычные логин/пароль. Или сделать сенсор размера файла базы данных без использования Shell-скрипта. Вы ведь помните, что частый вызов Shell-скриптов на слабых однопалатниках это очень дорогая операция? Зачем вам лишние тормоза?

https://sprut.ai/client/blog/3764
Случайно заметил в Node-RED новую ноду get template. Не знаю, когда она появилась, раньше не замечал.

Так вот она позволяет использовать мой компонент морфологии числительных MorphNumbers в Node-RED. Полезно для голосовых уведомлений на колонки и текстовых уведомлений на мобильники.

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

Симбиоз HA и NR настолько крутой, что не имеет смысла пользоваться чем-то одним. А сам NR ставится в пару кликов, если вы пользуетесь Hass.io.

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

https://github.com/AlexxIT/MorphNumbers
Вот вам ещё один лайфхак по работе с шаблонами Jinja2.

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

В примере показана простая конструкция проверки. В программировании это называется тернарная условная операция. Только что загуглил этот термин. Всегда называл такую конструкцию - inline if.
Не думал, что моей версией компонента Лампы Гайвера хоть кто-то пользуется. С учётом, что на неё вышло так много альтернативных прошивок. А я, как обычно, поддерживаю устройства именно на оригинальных прошивках.

Но пользователи есть и просили много разного. Возможность указать свой список эффектов, изменить имя лампе, добавить лампу в комнату.

С новым обновлением это всё стало возможно. Поддерживается как настройка через GUI интеграций, так и старым дедовским способом в конфиге yaml.

Вообще такие маленькие проекты очень хорошо позволяют отточить навыки создания компонентов Home Assistant. С этим обновлением я наконец-то научился пользоваться настройками интеграций из GUI. Теперь могу грамотно применить эти знания в других своих компонентах.

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

https://www.youtube.com/watch?v=riYsv5k_EdY
В мастер версии Xiaomi Gateway 3 появился просто мега крутой фикс.

Как вы, вероятно, знаете - датчики движения Aqara помимо информации о движении посылают информацию о яркости в помещении. Причём сперва яркость и сразу же за ней движение. Двумя разными сообщениями.

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

Я всё внимательно проверил. Сообщение о движении не доходит до хаба именно на уровне протокола Zigbee. Подозреваю, эта проблема повторяется с любым координатором, в том числе cc2531, cc2538, Conbee и тп.

Но! В Mi Home событие считается движением, даже если от датчика пришла всего лишь освещённость. А вот если приходит сообщение о движении без данных о освещённости - Mi Home такое событие пропускает сам 🤦

Ну а пользователям gw3 переживать не стоит. В следующем релизе всё заработает в лучшем виде из коробки.
На GitHub появилась болталка. По задумке авторов там можно что-то спросить, предложить идею или просто обсудить проект. Не засоряя при этом список issue.

В SonoffLAN счётчик перевалил за 300. А в Home Assistant за 44 тысячи! Количество звёзд на проекте меньше, чем issue 🤦

Включил обсуждения для своих самых больших проектов.
Итак, свершилось. Самое масштабное обновление YandexStation со времён выхода облачного управления. Более тысячи строк нового кода и куча вложенных человеко-часов. Вполне сгодится на версию под номером три.

А самое печальное, "бывалые" пользователи даже не заметят разницу 🙊

Новый код пока в мастер версии, не в релизе, и он умеет:

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

Настройку через GUI:
- можно забыть о проблеме 30 секунд для двухфакторной авторизации
- можно забыть о проблеме с капчей
- можно забыть о файле .yandex_station.json
- появились человеко-читаемые ошибки авторизации
- меньше поводов для перезагрузки Home Assistant
- вашими станциями можно любоваться в списке устройств

Ну и YAML конфиг всё ещё поддерживается. Всё переедет в новую версию "like a charm".

Рисковые мальчики и девочки могут установить мастер-версию через HACS. И завалить меня сообщениями, чего там в ней отвалилось.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Развлекаюсь с новым меш лампами. Подтягиваю скорость работы.

Уже написал свою версию протокола miIO в сотню строк кода. В двух вариантах - синхронном и асинхронном.

Вполне выдерживает 100-200 запросов в секунду к одному WiFi устройству.

Научил его максимально быстро запрашивать статус десятков сотен меш ламп при необходимости.
Вот кстати новые лампы. Мнение о них и новом выключателе Yeelight расскажу после пары недель использования. Вероятно уже в следующем году.
Media is too big
VIEW IN TELEGRAM
Обожаю снимать такие видосики. Bluetooth Mesh лампы через Xiaomi Gateway 3. Ну что там, Zigbee напрягся?
Итак, актуальная ситуация по прошивкам Xiaomi Gateway 3.

На сегодняшний день поддерживаются все версии прошивок на обеих версиях хаба (китайской и европейской). В европейской версии вообще нет блока питания, нет смысла за ней гоняться.

Хабы на старой прошивке 1.4.6_0030 и ниже (дата на коробке ранее 2020.10) работают сразу без дополнительных манипуляций.

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

Если вы, как и я, не любите паять - можно обойтись без паяльника с помощью специальной прищепки. Ссылка есть в wiki проекта на GitHub. Там же есть ссылка на пару моделей USB UART и видео по аккуратному вскрытию хаба.

@serrj_ua собрал отличную утилиту под Windows, которая сама всё сделает. Только подключи провода и нажимай продолжить, продолжить, продолжить.

Напоминаю, что хаб не всеядный. Лучше всего он работает именно с устройствами Xiaomi. Чуть похуже с другими Zigbee устройствами в режиме ZHA. До тысячи моделей устройств из проекта z2m ещё далеко.

Также напоминаю, что хаб любой версии без перепрошивки можно подключить к HA через HomeKit. У вас не будет поддержки BLE устройств, Mesh ламп, некоторых Zigbee-устройств и прочих плюшек компонента. Но популярные Zigbee-устройства вполне себе работают.

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

https://github.com/AlexxIT/XiaomiGateway3/wiki
Смотрите, какая штука появится в следующем релизе Xiaomi Gateway 3.

В отличии от бестолкового сенсора LQI здесь есть реально полезные вещи - это количество пропущенных сообщений и количество отвалов устройства от сети Zigbee.

Видите там пара датчиков движения уже пропустили по одному сообщению? Эту проблему я и чинил несколько дней назад. Если от датчика придёт хотя бы данные по освещённости - компонент всё равно зафиксирует движение.

Надеюсь, успею к релизу добавить колонку с родительским роутером.

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

Вот и первые дивиденды от нового функционала. Сегодня утром заметил, что датчик газа не слал сообщения более 10 минут. А вместе с ним и висящий на нём датчик движения. Десятки пропущенных сообщений от обоих устройств.

В нормальном режиме датчик газа шлёт 1 сообщение в минуту, 60 сообщений в час. Он не может молчать так долго. У него в 3 с лишним раза упал LQI. Может это была микроволновка, может соседский Wi-Fi, может ещё чего. Но датчик движения в любом случае нужно переспарить. И внимательно изучить ситуацию. Ведь в случае реальной утечки газа может быть неприятная ситуация. Плюс на нём ещё висит кухонный датчик протечки.
Продолжение истории про пропуски данных от датчика движения Aqara.

Я проверил историю одного из пользователей zigbee2mqtt и великого cc2538 - и там тоже есть пропуски событий движения. История за несколько дней, 2723 "хороших" срабатываний разных датчиков и минимум 173 пропусков без данных о движении.

Моя теория, что проблема именно в роутерах была неверна. Роутеры только усугубляют ситуацию, но пропуски могут быть и без них. На скриншоте уже данные по Xiaomi Gateway 3. Пропускают все - датчики движения (включая обычные Xiaomi), газа, двери, температуры и даже розетки. Все они висят напрямую на хабе.

Иногда есть пропуски более двух сообщений подряд и в этом случае не спасёт даже мой фикс. Но, судя по статистике, в 80-90% пропусков мой фикс таки спасает.

Ну и проблема будет заметна, только если пропустится именно первое движение по датчику. Учитывая, что остальные движения продлевают таймер - часть из них можно безопасно пропустить.
Итак, мой совет про автоматизацию по освещенности в zigbee2mqtt был плохим.

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

В Xiaomi Gateway 3 я учитываю движение, только если пришла освещённость, без других данных.

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

https://github.com/Koenkk/zigbee-herdsman-converters/pull/1926

Кстати я никогда не запускал и не видел в глаза z2m. Писал вслепую, надеюсь, нигде не напортачил.

PS. Уже более 3х месяцев назад я описал проблему с зависаниями протокола miio на GitHub разработчиков python-miio. Вносить правки не решился, там много страшного когда. Назначение его непонятно, ведь вся базовая логика укладывается в сотню строк.
Передаю привет всем тем, кто считает, то я зря поднял шум вокруг несуществующей проблемы датчиков движения. Как подсказывает Koen и куча его пользователей - проблема есть.

На GitHub проекта zigbee2mqtt есть несколько issue с множеством теорий заговора. Там ругаются на розетки и лампочки OSRAM, хвалят розетки Xiaomi, боготворят лампы Philips Hue. Но, в общем, всё как обычно. Чего только люди не выдумают о природных явлениях, которые не могут объяснить или заметить глазом.

https://github.com/Koenkk/zigbee2mqtt/issues/2274

Даже в доке z2m по этому датчику описана именно эта проблема. Правда, с привязкой только к розеткам OSRAM (это не так) и с комментарием, что проблема не может быть исправлена (опять же это не так) 😁

https://www.zigbee2mqtt.io/devices/RTCGQ11LM.html#troubleshooting-no-occupancy-only-illuminance-is-published

Хочу ещё раз уточнить, что сообщения пропускаю все виды датчиков и проводных устройств. Даже если подключены напрямую к хабу/стику!

У кого-то ввиду обстоятельств (выбранный канал Zigbee, выбранный канал Wi-Fi, каналы Wi-Fi соседей, наводки от другой аппаратуры, выбранный роутинг в конкретной сети в конкретный момент времени) пропусков может быть больше, у кого-то меньше. Но они есть. Если пропуск попадает на момент продления таймера, вы его даже не заметите.

В истории стика cc2538, которую я изучал, пропусков совсем мало: 100-150 штук на 2700+ верных срабатываний. Может это заслуга легендарного стика, может чего-то ещё.

Не нужно искать вашим датчикам замену, Koen уже внёс фикс и он есть в dev версии z2m. Если и он не поможет - в вашей сети прям плачевная ситуация.

В следующем релизе Xiaomi Gateway 3 у пользователей будет отличный инструмент выявления реальных, а не теоретических проблем. Как мониторить такие вещи на стиках - я не знаю.
YouTube тут подвёл итоги года. Более 45 тысяч просмотров, при количестве подписчиков менее одной тысячи. 95% лайков приходятся именно на этот год.

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

Однозначным фаворитом оказалось видео про Xiaomi Gateway 3. При том, что день рождения компонента - предпоследний день лета.

Сразу за ним идёт видео про лёгкое получение токенов Mi Home. И на третьем месте январское видео SonoffLAN.

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

А эффектный ролик про колонки Яндекса и RGB умные лампы не смог набрать даже тысячу просмотров 😔

https://youtu.be/XLoGvy4RLrg
В Xiaomi Gateway 3 подъехала просто гора всяких плюшек. Пока в мастер-версии, страшно вываливать столько всего в релиз.

Появились настройки шлюза в GUI! Теперь можно много чего поменять, не удаляя интеграцию и даже не перезагружая ХА! Каждое изменение настроек вызывает полный рестарт интеграции.

Появились детальные данные по работе Zigbee и BLE устройств. Выключены по умолчанию. Надо включить в обновлённых настройках. Для каждого устройства (кроме Mesh ламп) создаётся отдельный сенсор с временем последнего обновления.

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

И все новые сенсоры вы можете вывести в единую таблицу. Как это сделать читайте тут:

https://gist.github.com/AlexxIT/ee9a32816539cb035b7acf61cc67aff6

Данные о родительских устройствах Zigbee включайте с осторожностью. Не уверен, в стабильности работы
Сбербанк тут объявил цену на свою новую колонку с экраном в 1280х800. Может быть, акустика легендарного лейбла Harman/Kardon отъела 2/3 бюджета, непонятно.

А мне как раз сегодня дошла колонка Google. Я уже год пользуюсь умный экраном на 10" от компании Lenovo и ни разу не пожалел о покупке устройства этого форм-фактора. Я пожалел лишь, что не купил именно колонку от Google и наконец исправил эту ситуацию.

Покупал в надежде прихода русского языка, но за год этого так и не случилось. Хотя это не помешало смотреть YouTube, слушать музыку в мультирум и отправлять на неё голосовые уведомления о превышении CO2 и необходимости открыть окно.

В Америке колонка Nest Hub Max стоит, как у нас старая Яндекс.Станция. Добавим дорогущую доставку за 2.5 кг, и цена будет всё равно меньше новой Яндекс.Станции.

Очень хотелось опробовать новые Nest API распознавания людей, ведь у колонки есть камера. А ещё в колонку встроен убийца Zigbee - OpenThread. Правда, устройств на нём толком пока нет.