Как подключить Bluetooth-устройства к Apple Home через мост Matter

Без замены чипа в каждом устройстве: шлюз Matter подключает выключатели и лампы Bluetooth Mesh к Apple Home. Архитектура, ключевые решения и дальнейшие шаги.

Я работаю над проектом, который подключает целый ряд Bluetooth-устройств к Apple Home.

Сами устройства простые: настенные выключатели на одну-четыре клавиши, диммируемые лампы, лампы с регулировкой температуры и цвета, а также наклеиваемый беспроводной выключатель. Они образуют сеть Bluetooth Mesh и всегда управлялись через наше собственное приложение, которое работает без нареканий.

Давление идёт от клиентов. Чаще всего мы слышим вопрос: «А можно управлять этим из Apple Home?» Следом обычно звучат Google Home и Home Assistant.

Apple, Google и Amazon дружно продвигают Matter. Люди теперь хотят управлять всеми устройствами в доме из одного приложения, и продукты без поддержки Matter будет продавать всё труднее.

Эта статья — обзор всего проекта: почему мы выбрали такой подход, как выглядит архитектура и что уже сделано. В следующих материалах я по очереди разберу чипы, главный процессор, стек протоколов и сертификацию.

Два пути: новые чипы в каждом устройстве или один шлюз

Подключить Bluetooth-устройства к Matter можно двумя способами.

Первый вариант: переделать устройства. Заменить в каждом устройстве чип на решение с поддержкой Matter — Thread или Wi-Fi, переписать прошивку, а затем отдельно сертифицировать каждую модель на соответствие Matter.

Второй вариант: не трогать устройства и добавить шлюз. С одной стороны шлюз общается с устройствами по Bluetooth. С другой — подключается к домашней сети как устройство Matter. Apple Home видит один шлюз Matter, за которым стоит список выключателей и ламп. В спецификации Matter устройство такого рода называется Bridge.

Переделать устройства Добавить шлюз
Стоимость устройства В каждом экземпляре более дорогой чип Без изменений
Работа с прошивкой Переписывать для каждой модели Небольшие правки в устройствах, основная работа — в шлюзе
Сертификация Matter Каждая модель отдельно Один раз — для шлюза
Уже проданные устройства Остаются за бортом Могут подключиться после обновления прошивки
Дополнительная покупка для пользователя Не нужна Один шлюз

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

Минусы столь же очевидны. Пользователю придётся купить ещё одну коробочку, а если шлюз потеряет питание или связь, пострадает вся Bluetooth-сеть. Оба момента нужно закладывать в дизайн с самого начала.

Архитектура

Система состоит из четырёх слоёв, сверху вниз:

Apple Home / Google Home / Home Assistant
   │  Matter (Wi-Fi или Ethernet)
   ▼
[Linux-шлюз]
   ├─ Matter Bridge: каждый выключатель и лампа — отдельное устройство
   ├─ Таблица устройств: какие есть, сколько клавиш, в сети ли
   ├─ Слой трансляции: команды Matter ↔ сообщения Mesh
   └─ Адаптер Mesh: управляет Bluetooth-модулем по UART
   │  UART
   ▼
[Bluetooth-модуль] провижининг и сообщения Mesh
   │  Bluetooth SIG Mesh
   ▼
выключатели / диммируемые лампы / цветные лампы / беспроводные выключатели
  • Наверху — платформы умного дома. Они говорят только на Matter и не подозревают, что внизу находится Bluetooth.
  • Плата шлюза работает под Linux и запускает единственную программу. Снаружи это шлюз Matter, внутри — менеджер всех Bluetooth-устройств.
  • Bluetooth-модуль — отдельный чип. Стек Bluetooth Mesh работает на модуле, а хост на Linux отправляет ему команды по последовательному порту.
  • Внизу — сами устройства, использующие стандартный протокол Mesh от Bluetooth SIG — SIG Mesh.

Главное достоинство такого разделения в том, что Bluetooth-часть и Matter-часть можно отлаживать и заменять независимо. Смена главного процессора не затрагивает ни Bluetooth-модуль, ни прошивки устройств, а переход на другого поставщика Bluetooth-модулей отражается только на слое адаптера.

Самый важный слой: трансляция

Вся основная работа происходит в слое соответствий. Он переводит типы устройств и команды Matter в сообщения, понятные Bluetooth Mesh.

Наше устройство Как отображается в Apple Home Что нужно преобразовывать
Выключатель на 1–4 клавиши По выключателю на каждую клавишу (On/Off Light) Ничего
Диммируемая лампа Dimmable Light Уровень Matter 1–254, яркость в Mesh 0–65 535
Лампа с регулировкой белого Color Temperature Light Matter использует mireds: 1 000 000, делённый на значение в кельвинах
Цветная лампа Extended Color Light Оттенок и насыщенность имеют разные диапазоны
Беспроводной выключатель Generic Switch Короткое, долгое и двойное нажатия превращаются в события кнопки Matter

Четырёхклавишный выключатель в Apple Home выглядит как четыре отдельных выключателя, каждый из которых можно отнести к своей комнате или сценарию. Так обычно работают Bridge, и именно такая схема проще всего для понимания пользователем.

Сама по себе трансляция не так уж сложна. Сложны две легко упускаемые из виду детали.

Первая — физические кнопки. Когда человек нажимает выключатель на стене, состояние в Apple Home тоже должно измениться. Поэтому каждое устройство при любом изменении сообщает шлюзу своё новое состояние, а шлюз синхронизирует его с Matter. Обработка сценария «приложение управляет устройством» — лишь половина работы; не менее важно, чтобы «устройство сообщало приложению».

Вторая — выход из сети. Если лампа обесточена на стене, Apple Home должен показать «Нет ответа», а не последнее известное состояние. Каждое устройство регулярно отправляет шлюзу сигнал присутствия, и если подряд пропущено несколько таких сигналов, устройство помечается как неактивное.

Ещё одно решение продиктовано удобством использования: беспроводной выключатель управляет лампами напрямую, минуя шлюз. Выключатель отправляет команду на групповой адрес комнаты, лампы реагируют сами, а шлюз лишь слушает эфир, чтобы поддерживать состояние в синхронизации. Даже если шлюз пропал из сети или вышел из строя, выключатель на стене по-прежнему включает свет. Шлюз должен добавлять удобство, а не становиться единственной точкой отказа.

Ключевые решения

Некоторые части дизайна определились лишь после долгих сравнений. Здесь — только выводы, а обоснования получат отдельные статьи.

  • SIG Mesh между устройствами и шлюзом, а не собственный протокол. Стандарт описывает модели для выключателей и ламп, поэтому шлюз и устройства могут быть построены на чипах разных производителей и всё равно работать вместе, лишь бы оба следовали стандарту.
  • Модуль Silicon Labs в шлюзе, чипы Telink в устройствах. Для шлюза важнее всего документация и инструменты: модуль Silicon Labs умеет работать как сопроцессор, а его последовательный протокол хорошо документирован. Для устройств главное — стоимость и китайская цепочка поставок, а это говорит в пользу Telink.
  • Главный процессор зависит от задачи. Для одной лишь функции моста хватит чипа начального уровня вроде Rockchip RK3506. Если нужен запас под локальную автоматизацию или веб-интерфейс администратора, выбирайте RK3562. Если шлюз должен быть панелью управления с экраном, переходите на RK3576.
  • rs-matter, написанный на Rust, для стека Matter. Он собирается в одну небольшую программу и поддерживает добавление и удаление устройств на лету, что для Bridge очень кстати.

Текущее состояние

Сделан пока программный прототип:

  • ПК с Windows имитирует шлюз и добавлен в Apple Home по сканированию кода.
  • Телефон имитирует Bluetooth-устройство. Шлюз его обнаруживает, и в Apple Home оно появляется как управляемое устройство.
  • Переключение в Apple Home отправляет команду на имитируемое устройство. При добавлении или удалении устройств они появляются в Apple Home или исчезают из него.

Иными словами, цепочка Matter ↔ шлюз ↔ Bluetooth-устройство работает на уровне софта, а Apple Home узнаёт и контролирует устройства за мостом.

Чего ещё нет — настоящего железа: проверки модуля Silicon Labs вместе с устройствами Telink и запуска всей системы на плате шлюза под Linux. Отладочные платы заказаны, и ближайшие несколько недель я буду заниматься именно этим.

Нерешённые проблемы

От этих вопросов зависит, можно ли пускать дизайн в производство. Каждый получит отдельную статью:

  1. Работают ли вместе чипы двух производителей? Шлюз на Silicon Labs и устройства на Telink должны взаимодействовать по стандартному протоколу, но это нужно проверить на реальных платах.
  2. Сколько устройств выдержит один шлюз? Несколько десятков в квартире — не проблема, а в коммерческих проектах их легко набирается больше сотни, и тут потребуется нагрузочное тестирование.
  3. Что, если шлюз откажет? После отключения питания, перезагрузки или замены Bluetooth-модуля уже настроенные устройства должны вернуться в строй сами, без повторного сопряжения пользователем.
  4. Сертификация. Сертификация Matter, требования, связанные с HomeKit, и радиосертификация: сколько стоит каждая и с какой начинать.

Вместо заключения

Подключить Bluetooth-устройства к Matter не так мудрено, как может показаться. Время уходит на выбор чипов, синхронизацию состояния устройств, продумывание сбоев шлюза и сертификацию, без которой в производство не выйти.

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

Если у вас есть Bluetooth-устройства, которые хочется подключить к Matter, или вы делаете похожий шлюз, буду рад пообщаться. Идеи по дизайну, выбор чипов, набитые шишки — обсудим всё: linktr.ee/weiyii

Чтение и отправка через WeChat

QR-код статьи

Отсканируйте и поделитесь через меню WeChat.