Interagir e sincronizar 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á.

Interagir e sincronizar as sombras do dispositivo cliente

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

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

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

nota

Por padrão, o componente Gerenciador de sombras não sincroniza as sombras com AWS IoT Core. Você deve configurar o componente Gerenciador de sombras para especificar as sombras do dispositivo cliente que devem ser sincronizadas.

Pré-requisitos

Para interagir com as sombras do dispositivo cliente e sincronizá-las com o AWS IoT Core, um dispositivo principal deve atender aos seguintes requisitos:

Habilitar o Gerenciador de sombras para comunicação com dispositivos cliente

Por padrão, o componente Gerenciador de sombras não gerencia as sombras do dispositivo cliente. Para habilitar esse recurso, você deve retransmitir as mensagens MQTT entre os dispositivos cliente e o componente Gerenciador de sombras. Os dispositivos cliente usam as mensagens MQTT para receber e enviar atualizações da sombra do dispositivo. O componente Gerenciador de sombras assina a interface local de publicação/assinatura do Greengrass para que você possa configurar o componente de ponte MQTT para retransmitir as mensagens MQTT pelos tópicos da sombra 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 Gerenciador de sombras gerencie as sombras do dispositivo cliente, implante o componente de ponte MQTT e especifique os tópicos para as sombras do dispositivo cliente. Você deve configurar a ponte para retransmitir as mensagens nas duas 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 componente aws.greengrass.clientdevices.mqtt.Bridge. Especifique os mapeamentos de tópicos, mqttTopicMapping, na configuração do componente de ponte MQTT na implantação.

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

nota

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

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 de 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 de todos os dispositivos cliente

O exemplo de configuração da ponte MQTT a seguir permite que o Gerenciador de sombras gerencie uma sombra chamada DeviceConfiguration de 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: gerenciar sombras sem nome de todos os dispositivos cliente

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

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

Interagir com as sombras do dispositivo cliente em componentes

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

Sincronizar as sombras do dispositivo cliente com o AWS IoT Core

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