Perangkat di Matter memiliki model data (DM) yang terdefinisi dengan baik, yang merupakan pemodelan hierarkis fitur Perangkat. Di tingkat teratas hierarki ini terdapat Perangkat.
Perangkat dan Endpoint
Semua Perangkat, termasuk smartphone dan asisten smart home, terdiri dari Node1. Node adalah resource unik yang dapat diidentifikasi dan dialamatkan dalam jaringan yang dapat dirasakan pengguna sebagai fungsionalitas yang utuh. Komunikasi jaringan di Matter berasal dan berakhir di Node.
Node adalah kumpulan Endpoint. Setiap Endpoint menyertakan kumpulan fitur. Misalnya, Endpoint mungkin terkait dengan fungsi pencahayaan, sementara yang lain terkait dengan deteksi gerakan, dan yang lain lagi terkait dengan utilitas seperti OTA Perangkat.
Peran node
Peran Node adalah sekumpulan perilaku terkait. Setiap Node dapat memiliki satu atau beberapa peran. Peran node mencakup:
- Commissioner: Node yang melakukan Commissioning.
- Controller: 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 On/Off, memiliki peran Pengontrol.
- Controlee: Node yang dapat dikontrol oleh satu atau beberapa Node. Sebagian besar jenis perangkat dapat menjadi Controlee, kecuali beberapa jenis perangkat yang memiliki peran Pengontrol, seperti Lampu On/Off Sakelar. Sakelar Lampu On/Off hanya dapat menjadi Pengontrol. Sakelar Lampu On/Off tidak dapat menjadi Controlee.
- OTA Provider: Node yang dapat menyediakan update software OTA.
- OTA Requestor: 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 menampilkan kontrol independen lampu individual atau stop kontak dapat menampilkan kontrol soket individual.
Atribut
Di tingkat 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 Matter di DM a remote procedure call. Perintah seperti kata kerja, seperti kunci pintu pada cluster Kunci Pintu. Perintah dapat menghasilkan respons dan hasil; di Matter, respons tersebut juga ditentukan sebagai Perintah, yang berjalan dalam arah terbalik.
Acara
Terakhir, Cluster juga dapat memiliki Acara, yang dapat dianggap sebagai catatan transisi status sebelumnya. Meskipun Atribut mewakili status saat ini , peristiwa adalah catatan masa lalu, dan mencakup penghitung yang meningkat secara monoton , stempel waktu, dan prioritas. Acara ini memungkinkan pengambilan transisi status, serta pemodelan data yang tidak mudah dicapai dengan atribut.
Endpoint 0 dicadangkan untuk Cluster Utilitas. Cluster Utilitas adalah Cluster tertentu yang menyertakan fungsi layanan di Endpoint, seperti penemuan, pengalamatan, diagnostik, dan update software. Di sisi lain, Cluster Aplikasi mendukung tindakan utama seperti pengukuran on/off atau 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 atas Perangkat fisik, seperti Lampu yang Dapat Diredupkan , Kunci Pintu , atau Pemutar Video .
Jenis Perangkat tidak ditentukan oleh dokumen utama Matter spesifikasi, tetapi oleh dokumen pendamping: Library Perangkat. Demikian pula, semua Cluster Aplikasi ditentukan dalam Library Cluster Aplikasi. Ketiga dokumen ini dapat ditemukan di Connectivity Standards Alliance (Alliance) situs anggota.
Setiap Endpoint yang mengimplementasikan Jenis Perangkat harus mengimplementasikan Cluster wajib yang menentukan Jenis Perangkat tersebut. Selain Cluster wajib, Endpoint dapat mengimplementasikan 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, Acara, dan Perintah, Klien bersifat stateless dan tanggung jawabnya adalah memulai Interaksi dengan Cluster Server jarak jauh, sehingga melakukan:
- membaca dari dan menulis ke Atribut jarak jauhnya.
- membaca Acara jarak jauhnya.
- pemanggilan Perintah jarak jauhnya.
Meskipun DM bersifat hierarkis dalam Node, hubungan antar-Node tidak. Node di Matter tidak memiliki hubungan pengontrol/periferal vertikal atau pemimpin/pengikut. Sebaliknya, hubungannya bersifat horizontal: Cluster apa pun dapat berupa Server atau Klien. Dengan demikian, Node dapat berupa Server dan Klien terkait Cluster dan fungsi yang berbeda.
Misalnya, kita dapat memiliki dua lampu meja: Node A dan Node B. Kedua node mengimplementasikan Jenis Perangkat Lampu On/Off. 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 On/Off untuk sakelar on/off lokalnya. Jenis Perangkat ini harus mengimplementasikan Cluster Klien On/Off sehingga 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, kita akan menjelaskan cara interaksi Cluster Klien dan Server: Model Interaksi.
Cluster Deskriptor
Seperti namanya, Server Cluster Deskriptor menyediakan informasi introspeksi. Server Cluster Deskriptor menjelaskan Endpoint dengan menghitung:
- Cluster Server.
- Cluster Klien.
- Jenis Perangkat.
- Endpoint Tambahan, yang dikenal sebagai Bagian.
Setiap Jenis Perangkat memerlukan implementasi Cluster Deskriptor. Jenis Perangkat Root ditentukan di Endpoint 0. Membaca Cluster Deskriptornya akan memberikan visibilitas kepada klien untuk melintasi seluruh pohon Endpoint yang tersedia dan melakukan operasi yang berlaku.
Perangkat Commissioner atau Pengontrol seperti ponsel atau hub dapat menggunakan informasi yang ditemukan di Cluster Deskriptor untuk memodelkan Perangkat (lampu, sakelar, pompa, termostat), dan fitur tertentu yang diimplementasikan oleh instance Perangkat tersebut, 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. Atribut ini harus berisi setidaknya satu Jenis Perangkat.
Daftar Bagian
PartsList berisi daftar Endpoint yang digunakan untuk mengimplementasikan Jenis Perangkat ini.
PartsList Endpoint 0 (Node Root) berisi semua Endpoint perangkat selain Endpoint 0.
PartsList Endpoint lainnya biasanya kosong. Misalnya, Sensor Suhu mewajibkan Cluster Server Pengukuran Suhu dan tidak ada yang lain.
Jenis perangkat lainnya dapat disusun dalam struktur pohon 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 dapat memiliki beberapa aplikasi, dengan setiap aplikasi menjadi Node yang berbeda. Untuk tujuan primer ini, semua Perangkat akan berisi satu Node. Sebagian besar perangkat fisik diharapkan akan mengikuti pola ini. ↩