Связаться со мной - @nixel2007.
Никита Федькин (ранее Грызлов).
На канале не публикуется платная реклама.
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-брокер сохранять последнее сообщение как состояние устройства, но это в следующей серии.
Вторая технология - 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-брокер сохранять последнее сообщение как состояние устройства, но это в следующей серии.
- 🤩 3
- 👍 2
- 🔥 2














