Perangkat di Matter memiliki model data (DM) yang jelas, yang merupakan pemodelan hierarkis fitur Perangkat. Di tingkat teratas hierarki ini, terdapat Perangkat.
Perangkat dan Endpoint
Semua Perangkat, termasuk smartphone dan asisten rumah, terdiri dari Node1. Node adalah resource yang mudah dikenali dalam suatu jaringan dan alamat unik dapat ditetapkan padanya. Pelanggan dapat mengenali dan berinteraksi dengan node sebagai entitas mandiri dengan fungsionalitasnya sendiri. Komunikasi jaringan dalam Matter berawal dan berakhir di Node.
Node adalah kumpulan Endpoint. Setiap Endpoint mencakup set fitur. Misalnya, Endpoint mungkin terkait dengan fungsi pencahayaan, sementara yang lain terkait dengan deteksi gerakan, dan yang lain menangani utilitas seperti OTA Perangkat.
Peran node
Peran node adalah sekumpulan perilaku terkait. Setiap Node dapat memiliki satu atau beberapa peran. Peran node meliputi:
- Commissioner: Node yang melakukan Commissioning.
- Pengontrol: Node yang dapat mengontrol satu atau beberapa Node. Contohnya mencakup Google Home app (GHA), Google Assistant, dan Google Nest Hub (2nd gen). Beberapa jenis perangkat, seperti Sakelar Lampu Aktif/Nonaktif, memiliki peran Pengontrol.
- Controlee: Node yang dapat dikontrol oleh satu atau beberapa Node. Sebagian besar jenis perangkat dapat menjadi Controlee, kecuali untuk beberapa jenis perangkat yang memiliki peran Pengontrol, seperti Sakelar Lampu Aktif/Nonaktif. Sakelar Lampu On/Off hanya dapat menjadi Pengontrol. Perangkat ini tidak dapat menjadi Perangkat yang Dikontrol.
- Penyedia OTA: Node yang dapat menyediakan update software OTA.
- Pemohon OTA: Node yang dapat meminta update software OTA.
Cluster
Dalam Endpoint, Node memiliki satu atau beberapa Cluster. Ini adalah langkah lain dalam hierarki Perangkat, karena mengelompokkan fungsi tertentu seperti cluster on/off pada smart plug, atau cluster kontrol level pada Endpoint lampu yang dapat diredupkan.
Node juga dapat memiliki beberapa Endpoint, yang masing-masing membuat instance fungsi yang sama. Misalnya, perlengkapan lampu dapat mengekspos kontrol independen atas lampu individual atau terminal stopkontak dapat mengekspos kontrol atas soket individual.
Atribut
Di level terakhir, kita akan menemukan Atribut, yang merupakan status yang dimiliki oleh node, seperti atribut level saat ini dari cluster kontrol level. Atribut dapat ditentukan sebagai jenis data yang berbeda seperti uint8, string, atau array.
Perintah
Selain Atribut, Cluster juga memiliki Perintah, yang merupakan tindakan yang dapat dilakukan. Perintah ini setara dengan remote procedure call di DM Matter. Perintah mirip dengan kata kerja, seperti kunci pintu di cluster Kunci Pintu. Perintah dapat menghasilkan respons dan hasil; di Matter, respons tersebut juga didefinisikan sebagai Perintah, yang berjalan ke arah sebaliknya.
Acara
Terakhir, Cluster juga dapat memiliki Peristiwa, yang dapat dianggap sebagai kumpulan data transisi status sebelumnya. Meskipun Atribut mewakili status saat ini, peristiwa adalah jurnal masa lalu, dan mencakup penghitung yang meningkat secara monoton, stempel waktu, dan prioritas. Dengan demikian, transisi status dapat dicatat, serta pemodelan data yang tidak mudah dicapai dengan atribut dapat dilakukan.
Endpoint 0 dicadangkan untuk Cluster Utilitas. Cluster Utilitas adalah Cluster tertentu yang mencakup fungsi layanan di Endpoint, seperti penemuan, pengalamatan, diagnostik, dan update software. Di sisi lain, Cluster Aplikasi mendukung tindakan utama seperti aktif/nonaktif atau pengukuran suhu.
Jenis Perangkat
Secara keseluruhan, kombinasi Cluster mana yang harus disertakan saat produsen perangkat merencanakan Perangkat baru?
Spesifikasi Matter mengharuskan perangkat mengimplementasikan atau memperluas satu atau beberapa Jenis Perangkat. Jenis Perangkat adalah kumpulan Cluster wajib dan opsional yang menentukan atribut tingkat teratas dari Perangkat fisik, seperti Lampu yang Dapat Diredupkan, Kunci Pintu, atau Pemutar Video.
Jenis Perangkat tidak ditentukan oleh dokumen utama spesifikasi Matter, tetapi oleh dokumen yang menyertainya: Library Perangkat. Demikian pula, semua Cluster Aplikasi ditentukan dalam Library Cluster Aplikasi. Ketiga dokumen ini dapat ditemukan di situs anggota Connectivity Standards Alliance (Alliance).
Setiap Endpoint yang mengimplementasikan Jenis Perangkat harus mengimplementasikan Cluster wajib yang menentukan Jenis Perangkat tersebut. Selain Cluster wajib, Endpoint dapat menerapkan Cluster tambahan, termasuk satu atau beberapa Cluster opsional Jenis Perangkat, atau bahkan Cluster yang bukan bagian dari Jenis Perangkat.
Klien dan Server
Cluster dapat berupa Cluster Klien atau Cluster Server. Meskipun Server bersifat stateful dan menyimpan Atribut, Peristiwa, dan Perintah, Klien bersifat stateless dan bertanggung jawab untuk memulai Interaksi dengan Cluster Server jarak jauh, sehingga melakukan:
- membaca dari dan menulis ke Atribut jarak jauhnya.
- pembacaan Peristiwa jarak jauhnya.
- pemanggilan Perintah jarak jauhnya.
Meskipun DM bersifat hierarkis dalam Node, hubungan antar-Node tidak demikian. Node di Matter tidak memiliki hubungan pengontrol/periferal atau pemimpin/pengikut vertikal. Sebaliknya, hubungannya bersifat horizontal: Cluster apa pun dapat berupa Server atau Klien. Dengan demikian, Node dapat berupa Server dan Klien terkait dengan berbagai Cluster dan fungsi.
Misalnya, kita mungkin memiliki dua lampu meja: Node A dan Node B. Kedua node menerapkan Jenis Perangkat Lampu Aktif/Nonaktif. Jenis Perangkat ini mencakup Cluster Server On/Off yang mengontrol output lampu fisik masing-masing.
Namun, seperti lampu meja pada umumnya, perangkat fisik kita juga akan menyertakan Jenis Perangkat Sakelar Lampu Aktif/Nonaktif untuk sakelar aktif/nonaktif lokalnya. Jenis Perangkat ini harus mengimplementasikan Cluster Klien On/Off agar dapat mengontrol Cluster Server.
Dalam contoh ini, Cluster Klien On/Off di Node A mengubah atribut Cluster Server On/Off di Node A dan Node B, sedangkan Cluster Klien Node B hanya mengubah Cluster Server di Node B itu sendiri.
Di bagian berikutnya, kami akan menjelaskan cara Cluster Klien dan Server berinteraksi: Model Interaksi.
Cluster Deskripsi
Seperti namanya, Server Cluster Deskriptor memberikan informasi introspeksi. Endpoint ini menjelaskan Endpoint yang menghitung:
- Cluster Server.
- Cluster Klien.
- Jenis Perangkat.
- Endpoint Tambahan, yang dikenal sebagai Bagian.
Setiap Jenis Perangkat memerlukan penerapan Cluster Deskriptor. Jenis Perangkat Root ditentukan di Endpoint 0. Membaca Cluster Deskriptornya akan memberikan visibilitas kepada klien untuk melintasi hierarki lengkap Endpoint yang tersedia dan melakukan operasi yang berlaku.
Commissioner atau perangkat Pengontrol seperti ponsel atau hub dapat menggunakan informasi yang ditemukan di Cluster Deskriptor untuk membuat model Perangkat (lampu, sakelar, pompa, termostat), dan fitur spesifik yang diterapkan oleh instance Perangkat tertentu, yang menampilkan UI yang benar kepada pengguna.
Cluster Server
Atribut ServerList mencantumkan Server Cluster di Endpoint.
Cluster Klien
Atribut ClientList mencantumkan Klien Cluster di Endpoint.
Daftar Jenis Perangkat
Atribut DeviceTypeList adalah daftar Jenis Perangkat yang didukung oleh
Endpoint, beserta revisinya masing-masing. File ini harus berisi minimal satu Jenis Perangkat.
Daftar Komponen
PartsList berisi daftar Endpoint yang digunakan untuk mengimplementasikan Jenis Perangkat ini.
PartsList Endpoint 0 (Node Root) berisi semua Endpoint perangkat selain dirinya sendiri (Endpoint 0).
PartsList Endpoint lainnya biasanya akan kosong. Misalnya, Sensor Suhu memerlukan Cluster Server Pengukuran Suhu dan tidak ada
yang lain.
Jenis perangkat lain mungkin disusun dalam struktur hierarki yang terdiri dari lebih dari satu instance Jenis Perangkat. Misalnya, jenis Perangkat Pemutar Video dapat terdiri dari TV, Pemutar Video, Speaker, dan berbagai Jenis Perangkat Aplikasi Konten, masing-masing di Endpoint yang berbeda.
-
Spesifikasi Matter menentukan bahwa Perangkat dapat memiliki beberapa Node. Misalnya, smartphone mungkin memiliki beberapa aplikasi, dengan setiap aplikasi menjadi Node yang berbeda. Untuk tujuan panduan ini, semua Perangkat akan berisi satu Node. Sebagian besar perangkat fisik diperkirakan akan mengikuti pola ini. ↩