

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Interacción con los dispositivos de cliente en los componentes
<a name="interact-with-client-devices-in-components"></a>

Puede desarrollar componentes personalizados de Greengrass que interactúen con los dispositivos de cliente conectados a un dispositivo principal. Por ejemplo, puede desarrollar componentes que hagan lo siguiente:
+ Actuar en función de los mensajes MQTT de los dispositivos de cliente y enviar datos a los destinos de Nube de AWS .
+ Enviar mensajes MQTT a los dispositivos de cliente para iniciar acciones.

Los dispositivos de cliente se conectan y se comunican con un dispositivo principal a través del componente agente MQTT que se ejecuta en el dispositivo principal. De forma predeterminada, los dispositivos de cliente solo pueden comunicarse entre sí a través de MQTT y los componentes de Greengrass no pueden recibir estos mensajes MQTT ni enviar mensajes a los dispositivos de cliente.

Los componentes de Greengrass utilizan la [interfaz local de publicación/suscripción](ipc-publish-subscribe.md) para comunicarse en un dispositivo principal. Para comunicarse con los dispositivos de cliente en los componentes de Greengrass, configure el [componente puente de MQTT](mqtt-bridge-component.md) para que haga lo siguiente:
+ Reenviar mensajes MQTT de dispositivos de cliente a la publicación/suscripción local.
+ Retransmita mensajes MQTT desde los dispositivos locales publish/subscribe a los clientes.

También puede interactuar con las sombras de dispositivo de cliente en los componentes de Greengrass. Para obtener más información, consulte [Interacción y sincronización con las sombras de dispositivo de cliente](work-with-client-device-shadows.md).

**Topics**
+ [Configuración e implementación del componente puente de MQTT](#deploy-mqtt-bridge-pubsub)
+ [Recepción de mensajes MQTT desde los dispositivos de cliente](#receive-client-device-messages)
+ [Envío de mensajes MQTT a dispositivos de cliente](#send-client-device-messages)

## Configuración e implementación del componente puente de MQTT
<a name="deploy-mqtt-bridge-pubsub"></a>

El componente puente de MQTT utiliza una lista de asignaciones de temas, cada una de las cuales especifica un origen y un destino del mensaje. Para comunicarse con los dispositivos de cliente, implemente el componente puente de MQTT y especifique cada tema de origen y destino en la configuración del componente.

<a name="create-mqtt-bridge-deployment-info"></a>Para implementar el componente puente MQTT en un dispositivo principal o en un grupo de dispositivos principales, [cree una implementación](create-deployments.md) que incluya el componente `aws.greengrass.clientdevices.mqtt.Bridge`. Especifique las asignaciones de temas, `mqttTopicMapping`, en la configuración del componente puente de MQTT en la implementación.

El siguiente ejemplo define una implementación que configura el componente de puente MQTT para retransmitir el `clients/MyClientDevice1/hello/world` tema desde los dispositivos cliente al intermediario local. publish/subscribe La actualización de configuración `merge` requiere un objeto JSON serializado. Para obtener más información, consulte [Actualización de las configuraciones de los componentes](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\"}}}"
      }
    }
    ...
  }
}
```

------

Puede utilizar caracteres comodín de temas MQTT para reenviar mensajes sobre temas que coincidan con un filtro de temas. Si utiliza un puente de MQTT versión 2.2.0 o una versión posterior, puede usar comodines de temas MQTT en los filtros de temas cuando el agente de origen sea una publicación/suscripción local. Para obtener más información, consulte la [configuración del componente puente de MQTT](mqtt-bridge-component.md#mqtt-bridge-component-configuration).

## Recepción de mensajes MQTT desde los dispositivos de cliente
<a name="receive-client-device-messages"></a>

Puede suscribirse a los publish/subscribe temas locales que configure para el componente de puente de MQTT para recibir mensajes de los dispositivos cliente.

**Cómo recibir mensajes MQTT desde dispositivos de cliente en componentes personalizados**

1. [Configure e implemente el componente bridge de MQTT](#deploy-mqtt-bridge-pubsub) para retransmitir los mensajes de un tema de MQTT donde los dispositivos cliente publican en un tema local. publish/subscribe 

1. Utilice la interfaz publish/subscribe IPC local para suscribirse al tema en el que el puente MQTT transmite los mensajes. Para obtener más información, consulte [Publicar/suscribir mensajes locales](ipc-publish-subscribe.md) y [SubscribeToTopic](ipc-publish-subscribe.md#ipc-operation-subscribetotopic).

El [tutorial Conectar y probar dispositivos de cliente](client-devices-tutorial.md) incluye una sección en la que se desarrolla un componente que se suscribe a los mensajes de un dispositivo de cliente. Para obtener más información, consulte [Paso 4: Desarrollar un componente que se comunique con los dispositivos de cliente](client-devices-tutorial.md#develop-client-device-subscriber-component).

## Envío de mensajes MQTT a dispositivos de cliente
<a name="send-client-device-messages"></a>

Puede publicar en los publish/subscribe temas locales que configure para el componente MQTT bridge a fin de enviar mensajes a los dispositivos cliente.

**Cómo publicar mensajes MQTT en dispositivos de cliente en componentes personalizados**

1. [Configure e implemente el componente de puente de MQTT](#deploy-mqtt-bridge-pubsub) para retransmitir mensajes de un publish/subscribe tema local a un tema de MQTT al que se suscriban los dispositivos cliente.

1. Utilice la interfaz publish/subscribe IPC local para publicar en el tema en el que el puente MQTT transmite los mensajes. Para obtener más información, consulte [Publicar/suscribir mensajes locales](ipc-publish-subscribe.md) y [PublishToTopic](ipc-publish-subscribe.md#ipc-operation-publishtotopic).