Implementieren Sie das AWS. DiscoverDevices Betrieb - Verwaltete Integrationen für AWS IoT Device Management

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 das AWS. DiscoverDevices Betrieb

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 verwalteten Integrationen für AWS IoT Device Management verwaltet werden. Sie wird von einem AWS Kunden erst auf Geräten ausgeführt, die dem Endbenutzer gehören, nachdem die Kontoverknüpfung zwischen dem Benutzer und den verwalteten Integrationen für AWS IoT Device Management abgeschlossen ist. Die Geräteerkennung ist ein asynchroner Prozess, bei dem verwaltete Integrationen für AWS IoT Device Management einen Connector aufrufen, um die Geräteerkennungsanfrage zu initiieren. Ein C2C-Connector gibt asynchron eine Liste der erkannten Endbenutzergeräte mit einer Referenz-ID (alsdeviceDiscoveryId) zurück, die von verwalteten Integrationen generiert wurde.

Das folgende Diagramm veranschaulicht den Workflow zur Geräteerkennung zwischen dem Endbenutzer und verwalteten Integrationen für AWS IoT Device Management:

AWS. DiscoverDevices Arbeitsablauf
AWS. DiscoverDevices Arbeitsablauf
  1. Der Kunde leitet den Geräteerkennungsprozess im Namen des Endbenutzers ein.

  2. Managed Integrations for AWS IoT Device Management generiert eine Referenz-ID, die deviceDiscoveryId für die vom Kunden generierte Anfrage zur Geräteerkennung aufgerufen wird. AWS

  3. Verwaltete Integrationen für AWS IoT Device Management sendet über die AWS.DiscoverDevices Bedienoberfläche eine Anfrage zur Geräteerkennung an den C2C-Anschluss, einschließlich einer gültigen OAuth accessToken Anfrage für den Endbenutzer sowie für die. deviceDiscoveryId

  4. Ihr Connector wird gespeichertdeviceDiscoveryId, um in das DEVICE_DISCOVERY Ereignis aufgenommen zu werden. Dieses Ereignis enthält auch eine Liste der erkannten Endbenutzergeräte und muss als DEVICE_DISCOVERY Ereignis an verwaltete Integrationen für AWS IoT Device Management mit der SendConnectorEvent API gesendet werden.

  5. Ihr C2C-Connector ruft den Ressourcenserver auf, um alle Geräte abzurufen, die dem Endbenutzer gehören.

  6. Ihr C2C-Connector-Lambda reagiert auf den Lambda-Aufruf (invokeFunction) mit der ACK-Antwort zurück auf verwaltete Integrationen für AWS IoT Device Management, die als erste Antwort für den Vorgang fungiert. AWS.DiscoverDevices Managed Integrations benachrichtigt den Kunden mit einem ACK über den von ihm eingeleiteten Geräteerkennungsprozess.

  7. Ihr Ressourcenserver sendet Ihnen eine Liste der Geräte, die dem Endbenutzer gehören und von diesem betrieben werden.

  8. Ihr Connector konvertiert jedes Endbenutzergerät in das für verwaltete Integrationen für AWS IoT Device Management erforderliche GeräteformatConnectorDeviceId, ConnectorDeviceName einschließlich eines Fähigkeitsberichts für jedes Gerät.

  9. Der C2C-Connector liefert auch Informationen über den UserId Besitzer 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.

  10. Als Nächstes ruft Ihr C2C-Connector die verwalteten Integrationen für die AWS IoT Device Management API über Sigv4 unter Verwendung von AWS-Konto Anmeldeinformationen und mit dem Betriebsparameter „DEVICE_DISCOVERY“ auf. SendConnectorEvent Jedes Gerät in der Liste der Geräte, die an verwaltete Integrationen für AWS IoT Device Management gesendet werden, wird durch gerätespezifische Parameter wie connectorDeviceIdconnectorDeviceName, und a dargestellt. capabilityReport

    1. Basierend auf Ihrer Antwort auf den Ressourcenserver müssen Sie verwaltete Integrationen für AWS IoT Device Management entsprechend benachrichtigen.

      Wenn Ihr Ressourcenserver beispielsweise eine paginierte Antwort auf die Liste der erkannten Geräte für einen Endbenutzer erhält, können Sie für jede Abfrage ein individuelles DEVICE_DISCOVERY Betriebsereignis mit dem statusCode Parameter senden. 3xx Wenn Ihre Geräteerkennung noch läuft, wiederholen Sie die Schritte 5, 6 und 7.

  11. Managed Integrations for AWS IoT Device Management sendet eine Benachrichtigung an den Kunden darüber, dass die Geräte des Endbenutzers entdeckt wurden.

  12. Wenn Ihr C2C-Connector ein DEVICE_DISCOVERY Betriebsereignis sendet, bei dem der statusCode Parameter auf den Wert 200 aktualisiert wird, werden verwaltete Integrationen den Kunden über den Abschluss des Workflows zur Geräteerkennung informieren.

    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 a kann eine Anforderungsnachricht zur Geräteerkennung von verwalteten Integrationen für AWS IoT Device Management verarbeiten und den Vorgang abwickeln. AWS.DiscoverDevices

  • Ihr C2C-Connector kann die verwalteten Integrationen für AWS IoT Device Management APIs über SigV4 aufrufen und verwendet dabei die Anmeldeinformationen des Benutzers, der für die Registrierung des Connectors AWS-Konto verwendet wurde.

Prozess der Geräteerkennung

In den folgenden Schritten wird der Geräteerkennungsprozess mit Ihrem C2C-Connector und verwalteten Integrationen für AWS IoT Device Management beschrieben.

Prozess der Geräteerkennung
  1. Verwaltete Integrationen lösen die Geräteerkennung aus:

    1. Senden Sie eine POST-Anfrage DiscoverDevices mit der folgenden JSON-Nutzlast an:

      /DiscoverDevices { "header": { "auth": { "token": "ashriu32yr97feqy7afsaf", "type": "OAuth2.0" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", "deviceDiscoveryId": "12345678" } }
  2. Der Connector bestätigt die Entdeckung:

    1. 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`" } }
  3. Der Connector sendet ein Geräteerkennungsereignis:

    1. Senden Sie eine POST-Anfrage /connector-event/{your_connector_id} mit der folgenden JSON-Nutzlast an:

      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"] }] }] } } ] }

Konstruieren Sie eine 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. Die folgenden Felder müssen im ` CapabilityReport` angegeben werden:

  • nodeId, Zeichenfolge: Bezeichner für den Geräteknoten, der Folgendes enthält endpoints

  • 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. Das value Feld 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 Befehle, die diesen Cluster gemäß der Definition im Matter-Standard IDs unterstützt haben.

      • events, Liste<String>: Liste der Ereignisse, die diesen Cluster gemäß der Definition im Matter-Standard IDs 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.