Интеграция Matter протокола для управления умным домом
Matter — открытый стандарт умного дома от Connectivity Standards Alliance (CSA), поддерживаемый Apple, Google, Amazon и Samsung. Устройство с Matter-сертификацией работает с любой экосистемой: Apple Home, Google Home, Amazon Alexa, SmartThings — без отдельных интеграций для каждой. Для мобильного приложения это означает: один SDK для управления всеми Matter-устройствами независимо от производителя.
Как Matter работает на уровне стека
Matter работает поверх IPv6 через Wi-Fi или Thread (меш-сеть с низким энергопотреблением). Border Router (HomePod mini, Google Nest Hub, Echo) соединяет Thread-сеть с IP-сетью.
Процесс добавления устройства (commissioning):
- Пользователь сканирует QR-код или вводит PIN устройства
- Телефон устанавливает Bluetooth-соединение с устройством
- Обмен сертификатами через PASE (Passcode Authenticated Session Establishment)
- Устройство получает сетевые credentials и подключается к Wi-Fi / Thread
- Устройство добавляется в Fabric — общее доверенное пространство
Один физический аппарат может быть добавлен в несколько Fabric одновременно (Multi-Admin). Лампа добавлена в Apple Home и Google Home — обе экосистемы управляют ей независимо.
iOS: Matter через HomeKit + MatterSupport
На iOS Matter-устройства добавляются через HomeKit. Приложение может инициировать процесс через MatterSupport.framework (iOS 16.1+):
import MatterSupport
func addMatterDevice() {
let topology = MatterAddDeviceRequest.Topology(
ecosystemName: "MyApp Smart Home",
homes: [MatterAddDeviceRequest.Topology.Home(
displayName: "Мой дом"
)]
)
let request = MatterAddDeviceRequest(topology: topology)
Task {
do {
try await request.perform()
// устройство добавлено в HomeKit
} catch {
// MatterAddDeviceRequest.Error.userCancelled — пользователь отменил
}
}
}
После добавления устройство доступно как HMAccessory в HomeKit. Управление — через стандартный HMCharacteristic API. Matter-специфичные кластеры, которых нет в HomeKit, доступны через HMAccessory.matterNodeID и дополнительные API.
Android: Google Home Mobile SDK + Matter SDK
Google предоставляет два пути:
Google Home Mobile SDK (рекомендованный для большинства приложений) — высокоуровневый SDK для commissioning устройств в экосистему Google Home:
// Добавление через Google Home
val commissioningRequest = CommissioningRequest.builder()
.setCommissioningService(MatterCommissioningService::class.java)
.build()
homeClient.commissionDevice(commissioningRequest).addOnSuccessListener { result ->
// устройство добавлено
}.addOnFailureListener { exception ->
// обработка ошибок
}
Matter SDK (connectedhomeip) — полная реализация от CSA, включает собственный Fabric и управление устройствами без зависимости от Google Home. Значительно сложнее: нужно управлять Fabric Credentials, хранить сертификаты, реализовывать commissioning самостоятельно.
Когда нужен Matter SDK напрямую: если строите собственную экосистему (не хотите зависеть от Apple Home / Google Home), или если нужен доступ к кластерам устройств за пределами стандартного HomeKit/Google Home API.
Кластеры Matter
Matter использует модель кластеров — аналог GATT Characteristics в BLE. Кластер 0x0006 — On/Off. Кластер 0x0008 — Level Control (яркость). Кластер 0x0300 — Color Control.
Через Matter SDK:
// Прямое управление через Matter кластер
val endpointId = EndpointId(1u)
val clusterId = ClusterId(0x0006u) // On/Off
val attributePath = AttributePath(
endpointId = endpointId,
clusterId = clusterId,
attributeId = AttributeId(0x0000u) // OnOff attribute
)
// Чтение состояния
chipDeviceController.readAttributePath(devicePtr, listOf(attributePath), 0)
Типичные сложности при разработке
Thread Border Router. Если устройство использует Thread, телефон не может напрямую с ним работать без Thread Border Router в сети. Разработка требует наличия совместимого Border Router (HomePod mini, Eero 6, Google Nest Wifi Pro).
Сертификация. Matter-устройство должно быть сертифицировано CSA. Приложение для управления этого не требует, но тестирование на несертифицированном прототипе возможно через Development Mode SDK.
Commissioning window. Устройство открывает окно для добавления (11 минут по умолчанию). Если commissioning не завершён — нужно перезапустить. Это нужно обрабатывать в UX явно.
Срок интеграции: 1-2 недели — commissioning + базовое управление через MatterSupport/Google Home SDK. Собственный Fabric с Matter SDK напрямую — 4-6 недель. Стоимость рассчитывается индивидуально.







