Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Melaksanakan AWS.DiscoverDevices operasi
Penemuan perangkat menyelaraskan daftar perangkat fisik yang dimiliki oleh pengguna akhir dengan representasi digital dari perangkat pengguna akhir yang dikelola dalam Integrasi Terkelola untuk. AWS IoT Device Management Ini dilakukan oleh AWS pelanggan pada perangkat yang dimiliki oleh pengguna akhir. Untuk OAuth 2.0, ini terjadi setelah penautan akun selesai. Untuk Otorisasi Umum, ini dapat terjadi setelah asosiasi akun dibuat.
Penemuan perangkat adalah proses asinkron di mana Integrasi Terkelola untuk AWS IoT Device Management memanggil konektor untuk memulai permintaan penemuan perangkat. Konektor C2C mengembalikan daftar perangkat pengguna akhir yang ditemukan secara asinkron dengan pengidentifikasi referensi (disebut sebagaideviceDiscoveryId) yang dihasilkan oleh Integrasi Terkelola untuk. AWS IoT Device Management
Alur kerja AWS.DiscoverDevices
Diagram berikut mengilustrasikan alur kerja penemuan perangkat antara pengguna akhir dan Integrasi Terkelola untuk: AWS IoT Device Management
Langkah Alur Kerja
-
Pelanggan memulai penemuan perangkat - Pelanggan memulai proses penemuan perangkat atas nama pengguna akhir.
-
Integrasi terkelola menghasilkan ID referensi - Integrasi Terkelola untuk AWS IoT Device Management menghasilkan pengenal referensi yang dipanggil
deviceDiscoveryIduntuk permintaan penemuan perangkat yang dihasilkan oleh Pelanggan. AWS -
Permintaan penemuan perangkat dikirim - Integrasi Terkelola untuk AWS IoT Device Management mengirim permintaan penemuan perangkat ke konektor C2C menggunakan antarmuka
AWS.DiscoverDevicesoperasi, termasuk informasi otorisasi (token atau AWS Secrets Manager referensi akses OAuth) serta file.deviceDiscoveryId -
Konektor menyimpan perangkat DiscoveryId - Konektor Anda menyimpan
deviceDiscoveryIduntuk dimasukkan dalamDEVICE_DISCOVERYacara tersebut. Peristiwa ini juga akan berisi daftar perangkat pengguna akhir yang ditemukan, dan harus dikirim ke Integrasi Terkelola AWS IoT Device Management denganSendConnectorEventAPI sebagaiDEVICE_DISCOVERYperistiwa. -
Konektor memanggil server sumber daya - Konektor C2C Anda harus memanggil server sumber daya untuk mengambil semua perangkat yang dimiliki oleh pengguna akhir.
-
Konektor merespons dengan ACK - Konektor C2C Anda Lambda merespons pemanggilan Lambda (
invokeFunction) dengan respons ACK kembali ke Integrasi Terkelola untuk, bertindak sebagai respons awal untuk operasi. AWS IoT Device ManagementAWS.DiscoverDevicesIntegrasi Terkelola untuk AWS IoT Device Management memberi tahu pelanggan dengan ACK ke proses penemuan perangkat yang dimulai. -
Server sumber daya mengembalikan daftar perangkat - Server sumber daya Anda mengirimkan daftar perangkat yang dimiliki dan dioperasikan oleh pengguna akhir.
-
Mengonversi format perangkat - Konektor Anda mengubah setiap perangkat pengguna akhir menjadi Integrasi Terkelola untuk format perangkat yang AWS IoT Device Management diperlukan, termasuk
ConnectorDeviceId,ConnectorDeviceNamedan laporan Kemampuan untuk setiap perangkat. -
Menyediakan UserId - Konektor C2C juga menyediakan
UserIdpemilik perangkat yang ditemukan. Ini dapat diambil dari server sumber daya Anda baik sebagai bagian dari daftar perangkat atau dalam panggilan terpisah tergantung pada implementasi server sumber daya Anda. -
Panggil SendConnectorEvent API - Selanjutnya, konektor C2C Anda akan memanggil Integrasi Terkelola untuk AWS IoT Device Management API,
SendConnectorEvent, melalui SigV4 menggunakan Akun AWS kredensil dan dengan parameter operasi ditetapkan sebagai “DEVICE_DISCOVERY”. Setiap perangkat dalam daftar perangkat yang dikirim ke Integrasi Terkelola untuk AWS IoT Device Management akan diwakili oleh parameter khusus perangkat seperticonnectorDeviceId,,connectorDeviceNamedan file.capabilityReport-
Berdasarkan respons server sumber daya Anda, Anda perlu memberi tahu Integrasi Terkelola untuk AWS IoT Device Management yang sesuai.
-
Misalnya, jika server sumber daya Anda memiliki respons paginasi ke daftar perangkat yang ditemukan untuk pengguna akhir, maka untuk setiap jajak pendapat Anda dapat mengirim peristiwa
DEVICE_DISCOVERYoperasi individual, denganstatusCodeparameter.3xxJika penemuan perangkat Anda masih dalam proses, ulangi langkah 5, 6, dan 7.
-
-
Integrasi terkelola memberi tahu pelanggan - Integrasi Terkelola untuk AWS IoT Device Management mengirimkan pemberitahuan kepada pelanggan tentang menemukan perangkat pengguna akhir.
-
Pemberitahuan penyelesaian - Jika konektor C2C Anda mengirimkan peristiwa
DEVICE_DISCOVERYoperasi denganstatusCodeparameter diperbarui dengan nilai 200, maka Integrasi Terkelola untuk AWS IoT Device Management akan memberi tahu pelanggan tentang penyelesaian alur kerja penemuan perangkat.
penting
Langkah 7 hingga 11 dapat terjadi sebelum langkah 6, jika diinginkan. Misalnya, jika platform pihak ketiga Anda memiliki API untuk mencantumkan perangkat pengguna akhir, peristiwa DEVICE_DISCOVERY dapat dikirim SendConnectorEvent sebelum konektor C2C Lambda merespons dengan ACK biasa.
Persyaratan konektor C2C untuk Penemuan Perangkat
Daftar berikut menguraikan persyaratan untuk konektor C2C Anda untuk memfasilitasi penemuan perangkat yang sukses:
-
Konektor C2C Lambda dapat memproses pesan permintaan penemuan perangkat dari Integrasi Terkelola untuk AWS IoT Device Management dan menangani operasi.
AWS.DiscoverDevices -
Konektor C2C Anda dapat memanggil Integrasi Terkelola untuk AWS IoT Device Management API melalui SigV4 menggunakan kredensil yang digunakan untuk mendaftarkan konektor. Akun AWS
Proses Penemuan Perangkat
Langkah 1: Integrasi Terkelola Memicu Penemuan Perangkat
Kirim permintaan POST ke DiscoverDevices dengan salah satu muatan JSON berikut, tergantung pada jenis otorisasi:
Permintaan OAuth 2.0:
/DiscoverDevices { "header": { "auth": { "token": "ashriu32yr97feqy7afsaf", "type": "OAuth2.0" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", "deviceDiscoveryId": "12345678", "connectorDeviceIdList": [] } }
catatan
connectorDeviceIdListParameter ini adalah filter opsional yang memungkinkan Anda menentukan daftar ID perangkat untuk ditemukan. Saat kosong ([]), semua perangkat yang terkait dengan akun akan ditemukan. Saat diisi dengan ID perangkat tertentu, hanya perangkat tersebut yang akan disertakan dalam respons penemuan.
Permintaan Otorisasi Umum:
/DiscoverDevices { "header": { "auth": { "secretsManager": { "arn": "string", "versionId": "string" }, "type": "GeneralAuthorization" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", "deviceDiscoveryId": "12345678", "connectorDeviceIdList": [] } }
catatan
connectorDeviceIdListParameter ini adalah filter opsional yang memungkinkan Anda menentukan daftar ID perangkat untuk ditemukan. Saat kosong ([]), semua perangkat yang terkait dengan akun akan ditemukan. Saat diisi dengan ID perangkat tertentu, hanya perangkat tersebut yang akan disertakan dalam respons penemuan.
Permintaan Otorisasi Umum:
/DiscoverDevices { "header": { "auth": { "secretsManager": { "arn": "string", "versionId": "string" }, "type": "GeneralAuthorization" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", "deviceDiscoveryId": "12345678", "connectorDeviceIdList": [] } }
catatan
connectorDeviceIdListParameter ini adalah filter opsional yang memungkinkan Anda menentukan daftar ID perangkat untuk ditemukan. Saat kosong ([]), semua perangkat yang terkait dengan akun akan ditemukan. Saat diisi dengan ID perangkat tertentu, hanya perangkat tersebut yang akan disertakan dalam respons penemuan.
Langkah 2: Konektor Mengakui Penemuan
Konektor mengirimkan pengakuan dengan respons JSON berikut:
{ "header": { "responseCode":200 }, "payload": { "responseMessage": "Discovering devices for discovery-job-id '12345678' with connector-id `Your-Connector-Id`" } }
Langkah 3: Konektor Mengirim Acara Penemuan Perangkat
Kirim permintaan POST ke /connector-event/ dengan muatan JSON berikut:{your_connector_id}
AWS API - /SendConnectorEvent URI – POST /connector-event/{your_connector_id} { "UserId": "6109342", "Operation": "DEVICE_DISCOVERY", "OperationVersion": "1.0", "StatusCode": 200, "DeviceDiscoveryId": "12345678", "ConnectorId": "Your_connector_Id", "Message": "Device discovery for discovery-job-id '12345678' successful", "Devices": [ { "ConnectorDeviceId": "Your_Device_Id_1", "ConnectorDeviceName": "Your-Device-Name", "CapabilityReport": { "nodeId":"1", "version":"1.0.0", "endpoints":[{ "id":"1", "deviceTypes":["Camera"], "clusters":[{ "id":"0x0006", "revision":1, "attributes":[{ "id":"0x0000", }], "commands":["0x00","0x01"], "events":["0x00"] }] }] } } ] }
Isi Merek dan Model untuk perangkat yang ditemukan
Konektor C2C Anda secara opsional dapat menyertakan DeviceMetadata objek untuk setiap perangkat DEVICE_DISCOVERY jika melaporkan merek dan model perangkat. Nilai-nilai ini kemudian dikembalikan dalam ListDiscoveredDevicesdan ListManagedThingstanggapan.
Sertakan DeviceMetadata objek di setiap entri dan peta perangkat:
-
DeviceMetadata.Brand(Tali) →Brand -
DeviceMetadata.Model(Tali) →Model
Contoh berikut menunjukkan entri perangkat dengan DeviceMetadata disertakan:
{ "ConnectorDeviceId": "Your_Device_Id_1", "ConnectorDeviceName": "Your-Device-Name", "CapabilityReport": { ... }, "DeviceMetadata": { "Brand": "ExampleBrand", "Model": "ExampleModel-X1" } }
Kedua kunci adalah string case-sensitive. Jika Anda menghilangkanDeviceMetadata, menghilangkan kunci individual, atau memberikan nilai non-string, bidang yang sesuai tidak tersedia saat perangkat diambil.
Membangun sebuah CapabilityReport untuk acara DISCOVER_DEVICES
Seperti yang terlihat dalam struktur peristiwa yang didefinisikan di atas, setiap perangkat yang dilaporkan dalam peristiwa DISCOVER_DEVICES, yang berfungsi sebagai respons terhadap AWS.DiscoverDevices operasi, akan memerlukan a CapbilityReport untuk menggambarkan kemampuan perangkat yang sesuai. A `CapabilityReport` memberi tahu integrasi terkelola untuk kemampuan perangkat AWS IoT Device Management dalam format yang sesuai dengan Matter.
Bidang yang Diperlukan di CapabilityReport
-
nodeId, String: Identifier untuk node perangkat yang berisi berikutendpoints -
version, String: Versi node perangkat ini, ditetapkan oleh pengembang konektor -
endpoints, Daftar<Cluster>: Daftar AWS implementasi Model Data Materi yang didukung oleh titik akhir perangkat ini.-
id, String: Pengidentifikasi titik akhir yang ditetapkan oleh pengembang konektor -
deviceTypes, Daftar<String>: Daftar jenis perangkat yang ditangkap titik akhir ini, yaitu “Kamera”. -
clusters, Daftar<Cluster>: Daftar AWS implementasi Model Data Materi yang didukung oleh titik akhir ini.-
id, String: Pengidentifikasi cluster seperti yang didefinisikan oleh standar Matter. -
revision, Integer: Nomor revisi cluster sebagaimana didefinisikan oleh standar Matter. -
attributes, Peta<String, Object>: Peta pengidentifikasi atribut dan nilai status perangkat yang sesuai saat ini, dengan pengidentifikasi dan nilai valid yang ditentukan oleh standar materi.-
id, String: ID Atribut sebagaimana didefinisikan oleh AWS implementasi Model Data Materi. -
value, Object: Nilai saat ini dari atribut yang ditentukan oleh ID atribut. Jenis 'nilai' dapat berubah tergantung pada atribut.valueBidang ini opsional untuk setiap atribut dan hanya boleh disertakan jika lambda konektor Anda dapat menentukan status saat ini selama penemuan.
-
-
commands, Daftar<String>: Daftar ID perintah mendukung cluster ini seperti yang didefinisikan oleh standar Matter. -
events, Daftar<String>: Daftar ID peristiwa mendukung klaster ini sebagaimana didefinisikan oleh standar Matter.
-
-
Untuk daftar kemampuan yang didukung saat ini dan AWS implementasi yang sesuai dari Model Data Matter, lihat rilis terbaru dari dokumentasi Model Data.