

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 com dispositivos clientes em componentes
<a name="interact-with-client-devices-in-components"></a>

Você pode desenvolver componentes personalizados do Greengrass que interagem com dispositivos clientes conectados a um dispositivo principal. Por exemplo, é possível desenvolver componentes que façam o seguinte:
+ Atue nas mensagens MQTT dos dispositivos do cliente e envie dados para os Nuvem AWS destinos.
+ Envie mensagens MQTT aos dispositivos do cliente para iniciar ações.

Os dispositivos cliente se conectam e se comunicam com um dispositivo principal por meio do componente intermediário MQTT que é executado no dispositivo principal. Por padrão, os dispositivos cliente podem se comunicar somente entre si pelo MQTT, e os componentes do Greengrass não podem receber essas mensagens do MQTT nem enviar mensagens aos dispositivos do cliente.

Os componentes do Greengrass usam a [interface local de publicação/assinatura](ipc-publish-subscribe.md) para se comunicarem em um dispositivo principal. Para se comunicar com dispositivos clientes nos componentes do Greengrass, configure o [componente de ponte MQTT](mqtt-bridge-component.md) para fazer o seguinte:
+ Transmita mensagens MQTT dos dispositivos clientes para publicar/assinar.
+ Retransmita mensagens MQTT dos dispositivos locais publish/subscribe para os clientes.

Você também pode interagir com as sombras do dispositivo cliente nos componentes do Greengrass. Para obter mais informações, consulte [Interagir e sincronizar as sombras do dispositivo cliente](work-with-client-device-shadows.md).

**Topics**
+ [Configure e implante o componente MQTT bridge](#deploy-mqtt-bridge-pubsub)
+ [Receba mensagens MQTT de dispositivos clientes](#receive-client-device-messages)
+ [Enviando mensagens MQTT para dispositivos clientes](#send-client-device-messages)

## Configure e implante o componente MQTT bridge
<a name="deploy-mqtt-bridge-pubsub"></a>

O componente de ponte MQTT consome uma lista de mapeamentos de tópicos, cada um especificando a origem e o destino da mensagem. Para se comunicar com dispositivos clientes, implante o componente de ponte MQTT e especifique cada tópico de origem e destino na configuração do componente.

<a name="create-mqtt-bridge-deployment-info"></a>Para implantar o componente de ponte MQTT em um dispositivo principal ou grupo de dispositivos principais, [crie uma implantação](create-deployments.md) 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.

O exemplo a seguir define uma implantação que configura o componente de ponte MQTT para retransmitir o `clients/MyClientDevice1/hello/world` tópico dos dispositivos do cliente para o agente local. publish/subscribe A atualização da configuração `merge` requer um objeto JSON serializado. Para obter mais informações, consulte [Atualizar configurações do componente](update-component-configurations.md).

------
#### [ Console ]

```
{
  "mqttTopicMapping": {
    "HelloWorldPubsub": {
      "topic": "clients/MyClientDevice1/hello/world",
      "source": "LocalMqtt",
      "target": "Pubsub"
    }
  }
}
```

------
#### [ AWS CLI ]

```
{
  "components": {
    "aws.greengrass.clientdevices.mqtt.Bridge": {
      "version": "2.0.0",
      "configurationUpdate": {
        "merge": "\"mqttTopicMapping\":{\"HelloWorldPubsub\":{\"topic\":\"clients/MyClientDevice1/hello/world\",\"source\":\"LocalMqtt\",\"target\":\"Pubsub\"}}}"
      }
    }
    ...
  }
}
```

------

Você pode usar curingas de tópicos do MQTT para retransmitir mensagens sobre tópicos que correspondam a um filtro de tópicos. Se você usar o MQTT bridge v2.2.0 ou posterior, poderá usar curingas de tópicos do MQTT nos filtros de tópicos quando o agente de origem for publicação/assinatura local. Para obter mais informações, consulte [Configuração do componente de ponte MQTT](mqtt-bridge-component.md#mqtt-bridge-component-configuration).

## Receba mensagens MQTT de dispositivos clientes
<a name="receive-client-device-messages"></a>

Você pode se inscrever nos publish/subscribe tópicos locais que você configura para o componente de ponte MQTT para receber mensagens de dispositivos clientes.

**Para receber mensagens MQTT de dispositivos clientes em componentes personalizados**

1. [Configure e implante o componente de ponte MQTT](#deploy-mqtt-bridge-pubsub) para retransmitir mensagens de um tópico do MQTT em que os dispositivos cliente publicam em um tópico local. publish/subscribe 

1. Use a interface publish/subscribe IPC local para assinar o tópico em que a ponte MQTT retransmite mensagens. Para obter mais informações, consulte [Publicar/assinar mensagens locais](ipc-publish-subscribe.md) e [SubscribeToTopic](ipc-publish-subscribe.md#ipc-operation-subscribetotopic).

O [tutorial Conectar e testar dispositivos cliente](client-devices-tutorial.md) inclui uma seção em que você desenvolve um componente que assina mensagens de um dispositivo cliente. Para obter mais informações, consulte [Etapa 4: desenvolver um componente que se comunique com os dispositivos cliente](client-devices-tutorial.md#develop-client-device-subscriber-component).

## Enviando mensagens MQTT para dispositivos clientes
<a name="send-client-device-messages"></a>

Você pode publicar nos publish/subscribe tópicos locais que você configura para o componente de ponte MQTT para enviar mensagens aos dispositivos clientes.

**Para publicar mensagens MQTT em dispositivos clientes em componentes personalizados**

1. [Configure e implante o componente de ponte do MQTT](#deploy-mqtt-bridge-pubsub) para retransmitir mensagens de um publish/subscribe tópico local para um tópico do MQTT no qual os dispositivos do cliente se inscrevem.

1. Use a interface publish/subscribe IPC local para publicar no tópico em que a ponte MQTT retransmite mensagens. Para obter mais informações, consulte [Publicar/assinar mensagens locais](ipc-publish-subscribe.md) e [PublishToTopic](ipc-publish-subscribe.md#ipc-operation-publishtotopic).