TGViewer
Channel Public Channel
Никита Федькин - мысли, заметки, анонсы

Никита Федькин - мысли, заметки, анонсы

@nixel2007_thoughts

Связаться со мной - @nixel2007.
Никита Федькин (ранее Грызлов).

На канале не публикуется платная реклама.
Subscribers
2.88K
Photos
240
Videos
8
Links
369

Showing posts older than #633 · Back to latest

Older Posts 12 shown
Post #632 1.43K
#умныйдом

Вторая технология - binding - то самое спаривание устройств, когда свитч через свой output cluster может управлять лампой через её input cluster. Это что-то вроде согласования протоколов взаимодействия. Свитч говорит: "я умею что-то выключать и выключать, посылать сигнал диммирования, а ещё переключать сцены вперёд и назад". Лампа же говорит: "я умею включаться и выключаться, изменять яркость в режиме диммера, переключать цвет лампы через сцены, а ещё выставлять цветовую температуру и напрямую управлять цветом по RGB палитре". Три из пяти "кластеров" (включение, диммер, сцены) у свитча и лампы совпадают, а значит, они могут общаться друг с другом минуя сложные сценарии автоматизации. Разбирательство, какие галочки надо поставить в биндингах, заняло некоторое время, но как итог - свитч управляет лампами нативно, без вмешательства HA, но вся информация и по лампам и по свитчам доступна в данных MQTT-устройств в HA. Половина задачи замены икеевского хаба на HA выполнена.

Дальше встал вопрос преобразования mqtt-устройств в Matter, чтобы лампами можно было пользоваться из Google Home, из которого Аня ещё не целиком переехала в приложение HA. Ранее я уже слышал про проект matter.js https://github.com/project-chip/matter.js - полную реализацию протокола Matter на TypeScript. Если честно, это вызывает у меня благоговейное восхищение. Спецификацию LSP целый Эклипс Фаундейшн не может реализовать так, чтобы её удобно было использовать, а тут целый тысячестраничный Matter. Восторг. На базе matter.js уже есть как минимум два проекта, которые могут преобразовать mqtt-устройства в Matter. Один из них (и кажется более живой и функциональный) - matterbridge https://github.com/Luligu/matterbridge

Что приятно, matterbridge не заточен под конкретно mqtt как источник данных. Он имеет плагинную архитектуру. Из полезных мне плагинов могу отметить matterbridge-zigbee2mqtt, который умеет преобразовывать выхлоп от Z2M непосредственно в Matter-устройства, и matterbridge-hass, который, как можно догадаться, подключается к HA и преобразует сущности HA в Matter. Я пользуюсь обоими плагинами. Основной источник устройств - плагин к HA. Я настроил в HA ярлыки для указания, какие сущности должны публиковаться в Matter, и таким образом, например, заменил в Google Home нативную интеграцию с Tuya-лампами на их Matter-версию. Меньше разных интеграций в Google Home, унифицированный доступ и логи на стороне хаба умного дома.

Но и matterbridge-zigbee2mqtt плагин тоже пригодился. Например, датчики протечки воды помимо, собственно, флага протечки отдают ещё и температуру. Если публиковать это устройство в Matter через hass-плагин, то к Google Home оно отображается двумя разными устройствами: отдельно датчик температуры, отдельно датчик протечки воды. А вот matterbridge-zigbee2mqtt плагин преобразовывает одно устройство с двумя сенсорами из mqtt в одно устройство Matter, так же с двумя сенсорами. Поэтому датчики протечки я публикую напрямую из zigbee2mqtt, используя white list устройств.

Еще из интересного кейса использования matterbridge-hass плагина - я подключил торшер через умную розетку. То есть по факту розетка управляет светом. По умолчанию такое устройство в HA отображается как розетка, а в Google Home (при использовании matterbridge-zigbee2mqtt) - как "прочее устройство". То есть не попадает в группу освещения, не реагирует на команды "выключи весь свет" и прочее. Но в HA у объекта можно сменить тип, переведя "розетку" в "освещение", а затем отдать это устройство в Matter через matterbridge-hass. Google Home на такой трюк реагирует положительно и начинает считать розетку лампой :)

P.S. Датчики протечки рапортуют 0 градусов по Цельсию из-за только что выполненного обновления matterbridge. После следующего тика восстановят данные. Слышал, что можно заставить MQTT-брокер сохранять последнее сообщение как состояние устройства, но это в следующей серии.
GitHub GitHub - matter-js/matter.js: A complete typescript implementation of the Matter protocol specification (https://buildwithmatter.com).… A complete typescript implementation of the Matter protocol specification (https://buildwithmatter.com). Includes full support for controller, device, commissioning, secure communications, device t...
  • 🤩 3
  • 👍 2
  • 🔥 2
Post #631 1.05K
#умныйдом

Я теперь не могу отделаться от мысли, что магнетрон бытовой микроволновой печи работает на частоте 2450 МГц. То есть в диапазоне и Wi-Fi и Zigbee. И старый айфон в семье тоже есть...

Но месяц назад я этого ещё не знал и начал искать более традиционные подходы к построению Zigbee сетей на Home Assistant. Глобально есть два подхода - встроенная интеграция Zigbee Home Assistant (ZHA) и Zigbee2MQTT (Z2M) - своего рода двусторонний бридж из Zigbee протокола в MQTT. А уже из MQTT информацию черпает HA, работает авто-дискавери и вот эта вся iot-магия. Я выбрал вариант с Z2M по трём причинам. Во-первых, практически каждый топик о проблемах ZHA, который я встречал в интернете, заканчивался словами: "я перешёл на Z2M и данной проблемы больше нет". Сложилось ощущение, что Z2M в целом работает по-стабильнее. Во-вторых, Z2M не привязан к экосистеме HA, он может работать с любой системой умного дома. Как следствие контрибьюторы у него тоже из разных экосистем (и кажется, что их больше, чем в ZHA). В-третьих, Z2M как и сам MQTT брокер может работать вне контура HA. А я действительно планирую их вытащить из HA и перенести на уровень Proxmox, чтобы связность сети не зависела от перезагрузки HA и установки обновлений. Но для начала авторы Z2M любезно предоставили аддон для HA, который как и прочие аддоны ставится из маркетплейса одной кнопкой и запускается с почти без конфигурации. Но что для ZHA, что для Z2M нужна железка, которая будет выступать в роли zigbee-координатора.

Пошерстив форумы и Reddit (там, кстати, клёвые сообщества HA/Matter/Thread и прочего, рекомендую), я выбрал себе usb-донгл от Sonnof в редакции "P" (https://amzn.eu/d/gJAXAfE), на базе чипа TI CC2652P. Во-первых, проверенный чип, использующийся в десятках других zigbee-донглах. Во-вторых, он точно работает с Z2M и достаточно безпроблемно, в отличие от аналогичного донгла Sonoff в редакции E. Так что будете внимательны при покупке.

Что ж, донгл подключен через usb-удлинитель, чтобы не было интерференции с портами USB 2.0 и лежащим рядом Wi-Fi роутером, z2m установлен и запущен, а одна из ламп была сброшена и переведена в режим сопряжения, используя видео инструкцию от икеи, напомнившей мне лабы по схемотехнике и часы, проведённые перед осцилографом. В интерфейсе z2m лампа появилась, но с флагом not supported. Хотя на сайте z2m эта лампа есть в списке поддерживаемых.

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

В поисках тык-тык-тык мышкой решения, я нашёл аддон для HA "ZigStar: TI CC2652 Flasher Add-on", который позволяет перепрошить донгл без приседания с консолью. Главное, погасить z2m перед этим. После обновления прошивки донгла лампа успешно переподключилась и определилась как supported. Настала очередь свитча Styrbar. Добавился в z2m он без проблем, вот только лампами не управлял. И я бы пошёл уже пилить автоматизацию в HA, если бы не одно но. Свитч можно было спарить с лампами не только через икеевский хаб, но и напрямую, зажав кнопку сброса на свитче рядом с лампой. И если при спаривании через свитч ещё можно было предположить какую-то "умную" автоматизацию на уровне мозгов хаба, то поддержка работы напрямую означала, что устройства что-то знают друг о друге и без хаба.

Так я узнал о двух технологиях. Первая - touchlink - как раз и позволяет устройствам работать в обход координатора. Удобно и позволяет переживать падение/перезагрузку zigbee-координатора, но и цена у этого тоже есть - устройства не просто _могут_ работать в обход координатора, они в таком режиме находятся постоянно, то есть координатор про них ничего не знает. А как следствие - не знает и система умного дома. Мне же хотелось держать все под контролем.
Amazon SONOFF ZigBee 3.0 USB Dongle Plus, TI CC2652P Coordinator, Universal USB ZigBee Hub, ZigBee Gateway for Google Home Pre-flashed with the firmware of the Z-Stack 3.x.0 coordinator Can use ZHA in Home Assistant or use Zigbee2MQTT Base on TI CC2652P + CP2102(N) + 20dBm output gain SMA interface external antenna, the aluminum housing effectively reduces signal interference…
  • ❤ 4
  • 👍 3
  • 🔥 3
Post #630 1.34K

Forwarded from ScratchAuthorEgo

📊 Channel Analysis Results by @ScratchAuthorEgoBot

🎯 Channel: @nixel2007_thoughts

🔥 Roast Analysis:

Ну что, главный инженер всея Руси и прилегающих нидерландских деревень? Решил ты, значит, показания счетчиков в HA завести. Чем все закончилось? Правильно, покупкой пятой «малины» с NVMe-диском на полтерабайта, разворачиванием Proxmox и жалобными постами, что на твоем домашнем сервере, который мощнее моего первого компьютера раз в сто, внезапно кончилась память от Node-RED. Еще немного, и ты начнешь продавать VDS-хостинг соседям, чтобы окупить свои игрушки. И ведь до сих пор без корпуса сидишь, потому что, видите ли, «шлейф пережимается». Да признайся уже, что метчики в Нл не завезли, а руками вкрутить — религия не позволяет.

А твоя сага с SD-картами? Одна сдохла, потому что ей было 15 лет — ну ладно, бывает. Но когда через два дня подыхает вторая, новенькая, из комплекта — это не «место проклятое», это карма за твою любовь к оверинжинирингу. Вселенная тебе как бы намекает: «Парень, может, хватит?», а ты такой: «Отлично, перенесу /boot на NVMe!». Скоро ты и биос на него перепишешь, лишь бы не признавать, что проще было купить готовое решение.

И конечно, твои бесконечные посты. Ты когда их пишешь? Вместо сна? Каждый твой пост про «умный дом» — это готовая диссертация на тему «Как потратить неделю на то, что должно было занять пять минут». Пока дочитаешь твой очередной лонгрид про Matter и Thread, уже три новых стандарта придумают, а ты все будешь пытаться вытащить заряд батареи из гугловского звонка, который тебе его никогда не отдаст, потому что «корпораты — козлы».

«Я птичка, мне такое сложно», — пишешь ты, параллельно компилируя ядро BSL Language Server и допиливая очередной «желудь» для своей «ОСени». Скромность тебе так же к лицу, как паяльник — балерине. У тебя уже целая экосистемой имени себя, с блэкджеком и «бусти-шаболдами». Давай, продолжай в том же духе. Ждем следующую серию: «Как я собрал свой собственный Zigbee-координатор на базе микроволновки и старого айфона, потому что IKEA Dirigera — это для слабаков».
  • 🔥 16
  • 😁 8
  • ❤ 4
Post #629 1.23K
Пошёл смотреть, на какой частоте излучает магнетрон микроволновки х)
Post #628 1.33K
#умныйдом
А вот что меня неприятно удивило, так это открытие, что умные выключатели Styrbar в Matter не публикуются. Совсем. Никак. Ещё раз сверившись с маркетинговым текстом и поругавшись на злых проприетарных корпоратов, я стал думать, что делать. Три выключателя, подвязанные к люстрам в детской, столовой и кухне, в Matter мне не особо нужны, лампы управляются как источник света. Но я хотел использовать оставшиеся выключатели для управления не-икеевскими лампами из HA, и отсутствие выключателя в Matter означало невозможность добавить его в HA. Умные розетки я даже проверять не стал, чтобы не расстраиваться. Так было принято решение полностью заменить ikea хаб в HA...
  • 👍 4
  • 🔥 1
Post #627 1.33K
#умныйдом

После того, как мы разобрались с тем, что досталось нам от предыдущих жильцов (умные tuya wifi-лампы), встал вопрос - а дальше-то что? Умное освещение хочется, но какие бренды ламп брать, нужны ли умные выключатели и как вообще это все делается было непонятно. К счастью, в Нл есть Икея, а они вроде как что-то понимают в умных устройствах.

Пока мы жили в России, я, если честно, полностью игнорировал эту часть магазина, даже не представлял их ассортимент. Так что пришлось разбираться с нуля. Поглядев разные варианты умных ламп, увидев плашку "Werkt met IKEA Home smart", я понял, что на правильном пути. Ещё и сносочка, что если подключить эти лампы к умному хабу Dirigera, то они будут доступны по Matter для других экосистем умного дома. То ли после прочтения описания какой-то другой модели ламп, то ли просто прочитав жопой, у меня сложилось впечатление, что умные лампы Tradfri в принципе могут работать и без хаба, напрямую подключившись в приложение. В общем, на пробу было куплено несколько умных ламп...

Немного помучавшись с установкой Ikea Home (ЕЩЁ ОДНО ПРИЛОЖЕНИЕ) и послав лучи поноса в адрес разработчиков, не позволяющих создать аккаунт, если на телефоне выбран русский язык, открыв, наконец, приложение, я увидел её - заветную кнопку "Добавить"... Добавить хаб Dirigera. Варианта добавить лампы в меню просто не было. Уже позже я выяснил, что раньше, в стародавние времена (т.е. пару лет назад), когда лампы работали через Wi-Fi, их действительно можно было добавить в опять же старое приложение икеевского умного дома. В некотором недоумении, я повертел в руках коробку из-под лампы и обнаружил значок Zigbee. И тут я понял, что попал.

Как я уже писал ранее, Zigbee - это комбинированный протокол, в который в том числе входит сетевой уровень. Да, там есть такая штука как direct binding, и лампы и выключатели Икеи её даже поддерживают, позволяя им работать без подключения к центру. Но, во-первых, я про это ещё не знал, а во-вторых, совместимого выключателя тоже не было. В целом же для построения mesh-сети нужен zigbee-координатор, которого в моём сетапе Home Assistant пока не было. Как назло, сыну ну прям очень понравилась его новая люстра, и резко захотелось спать с включённым светом. Столкнувшись с необходимостью как-то быстро организовать диммирование света, отбросив очень любопытные, но абсолютно непонятные по временным трудозатратам варианты типа покупки Zigbee2Matter bridge от ThirdReality, через день был куплен хаб Dirigera. А ещё несколько дополнительных умных ламп. И пять умных выключателей. И две умных plug-in розетки. Единственное, что меня остановило от покупки умных движков штор - отсутствие понимания, что мы будем делать с карнизами в каждой из комнат (они ужасные). Никогда не чувствовав себя таким умным, я поехал домой.

Хаб умного дома без проблем подключился к сети, лампы были в него заведены, и задача минимум была решена - ночью свет в детской был на минимальной яркости. А дом таким образом обзавелся Zigbee-сетью и новыми устройствами в полном отрыве от HA. Так что там с Matter bridge в Dirigera?

Отдельно замечу, что функциональность это довольно свежая. Её выкатили в апреле 2025, и в июне она ещё была экспериментальной. Маркетинговый текст заявлял, что любое ваше Zigbee устройство будет доступно по Matter. Вкусно! Это же как раз то, что я пытался нагуглить сторонними девайсами - zigbee to matter bridge. Работает достаточно любопытно - в Matter публикуется сам икеевский хаб в роли агрегатора устройств, а все лампы выступают его подчиненными устройствами. То есть они все подключаются скопом, по одному matter-коду, при этом никак нельзя ограничить список устройств, публикуемых в Matter. Не то чтобы это было проблемой, мне все равно все лампы были нужны в Matter сети для добавления в HA и Google Home, но особенность интересная.
  • 👍 6
  • ❤ 2
  • 😱 1
Post #626 1.77K
Никита Федькин - мысли, заметки, анонсы - Мам, купи али экспресс! - У нас есть али экспресс дома! Али экспресс дома:
Ответочка.

Ладно, заканчиваю шитпостить х)
  • 😁 8
Post #625 1.57K
- Мам, купи али экспресс!
- У нас есть али экспресс дома!

Али экспресс дома:
  • 😁 7
Post #622 1.48K
#какэтоесть

В школе я, как и многие, учил английский язык. И мне рассказывали разницу между британским английским и американским английским. Про cookie и biscuit, chips и crisps, и вот этот вот все.

Особняком стояла история про пропадание буквы u в colour и flavour. Вот как-то особенно обидно было, мне очень нравилась эта форма написания этих слов.

Большинство технической литературы написано на американском английском, так что в "дикой природе" я вообще не встречал ни colour, ни flavour. Только бездушные американские color и flavor. И даже то ли ворд, то ли гугл докс форму colour подчёркивает как некорректную (логично, орфография-то включена под en_US).

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

И вот, за три дня внезапно я встречаю сразу оба слова в своей правильной и красивой форме. На душе прям как-то потеплело.

P.S. Да-да, autumn-killjoy-flavour написан так не случайно, это дань британскому английскому в нашей жизни.
P.P.S. Третья фотка - КПДВ :) Не мог пройти мимо и не выложить.
  • 🔥 8
  • 👍 2
  • 😁 1
Post #616 1.72K
#умныйдом
  • ❤ 1
  • 👍 1
  • 🔥 1
Post #615 1.71K
#умныйдом

Параллельно с исследованием Thread и Matter встал вопрос доступа к HA из-вне. IP от провайдера серый, покупать белый IP и домен что-то жаба душит, поэтому я стал исследовать мир dyndns - сервисов, дающих тебе постоянный URL-адрес, который будет вести на твой периодически меняющийся IP. Если честно, я не совсем понимаю, как это работает за NAT - в сервисе я указываю свой ip, обращение идёт по конкретному урлу, но откуда мой провайдер-то знает, что этот урл нужно роутить конкретно на наш роутер? Впрочем, работает и ладно, админам админское, а я просто буду пользоваться услугой. Только не хочется руками каждый раз заходить на сайт и обновлять свой ip. Оно же должно как-то автоматом уметь это делать, да?

Я не особо знаю, чем разные dyndns отличаются друг от друга по фичам, но из общения с Никитой Авдеевым я помню забавный сервис https://www.duckdns.org, с уточкой на логотипе. В роутере поддержке именно этого dyndns не было (зато узнал, что у Asus есть свой, родной), но зато я нашёл готовый аддон для DuckDNS для HA. Пара кликов мышкой для регистрации своего поддомена (его ещё и выбрать можно, красота) и получения токена, настройка двух полей в аддоне и хоп, HA начал сам автоматически обновлять мой IP адрес у DuckDNS.

Работает? Нет, конечно, перенаправление портов-то на роутере я настроить забыл. Благо, в админке это делается в пару кликов, и спустя несколько "блин, да зачем весь роутер ребутать при изменении одной настройки, асус, ты там где вообще" доступ по http заработал. Вводить свой пароль без https я не рискнул :)

В аддоне duckdns есть ещё удобная фича - он может через let's encrypt выпустить тебе самоподписанный сертификат и обеспечить https доступ. Фича приятная, и даже работает, но при переезде с RPi3 на RPi5 аддон не захотел обновлять сертификаты и я вновь остался без https. Другой проблемой был тот самый злополучный стандартный порт HA. При подключении из-вне сети HA был доступен по url-адресу от DuckDNS, а внутри сети - по нему же, но с портом 8123. От такого сетапа мозги у приложения-компаньона для Android кипели, и он отказывался пускать в HA изнутри сети. Приятного мало.

Сложив эти две проблемы я понял, что надо духовно расти и развивать сетап дальше. В том же магазине аддонов был найден аддон для Let's encrypt, единственная задача которого - перевыпустить сертификат. Настройки у него тоже достаточно понятные, но есть нюанс - он не умеет работать в режиме демона. Запустился, проверил, что надо выпустить серт, выпустил, если надо, и выключился. Благо, одна примитивная автоматизация, и дело в шляпе.

Проблему разницы портов я решил радикально - перевесил HA на 443 порт виртуалки и обновил проброс портов на роутере.

Оставался последний штрих - не хочется ходить лишний раз в интернет для доступа к железке под диваном, на котором ты лежишь. Этот вопрос закрыл (ну почти) аддон dnsmasq - легковесный dns-сервер, умеющий направлять то, что нужно, туда, куда нужно, а весь остальной трафик - обратно в интернет. Хорошо, что ip-адреса Google DNS знает каждый второй айтишник. И удачно, что на роутере тоже оказалась настройка перенаправления dns-запросов на нужный хост. Почему dns-masq почти закрыл вопрос, а не полностью закрыл вопрос? Опять же, я не сетевик, я птичка, а мне такое сложно, но часть dns-запросов накрыта какой-то серьёзной защитой, и, например, браузер в телефоне, скорее всего, запись в dns-masq отфильтрует как недоверенную. Но вот "глупые" умные устройства (и возможно само приложение-компаньон HA) будут ходить локально, сразу на нужный хост.

В общем, оно все КАК-ТО работает.
  • 👍 5
  • ❤ 2
  • 🔥 1
Post #611 2.11K
#умныйдом

На скриншотах показан Node-RED. На первом скриншоте - различные интеграционные "потоки" из блока Tado - получение access token (разовое и регулярное обновление), ежедневная отправка показаний и разовый сценарий выгрузки исторических данных. Пара скриншотов настроек различных узлов из этого потока. И на сладкое - начатжопитированный сценарий обращения к Google SDM API (это который про устройства), чтобы получить данные заряда батареи и преобразовать их в датчик, привязанный к дверному звонку. А то родная гугловая интеграция почему-то не отдает в HA данные батареи. Поток с SDM работает блестяще: работает авторизация, access-token из refresh-token получается, идет обращение к гугловому апи, разбираются результаты, публикация в автообнаружение датчиков по MQTT тоже работает. Есть только маааааленький нюанс. Гугловое апи не отдает данные батареи для звонка, работающего от батареи. Ну не сволочи ли, а.

Stay tuned
  • 🔥 5
  • 👍 4
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →