As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Implemente a AWS. DiscoverDevices operação
A descoberta de dispositivos alinha a lista de dispositivos físicos de propriedade do usuário final com as representações digitais desses dispositivos do usuário final mantidas em integrações gerenciadas para o AWS IoT Device Management. Ela é executada por um AWS cliente em dispositivos de propriedade do usuário final somente após a conclusão da vinculação da conta entre o usuário e as integrações gerenciadas para o AWS IoT Device Management. A descoberta de dispositivos é um processo assíncrono em que integrações gerenciadas para o AWS IoT Device Management chamam um conector para iniciar a solicitação de descoberta do dispositivo. Um conector C2C retorna uma lista de dispositivos de usuário final descobertos de forma assíncrona com um identificador de referência (chamado dedeviceDiscoveryId
) gerado por integrações gerenciadas.
O diagrama a seguir ilustra o fluxo de trabalho de descoberta de dispositivos entre o usuário final e as integrações gerenciadas do AWS IoT Device Management:

AWS. DiscoverDevices fluxo de trabalho
-
O cliente inicia o processo de descoberta do dispositivo em nome do usuário final.
-
As integrações gerenciadas AWS IoT Device Management geram um identificador de referência chamado
deviceDiscoveryId
para a solicitação de descoberta do dispositivo gerada pelo AWS Cliente. -
Integrações gerenciadas para AWS IoT Device Management enviar uma solicitação de descoberta de dispositivo ao conector C2C usando a interface de
AWS.DiscoverDevices
operação, incluindo uma válida OAuthaccessToken
do usuário final e da.deviceDiscoveryId
-
Suas lojas de
deviceDiscoveryId
conectores serão incluídas noDEVICE_DISCOVERY
evento. Esse evento também conterá uma lista dos dispositivos do usuário final descobertos e deverá ser enviado para integrações gerenciadas do AWS IoT Device Management comSendConnectorEvent
a API comoDEVICE_DISCOVERY
um evento. -
Seu conector C2C deve chamar o servidor de recursos para buscar todos os dispositivos pertencentes ao usuário final.
-
Seu conector C2C Lambda responde à invocação do Lambda
invokeFunction
() com a resposta ACK de volta às integrações gerenciadas do AWS IoT Device Management, atuando como a resposta inicial para a operação.AWS.DiscoverDevices
As integrações gerenciadas notificam o cliente com um ACK sobre o processo iniciado de descoberta de dispositivos. -
Seu servidor de recursos envia a você uma lista de dispositivos pertencentes e operados pelo usuário final.
-
Seu conector converte cada dispositivo do usuário final nas integrações gerenciadas para o formato de dispositivo exigido pelo AWS IoT Device Management
ConnectorDeviceId
,ConnectorDeviceName
incluindo um relatório de capacidade para cada dispositivo. -
O conector C2C também fornece informações sobre o
UserId
proprietário do dispositivo descoberto. Ele pode ser recuperado do seu servidor de recursos como parte da lista de dispositivos ou em uma chamada separada, dependendo da implementação do servidor de recursos. -
Em seguida, seu conector C2C chamará as integrações gerenciadas para a API
SendConnectorEvent
AWS IoT Device Management via SigV4 Conta da AWS usando credenciais e com o parâmetro de operação definido como “DEVICE_DISCOVERY”. Cada dispositivo na lista de dispositivos enviados para integrações gerenciadas do AWS IoT Device Management será representado por parâmetros específicos do dispositivo, como,connectorDeviceId
e a.connectorDeviceName
capabilityReport
-
Com base na resposta do seu servidor de recursos, você precisa notificar adequadamente as integrações gerenciadas do AWS IoT Device Management.
Por exemplo, se seu servidor de recursos está tendo uma resposta paginada à lista de dispositivos descobertos para um usuário final, então, para cada pesquisa, você pode enviar um evento de
DEVICE_DISCOVERY
operação individual, com umstatusCode
parâmetro de.3xx
Se a descoberta do dispositivo ainda estiver em andamento, repita as etapas 5, 6 e 7.
-
-
Integrações gerenciadas para AWS IoT Device Management enviar uma notificação ao cliente sobre a descoberta dos dispositivos do usuário final.
-
Se seu conector C2C enviar um evento de
DEVICE_DISCOVERY
operação com ostatusCode
parâmetro atualizado com um valor de 200, as integrações gerenciadas notificarão o cliente sobre a conclusão do fluxo de trabalho de descoberta do dispositivo.Importante
As etapas 7 a 11 podem ocorrer antes da etapa 6, se desejado. Por exemplo, se sua plataforma de terceiros tiver uma API para listar os dispositivos de um usuário final, o evento DEVICE_DISCOVERY poderá ser enviado
SendConnectorEvent
antes que o conector C2C Lambda responda com o ACK típico.
Requisitos do conector C2C para descoberta de dispositivos
A lista a seguir descreve os requisitos do seu conector C2C para facilitar a descoberta bem-sucedida do dispositivo.
-
O conector C2C Lambda a pode processar uma mensagem de solicitação de descoberta de dispositivo a partir de integrações gerenciadas para o AWS IoT Device Management e lidar com a operação.
AWS.DiscoverDevices
-
Seu conector C2C pode chamar as integrações gerenciadas para o AWS IoT Device APIs Management via SigV4 usando as credenciais do usuário para registrar o conector. Conta da AWS
Processo de descoberta de dispositivos
As etapas a seguir descrevem o processo de descoberta de dispositivos com seu conector C2C e integrações gerenciadas para o AWS IoT Device Management.
Processo de descoberta de dispositivos
-
As integrações gerenciadas acionam a descoberta do dispositivo:
-
Envie uma solicitação POST para
DiscoverDevices
com a seguinte carga JSON:/DiscoverDevices { "header": { "auth": { "token": "ashriu32yr97feqy7afsaf", "type": "OAuth2.0" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "
Your-Connector-Id
", "deviceDiscoveryId": "12345678" } }
-
-
O conector reconhece a descoberta:
-
O conector envia uma confirmação com a seguinte resposta JSON:
{ "header": { "responseCode":200 }, "payload": { "responseMessage": "Discovering devices for discovery-job-id '12345678' with connector-id `Your-Connector-Id`" } }
-
-
O conector envia o evento de descoberta do dispositivo:
-
Envie uma solicitação POST para
/connector-event/
com a seguinte carga 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"] }] }] } } ] }
-
Construa um CapabilityReport para o evento DISCOVER_DEVICES
Conforme visto na estrutura de eventos definida acima, cada dispositivo relatado em um evento DISCOVER_DEVICES, servindo como resposta a uma AWS.DiscoverDevices
operação, exigirá CapbilityReport a descrição dos recursos do dispositivo correspondente. Um `CapabilityReport` indica integrações gerenciadas para os recursos do dispositivo AWS IoT Device Management em um formato compatível com Matter. Os seguintes campos devem ser fornecidos no ` CapabilityReport`:
-
nodeId
, String: identificador do nó do dispositivo contendo o seguinteendpoints
-
version
, String: versão deste nó do dispositivo, definida pelo desenvolvedor do conector -
endpoints
, Lista<Cluster>: Lista de AWS implementações do Matter Data Model suportadas por esse endpoint de dispositivo.-
id
, String: identificador de endpoint definido pelo desenvolvedor do conector -
deviceTypes
, Lista<String>: lista dos tipos de dispositivos que esse endpoint captura, ou seja, “Câmera”. -
clusters
, Lista<Cluster>: Lista de AWS implementações do Matter Data Model que esse endpoint suporta.-
id
, String: identificador de cluster conforme definido pelo padrão Matter. -
revision
, Integer: número da revisão do cluster conforme definido pelo padrão Matter. -
attributes
, Mapa<String, Object>: Mapa dos identificadores de atributos e seus valores correspondentes do estado atual do dispositivo, com identificadores e valores válidos definidos pelo padrão da matéria.-
id
, String: ID do atributo conforme definido pelas AWS implementações do Matter Data Model. -
value
, Objeto: o valor atual do atributo definido pelo ID do atributo. O tipo de 'valor' pode mudar dependendo do atributo. Ovalue
campo é opcional para cada atributo e só deve ser incluído se o conector lambda puder determinar o estado atual durante a descoberta.
-
-
commands
, List<String>: Lista de comandos IDs compatíveis com esse cluster, conforme definido pelo padrão Matter. -
events
, Lista<String>: Lista de eventos IDs compatíveis com esse cluster, conforme definido pelo padrão Matter.
-
-
Para obter a lista atual de recursos suportados e suas AWS implementações correspondentes do Matter Data Model, consulte a versão mais recente da documentação do Data Model.