Implémentez l'AWS. DiscoverDevices opération - Intégrations gérées pour AWS IoT Device Management

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Implémentez l'AWS. DiscoverDevices opération

La découverte des appareils aligne la liste des appareils physiques détenus par l'utilisateur final avec les représentations numériques de ces appareils gérés dans le cadre d'intégrations gérées pour AWS IoT Device Management. Elle est effectuée par un AWS client sur des appareils appartenant à l'utilisateur final uniquement une fois que la liaison du compte est terminée entre l'utilisateur et les intégrations gérées pour AWS IoT Device Management. La découverte d'appareils est un processus asynchrone dans le cadre duquel les intégrations gérées pour AWS IoT Device Management appellent un connecteur pour lancer la demande de découverte d'appareils. Un connecteur C2C renvoie une liste des appareils des utilisateurs finaux découverts de manière asynchrone avec un identifiant de référence (appelédeviceDiscoveryId) généré par les intégrations gérées.

Le schéma suivant illustre le flux de travail de découverte des appareils entre l'utilisateur final et les intégrations gérées pour AWS IoT Device Management :

AWS. DiscoverDevices flux de travail
AWS. DiscoverDevices flux de travail
  1. Le client lance le processus de découverte de l'appareil pour le compte de l'utilisateur final.

  2. Managed Integrations for AWS IoT Device Management génère un identifiant de référence appelé deviceDiscoveryId pour la demande de découverte de l'appareil générée par le AWS client.

  3. Managed Integrations for AWS IoT Device Management envoie une demande de découverte de périphériques au connecteur C2C à l'aide de l'interface d'AWS.DiscoverDevicesexploitation, y compris une copie valide OAuth accessToken de l'utilisateur final ainsi que le. deviceDiscoveryId

  4. Vos magasins deviceDiscoveryId de connecteurs seront inclus dans l'DEVICE_DISCOVERYévénement. Cet événement contiendra également une liste des appareils de l'utilisateur final découverts et doit être envoyé aux intégrations gérées pour AWS IoT Device Management avec l'SendConnectorEventAPI en tant qu'DEVICE_DISCOVERYévénement.

  5. Votre connecteur C2C doit appeler le serveur de ressources pour récupérer tous les appareils appartenant à l'utilisateur final.

  6. Votre connecteur C2C Lambda répond à l'appel Lambda invokeFunction () avec la réponse ACK aux intégrations gérées pour AWS IoT Device Management, agissant comme réponse initiale à l'opération. AWS.DiscoverDevices Les intégrations gérées informent le client doté d'un ACK du processus de découverte des appareils qu'il a lancé.

  7. Votre serveur de ressources vous envoie une liste des appareils détenus et exploités par l'utilisateur final.

  8. Votre connecteur convertit chaque appareil de l'utilisateur final en intégrations gérées pour le format d'appareil requis pour AWS IoT Device ManagementConnectorDeviceId, ConnectorDeviceName y compris le rapport de capacité pour chaque appareil.

  9. Le connecteur C2C fournit également le UserId nom du propriétaire des appareils découverts. Il peut être extrait de votre serveur de ressources soit dans le cadre de la liste des appareils, soit dans le cadre d'un appel distinct en fonction de l'implémentation de votre serveur de ressources.

  10. Ensuite, votre connecteur C2C appellera les intégrations gérées pour l'API AWS IoT Device Management via SigV4 à l'aide d'informations d' Compte AWS identification et avec le paramètre de fonctionnement défini comme « DEVICE_DISCOVERY ». SendConnectorEvent Chaque appareil de la liste des appareils envoyés aux intégrations gérées pour AWS IoT Device Management sera représenté par des paramètres spécifiques à l'appareil tels queconnectorDeviceId,connectorDeviceName, et a. capabilityReport

    1. En fonction de la réponse de votre serveur de ressources, vous devez informer les intégrations gérées pour AWS IoT Device Management en conséquence.

      Par exemple, si votre serveur de ressources reçoit une réponse paginée à la liste des appareils découverts pour un utilisateur final, vous pouvez envoyer pour chaque sondage un événement d'DEVICE_DISCOVERYopération individuel, avec un statusCode paramètre de3xx. Si la découverte de votre appareil est toujours en cours, répétez les étapes 5, 6 et 7.

  11. Managed Integrations for AWS IoT Device Management envoie une notification au client concernant la découverte des appareils de l'utilisateur final.

  12. Si votre connecteur C2C envoie un événement de DEVICE_DISCOVERY fonctionnement avec le statusCode paramètre mis à jour avec une valeur de 200, les intégrations gérées informeront le client de la fin du processus de découverte des appareils.

    Important

    Les étapes 7 à 11 peuvent avoir lieu avant l'étape 6, si vous le souhaitez. Par exemple, si votre plate-forme tierce dispose d'une API pour répertorier les appareils d'un utilisateur final, l'événement DEVICE_DISCOVERY peut être envoyé SendConnectorEvent avant que le connecteur Lambda C2C ne réponde avec l'ACK typique.

Exigences relatives au connecteur C2C pour la découverte des appareils

La liste suivante décrit les exigences relatives à votre connecteur C2C afin de faciliter la découverte réussie des appareils.

  • Le connecteur C2C Lambda a peut traiter un message de demande de découverte d'appareil provenant d'intégrations gérées pour AWS IoT Device Management et gérer l'opération. AWS.DiscoverDevices

  • Votre connecteur C2C peut appeler les intégrations gérées pour AWS IoT Device Management APIs via SigV4 en utilisant les informations d'identification du connecteur Compte AWS utilisé pour enregistrer le connecteur.

Processus de découverte des appareils

Les étapes suivantes décrivent le processus de découverte des appareils avec votre connecteur C2C et les intégrations gérées pour AWS IoT Device Management.

Processus de découverte des appareils
  1. Les intégrations gérées déclenchent la découverte des appareils :

    1. Envoyez une requête POST à DiscoverDevices avec la charge utile JSON suivante :

      /DiscoverDevices { "header": { "auth": { "token": "ashriu32yr97feqy7afsaf", "type": "OAuth2.0" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", "deviceDiscoveryId": "12345678" } }
  2. Le connecteur accuse réception de la découverte :

    1. Le connecteur envoie un accusé de réception avec la réponse JSON suivante :

      { "header": { "responseCode":200 }, "payload": { "responseMessage": "Discovering devices for discovery-job-id '12345678' with connector-id `Your-Connector-Id`" } }
  3. Le connecteur envoie un événement Device Discovery :

    1. Envoyez une requête POST à /connector-event/{your_connector_id} avec la charge utile JSON suivante :

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

Construire un CapabilityReport pour l'événement DISCOVER_DEVICES

Comme le montre la structure d'événements définie ci-dessus, chaque appareil signalé dans un événement DISCOVER_DEVICES, servant de réponse à une AWS.DiscoverDevices opération, aura besoin d'un CapbilityReport pour décrire les capacités du périphérique correspondant. Un CapabilityReport `indique les intégrations gérées pour les fonctionnalités des appareils AWS IoT Device Management dans un format compatible avec Matter. Les champs suivants doivent être renseignés dans le ` CapabilityReport` :

  • nodeId, String : identifiant du nœud de l'appareil contenant les éléments suivants endpoints

  • version, String : version de ce nœud de périphérique, définie par le développeur du connecteur

  • endpoints, Liste <Cluster>: liste des AWS implémentations du modèle de données Matter prises en charge par ce point de terminaison de l'appareil.

    • id, String : identifiant du point de terminaison défini par le développeur du connecteur

    • deviceTypes, Liste <String>: Liste des types d'appareils capturés par ce terminal, c'est-à-dire « Appareil photo ».

    • clusters, Liste <Cluster>: liste des AWS implémentations du modèle de données Matter pris en charge par ce point de terminaison.

      • id, String : identifiant du cluster tel que défini par la norme Matter.

      • revision, Integer : numéro de révision du cluster tel que défini par la norme Matter.

      • attributes, Carte<String, Object> : carte des identifiants d'attributs et de leurs valeurs d'état actuelles de l'appareil correspondantes, avec les identifiants et les valeurs valides définis par la norme en la matière.

        • id, String : ID d'attribut tel que défini par AWS les implémentations du modèle de données Matter.

        • value, Objet : valeur actuelle de l'attribut défini par l'ID de l'attribut. Le type de « valeur » peut changer en fonction de l'attribut. Le value champ est facultatif pour chaque attribut et ne doit être inclus que si votre connecteur lambda peut déterminer l'état actuel lors de la découverte.

      • commands, Liste <String>: liste des commandes IDs prises en charge par ce cluster, telle que définie par la norme Matter.

      • events, Liste <String>: liste des événements IDs pris en charge par ce cluster, telle que définie par la norme Matter.

Pour la liste actuelle des fonctionnalités prises en charge et leurs AWS implémentations correspondantes du modèle de données de matière, reportez-vous à la dernière version de la documentation du modèle de données.