Інтеграція протоколу 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)
- Пристрій отримує мережеві облікові дані та підключається до 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 для додавання пристроїв в екосистему 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:
// Пряме керування кластерами
val endpointId = EndpointId(1u)
val clusterId = ClusterId(0x0006u) // On/Off
val attributePath = AttributePath(
endpointId = endpointId,
clusterId = clusterId,
attributeId = AttributeId(0x0000u) // OnOff атрибут
)
// Читання стану
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 тижнів. Вартість розраховується індивідуально.







