Interagisci con i dispositivi client nei componenti - AWS IoT Greengrass

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Interagisci con i dispositivi client nei componenti

Puoi sviluppare componenti Greengrass personalizzati che interagiscono con i dispositivi client collegati a un dispositivo principale. Ad esempio, puoi sviluppare componenti che eseguono le seguenti operazioni:

  • Agisci sui messaggi MQTT dai dispositivi client e invia dati alle Cloud AWS destinazioni.

  • Invia messaggi MQTT ai dispositivi client per avviare azioni.

I dispositivi client si connettono e comunicano con un dispositivo principale tramite il componente broker MQTT che viene eseguito sul dispositivo principale. Per impostazione predefinita, i dispositivi client possono comunicare tra loro solo tramite MQTT e i componenti Greengrass non possono ricevere questi messaggi MQTT o inviare messaggi ai dispositivi client.

I componenti Greengrass utilizzano l'interfaccia di pubblicazione/sottoscrizione locale per comunicare su un dispositivo principale. Per comunicare con i dispositivi client nei componenti Greengrass, configurate il componente bridge MQTT per eseguire le seguenti operazioni:

  • Inoltra i messaggi MQTT dai dispositivi client alla pubblicazione/sottoscrizione locale.

  • Inoltra i messaggi MQTT dalla pubblicazione/sottoscrizione locali ai dispositivi client.

Puoi anche interagire con le ombre dei dispositivi client nei componenti Greengrass. Per ulteriori informazioni, consulta Interazione e sincronizzazione delle ombre dei dispositivi client.

Configura e distribuisci il componente bridge MQTT

Il componente bridge MQTT utilizza un elenco di mappature di argomenti, ciascuna delle quali specifica un'origine e una destinazione del messaggio. Per comunicare con i dispositivi client, implementate il componente bridge MQTT e specificate ogni argomento di origine e destinazione nella configurazione del componente.

Per distribuire il componente bridge MQTT su un dispositivo principale o su un gruppo di dispositivi principali, create una distribuzione che includa il componente. aws.greengrass.clientdevices.mqtt.Bridge Specificate le mappature degli argomenti nella configurazione mqttTopicMapping del componente bridge MQTT nella distribuzione.

L'esempio seguente definisce una distribuzione che configura il componente bridge MQTT per inoltrare l'clients/MyClientDevice1/hello/worldargomento dai dispositivi client al broker di pubblicazione/sottoscrizione locale. L'aggiornamento della merge configurazione richiede un oggetto JSON serializzato. Per ulteriori informazioni, consulta Aggiornamento delle configurazioni dei componenti.

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\"}}}" } } ... } }

È possibile utilizzare i caratteri jolly degli argomenti MQTT per inoltrare messaggi su argomenti che corrispondono a un filtro di argomento. Se si utilizza MQTT bridge v2.2.0 o versione successiva, è possibile utilizzare i caratteri jolly degli argomenti MQTT nei filtri degli argomenti quando il broker di origine è locale/publish/subscribe. Per ulteriori informazioni, vedete Configurazione dei componenti del bridge MQTT.

Ricevere messaggi MQTT dai dispositivi client

È possibile abbonarsi agli argomenti di pubblicazione/sottoscrizione locali configurati per il componente bridge MQTT per ricevere messaggi dai dispositivi client.

Per ricevere messaggi MQTT dai dispositivi client in componenti personalizzati
  1. Configurate e implementate il componente bridge MQTT per inoltrare i messaggi da un argomento MQTT in cui i dispositivi client vengono pubblicati su un argomento di pubblicazione/sottoscrizione locale.

  2. Utilizzate l'interfaccia IPC di pubblicazione/sottoscrizione locale per sottoscrivere l'argomento in cui il bridge MQTT inoltra i messaggi. Per ulteriori informazioni, consultare Pubblicare/sottoscrivere messaggi locali e SubscribeToTopic.

Il tutorial Connect and test client devices include una sezione in cui si sviluppa un componente che sottoscrive i messaggi da un dispositivo client. Per ulteriori informazioni, consulta Fase 4: Sviluppare un componente che comunichi con i dispositivi client.

Inviare messaggi MQTT ai dispositivi client

È possibile pubblicare negli argomenti di pubblicazione/sottoscrizione locali configurati per il componente bridge MQTT per l'invio di messaggi ai dispositivi client.

Per pubblicare messaggi MQTT su dispositivi client in componenti personalizzati
  1. Configurate e implementate il componente bridge MQTT per inoltrare i messaggi da un argomento di pubblicazione/sottoscrizione locale a un argomento MQTT a cui i dispositivi client effettuano la sottoscrizione.

  2. Utilizzate l'interfaccia IPC di pubblicazione/sottoscrizione locale per la pubblicazione sull'argomento in cui il bridge MQTT inoltra i messaggi. Per ulteriori informazioni, consultare Pubblicare/sottoscrivere messaggi locali e PublishToTopic.