View a markdown version of this page

Melaksanakan AWS.DiscoverDevices operasi - Integrasi Terkelola untuk AWS IoT Device Management

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

AWS.DiscoverDevices alur kerja
Langkah Alur Kerja
  1. Pelanggan memulai penemuan perangkat - Pelanggan memulai proses penemuan perangkat atas nama pengguna akhir.

  2. Integrasi terkelola menghasilkan ID referensi - Integrasi Terkelola untuk AWS IoT Device Management menghasilkan pengenal referensi yang dipanggil deviceDiscoveryId untuk permintaan penemuan perangkat yang dihasilkan oleh Pelanggan. AWS

  3. Permintaan penemuan perangkat dikirim - Integrasi Terkelola untuk AWS IoT Device Management mengirim permintaan penemuan perangkat ke konektor C2C menggunakan antarmuka AWS.DiscoverDevices operasi, termasuk informasi otorisasi (token atau AWS Secrets Manager referensi akses OAuth) serta file. deviceDiscoveryId

  4. Konektor menyimpan perangkat DiscoveryId - Konektor Anda menyimpan deviceDiscoveryId untuk dimasukkan dalam DEVICE_DISCOVERY acara tersebut. Peristiwa ini juga akan berisi daftar perangkat pengguna akhir yang ditemukan, dan harus dikirim ke Integrasi Terkelola AWS IoT Device Management dengan SendConnectorEvent API sebagai DEVICE_DISCOVERY peristiwa.

  5. Konektor memanggil server sumber daya - Konektor C2C Anda harus memanggil server sumber daya untuk mengambil semua perangkat yang dimiliki oleh pengguna akhir.

  6. 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.DiscoverDevices Integrasi Terkelola untuk AWS IoT Device Management memberi tahu pelanggan dengan ACK ke proses penemuan perangkat yang dimulai.

  7. Server sumber daya mengembalikan daftar perangkat - Server sumber daya Anda mengirimkan daftar perangkat yang dimiliki dan dioperasikan oleh pengguna akhir.

  8. Mengonversi format perangkat - Konektor Anda mengubah setiap perangkat pengguna akhir menjadi Integrasi Terkelola untuk format perangkat yang AWS IoT Device Management diperlukan, termasukConnectorDeviceId, ConnectorDeviceName dan laporan Kemampuan untuk setiap perangkat.

  9. Menyediakan UserId - Konektor C2C juga menyediakan UserId pemilik 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.

  10. 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,, connectorDeviceName dan 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_DISCOVERY operasi individual, dengan statusCode parameter. 3xx Jika penemuan perangkat Anda masih dalam proses, ulangi langkah 5, 6, dan 7.

  11. Integrasi terkelola memberi tahu pelanggan - Integrasi Terkelola untuk AWS IoT Device Management mengirimkan pemberitahuan kepada pelanggan tentang menemukan perangkat pengguna akhir.

  12. Pemberitahuan penyelesaian - Jika konektor C2C Anda mengirimkan peristiwa DEVICE_DISCOVERY operasi dengan statusCode parameter 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/{your_connector_id} dengan muatan JSON berikut:

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 berikut endpoints

  • 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.