Interacción con los dispositivos de cliente en los componentes - AWS IoT Greengrass

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

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 para comunicarse en un dispositivo principal. Para comunicarse con los dispositivos de cliente en los componentes de Greengrass, configure el componente puente de MQTT 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.

Configuración e implementación del componente puente de MQTT

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.

Para implementar el componente puente MQTT en un dispositivo principal o en un grupo de dispositivos principales, cree una implementación 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.

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.

Recepción de mensajes MQTT desde los dispositivos de cliente

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 para retransmitir los mensajes de un tema de MQTT donde los dispositivos cliente publican en un tema local. publish/subscribe

  2. 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 y SubscribeToTopic.

El tutorial Conectar y probar dispositivos de cliente 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.

Envío de mensajes MQTT a dispositivos de cliente

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 para retransmitir mensajes de un publish/subscribe tema local a un tema de MQTT al que se suscriban los dispositivos cliente.

  2. 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 y PublishToTopic.