Interaja e sincronize as sombras do dispositivo cliente - AWS IoT Greengrass

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á.

Interaja e sincronize as sombras do dispositivo cliente

Você pode usar o componente do gerenciador de sombras para gerenciar sombras locais, incluindo sombras do dispositivo cliente. Você pode usar o gerenciador de sombras para fazer o seguinte:

  • Interaja com as sombras do dispositivo cliente nos componentes do Greengrass.

  • Sincronize as sombras do dispositivo cliente com o. AWS IoT Core

nota

Por padrão, o componente gerenciador de sombras não sincroniza sombras comAWS IoT Core. Você deve configurar o componente do gerenciador de sombras para especificar quais sombras do dispositivo cliente devem ser sincronizadas.

Pré-requisitos

Para interagir com as sombras do dispositivo cliente e sincronizar as sombras do dispositivo cliente comAWS IoT Core, um dispositivo principal deve atender aos seguintes requisitos:

Ative o Shadow Manager para se comunicar com os dispositivos do cliente

Por padrão, o componente do gerenciador de sombras não gerencia as sombras do dispositivo cliente. Para ativar esse recurso, você deve retransmitir mensagens MQTT entre dispositivos cliente e o componente do gerenciador de sombras. Os dispositivos clientes usam mensagens MQTT para receber e enviar atualizações de sombra do dispositivo. O componente shadow manager assina a interface local de publicação/assinatura do Greengrass, para que você possa configurar o componente bridge do MQTT para retransmitir mensagens do MQTT sobre tópicos paralelos do dispositivo.

O componente de ponte MQTT consome uma lista de mapeamentos de tópicos, cada um especificando a origem e o destino da mensagem. Para permitir que o componente do gerenciador de sombras gerencie as sombras do dispositivo cliente, implante o componente de ponte MQTT e especifique os tópicos de sombra para as sombras do dispositivo cliente. Você deve configurar a ponte para retransmitir mensagens em ambas as direções entre o MQTT local e a publicação/assinatura local.

Para implantar o componente de ponte MQTT em um dispositivo principal ou grupo de dispositivos principais, crie uma implantação que inclua o aws.greengrass.clientdevices.mqtt.Bridge componente. Especifique os mapeamentos de tópicos,mqttTopicMapping, na configuração do componente de ponte MQTT na implantação.

Use os exemplos a seguir para configurar o componente de ponte MQTT para permitir a comunicação entre dispositivos cliente e o componente do gerenciador de sombras.

nota

Você pode usar esses exemplos de configuração no AWS IoT Greengrass console. Se você usa a AWS IoT Greengrass API, a atualização de merge configuração requer um objeto JSON serializado, portanto, você deve serializar os seguintes objetos JSON em strings. Para ter mais informações, consulte Atualizar configurações de componentes.

exemplo Exemplo: gerenciar todas as sombras do dispositivo cliente

O exemplo de configuração da ponte MQTT a seguir permite que o gerenciador de sombras gerencie todas as sombras de todos os dispositivos cliente.

{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/#", "source": "Pubsub", "target": "LocalMqtt" } } }
exemplo Exemplo: gerenciar sombras para um dispositivo cliente

O exemplo de configuração da ponte MQTT a seguir permite que o gerenciador de sombras gerencie todas as sombras de um dispositivo cliente chamado. MyClientDevice

{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/MyClientDevice/shadow/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/MyClientDevice/shadow/#", "source": "Pubsub", "target": "LocalMqtt" } } }
exemplo Exemplo: Gerenciar uma sombra nomeada para todos os dispositivos cliente

O exemplo de configuração da ponte MQTT a seguir permite que o gerenciador de sombras gerencie uma sombra nomeada DeviceConfiguration para todos os dispositivos cliente.

{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#", "source": "Pubsub", "target": "LocalMqtt" } } }
exemplo Exemplo: gerencie as sombras sem nome de todos os dispositivos do cliente

O exemplo de configuração de ponte MQTT a seguir permite que o gerenciador de sombras gerencie sombras sem nome, mas não sombras nomeadas, para todos os dispositivos clientes.

{ "mqttTopicMapping": { "DeleteShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/delete", "source": "LocalMqtt", "target": "Pubsub" }, "DeleteShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/delete/#", "source": "Pubsub", "target": "LocalMqtt" }, "GetShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/get", "source": "LocalMqtt", "target": "Pubsub" }, "GetShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/get/#", "source": "Pubsub", "target": "LocalMqtt" }, "UpdateShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/update", "source": "LocalMqtt", "target": "Pubsub" }, "UpdateShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/update/#", "source": "Pubsub", "target": "LocalMqtt" } } }

Interaja com as sombras do dispositivo cliente nos componentes

Você pode desenvolver componentes personalizados que usam o serviço paralelo local para ler e modificar os documentos paralelos locais dos dispositivos clientes. Para ter mais informações, consulte Interaja com sombras em componentes.

Sincronize as sombras do dispositivo cliente com AWS IoT Core

Você pode configurar o componente do gerenciador de sombras para sincronizar os estados de sombra do dispositivo cliente local comAWS IoT Core. Para ter mais informações, consulte Sincronize sombras do dispositivo local com AWS IoT Core.