SIG Mesh или свой протокол? Как подключать Bluetooth-устройства к шлюзу

Своя реклама, прямой BLE, собственная сеть или SIG Mesh: протокол и сертификация — разные вопросы. Почему стандартные модели важны для шлюза Matter и какие есть ограничения.

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

Раньше наши устройства работали по собственному рекламному протоколу Bluetooth и управлялись из нашего же приложения. Эта схема долго работала без сбоев. Поэтому в самом начале проекта в команде прозвучал вопрос: а нужен ли нам вообще SIG Mesh?

Вопрос заслуживает отдельной статьи, потому что «обойтись без SIG Mesh» можно двумя совершенно разными способами, а последствия у них разные.

Что значит «обойтись»?

Вариант первый: не использовать протокол SIG Mesh. Устройства остаются на проприетарном рекламном протоколе, и шлюз говорит на нём же.

Вариант второй: использовать протокол SIG Mesh, но не проходить квалификацию Bluetooth SIG. С технической стороны следуем стандарту, просто не регистрируемся в SIG и ничего ему не платим.

Первое — технический выбор, второе — вопрос соответствия требованиям. Многие споры заходят в тупик именно потому, что эти два вопроса смешивают. Сначала разберёмся с технологией, а квалификацию оставим на потом.

Четыре способа связать устройства со шлюзом

Подход Покрытие Число устройств Совместимость Безопасность Трудозатраты
Проприетарная реклама Только вокруг шлюза, без ретрансляции Жёсткого лимита нет Только ваши собственные изделия Всё на вас Небольшие
Прямые BLE-соединения (каждое устройство подключается к шлюзу) Только вокруг шлюза Ограничено числом одновременных соединений, обычно около десятка Средняя Стандартное шифрование Средние
Самодельная проприетарная mesh-сеть Ретрансляция возможна Зависит от реализации Только ваши собственные изделия Всё на вас Очень большие
SIG Mesh Ретрансляция, покрытие всего дома Сотни узлов без проблем Работает между разными производителями Стандартное шифрование и защита от повторов Средние, в основном внутри SDK чипа

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

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

Самодельная проприетарная mesh-сеть — это изобретение SIG Mesh заново. Борьба с лавиной ретранслируемых пакетов, дедупликация сообщений, ротация ключей, защита порядковых номеров от повторного воспроизведения: каждый из этих пунктов — ловушка. В первые годы многие производители строили собственные mesh-сети, но большинство из них с тех пор перешли на SIG Mesh.

SIG Mesh — стандарт Bluetooth SIG. Устройства ретранслируют сообщения друг за друга и покрывают весь дом, модель безопасности уже готова, а главное — определён стандартный набор моделей устройств.

Главная ценность SIG Mesh: стандартные модели

SIG Mesh описывает, как представлять и как управлять распространёнными устройствами вроде выключателей и ламп:

Модель SIG Mesh Устройство Аналог в Matter
Generic OnOff Выключатели, розетки On/Off Light
Light Lightness Лампы с регулировкой яркости Dimmable Light
Light CTL Лампы с регулировкой цветовой температуры Color Temperature Light
Light HSL Цветные лампы Extended Color Light

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

Стандартные модели дают ещё два преимущества:

  • Шлюз и устройства могут быть на чипах разных производителей. У нас шлюз построен на модуле Silicon Labs, а устройства — на чипах Telink. Пока обе стороны придерживаются стандартных моделей, они работают вместе, и мы не привязаны к одному поставщику чипов.
  • Проще выйти в другие экосистемы. Например, Bluetooth Mesh у Xiaomi построен на SIG Mesh, и шаблоны ламп и выключателей там используют те же модели. Версию для Xiaomi можно будет сделать позже, переиспользовав большую часть прикладного кода и заменив по сути лишь слой привязки к сети и аутентификации.

Чего стоит SIG Mesh

SIG Mesh — не бесплатный подарок; просто бо́льшую часть платы за него уже внёс кто-то другой.

Протокол сложный. Привязка устройств идёт через обмен ключами по ECDH, сообщения шифруются на сетевом и транспортном уровнях, есть сегментация, порядковые номера и IV Index. Всё это уже реализовано в SDK производителя чипа и прошло тестирование SIG. На стороне устройства пользуйтесь SDK и не пишите своё.

Размер сети ограничен. SIG Mesh пересылает сообщения лавинной ретрансляцией, поэтому чем больше узлов в одной зоне, тем теснее становится эфир. Ориентировочно сеть лучше всего работает при нескольких сотнях узлов и меньше. Коммерческое освещение с тысячами точек нужно делить по этажам или зонам на несколько сетей и шлюзов.

Шлюз может хранить лишь ограниченное число узлов. Об этом легко забыть:

  • Официальная прошивка шлюза от Telink по умолчанию хранит до 200 узлов, а при включённой удалённой привязке (remote provisioning) — 110. Четырёхклавишный выключатель считается одним узлом, а не четырьмя.
  • Если строить шлюз на стеке Zephyr от Nordic, конфигурация по умолчанию допускает всего 8 узлов, а список защиты от повторов вмещает лишь 10 записей. Оставьте всё как есть, и сообщения от 11-го устройства начнут теряться.

Двухсот узлов для дома более чем достаточно, но эти цифры стоит проверить ещё на этапе проектирования.

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

Можно ли пропустить квалификацию SIG?

Вернёмся ко второму смыслу исходного вопроса: использовать SIG Mesh без квалификации Bluetooth SIG.

С технической точки зрения разницы нет. Устройства работают нормально и взаимодействуют с другими устройствами SIG Mesh. Риски лежат в другом:

Риск Подробности
Патентная лицензия Патентная лицензия SIG распространяется только на квалифицированные изделия
Каналы продаж Amazon и другие площадки, крупные розничные сети и зарубежные дистрибьюторы часто требуют идентификатор квалификации Bluetooth
Санкции SIG SIG уведомляет о неквалифицированных изделиях и требует пройти квалификацию или снять их с продажи
Товарный знак Нельзя использовать название и логотип «Bluetooth» на упаковке и в маркетинге

Распространённое заблуждение: возврат к проприетарному протоколу не освобождает от квалификации SIG. Любому изделию с Bluetooth для продажи нужна квалификация, с Mesh или без него. Без Mesh вы просто пропускаете специфичные для Mesh тесты.

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

Учтите также, что радиосертификация вроде SRRC, CE и FCC — это требование закона, отдельное от квалификации SIG. Без неё изделие нельзя легально продавать. О стоимости и порядке сертификации расскажет одна из следующих статей.

А где на стороне шлюза живёт Mesh?

На устройствах использование SDK производителя чипа не вызывает споров. На шлюзе же стек Mesh может располагаться в одном из трёх мест:

Подход Как работает Плюсы и минусы
Реализовать Mesh в программе шлюза Использовать собственный Bluetooth Linux-платы для приёма и отправки рекламных пакетов Mesh На один чип меньше, но придётся написать тысячи строк кода стека и самим проходить квалификационные тесты
Bluetooth-модуль как сопроцессор Стек Mesh работает на модуле, а основная программа отправляет ему команды по UART Проверенный стек, можно сослаться на квалификацию производителя; лишний модуль
Модуль как обычный Bluetooth-контроллер Модуль работает по стандартному HCI, а Mesh крутится в Linux (например, в BlueZ) Готовая прошивка модуля, но разработка под Windows невозможна

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

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

Итак, можно ли обойтись без SIG Mesh?

  • Не использовать протокол SIG Mesh: можно, но вы теряете ретрансляцию, стандартную безопасность и совместимость между производителями, а квалификация Bluetooth всё равно нужна.
  • Использовать SIG Mesh без квалификации: на функциональности это не скажется, но экспорт, онлайн-площадки и крупные розничные каналы фактически закрыты.

Для нас главная ценность SIG Mesh не в слове «стандарт». Это набор моделей устройств, которые почти один к одному ложатся на Matter. Благодаря этому слой трансляции в шлюзе остаётся простым, а выбор чипов — свободным.

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

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

QR-код статьи

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