Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Plugin Materi
Apa itu Plugin Matter
Matter Plugin adalah implementasi referensi yang dibuat menggunakan Plugin protokol kustom fitur SDK Hub Integrasi Terkelola. Ini memungkinkan hub Anda untuk mengontrol perangkat Matter baik secara lokal di jaringan yang sama, mengikuti spesifikasi Matter, dan dari jarak jauh melalui integrasi Terkelola.
Plugin Matter disertakan dalam Hub SDK. Ini berkomunikasi dengan perangkat Matter, mengimplementasikan fungsionalitas Matter Controller, dan mengekspos jalur kendali jarak jauh melalui integrasi Terkelola.
chip-tool adalah pengontrol referensi berbasis baris perintah dari connectedhomeip.
Ruang lingkup distribusi ini tidak termasuk aplikasi seluler produksi, juga tidak mencakup sertifikasi dan kegiatan produksi seperti uji lab dan sertifikasi CSA. Ini tetap menjadi bagian dari proses pengembangan produk Anda.
Bagaimana membangun Plugin Matter
Plugin Matter memiliki dependensi berikut selain Hub SDK:
-
OpenSSL 3.0.x: Persyaratan versi OpenSSL tidak ketat — dalam banyak kasus, versi default sistem berfungsi dengan baik.
-
Perangkat AWS IoT SDK
CPP V2 v1.33.0 -
AWS SDK CPP
1.11.433
Konfigurasikan repo dengan perintah berikut:
cd IotMI-DeviceSDK-MatterPlugin mkdir build cd build cmake ..
Kemudian bangun dengan perintah berikut:
cmake --build .
Setelah membangun, tambahkan jalur perpustakaan ke LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/path/to/libraries:$LD_LIBRARY_PATH
Quickstart: Siapkan dan Jalankan Plugin Matter
Ikuti langkah-langkah di bawah ini untuk mengatur Plugin Matter dan solusi Matter yang sesuai. Aliran mengasumsikan dua mesin: Hub (menjalankan Plugin Hub SDK+Matter) dan Raspberry Pi yang mewakili “Aplikasi Seluler” untuk commissioning dan kontrol dasar.
Manajemen ID Node
Di Matter, setiap node pada kain — termasuk perangkat, pengontrol, dan komisaris — harus memiliki ID Node yang unik. Untuk menghindari tabrakan, diperlukan kebijakan alokasi yang konsisten. Dalam panduan ini, ID Node ditetapkan secara manual; dalam produksi, Anda harus mengelola ID Node dengan benar.
Untuk contoh dalam dokumen ini, alat chip Hub (digunakan oleh Plugin Matter) menggunakan ID Node default112233, dan alat chip pada Aplikasi Seluler Raspberry Pi menggunakan ID Node. 123456 Perangkat yang baru ditugaskan diberi ID Node yang tidak bertentangan pada kain yang sama (misalnya, 101 di quickstart).
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki yang berikut:
-
Hub Anda sudah onboard ke integrasi Terkelola dan Hub SDK diterapkan (melalui skrip atau systemd). Jika belum onboard, ikuti Pengaturan orientasi hub ke onboard ke Integrasi terkelola, dan jalankan SDK Instal dan validasi Hub SDK integrasi terkelola hub. Setelah onboard, catat ID hal terkelola hub Anda. Ini akan diperlukan nanti.
-
Anda memiliki Raspberry Pi (atau mesin apa pun) yang dapat menjalankan chip-tool dan AWS CLI.
-
Anda memiliki perangkat Matter untuk pengujian. Ini bisa berupa perangkat materi nyata atau perangkat Materi virtual (misalnya, aplikasi pencahayaan
)
Langkah 1. Siapkan Raspberry Pi (mewakili Aplikasi Seluler)
-
Instal AWS CLI dan buat serta instal chip-tool
-
Buat chip-tool mengikuti panduan pembuatan alat chip resmi
. Versi yang telah kami verifikasi adalah v1.4.2.0. -
Instal AWS CLI mengikuti instruksi resmi.
-
Siapkan penyimpanan persisten untuk alat chip
mkdir -p $HOME/iotmi/matter/ -
Hasilkan rantai sertifikat komisaris (tetapkan ID simpul
123456ke alat chip ini)cd connectedhomeip/ cd out/chip-tool/ ./chip-tool pairing get-commissioner-root-certificate \ --commissioner-nodeid 123456 \ --storage-directory $HOME/iotmi/matter/
Rantai yang dihasilkan disimpan di: $HOME/iotmi/matter/chip_tool_config.alpha.ini
Anda akan menyalin file ini ke Hub nanti.
Langkah 2. Siapkan Hub (yang menjalankan Plugin Matter)
-
Bangun atau Instal alat chip di Hub (Plugin Matter menggunakannya untuk melakukan operasi Matter). Anda dapat merujuk ke panduan pembuatan alat chip
. Versi yang telah kami verifikasi adalah v1.4.2.0.
Kita juga membutuhkan sha256sum dari chip-tool untuk digunakan nanti. Anda dapat menggunakan perintah berikut untuk mendapatkan sha256sum:
sha256sum /path/to/chip-tool
-
Siapkan penyimpanan dan salin file komisaris dari Raspberry Pi
mkdir -p $HOME/iotmi/matter/ # From Raspberry Pi to Hub (example): # scp $HOME/iotmi/matter/chip_tool_config.alpha.ini user@HUB_HOST:$HOME/iotmi/matter/ -
Jalankan Plugin Matter (sediakan jalur alat chip, SHA256-nya, dan folder penyimpanan)
./iotmi_matter_plugin \ --chip-tool-path /path/to/chip-tool \ --sha256sum SHA256SUM_OF_THE_CHIP_TOOL \ --storage-folder $HOME/iotmi/matter/ \ --node-id 112233
Langkah-langkah di bawah ini harus dijalankan pada Raspberry Pi yaitu Komisaris.
Langkah 3. Komisi perangkat Matter (pada Raspberry Pi)
Gunakan chip-tool untuk menugaskan perangkat menggunakan kode QR yang didekodekan dan kredensialnya. Wi-Fi Dalam contoh ini, perangkat akan menggunakan ID node 101 dan ID node komisaris adalah123456.
./chip-tool pairing code-wifi 101 \ YOUR_WIFI_SSID YOUR_WIFI_PW \ MT:MFAA0W8C00UFQV2VL00 \ --bypass-attestation-verifier 1 \ --commissioner-nodeid 123456 \ --storage-directory $HOME/iotmi/matter/
Catatan:
-
101adalah ID node Matter perangkat (Anda dapat memilih nilai yang berbeda). -
MT:MFAA0W8C00UFQV2VL00adalah konten QR yang diterjemahkan untuk perangkat. Untuk mendapatkan konteks yang diterjemahkan dari kode QR, Anda harus memilih aplikasi atau pustaka kode QR untuk mendekodekannya. Anda juga dapat menggunakan layanan web yang mendukung decoding kode QR decoding. -
-bypass-attestation-verifier 1hanya untuk penggunaan uji. Untuk produksi, perbarui toko PAA dan lakukan pemeriksaan pengesahan.
chip-tool mendukung metode pemasangan yang berbeda, termasuk kode QR atau pemasangan kode PIN dengan Thread atau perangkat. WiFi Untuk informasi selengkapnya tentang perintah pemasangan alat chip
Langkah 4. Berikan akses Hub di perangkat (perbarui ACL)
Setelah commissioning, izinkan alat chip Hub untuk mengontrol perangkat. Dalam contoh ini, ID node 123456 (Raspberry Pi) memiliki izin Admin (5) dan ID node 112233 (Hub) memiliki izin Kelola (4).
chip-tool accesscontrol write acl \ '[{"fabricIndex":1,"privilege":5,"authMode":2,"subjects":[123456], "targets": null},{"fabricIndex":1,"privilege":4,"authMode":2,"subjects":[112233], "targets": null}]' \ 101 0 \ --commissioner-nodeid 123456 --storage-directory $HOME/iotmi/matter/
Langkah 5. Buat hal yang dikelola untuk perangkat (User-Guided Pengaturan)
-
Mulai penemuan (ganti dengan ID hal terkelola Hub Anda):
aws iot-managed-integrations start-device-discovery \ --discovery-type CUSTOM \ --custom-protocol-detail '{"Name": "Matter", "NodeId":"101", "FabricId":"1"}' \ --controller-identifier <HUB_MANAGED_THING_ID>
Contoh respons mencakup ID pekerjaan penyiapan yang dipandu pengguna:
{ "Id": "USER_GUIDED_SETUP_JOB_ID", "StartedAt": 1753683326.056 }
-
Kueri perangkat yang ditemukan menggunakan ID pekerjaan:
aws iot-managed-integrations \ list-discovered-devices --identifier <USER_GUIDED_SETUP_JOB_ID>
Contoh respons:
{ "Items": [ { "DeviceTypes": [], "DiscoveredAt": "2025-08-05T06:46:35.407000+08:00", "AuthenticationMaterial": "<AUTH_MATERIAL>" } ] }
-
Buat hal yang dikelola untuk perangkat menggunakan AuthenticationMaterial:
aws iot-managed-integrations create-managed-thing \ --role DEVICE \ --authentication-material-type DISCOVERED_DEVICE \ --authentication-material "<AUTH_MATERIAL>"
Respons sampel (dengan ID benda terkelola perangkat):
{ "Id": "DEVICE_MANAGED_THING_ID", "Arn": "arn:aws:iotmanagedintegrations:eu-west-1:228183742813:managed-thing/515cf5a707ec41aaabb9914a1dd2889f", "CreatedAt": "2025-08-06T15:00:08.718000+08:00" }
Langkah 6. Kontrol perangkat melalui integrasi Terkelola
Gunakan send-managed-thing-command perintah untuk mengirim perintah ke hal yang Anda kelola.
json=$(jq -cr '.|@json' <<EOF [ { "endpointId": "1", "capabilities": [ { "id": "matter.OnOff@1.4", "name": "On/Off", "version": "1", "actions": [ { "name": "Toggle", "parameters": {} } ] } ] } ] EOF ) aws iot-managed-integrations send-managed-thing-command \ --managed-thing-id "DEVICE_MANAGED_THING_ID" \ --endpoints "$json"
Langkah 7. Membaca status perangkat
Kirim perintah berikut untuk mendapatkan status perangkat.
aws iot-managed-integrations get-managed-thing-state \ --managed-thing-id "DEVICE_MANAGED_THING_ID"
Hasil sampel:
{ "Endpoints": [ { "endpointId": "1", "capabilities": [ { "id": "matter.OnOff@1.4", "name": "On/Off", "version": "1.4", "properties": [ { "value": { "lastChangedAt": "2025-08-14T13:16:02.132Z", "propertyValue": false }, "name": "OnOff" } ] } ] } ] }
Langkah 8. Hapus hal yang dikelola dari hub Anda
-
Hapus hal yang dikelola dari hub Anda dengan perintah berikut
aws iot-managed-integrations delete-managed-thing \ --identifier "DEVICE_MANAGED_THING_ID" -
Lepaskan perangkat dari kain Raspberry Pi (jika diinginkan):
./chip-tool pairing unpair 101 \ --commissioner-nodeid 123456 \ --storage-directory $HOME/iotmi/matter/
Jenis perangkat Matter yang didukung
Menambahkan Support untuk Cluster Tambahan
Untuk memperluas Plugin Matter untuk mendukung jenis dan kemampuan perangkat tambahan, modifikasi matter_action_converter.cpp mengikuti pola ini:
Pola implementasi:
-
Tentukan pemetaan untuk enum dan bitmap
-
Tambahkan UpdateState logika untuk atribut yang dapat ditulis
-
Tambahkan pemrosesan perintah untuk tindakan cluster
-
Tambahkan parsing atribut untuk pelaporan status
Gunakan cluster yang ada sebagai template:
-
OnOff cluster - Referensi paling sederhana yang menunjukkan keempat komponen dengan enum dasar, atribut yang dapat ditulis, perintah, dan pelaporan atribut
-
DoorLock cluster - Contoh kompleks yang menunjukkan beberapa jenis enum, bidang bitmap, parameter struct, parameter perintah opsional, dan cakupan atribut yang luas
Semua cluster yang didukung (Identifikasi, OnOff,, LevelControl DoorLock, Thermostat, ColorControl, BooleanState) mengikuti struktur ini. Tinjau implementasi yang ada di matter_action_converter.cpp untuk memahami pola lengkapnya.
Integrasikan solusi Matter Controller yang berbeda
Bagian ini memberikan panduan tentang cara mengintegrasikan berbagai solusi Matter Controller dengan Matter Plugin. Ini menguraikan pendekatan yang mungkin dan pertimbangan penting tetapi tidak memberikan kode implementasi rinci.
Ada dua cara utama untuk mengintegrasikan solusi Matter Controller. Yang pertama adalah menggunakan Plugin Matter dengan chip-tool yang disesuaikan. Yang kedua adalah menggunakan Matter Controller pilihan Anda dan integrasi dengan integrasi Terkelola melalui pustaka Protokol Kustom.
Menggunakan Plugin Matter dengan Disesuaikan Chip-Tool
Dalam pendekatan ini, Plugin Matter diperluas untuk bekerja dengan versi yang disesuaikan dari file Chip-Tool. Untuk mencapai ini, Anda mungkin perlu memodifikasi kode sumber Matter Plugin dan memperkenalkan logika tambahan:
-
Sesuaikan logika penguraian STDIO: Jika alat chip khusus Anda menghasilkan log dengan pola yang berbeda, perbarui logika penguraian yang sesuai.
-
Menerapkan penyimpanan aman: Plugin Matter menyediakan mekanisme penyimpanan berbasis file untuk informasi perangkat. Untuk penggunaan produksi, ganti ini dengan implementasi penyimpanan yang lebih aman atau terapkan enkripsi ke data. Dan itu juga membutuhkan prosedur pembersihan yang tepat saat Plugin Matter dihapus.
-
Menerapkan penandatanganan biner dan perlindungan integritas: Dalam penerapan produksi, Anda harus menerapkan perlindungan integritas untuk alat chip yang disesuaikan dan Plugin Matter yang diperluas. Ini termasuk menandatangani binari sebagai bagian dari proses rilis perangkat lunak Anda, memverifikasi tanda tangan selama startup, dan mengintegrasikan fitur keamanan platform seperti boot aman atau alat integritas. OS-level
-
Memperkenalkan pembatasan task/event tarif: Untuk mencegah kelebihan beban, pastikan Plugin Matter menyertakan tugas yang tepat dan pembatasan tingkat peristiwa. Dalam penerapan produksi, Anda juga harus menambahkan metrik dasar dan pemantauan untuk mendeteksi pola pembaruan abnormal dan menghentikan sementara atau menangguhkan perangkat atau langganan yang terpengaruh. Perilaku seperti pemutus sirkuit ini tidak disediakan oleh implementasi referensi dan harus diimplementasikan oleh pelanggan.
-
Integrasikan logika fungsi utama chip-tool secara langsung: Jika Anda memilih untuk tidak mengandalkan STDIO, Anda dapat mengintegrasikan fungsi utama chip-tool ke dalam Plugin Matter. input/output Logika standar kemudian dapat dihubungkan ke read/write fungsi ChptoolProc kelas.
-
Support code generation: Menerapkan mekanisme untuk menangani pembaruan versi spesifikasi Matter melalui pembuatan kode.
-
Menerapkan fitur Matter Administration, termasuk:
-
Menetapkan ID Node ke perangkat Commissioner, Controller, dan Matter.
-
Mengelola beberapa Kain.
-
Di sisi chip-tool, penyempurnaan berikut juga direkomendasikan:
-
Gunakan penyimpanan aman: alat chip menyimpan sertifikat Matter, kunci pribadi, dan statistik di direktori lokal. Ganti ini dengan implementasi yang aman.
-
Aktifkan pemrosesan paralel: Secara default, Chip-Tool jalankan satu perintah pada satu waktu. Menambahkan dukungan eksekusi paralel dapat meningkatkan efisiensi dalam skenario tertentu.
Menggunakan Existing Matter Controller dengan integrasi Terkelola
Jika Matter Controller Anda tidak didasarkan pada chip-tool (misalnya, Python-based implementasi atau solusi berbasis panggilan fungsi), pendekatan STDIO mungkin tidak cocok. Dalam kasus seperti itu, Anda dapat berintegrasi langsung dengan integrasi Terkelola menggunakanPlugin protokol kustom, saat menggunakan Plugin Matter sebagai referensi. Pertimbangan berikut berlaku untuk instans Mac:
-
Pertahankan ID Fabric dan Node: Pastikan metadata perangkat, seperti adding/removing perangkat dan atribut caching, dipertahankan secara konsisten.
-
Kelola langganan: Setiap perangkat harus mempertahankan hingga satu langganan aktif, sehingga statusnya dapat diperbarui terus menerus.
-
Menyebarkan perubahan status: Saat perangkat memperbarui statusnya, verifikasi perubahan dan sebarkan peristiwa ke integrasi Terkelola.
-
Menerapkan penerjemah model data Matter: Meskipun integrasi Terkelola menggunakan model data Matter, representasinya dalam format JSON. Penerjemah diperlukan untuk memetakan antara format model data Matter Anda dan representasi JSON.