Interagieren mit Client-Geräten in Komponenten - AWS IoT Greengrass

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Interagieren mit Client-Geräten in Komponenten

Sie können benutzerdefinierte Greengrass-Komponenten entwickeln, die mit Clientgeräten interagieren, die mit einem Core-Gerät verbunden sind. Sie können beispielsweise Komponenten entwickeln, die Folgendes tun:

  • Reagieren Sie auf MQTT-Nachrichten von Client-Geräten und senden Sie Daten an AWS Cloud Ziele.

  • Senden Sie MQTT-Nachrichten an Client-Geräte, um Aktionen zu initiieren.

Client-Geräte stellen über die MQTT-Brokerkomponente, die auf dem Core-Gerät ausgeführt wird, eine Verbindung zu einem Core-Gerät her und kommunizieren mit diesem. Standardmäßig können Client-Geräte nur über MQTT miteinander kommunizieren, und Greengrass-Komponenten können diese MQTT-Nachrichten nicht empfangen oder Nachrichten an Client-Geräte senden.

Greengrass-Komponenten verwenden die lokale Publish/Subscribe-Schnittstelle, um auf einem Core-Gerät zu kommunizieren. Um mit Client-Geräten in Greengrass-Komponenten zu kommunizieren, konfigurieren Sie die MQTT-Bridge-Komponente so, dass sie Folgendes tut:

  • Weiterleiten von MQTT-Nachrichten von Client-Geräten an die lokale Veröffentlichung/das lokale Abonnieren.

  • Weiterleiten von MQTT-Nachrichten von der lokalen Veröffentlichung/dem Abonnieren von Client-Geräten.

Sie können auch mit Client-Geräteschatten in Greengrass-Komponenten interagieren. Weitere Informationen finden Sie unter Interagieren und Synchronisieren von Client-Geräteschatten.

Konfigurieren und Bereitstellen der MQTT-Bridge-Komponente

Die MQTT-Bridge-Komponente verwendet eine Liste von Themenzuordnungen, die jeweils eine Nachrichtenquelle und ein Nachrichtenziel angeben. Um mit Client-Geräten zu kommunizieren, stellen Sie die MQTT-Bridge-Komponente bereit und geben Sie jedes Quell- und Zielthema in der Komponentenkonfiguration an.

Um die MQTT-Bridge-Komponente auf einem Core-Gerät oder einer Gruppe von Core-Geräten bereitzustellen, erstellen Sie eine Bereitstellung, die die aws.greengrass.clientdevices.mqtt.Bridge Komponente enthält. Geben Sie die Themenzuordnungen mqttTopicMappingin der Konfiguration der MQTT-Bridge-Komponente in der Bereitstellung an.

Das folgende Beispiel definiert eine Bereitstellung, die die MQTT-Bridge-Komponente so konfiguriert, dass das clients/MyClientDevice1/hello/world Thema von Client-Geräten an den lokalen Publish/Subscribe-Broker weitergeleitet wird. Das merge Konfigurationsupdate erfordert ein serialisiertes JSON-Objekt. Weitere Informationen finden Sie unter Komponentenkonfigurationen aktualisieren.

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

Sie können MQTT-Themen-Platzhalter verwenden, um Nachrichten zu Themen weiterzuleiten, die einem Themenfilter entsprechen. Wenn Sie MQTT Bridge v2.2.0 oder höher verwenden, können Sie MQTT-Themen-Platzhalter in Themenfiltern verwenden, wenn der Quell-Broker lokale Veröffentlichung/Abonnement ist. Weitere Informationen finden Sie unter Konfiguration der MQTT-Bridge-Komponente .

Empfangen von MQTT-Nachrichten von Client-Geräten

Sie können die lokalen Themen zum Veröffentlichen/Abonnieren abonnieren, die Sie für die MQTT-Bridge-Komponente konfigurieren, um Nachrichten von Client-Geräten zu empfangen.

So empfangen Sie MQTT-Nachrichten von Client-Geräten in benutzerdefinierten Komponenten
  1. Konfigurieren Sie die MQTT-Bridge-Komponente und stellen Sie sie bereit, um Nachrichten aus einem MQTT-Thema weiterzuleiten, in dem Client-Geräte zu einem lokalen Veröffentlichungs-/Abonnementthema veröffentlichen.

  2. Verwenden Sie die lokale IPC-Schnittstelle zum Veröffentlichen/Abonnieren, um das Thema zu abonnieren, an das die MQTT-Brücke Nachrichten weiterleitet. Weitere Informationen finden Sie unter Lokale Nachrichten veröffentlichen/abonnieren und SubscribeToTopic.

Das Tutorial Client-Geräte verbinden und testen enthält einen Abschnitt, in dem Sie eine Komponente entwickeln, die Nachrichten von einem Client-Gerät abonniert. Weitere Informationen finden Sie unter Schritt 4: Entwickeln einer Komponente, die mit Client-Geräten kommuniziert.

Senden von MQTT-Nachrichten an Client-Geräte

Sie können in den lokalen Themen zum Veröffentlichen/Abonnieren veröffentlichen, die Sie für die MQTT-Bridge-Komponente konfigurieren, um Nachrichten an Client-Geräte zu senden.

So veröffentlichen Sie MQTT-Nachrichten auf Client-Geräten in benutzerdefinierten Komponenten
  1. Konfigurieren Sie die MQTT-Bridge-Komponente und stellen Sie sie bereit, um Nachrichten aus einem lokalen Veröffentlichungs-/Abonnementthema an ein MQTT-Thema weiterzuleiten, in dem Client-Geräte abonnieren.

  2. Verwenden Sie die lokale IPC-Schnittstelle zum Veröffentlichen/Abonnieren, um zu dem Thema zu veröffentlichen, an das die MQTT-Brücke Nachrichten weiterleitet. Weitere Informationen finden Sie unter Lokale Nachrichten veröffentlichen/abonnieren und PublishToTopic.