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à.
Implementa AWS. SendCommand operazione
L'AWS.SendCommand
operazione consente alle integrazioni gestite per AWS IoT Device Management di inviare comandi avviati dall'utente finale tramite il AWS cliente al server di risorse. Il tuo server di risorse può supportare diversi tipi di dispositivi, ognuno dei quali ha il proprio modello di risposta. L'esecuzione dei comandi è un processo asincrono in cui le integrazioni gestite per AWS IoT Device Management inviano una richiesta di esecuzione del comando con un `TraceID`, che il connettore includerà in una risposta al comando inviata alle integrazioni gestite tramite la `` SendConnectorEvent API. Le integrazioni gestite per AWS IoT Device Management si aspettano che il server di risorse restituisca una risposta che confermi che il comando è stato ricevuto, ma non indica necessariamente che il comando è stato eseguito.
Il diagramma seguente illustra il flusso di esecuzione del comando con un esempio in cui l'utente finale tenta di accendere le luci della propria casa:

Workflow di esecuzione dei comandi del dispositivo
-
Un utente finale invia un comando per accendere una luce utilizzando l'applicazione del AWS cliente.
-
Il cliente inoltra le informazioni sui comandi alle integrazioni gestite per AWS IoT Device Management con le informazioni sul dispositivo dell'utente finale.
-
Le integrazioni gestite generano un «traceID» che il connettore utilizzerà per inviare le risposte ai comandi al servizio.
-
le integrazioni gestite per AWS IoT Device Management inviano la richiesta di comando al connettore, utilizzando l'interfaccia
AWS.SendCommand
operativa.-
Il payload definito da questa interfaccia è costituito dall'identificatore del dispositivo, dai comandi del dispositivo formulati come Matterendpoints/clusters/commands, dal token di accesso dell'utente finale e da altri parametri richiesti.
-
-
Il connettore
traceId
memorizza i dati da includere nella risposta al comando.-
Il connettore traduce la richiesta di comando di integrazioni gestite nel formato appropriato del server di risorse.
-
-
Il connettore riceve
UserId
dal token di accesso fornito dall'utente finale e lo associa al comando.-
UserId
Può essere recuperato dal server di risorse utilizzando una chiamata separata o estratto dal token di accesso nel caso di JWT e token simili. -
L'implementazione dipende dal server di risorse e dai dettagli del token di accesso.
-
-
Il connettore richiama il server di risorse per «accendere» la luce dell'utente finale.
-
Il server di risorse interagisce con il dispositivo.
-
Il connettore comunica alle integrazioni gestite per AWS IoT Device Management che il server di risorse ha fornito il comando, rispondendo con un ACK come risposta iniziale sincrona al comando.
-
Le integrazioni gestite le inoltrano quindi all'applicazione del cliente.
-
-
Dopo che il dispositivo ha acceso la luce, l'evento del dispositivo viene catturato dal server di risorse.
-
Il server di risorse invia l'evento del dispositivo al connettore.
-
Il connettore trasforma l'evento del dispositivo generato dal server di risorse in un tipo di operazione di evento DEVICE_COMMAND_RESPONSE di integrazioni gestite.
-
Il connettore chiama l'API con l'operazione «DEVICE_COMMAND_RESPONSE
SendConnectorEvent
».-
Allega le integrazioni
traceId
fornite da managed integrations per AWS IoT Device Management nella richiesta iniziale.
-
-
Le integrazioni gestite notificano al cliente la modifica dello stato del dispositivo dell'utente finale.
-
Il cliente notifica all'utente finale che la luce del dispositivo si è accesa.
Nota
La configurazione del server di risorse determina la logica per la gestione dei messaggi di richiesta e risposta dei comandi del dispositivo non riusciti. Ciò include i tentativi di riprovare i messaggi utilizzando lo stesso ReferenceID per il comando.
Requisiti del connettore C2C per l'esecuzione dei comandi del dispositivo
L'elenco seguente descrive i requisiti del connettore C2C per facilitare la corretta esecuzione dei comandi del dispositivo.
-
Il connettore C2C Lambda può elaborare i messaggi di richiesta
AWS.SendCommand
operativa provenienti da integrazioni gestite per AWS IoT Device Management. -
Il connettore C2C deve tenere traccia dei comandi inviati al server di risorse e mapparli con il `traceID` appropriato.
-
Puoi chiamare integrazioni gestite per le API del servizio AWS IoT Device Management tramite SigV4 utilizzando AWS le credenziali Account AWS utilizzate per la registrazione del connettore C2C.
-
Le integrazioni gestite inviano il comando al connettore (fare riferimento al passaggio 4 nel diagramma precedente).
-
/Send-Command { "header": { "auth": { "token": "ashriu32yr97feqy7afsaf", "type": "OAuth2.0" } }, "payload": { "operationName": "AWS.SendCommand", "operationVersion": "1.0", "connectorId": "
Your-Connector-Id
", "connectorDeviceId": "Your_Device_Id
", "traceId": "traceId-3241u78123419", "endpoints": [{ "id": "1", "clusters": [{ "id": "0x0202", "commands": [{ "0xff01": { "0x0000": "3” } }] }] }] } }
-
-
Comando ACK del connettore C2C (fare riferimento al passaggio 7 del diagramma precedente in cui il connettore invia ACK alle integrazioni gestite per AWS IoT Device Management Service).
-
{ "header":{ "responseCode":200 }, "payload":{ "responseMessage": "Successfully received send-command request for connector '
Your-Connector-Id
' and connector-device-id 'Your_Device_Id
'" } }
-
-
Il connettore invia l'evento Device Command Response (fare riferimento al passaggio 11 nel diagramma precedente).
-
AWS-API: /SendConnectorEvent URI: POST /connector-event/{
Your-Connector-Id
} { "UserId": "End-User-Id", "Operation": "DEVICE_COMMAND_RESPONSE", "OperationVersion": "1.0", "StatusCode": 200, "Message": “Example message”, "ConnectorDeviceId": "Your_Device_Id
", "TraceId": "traceId-3241u78123419", "MatterEndpoint": { "id": "1", "clusters": [{ "id": "0x0202", "attributes": [ { "0x0000": “3” } ], "commands": [ "0xff01": { "0x0000": "3” } ] }] } }
Nota
Le modifiche allo stato del dispositivo a seguito dell'esecuzione di un comando non si rifletteranno nelle integrazioni gestite per AWS IoT Device Management fino a quando l'evento DEVICE_COMMAND_RESPONSE corrispondente non sarà stato ricevuto tramite l'API. SendConnectorEvent Ciò significa che fino a quando le integrazioni gestite non riceveranno l'evento della fase 3 precedente, indipendentemente dal fatto che la risposta alla chiamata del connettore indichi l'esito positivo o meno, lo stato del dispositivo non verrà aggiornato.
-
Interpretazione degli «endpoint» della materia inclusa in AWS. SendCommand richiesta
Le integrazioni gestite utilizzeranno le funzionalità del dispositivo riportate durante l'individuazione del dispositivo per determinare quali comandi un dispositivo può accettare. Ogni funzionalità del dispositivo è modellata attraverso AWS implementazioni del Matter Data Model; pertanto, tutti i comandi in entrata verranno derivati dal campo `commands` all'interno di un determinato cluster. È responsabilità del connettore analizzare il campo `endpoints`, determinare il comando Matter corrispondente e tradurlo in modo che il comando corretto raggiunga il dispositivo. In genere, ciò significa tradurre il modello di dati Matter nelle relative richieste API.
Dopo l'esecuzione del comando, il connettore determina quali `attributi` definiti dalle AWS implementazioni del Matter Data Model sono cambiati di conseguenza. Queste modifiche vengono quindi segnalate alle integrazioni gestite per AWS IoT Device Management tramite eventi API DEVICE_COMMAND_RESPONSE inviati con l'API. SendConnectorEvent
Considera il campo `endpoints` incluso nel payload di esempio seguente: AWS.SendCommand
"endpoints": [{ "id": "1", "clusters": [{ "id": "0x0202", "commands": [{ "0xff01": { "0x0000": "3” } }] }] }]
Da questo oggetto, il connettore può determinare quanto segue:
-
Imposta le informazioni sull'endpoint e sul cluster:
-
Imposta l'endpoint
id
su «1".Nota
Se un dispositivo definisce più endpoint, ad esempio un singolo cluster, questo id viene utilizzato per indirizzare il comando alla funzionalità corretta. On/Off) can control multiple capabilities (i.e. turn a light on/off as well as turning a strobe on/off
-
Imposta il cluster
id
su «0x0202" (cluster Fan Control).
-
-
Imposta le informazioni sul comando:
-
Imposta l'identificatore del comando su «0xff01" (comando Update State definito da). AWS
-
Aggiorna gli identificatori degli attributi inclusi con i valori forniti nella richiesta.
-
-
Aggiorna l'attributo:
-
Imposta l'identificatore dell'attributo su «0x0000" (FanMode attributo del Fan Control Cluster).
-
Imposta il valore dell'attributo su «3" (alta velocità della ventola).
-
Managed integrations ha definito due tipi di comandi «personalizzati» che non sono strettamente definiti dalle AWS implementazioni del Matter Data Model: i ReadState comandi and. UpdateState Per ottenere e impostare gli attributi del cluster definiti da Matter, le integrazioni gestite invieranno al connettore una AWS.SendCommand
richiesta con il comando IDs relativo a UpdateState (id: 0xff01) o ReadState (id: 0xff02), con i parametri corrispondenti degli attributi che devono essere aggiornati o letti. Questi comandi possono essere richiamati per QUALSIASI tipo di dispositivo per attributi impostati come modificabili (aggiornabili) o recuperabili (leggibili) dalla corrispondente implementazione del Matter Data Model. AWS