Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Implementare l' AWS.DiscoverDevices operazione
Device Discovery allinea l'elenco dei dispositivi fisici di proprietà dell'utente finale con le rappresentazioni digitali di tali dispositivi degli utenti finali gestite in Managed Integrations for. AWS IoT Device Management Viene eseguito da un AWS cliente su dispositivi di proprietà dell'utente finale. Per OAuth 2.0, ciò si verifica dopo il completamento del collegamento dell'account. Per l'autorizzazione generale, ciò può verificarsi dopo la creazione dell'associazione dell'account.
Il rilevamento dei dispositivi è un processo asincrono in cui Managed Integrations for AWS IoT Device Management richiama un connettore per avviare la richiesta di rilevamento del dispositivo. Un connettore C2C restituisce un elenco di dispositivi degli utenti finali rilevati in modo asincrono con un identificatore di riferimento (denominato) generato da Managed Integrations for. deviceDiscoveryId AWS IoT Device Management
Flusso di lavoro di AWS.DiscoverDevices
Il diagramma seguente illustra il flusso di lavoro di individuazione dei dispositivi tra l'utente finale e Managed Integrations per: AWS IoT Device Management
Fasi del flusso di lavoro
-
Il cliente avvia il processo di rilevamento del dispositivo: il cliente avvia il processo di rilevamento del dispositivo per conto dell'utente finale.
-
Le integrazioni gestite generano un ID di riferimento - Managed Integrations per AWS IoT Device Management generare un identificatore di riferimento chiamato
deviceDiscoveryIdper la richiesta di rilevamento del dispositivo generata dal Cliente. AWS -
Richiesta di rilevamento del dispositivo inviata: Managed Integrations for AWS IoT Device Management invia una richiesta di rilevamento del dispositivo al connettore C2C utilizzando l'interfaccia
AWS.DiscoverDevicesoperativa, incluse le informazioni di autorizzazione (token o riferimento di accesso OAuth) e il. AWS Secrets ManagerdeviceDiscoveryId -
Il connettore memorizza il dispositivo DiscoveryId: gli archivi dei connettori
deviceDiscoveryIdda includere nell'evento.DEVICE_DISCOVERYQuesto evento conterrà anche un elenco dei dispositivi dell'utente finale rilevati e deve essere inviato a Managed Integrations for AWS IoT Device Management with theSendConnectorEventAPI comeDEVICE_DISCOVERYevento. -
Il connettore chiama il server di risorse: il connettore C2C chiamerà il server di risorse per recuperare tutti i dispositivi di proprietà dell'utente finale.
-
Il connettore risponde con ACK - Il connettore C2C Lambda risponde all'invocazione Lambda (
invokeFunction) con la risposta ACK a Managed Integrations for, fungendo da risposta iniziale per l'operazione. AWS IoT Device ManagementAWS.DiscoverDevicesManaged Integrations for AWS IoT Device Management notifica al cliente con un ACK il processo di scoperta del dispositivo avviato. -
Il server di risorse restituisce l'elenco dei dispositivi: il server di risorse invia un elenco di dispositivi di proprietà e gestiti dall'utente finale.
-
Converti il formato del dispositivo: il connettore converte ogni dispositivo dell'utente finale nelle integrazioni gestite per il formato del dispositivo AWS IoT Device Management richiesto
ConnectorDeviceId,ConnectorDeviceNameincluso il rapporto sulle funzionalità per ciascun dispositivo. -
Fornisci UserId: il connettore C2C fornisce anche informazioni sul proprietario
UserIddei dispositivi rilevati. Può essere recuperato dal server di risorse come parte dell'elenco dei dispositivi o in una chiamata separata a seconda dell'implementazione del server di risorse. -
Chiama SendConnectorEvent API - Successivamente, il connettore C2C chiamerà Managed Integrations for AWS IoT Device Management API
SendConnectorEvent, tramite SigV4 utilizzando le Account AWS credenziali e con il parametro operativo impostato come «DEVICE_DISCOVERY». Ogni dispositivo nell'elenco dei dispositivi inviati a Managed Integrations per AWS IoT Device Management sarà rappresentato da parametri specifici del dispositivo come, e a.connectorDeviceIdconnectorDeviceNamecapabilityReport-
In base alla risposta del server di risorse, devi notificare di conseguenza a Managed Integrations. AWS IoT Device Management
-
Ad esempio, se il tuo server di risorse ha una risposta in pagine all'elenco dei dispositivi rilevati per un utente finale, per ogni sondaggio puoi inviare un singolo evento
DEVICE_DISCOVERYoperativo, con un parametro di.statusCode3xxSe il rilevamento dei dispositivi è ancora in corso, ripeti i passaggi 5, 6 e 7.
-
-
Managed Integrations avvisa il cliente - Managed Integrations for AWS IoT Device Management invia una notifica al cliente in merito al rilevamento dei dispositivi dell'utente finale.
-
Notifica di completamento: se il connettore C2C invia un evento
DEVICE_DISCOVERYoperativo con ilstatusCodeparametro aggiornato con un valore di 200, Managed Integrations for AWS IoT Device Management notificherà al cliente il completamento del flusso di lavoro di individuazione dei dispositivi.
Importante
Se lo si desidera, i passaggi da 7 a 11 possono verificarsi prima del passaggio 6. Ad esempio, se la piattaforma di terze parti dispone di un'API per elencare i dispositivi di un utente finale, l'evento DEVICE_DISCOVERY può essere inviato SendConnectorEvent prima che il connettore C2C Lambda risponda con il tipico ACK.
Requisiti del connettore C2C per Device Discovery
L'elenco seguente descrive i requisiti del connettore C2C per facilitare la corretta individuazione del dispositivo:
-
Il connettore C2C Lambda può elaborare un messaggio di richiesta di rilevamento del dispositivo da Managed Integrations e gestire l' AWS IoT Device Management operazione.
AWS.DiscoverDevices -
Il connettore C2C può chiamare Managed Integrations for AWS IoT Device Management APIs tramite SigV4 utilizzando le credenziali del connettore utilizzato per la registrazione del connettore. Account AWS
Processo di individuazione dei dispositivi
Fase 1: Le integrazioni gestite attivano l'individuazione dei dispositivi
Invia una richiesta POST a DiscoverDevices con uno dei seguenti payload JSON, a seconda del tipo di autorizzazione:
Richiesta 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": [] } }
Nota
Il connectorDeviceIdList parametro è un filtro opzionale che consente di specificare un elenco di ID di dispositivo da scoprire. Quando è vuoto ([]), verranno rilevati tutti i dispositivi associati all'account. Se compilati con ID di dispositivo specifici, solo tali dispositivi verranno inclusi nella risposta di rilevamento.
Richiesta di autorizzazione generale:
/DiscoverDevices { "header": { "auth": { "secretsManager": { "arn": "string", "versionId": "string" }, "type": "GeneralAuthorization" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", "deviceDiscoveryId": "12345678", "connectorDeviceIdList": [] } }
Nota
Il connectorDeviceIdList parametro è un filtro opzionale che consente di specificare un elenco di ID di dispositivo da scoprire. Quando è vuoto ([]), verranno rilevati tutti i dispositivi associati all'account. Se compilati con ID di dispositivo specifici, solo tali dispositivi verranno inclusi nella risposta di rilevamento.
Richiesta di autorizzazione generale:
/DiscoverDevices { "header": { "auth": { "secretsManager": { "arn": "string", "versionId": "string" }, "type": "GeneralAuthorization" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", "deviceDiscoveryId": "12345678", "connectorDeviceIdList": [] } }
Nota
Il connectorDeviceIdList parametro è un filtro opzionale che consente di specificare un elenco di ID di dispositivo da scoprire. Quando è vuoto ([]), verranno rilevati tutti i dispositivi associati all'account. Se compilati con ID di dispositivo specifici, solo tali dispositivi verranno inclusi nella risposta di rilevamento.
Fase 2: Connector conferma la scoperta
Il connettore invia una conferma con la seguente risposta JSON:
{ "header": { "responseCode":200 }, "payload": { "responseMessage": "Discovering devices for discovery-job-id '12345678' with connector-id `Your-Connector-Id`" } }
Fase 3: Il connettore invia un evento di rilevamento del dispositivo
Invia una richiesta POST a /connector-event/ con il seguente payload JSON:{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"] }] }] } } ] }
Inserisci marca e modello per i dispositivi rilevati
Il connettore C2C può facoltativamente includere un DeviceMetadata oggetto per ogni dispositivo in DEVICE_DISCOVERY caso di segnalazione della marca e del modello del dispositivo. Questi valori vengono quindi restituiti nelle risposte e. ListDiscoveredDevicesListManagedThings
Includi un DeviceMetadata oggetto in ogni voce e mappa del dispositivo:
-
DeviceMetadata.Brand(Stringa) →Brand -
DeviceMetadata.Model(Stringa) →Model
L'esempio seguente mostra una voce relativa al dispositivo con DeviceMetadata included:
{ "ConnectorDeviceId": "Your_Device_Id_1", "ConnectorDeviceName": "Your-Device-Name", "CapabilityReport": { ... }, "DeviceMetadata": { "Brand": "ExampleBrand", "Model": "ExampleModel-X1" } }
Entrambi i tasti fanno distinzione tra maiuscole e minuscole. Se si ometteDeviceMetadata, si omette una singola chiave o si fornisce un valore non di stringa, il campo corrispondente non è disponibile quando il dispositivo viene recuperato.
Costruisci un per l'evento DISCOVER_DEVICES CapabilityReport
Come illustrato nella struttura degli eventi sopra definita, ogni dispositivo segnalato in un evento DISCOVER_DEVICES, che funge da risposta a un'AWS.DiscoverDevicesoperazione, richiederà una CapbilityReport descrizione delle funzionalità del dispositivo corrispondente. Un `CapabilityReport` indica le integrazioni gestite per le funzionalità dei dispositivi AWS IoT Device Management in un formato conforme a Matter.
Campi obbligatori in CapabilityReport
-
nodeId, String: identificatore per il nodo dei dispositivi contenente quanto segueendpoints -
version, String: versione di questo nodo del dispositivo, impostata dallo sviluppatore del connettore -
endpoints, Elenco<Cluster>: Elenco delle AWS implementazioni del Matter Data Model supportate da questo endpoint del dispositivo.-
id, String: identificatore dell'endpoint impostato dallo sviluppatore del connettore -
deviceTypes, Elenco<String>: elenco dei tipi di dispositivi acquisiti da questo endpoint, ad esempio «Fotocamera». -
clusters, Elenco<Cluster>: Elenco delle AWS implementazioni del Matter Data Model supportate da questo endpoint.-
id, String: identificatore del cluster come definito dallo standard Matter. -
revision, Numero intero: numero di revisione del cluster definito dallo standard Matter. -
attributes, Mappa<String, Object>: mappa degli identificatori degli attributi e dei corrispondenti valori di stato correnti del dispositivo, con identificatori e valori validi definiti dallo standard Matter.-
id, String: ID dell'attributo definito dalle AWS implementazioni del Matter Data Model. -
value, Oggetto: il valore corrente dell'attributo definito dall'attributo ID. Il tipo di «valore» può cambiare a seconda dell'attributo. Ilvaluecampo è facoltativo per ogni attributo e deve essere incluso solo se il connettore lambda è in grado di determinare lo stato corrente durante il rilevamento.
-
-
commands, Elenco<String>: Elenco degli ID di comando supportati da questo cluster come definito dallo standard Matter. -
events, Elenco<String>: Elenco degli ID di evento supportati da questo cluster come definito dallo standard Matter.
-
-
Per l'elenco corrente delle funzionalità supportate e le relative AWS implementazioni del Matter Data Model, fate riferimento all'ultima versione della documentazione del modello di dati.