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.

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

nota

Por padrão, o componente gerenciador de sombras não sincroniza 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 sincronizar as sombras do dispositivo cliente com 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 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 obter 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 obter 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 do gerenciador de sombras para sincronizar os estados de sombra do dispositivo cliente local com AWS IoT Core. Para obter mais informações, consulte Sincronize sombras do dispositivo local com AWS IoT Core.