Интеграция Matter-протокола для IoT-устройств в мобильное приложение

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Интеграция Matter-протокола для IoT-устройств в мобильное приложение
Сложный
от 1 недели до 3 месяцев
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Интеграция Matter-протокола для IoT-устройств в мобильное приложение

Matter 1.x — это не замена Bluetooth или Wi-Fi, а унифицированный протокол прикладного уровня поверх IP. Устройство может быть подключено по Thread, Wi-Fi или Ethernet — Matter работает одинаково. Смысл для разработчика мобильного приложения прост: один SDK, и устройства от разных производителей управляются через единый API. Но путь от «один SDK» до рабочего продакшн-кода длиннее, чем кажется на старте.

Зоопарк экосистем и единый стандарт

До Matter каждый производитель делал собственный протокол. IKEA TRÅDFRI говорил CoAP/DTLS, Philips Hue — Zigbee + REST, Tuya — облачный MQTT с проприетарным шифрованием. Интеграция каждого требовала отдельного адаптера. Matter решает это на уровне стандарта: Device Type Dictionary определяет кластеры (Clusters) — атомарные единицы функциональности. Лампочка — OnOff Cluster + Level Control Cluster + Color Control Cluster. Термостат — Thermostat Cluster. Замок — Door Lock Cluster.

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

iOS: Matter через HomeKit API

Apple реализует Matter через расширение HomeKit. Комиссионирование нового устройства:

import HomeKit
import MatterSupport

// Запуск комиссионирования через MatterAddDeviceRequest
let topology = MatterAddDeviceRequest.Topology(
    ecosystemName: "MyApp",
    homes: [MatterAddDeviceRequest.Topology.Home(displayName: "Мой дом")]
)
let request = MatterAddDeviceRequest(topology: topology)

do {
    try await request.perform()
} catch {
    // MatterAddDeviceError.userCancelled, .alreadyOnNetwork и т.д.
}

После комиссионирования устройство доступно через HMHomeManager. Управление конкретным кластером — через HMCharacteristic. Но HomeKit абстрагирует Matter Clusters до своей модели характеристик, что создаёт ограничения: нестандартные кластеры (Vendor-specific) через HomeKit недоступны.

Для полного доступа к Matter API на iOS нужен entitlement com.apple.developer.matter.allow-setup-payload — запрашивается через Developer Portal.

Android: Matter через Google Home SDK

Google распространяет Matter поддержку через Play Services и Home SDK:

// build.gradle.kts
implementation("com.google.android.gms:play-services-home:16.0.0")

Комиссионирование:

val commissioningClient = HomeManager.getCommissioningClient(context)

val request = CommissioningRequest.builder()
    .setCommissioningService(ComponentName(context, MyCommissioningService::class.java))
    .build()

commissioningClient.commissionDevice(request)
    .addOnSuccessListener { result ->
        val deviceId = result.commissionedDeviceId
    }
    .addOnFailureListener { exception ->
        // CommissioningException с кодом ошибки
    }

MyCommissioningService расширяет CommissioningService и получает колбэк onCommissioningRequested() — здесь добавляем устройство в собственный бэкенд.

Прямое управление через Matter SDK

Для случаев, когда нужен прямой доступ к кластерам без экосистемной надстройки, используется Matter Open Source SDK через JNI или Kotlin-обёртки:

// Чтение атрибута из OnOff Cluster
val devicePtr = ChipDeviceController.openPairingWindowWithPin(deviceId, 300, 0, pinCode)
chipClient.getDeviceController().readAttributePath(
    object : ReportCallback {
        override fun onReport(nodeState: NodeState) {
            val onOffState = nodeState
                .getEndpoint(1)
                ?.getCluster(OnOffCluster.CLUSTER_ID)
                ?.getAttribute(OnOffCluster.ATTRIBUTE_ID_ON_OFF)
        }
    },
    devicePtr,
    listOf(AttributePath(endpointId = 1, clusterId = OnOffCluster.CLUSTER_ID,
                         attributeId = OnOffCluster.ATTRIBUTE_ID_ON_OFF))
)

Прямой SDK сложнее, требует понимания Interaction Model (Read/Write/Subscribe/Invoke), но даёт доступ к vendor-specific кластерам и работает без зависимости от Google Play Services.

Fabric и Multi-admin

Важная архитектурная деталь Matter: устройство может одновременно принадлежать нескольким Fabric. Fabric — это криптографический домен с парой ключей. Приложение Google Home, Apple Home и ваше приложение могут управлять одним устройством независимо. Это называется Multi-admin.

Для реализации нужно передать Open Commissioning Window (OCW) устройству, чтобы второй контроллер мог провести comissioning в свой Fabric:

// iOS: открыть окно комиссионирования для дополнительного контроллера
let accessory = homeManager.primaryHome?.accessories.first { $0.name == "Smart Lock" }
// Через HMAccessoryControl или прямой Matter API

Это критично для продуктов, которые хотят работать в экосистемах одновременно.

Типичные ошибки при интеграции

На практике чаще всего теряется время на следующем:

  • Версионирование Matter SDK — Matter 1.0 и 1.3 несовместимы на уровне некоторых кластеров. Фиксируйте версию SDK в зависимостях и тестируйте на конкретных прошивках устройств.
  • BLE Commissioning на Android — если телефон не имеет BLE-соединения с устройством в момент комиссионирования, Google Play Services запрашивает разрешения заново и сбрасывает процесс.
  • Fabric conflicts — если устройство уже в другом Fabric, повторное комиссионирование требует фабричного сброса. Добавьте проверку в UX.

Оценка работ

Интеграция Matter в существующее мобильное приложение при наличии Matter-совместимых устройств для тестирования: iOS — 3-4 недели, Android — 3-5 недель, Flutter с нативными каналами — 5-7 недель. Разработка с нуля, включая архитектуру управления устройствами и синхронизацию состояния — от 2 месяцев. Стоимость рассчитывается индивидуально после анализа требований и парка устройств.