Не секрет, что многие пользователи умного дома используют облачные сервисы для управления устройствами и интеграции их в другие экосистемы умного дома (далее - УД). Так, например, для того чтобы использовать устройства разных брендов в Умном Доме Яндекса (далее - УДЯ), необходимо привязать учетную запись приложения бренда (SmartLife, Sibling, Tuya Smart и т.д.), и далее УДЯ будет работать с этими устройствами через облачные сервера. Пара нажатий и готово.

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

Поэтому многие продвинутые пользователи УД держат у себя сервер HomeAssistant, который благодаря наличию множества интеграций позволяет управлять умным домом с помощью локальных протоколов, что качественно влияет на работу всевозможных автоматизаций - для них больше не нужен интернет и китайские облака. А некоторые пользователи отвязывают от облаков свои устройства и вовсе кардинальными методами - прошивая их на альтернативные прошивки типа esphome или Tasmota. Естественно, управление перепрошитыми на альтернативные прошивки устройствами через интернет с помощью родных приложений перестает работать, да и добавить такое устройство в Умный Дом Яндекса без дополнительных танцев с бубнами не представляется возможным. Точнее не представлялось, пока не появился Matter!

Тем кому интересно как без использования сторонних "навыков", локальных серверов УД и интеграций добавить практически любое устройство, прошитое Tasmota и openBeken, добро пожаловать под кат.

Что такое этот ваш Matter, кто такая эта ваша Tasmota?

Matter — единый стандарт подключения для умного дома с открытым исходным кодом, который позволяет объединять IoT-устройства разных производителей в единую сеть. Идея создания общепринятого стандарта для разных экосистем устройств интернета вещей зародилась в 2019 году в рамках проекта «Connected Home over IP» (CHIP), который был переименован в Matter в 2021 году. Проект был запущен четырьмя технологическими гигантами (Amazon, Apple, Google и Samsung SmartThings) совместно с альянсом CSA, ранее известным как Zigbee Alliance.

Tasmota — это открытое программное обеспечение (Open Source), предназначенное для управления различными устройствами умного дома, такими как лампы, розетки, датчики и другие устройства на основе ESP8266/ESP32. Оно было создано для замены прошивок, установленных производителями, чтобы обеспечить пользователям больше контроля над своими устройствами и повысить безопасность.

Основные особенности Tasmota:

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

  2. Поддержка множества устройств: Tasmota поддерживает большое количество различных моделей устройств от разных производителей, включая Sonoff, Shelly, Tuya и многие другие.

  3. Удалённое управление через Wi-Fi: устройства с Tasmota могут управляться через локальную сеть или удалённо через Интернет (с оговорками).

  4. Интеграция с системами автоматизации: Tasmota легко интегрируется с популярными платформами домашней автоматизации, такими как Home Assistant, OpenHAB и другими.

И причем тут УДЯ?

На самом деле как-будто и не причем. Возможность добавлять с помощью навыков и интеграций устройства из HomeAssistant в умный дом Яндекса существовала давно. Однако, после того как Яндекс добавил поддержку Matter устройств, все стало гораздо интереснее.

Подразумевается, что устройство с поддержкой протокола Matter может залетать в экосистему любого производителя. Да и не в одну - одна и та же лампочка может быть добавлена в несколько разных экосистем УД одновременно, и управлять ей можно будет отовсюду... Хочешь пирожное, хочешь мороженое. И когда речь идет о заводских устройствах, вопросов обычно не возникает. Но что на счет самодельных или перепрошитых на альтернативные прошивки устройствах?

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

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

Из моего опыта скажу, что с помощью Matter Brigde от Sonoff iHost, и бридж интеграцией HomeAsssistant добавить какие любо устройства в УДЯ у меня так и не получилось.

Казалось бы, на этом все, но внезапно выяснилось, что Умный Дом Яндекса любит Тасмоту (а точнее сертификаты разработчика, которым она подписана), и легко добавляет их. За это большой респект команде разработчиков УДЯ и Яндексу в целом.

И что теперь?

Для начала, хотелось бы заострить внимание на паре особенностей реализации протокола Matter в прошивке Tasmota.

Первая и самая важная особенность - протокол Matter на прошивке Tasmota поддерживают только чипы ESP32/C3/S3.

Да, увы, старые чипы ESP8266 просто не потянут Matter. Но даже в этом случае есть решение в виде тех же самых бриджей, о которых я упоминал ранее. В его роли может выступать любое устройство на чипе ESP32.

Как видно из вышеприведенной схемы, пользователи альтернативных прошивок openBeken тоже могут порадоваться за себя, ведь с помощью Matter бриджа на Tasmota можно добавлять устройства, которые, по факту, саму Тасмоту и не поддерживают.

А таких устройств ой как много. Я бы даже сказал, что найти заводское устройство (лампочку, розетку), которая содержит в себе чип ESP8265/6 или тем более ESP32 сегодня практически нереально. Большинство производителей давно уже перешли на более дешевые и распространенные чипы BK7231, T34, W800 и иже с ними. Упор в этой статье я все таки делаю на самодельные устройства или переделанные устройства, в которых используется именно ESP32/ESP8266, но и для остальных чипов с альтернативной прошивкой openBeken можно использовать Matter шлюз на Tasmota.

И вторая особенность. Следует учесть, что при использовании одной ESP32 в качестве бриджа (шлюза), количество прокинутых "эндпоинтов" крайне не желательно делать больше 8, о чем нам говорит официальная документация Tasmota.

Matter bridge cannot support a large number of endpoints since the numerous HTTP requests will impact performance. It is recommended to limit the number of remote endpoints to 8 per Matter bridge.

Поэтому если у вас много "эндпоинтов" в одном устройстве, придется разориться на еспшках. Грубо говоря, если у вас имеется удлинитель на 4 розетки с энергомониторингом по каждой, и внутри удлинителя установлен чип ESP8266, для того чтобы прокинуть его в Алису через Matter бридж на Тасмоте, понадобится одна ESP32. Будут задействованы 8 эндпоинтов (4 розетки и 4 показателя энергопотребления). Не самый лучший расклад. Иногда проще сразу купить Matter сертифицированное устройство.

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

Поехали!

Для наглядности я буду приводить примеры в железе. Для этого у меня есть парочка макетных плат, немного разных модулей, кучка светодиодов и прочей рассыпухи, минимально необходимой для запуска модулей. Все модули заранее прошиты актуальными версиями прошивок Tasmota / openBeken, и рассматривать как это делать я, пожалуй, не буду. Не потому что я вредный, а потому что материалов как прошить ESP32 в интернете уже настолько много, что заострять на этом внимание не имеет смысла.

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

1. Устройство на ESP32. Он же Matter бридж.

За основу взят модуль ESP32-WROOM-32, и, помимо понижайки на 3,3 вольта, на макетной плате присутствуют только два одиноких светодиода. Они будут играть роль "розеток" для демонстрации работы в Умном Доме Яндекса.

После прошивки ищем открытую точку доступа tasmota-разныебуквыцифры, подключаемся к ней, переходим в браузере по адресу 192.168.4.1 и настраиваем доступ к WiFi вашего роутера. Протокол Matter хоть и поддерживает передачу имени точки доступа и пароля при настройке устройства, но в прошивке Tasmota этот функционал не реализован, поэтому настраиваем соединение ручками. В случае успешной авторизации, Tasmota покажет ip адрес, который она получила от вашего роутера. Теперь интерфейс прошивки Tasmota будет доступен только по новому адресу, а открытая точка доступа пропадет. Если вдруг забыли ip адрес, то это не беда. Посмотреть его всегда можно в админке вашего роутера.

Теперь необходимо зайти в меню Configuration -> Module, и указать на каких GPIO висят наши светодиоды.

Так как я хочу чтобы светодиоды имели в УДЯ вид "розеток", в Tasmote указываю тип Relay, не забывая проставлять индексы.

Затем необходимо включить и настроить сам протокол Matter, пройдя в меню Configuration -> Matter. Ставим галочку "Matter enable " и "Commissioning open", жмем Save.

Если меню Matter отсутствует, убедитесь, что вы прошили стандартную прошивку (не "специальную", с припиской bluetooth, display, sensors).

Осталось прокинуть наши лампочки по протоколу Matter в разделе "Add to Configuration".

На всякий случай поясню, что означает галочка "Commissioning open". Когда она активна, наше устройство можно добавить по протоколу Matter в экосистему умного дома с помощью QR кода на главной странице Tasmota.

Добавление возможно в течении 10 минут, после чего QR код пропадает. Чтобы он появился снова, нужно снова поставить галочку "Commissioning open".

Теперь настало время наконец добавить наши "розетки" в УДЯ. Процесс хоть и до банальности простой, но для тех кто делает это впервые, могут возникнуть небольшие сложности.

Открываем приложение Умный Дом от Яндекса, жмем плюсик в правом верхнем углу, тыкаем на кнопку "Устройство умного дома".

Нас интересует кнопка "Поиск Matter", жмем ее и выбираем к какому хабу подключить новое устройство, если у вас их несколько.

Стоит заметить, что не все Яндекс.Станции поддерживают протокол Matter, поэтому если у вас нет кнопки "Поиск Matter", вам, увы, не повезло.

Из моего зоопарка железок от Яндекса протокол Matter поддерживает Яндекс.Станция 2 (которая с часами) и Яндекс.Хаб. С полным списком устройств, где заявлена поддержка Matter можно ознакомиться на этой странице.

Итак, после выбора хаба, к которому будет подключено устройство, необходимо указать имя точки доступа WiFi и пароль от нее. Как я уже говорил, Tasmota не умеет получать эти данные из приложения, но указать их все равно необходимо. После этого сканируем QR код на главной странице веб-интерфейса Tasmota, и видим, что было найдено два новых устройства. Для удобства, я указываю их расположение в комнате "Тест ", так проще ориентироваться, в случае если уже добавленных устройств умного дома достаточно много.

В итоге должно получится что то похожее на изображение ниже.

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

2. Устройство на чипе ESP8266.

Это устройство собрано на модуле ESP8266MOD, имеет на борту кнопку и датчик температуры/влажности DHT11. Кнопка будет играть роль датчика открытия двери. Модуль прошит актуальной версией Tasmota, которая не имеет поддержки протокола Matter.

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

Отлично! Теперь можно добавить это устройство в Matter бридж, а затем и в УДЯ. Для этого переходим в веб-интерфейс нашего первого устройства и в настройках Matter в разделе "Add Remote Tasmota or OpenBK " указываем ip адрес второго устройства. Не забудьте установить статический адрес на роутере для все подчиненных устройств, чтобы они не потерялись в процессе эксплуатации.

После нажатия кнопки "Auto-configure remote Tasmota" мы наблюдаем такую картину:

Два первых эндпоинта Tasmota нашла автоматически, а третий эндпоинт для нашей кнопки я указал вручную, выбрав тип Contact из выпадающего списка, и указав номер свитча из настроек конфигурации прошивки второго устройства.

После нажатия кнопки "Add endpoints" в разделе конфигурации Matter должны появится эндпоинты со второго устройства, а данные с них должны появиться на главной странице веб интерфейса первого устройства.

Если вы видите похожую картину, значит все сделано правильно, и можно приступить к добавлению этих сенсоров в УДЯ.

ВАЖНО! Для начала удалите те устройства, которые мы добавляли в начале, а именно две розетки. Иначе УДЯ увидит что устройство с такими же идентификатором уже присутствует, и не будет его заново опрашивать на наличие новых эндпоинтов.

Ставим галочку "Commissioning open", жмем Save и сканируем QR код с главной страницы первого устройства - если вдруг кто-то до сих пор не догадался, это и есть наш Matter бридж.

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

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

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

3. Устройство на модуле WB3S.

Для тех кому вдруг захотелось экзотики, представляю устройство собранное на модуле WB3S, сердцем которого является чип BK7231T. Как вы уже поняли, это устройство будет прикидываться лампочкой в УДЯ. Прошивка модуля - openBeken, протокол Matter тоже не поддерживается из коробки.

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

В этом примере мы рассмотрим самодельное устройство, которое будет добавлено в УДЯ в виде лампочки с регулировкой яркости. Настройки прошивки openBeken приведу ниже:

Указываем GPIO который соединен со светодиодом, а так как для управления яркостью обычно используется ШИМ, выбираем из выпадающего списка PWM. На этом настройка закончена.

Мне надоело постоянно удалять из УДЯ предыдущие добавленные через Matter бридж устройства, поэтому в данном примере я оставлю только лампочку. В реальном кейсе таких лампочек можно добавить до 8 штук, что вполне себе целая люстра. Тем самым мы избавляемся от необходимости иметь локальный сервер УД работающий через "навыки" Алисы, сохраняя возможность управлять светом на альтернативной прошивке через УДЯ.

Процесс добавления устройства в Matter бридж аналогичен предыдущему устройству. Указываем ip адрес и добавляем найденные эндпоинты.

Наша "лампочка" нашлась, но управлять ей из интерфейса Tasmota нельзя, можно только лишь увидеть ее состояние и процент выставленной яркости.

Теперь добавляем ее в УДЯ и смотрим что же получилось:

Шикарно! Теперь можно смело перешивать все лампочки на альтернативную прошивку и радоваться возможности не только работы с локальным сервером, но и просить Алису сделать свет поярче. Напоминаю, без всяких "навыков".

Итого

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

Все заводские устройства построенные на чипах ESP32/S3/C3 позволяют прошить альтернативную прошивку Tasmota, получив поддержку крайне перспективного протокола Matter. Ограничений на количество "эндпоинтов" для таких устройств нет - можно спокойно прошить условный контроллер Kincony A16, прокинув в УДЯ все 16 входов и 16 выходов.

Устройства, построенные на устаревших чипах ESP8266 все еще имеют шанс на существование в современных реалиях благодаря шлюзу Matter. Таким образом я добавил в УДЯ четырехканальное реле Sonoff 4CHR3, которое управляет светом на стеллаже для комнатных растений, подружив его с Алисой.

А то великое множество устройств, которые построены на модулях WB3S, WB2S, WB2, которые (до появления прошивки openBeken) так не любили пользователи локальных серверов умного дома, теперь оказались на равне с их более благородными коллегами (тут я имею ввиду конечно же чипы от Espressif) в возможностях работы с Умным Домом Яндекса по протоколу Matter.

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