Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Implementieren Sie die AWS.DiscoverDevices Operation
Die Geräteerkennung gleicht die Liste der physischen Geräte, die dem Endbenutzer gehören, mit den digitalen Darstellungen dieser Endbenutzergeräte ab, die in Managed Integrations for verwaltet werden. AWS IoT Device Management Sie wird von einem AWS Kunden auf Geräten durchgeführt, die dem Endbenutzer gehören. Bei OAuth 2.0 erfolgt dies, nachdem die Kontoverknüpfung abgeschlossen ist. Bei der allgemeinen Autorisierung kann dies geschehen, nachdem die Kontozuordnung erstellt wurde.
Die Geräteerkennung ist ein asynchroner Prozess, bei dem Managed Integrations for einen Connector AWS IoT Device Management aufruft, um die Anfrage zur Geräteerkennung zu initiieren. Ein C2C-Connector gibt asynchron eine Liste der erkannten Endbenutzergeräte mit einer Referenz-ID (als bezeichnetdeviceDiscoveryId) zurück, die von Managed Integrations for generiert wurde. AWS IoT Device Management
AWS.DiscoverDevices-Workflow
Das folgende Diagramm veranschaulicht den Ablauf der Geräteerkennung zwischen dem Endbenutzer und Managed Integrations für: AWS IoT Device Management
Workflow-Schritte
-
Kunde leitet die Geräteerkennung ein — Der Kunde leitet die Geräteerkennung im Namen des Endbenutzers ein.
-
Verwaltete Integrationen generieren eine Referenz-ID — Managed Integrations for AWS IoT Device Management generiert eine Referenz-ID, die
deviceDiscoveryIdfür die vom Kunden generierte Anfrage zur Geräteerkennung aufgerufen wird. AWS -
Anfrage zur Geräteerkennung gesendet — Managed Integrations for AWS IoT Device Management sendet über die
AWS.DiscoverDevicesBedienoberfläche eine Anfrage zur Geräteerkennung an den C2C-Anschluss, einschließlich Autorisierungsinformationen (OAuth-Zugriffstoken oder AWS Secrets Manager Referenz) sowie der.deviceDiscoveryId -
Connector speichert Gerät DiscoveryId — Ihr Connector speichert, um in das Ereignis aufgenommen
deviceDiscoveryIdzu werden.DEVICE_DISCOVERYDieses Ereignis enthält auch eine Liste der erkannten Endbenutzergeräte und muss AWS IoT Device Management zusammen mit derSendConnectorEventAPI alsDEVICE_DISCOVERYEreignis an Managed Integrations gesendet werden. -
Der Connector ruft den Ressourcenserver auf — Ihr C2C-Connector ruft den Ressourcenserver auf, um alle Geräte abzurufen, die dem Endbenutzer gehören.
-
Connector antwortet mit ACK — Ihr C2C-Connector-Lambda reagiert auf den Lambda-Aufruf (
invokeFunction) mit der ACK-Antwort zurück an Managed Integrations for AWS IoT Device Management und fungiert als erste Antwort für den Vorgang.AWS.DiscoverDevicesManaged Integrations for AWS IoT Device Management informiert den Kunden mit einem ACK über den von ihm eingeleiteten Geräteerkennungsprozess. -
Der Ressourcenserver gibt eine Geräteliste zurück — Ihr Ressourcenserver sendet Ihnen eine Liste der Geräte, die dem Endbenutzer gehören und von diesem betrieben werden.
-
Geräteformat konvertieren — Ihr Connector konvertiert jedes Endbenutzergerät in das Format Managed Integrations für das AWS IoT Device Management erforderliche Geräteformat
ConnectorDeviceId, einschließlich einesConnectorDeviceNameFunktionsberichts für jedes Gerät. -
Bereitstellen UserId — Der C2C-Anschluss liefert auch Informationen über den
UserIdBesitzer des erkannten Geräts. Es kann von Ihrem Ressourcenserver entweder als Teil der Geräteliste oder in einem separaten Aufruf abgerufen werden, abhängig von Ihrer Ressourcenserver-Implementierung. -
SendConnectorEvent API aufrufen — Als Nächstes ruft Ihr C2C-Connector die Managed Integrations for AWS IoT Device Management API über Sigv4 auf
SendConnectorEvent, wobei die AWS-Konto Anmeldeinformationen verwendet werden und der Betriebsparameter auf „DEVICE_DISCOVERY“ gesetzt ist. Jedes Gerät in der Geräteliste, für die an Managed Integrations gesendet wurde, AWS IoT Device Management wird durch gerätespezifische Parameter wie, und a dargestellt.connectorDeviceIdconnectorDeviceNamecapabilityReport-
Basierend auf der Antwort Ihres Ressourcenservers müssen Sie Managed Integrations for entsprechend benachrichtigen. AWS IoT Device Management
-
Wenn Ihr Ressourcenserver beispielsweise eine paginierte Antwort auf die Liste der erkannten Geräte für einen Endbenutzer hat, können Sie für jede Abfrage ein individuelles
DEVICE_DISCOVERYVorgangsereignis mit demstatusCodeParameter von senden.3xxWenn Ihre Geräteerkennung noch läuft, wiederholen Sie die Schritte 5, 6 und 7.
-
-
Managed Integrations benachrichtigt den Kunden — Managed Integrations for AWS IoT Device Management sendet eine Benachrichtigung an den Kunden, dass die Geräte des Endbenutzers entdeckt wurden.
-
Benachrichtigung über den Abschluss — Wenn Ihr C2C-Connector ein
DEVICE_DISCOVERYBetriebsereignis sendet, bei dem derstatusCodeParameter auf den Wert 200 aktualisiert AWS IoT Device Management wird, informiert Managed Integrations for den Kunden über den Abschluss des Workflows zur Geräteerkennung.
Wichtig
Falls gewünscht, können die Schritte 7 bis 11 vor Schritt 6 erfolgen. Wenn Ihre Drittanbieterplattform beispielsweise über eine API zum Auflisten der Geräte eines Endbenutzers verfügt, kann das DEVICE_DISCOVERY-Ereignis mit gesendet werden, SendConnectorEvent bevor der C2C-Connector Lambda mit dem typischen ACK antwortet.
Anforderungen an den C2C-Anschluss für die Geräteerkennung
In der folgenden Liste sind die Anforderungen für Ihren C2C-Anschluss aufgeführt, um eine erfolgreiche Geräteerkennung zu ermöglichen:
-
Der C2C-Konnektor Lambda kann eine Geräteerkennungsanforderungsnachricht von Managed Integrations für den Vorgang verarbeiten AWS IoT Device Management und den Vorgang abwickeln.
AWS.DiscoverDevices -
Ihr C2C-Connector kann die Managed Integrations for AWS IoT Device Management APIs über Sigv4 aufrufen und dabei die Anmeldeinformationen des Benutzers verwenden, der für die Registrierung des AWS-Konto Connectors verwendet wurde.
Prozess zur Geräteerkennung
Schritt 1: Verwaltete Integrationen lösen die Geräteerkennung aus
Senden Sie je nach DiscoverDevices Autorisierungstyp eine POST-Anfrage mit einer der folgenden JSON-Payloads an:
OAuth 2.0-Anfrage:
/DiscoverDevices { "header": { "auth": { "token": "ashriu32yr97feqy7afsaf", "type": "OAuth2.0" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", "deviceDiscoveryId": "12345678", "connectorDeviceIdList": [] } }
Anmerkung
Der connectorDeviceIdList Parameter ist ein optionaler Filter, mit dem Sie eine Liste der zu ermittelnden Geräte-IDs angeben können. Wenn das Feld leer ist ([]), werden alle mit dem Konto verknüpften Geräte erkannt. Wenn sie mit bestimmten Geräte-IDs gefüllt sind, werden nur diese Geräte in die Erkennungsantwort aufgenommen.
Allgemeine Autorisierungsanfrage:
/DiscoverDevices { "header": { "auth": { "secretsManager": { "arn": "string", "versionId": "string" }, "type": "GeneralAuthorization" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", "deviceDiscoveryId": "12345678", "connectorDeviceIdList": [] } }
Anmerkung
Der connectorDeviceIdList Parameter ist ein optionaler Filter, mit dem Sie eine Liste der zu ermittelnden Geräte-IDs angeben können. Wenn das Feld leer ist ([]), werden alle mit dem Konto verknüpften Geräte erkannt. Wenn sie mit bestimmten Geräte-IDs gefüllt sind, werden nur diese Geräte in die Erkennungsantwort aufgenommen.
Allgemeine Autorisierungsanfrage:
/DiscoverDevices { "header": { "auth": { "secretsManager": { "arn": "string", "versionId": "string" }, "type": "GeneralAuthorization" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", "deviceDiscoveryId": "12345678", "connectorDeviceIdList": [] } }
Anmerkung
Der connectorDeviceIdList Parameter ist ein optionaler Filter, mit dem Sie eine Liste der zu ermittelnden Geräte-IDs angeben können. Wenn das Feld leer ist ([]), werden alle mit dem Konto verknüpften Geräte erkannt. Wenn sie mit bestimmten Geräte-IDs gefüllt sind, werden nur diese Geräte in die Erkennungsantwort aufgenommen.
Schritt 2: Der Connector bestätigt die Entdeckung
Der Connector sendet eine Bestätigung mit der folgenden JSON-Antwort:
{ "header": { "responseCode":200 }, "payload": { "responseMessage": "Discovering devices for discovery-job-id '12345678' with connector-id `Your-Connector-Id`" } }
Schritt 3: Connector sendet Geräteerkennungsereignis
Senden Sie eine POST-Anfrage /connector-event/ mit der folgenden JSON-Nutzlast an:{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"] }] }] } } ] }
Geben Sie Marke und Modell für die erkannten Geräte ein
Ihr C2C-Anschluss kann optional für jedes Gerät ein DeviceMetadata Objekt enthalten, um DEVICE_DISCOVERY die Marke und das Modell des Geräts zu melden. Diese Werte werden dann in den ListManagedThingsAntworten ListDiscoveredDevicesund zurückgegeben.
Fügen Sie jedem Geräteeintrag und jeder Zuordnung ein DeviceMetadata Objekt hinzu:
-
DeviceMetadata.Brand(Zeichenfolge) →Brand -
DeviceMetadata.Model(Zeichenfolge) →Model
Das folgende Beispiel zeigt einen Geräteeintrag mit DeviceMetadata enthalten:
{ "ConnectorDeviceId": "Your_Device_Id_1", "ConnectorDeviceName": "Your-Device-Name", "CapabilityReport": { ... }, "DeviceMetadata": { "Brand": "ExampleBrand", "Model": "ExampleModel-X1" } }
Bei beiden Tasten wird zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie weglassenDeviceMetadata, einen einzelnen Schlüssel weglassen oder einen Wert angeben, der keine Zeichenfolge ist, ist das entsprechende Feld nicht verfügbar, wenn das Gerät abgerufen wird.
Konstruieren Sie ein CapabilityReport für das DISCOVER_DEVICES-Ereignis
Wie aus der oben definierten Ereignisstruktur ersichtlich, benötigt jedes in einem DISCOVER_DEVICES-Ereignis gemeldete Gerät, das als Reaktion auf eine AWS.DiscoverDevices Operation dient, eine, CapbilityReport um die Fähigkeiten des entsprechenden Geräts zu beschreiben. Ein `CapabilityReport` teilt verwalteten Integrationen für AWS IoT Device Management-Gerätefunktionen in einem Matter-konformen Format mit.
Erforderliche Felder in CapabilityReport
-
nodeId, Zeichenfolge: Bezeichner für den Geräteknoten, der Folgendes enthältendpoints -
version, Zeichenfolge: Version dieses Geräteknotens, die vom Connector-Entwickler festgelegt wurde -
endpoints, Liste<Cluster>: Liste der AWS Implementierungen des Matter Data Model, die von diesem Geräteendpunkt unterstützt werden.-
id, Zeichenfolge: Vom Connector-Entwickler festgelegte Endpunkt-ID -
deviceTypes, Liste<String>: Liste der Gerätetypen, die dieser Endpunkt erfasst, z. B. „Kamera“. -
clusters, Liste<Cluster>: Liste der AWS Implementierungen des Matter Data Model, das dieser Endpunkt unterstützt.-
id, Zeichenfolge: Cluster-ID, wie im Matter-Standard definiert. -
revision, Integer: Cluster-Revisionsnummer, wie im Matter-Standard definiert. -
attributes,<String, Object> Map: Übersicht der Attributkennungen und der entsprechenden aktuellen Gerätestatuswerte mit Kennungen und gültigen Werten, die durch den Matter-Standard definiert sind.-
id, Zeichenfolge: Attribut-ID, wie sie durch AWS Implementierungen des Matter Data Model definiert wurde. -
value, Objekt: Der aktuelle Wert des durch die Attribut-ID definierten Attributs. Der Typ des „Werts“ kann sich je nach Attribut ändern. DasvalueFeld ist für jedes Attribut optional und sollte nur enthalten sein, wenn Ihr Connector-Lambda den aktuellen Status während der Erkennung ermitteln kann.
-
-
commands, Liste<String>: Liste der Befehls-IDs, die diesen Cluster gemäß der Definition im Matter-Standard unterstützen. -
events, Liste<String>: Liste der Ereignis-IDs, die diesen Cluster gemäß der Definition im Matter-Standard unterstützt haben.
-
-
Die aktuelle Liste der unterstützten Funktionen und der entsprechenden AWS Implementierungen des Matter-Datenmodells finden Sie in der neuesten Version der Datenmodell-Dokumentation.