

Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS wird der Support für eingestellt. AWS IoT Greengrass Version 1 Nach dem 7. Oktober 2026 können Sie nicht mehr auf die Ressourcen zugreifen. AWS IoT Greengrass V1 Weitere Informationen finden Sie unter [Migrieren von AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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.

# Modul 5: Interaktion mit Geräteschatten
<a name="module5"></a>

Dieses erweiterte Modul zeigt Ihnen, wie Client-Geräte mit [AWS IoT Geräteschatten](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) in einer AWS IoT Greengrass Gruppe interagieren können. Ein *Schatten* ist ein JSON-Dokument, das für die Speicherung der aktuellen oder gewünschten Statusinformationen für einen Gegenstand verwendet wird. In diesem Modul erfahren Sie, wie ein Client-Gerät (`GG_Switch`) den Status eines anderen Client-Geräts (`GG_TrafficLight`) ändern kann und wie diese Zustände mit der AWS IoT Greengrass Cloud synchronisiert werden können:

![\[AWS IoT Greengrass Der Kern ist mit einem Ampelgerät, einem Schatten- und einem Lichtschaltergerät verbunden.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/gg-get-started-077.5.png)


Bevor Sie beginnen, führen Sie das [Greengrass Device Setup](quick-start.md)-Skript aus oder stellen Sie sicher, dass Sie [Modul 1](module1.md) und [Modul 2](module2.md) abgeschlossen haben. Sie sollten auch wissen, wie Client-Geräte mit einem AWS IoT Greengrass Core verbunden werden ([Modul 4](module4.md)). Sie benötigen keine anderen Komponenten oder Geräte.

Dieses Modul sollte etwa 30 Minuten in Anspruch nehmen.

**Topics**
+ [Konfigurieren von Geräten und Abonnements](config-dev-subs.md)
+ [Download der benötigten Dateien](file-download.md)
+ [Testen der Kommunikation (Gerätesynchronisierungen deaktiviert)](comms-disabled.md)
+ [Testen der Kommunikation (Gerätesynchronisierungen aktiviert)](comms-enabled.md)

# Konfigurieren von Geräten und Abonnements
<a name="config-dev-subs"></a>

Schatten können synchronisiert werden, AWS IoT wenn der AWS IoT Greengrass Core mit dem Internet verbunden ist. In diesem Modul verwenden Sie zunächst die lokalen Schattengeräte ohne ein Synchronisieren mit der Cloud. Anschließend aktivieren Sie die Cloud-Synchronisierung.

Jedes Client-Gerät hat seinen eigenen Schatten. Weitere Informationen finden Sie unter [Device Shadow Service for AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) im *AWS IoT Entwicklerhandbuch*.

1. Wählen Sie auf der Seite mit der Gruppenkonfiguration die Registerkarte **Client-Geräte** aus.

1. Fügen Sie auf der Registerkarte **Client-Geräte** zwei neue Client-Geräte zu Ihrer AWS IoT Greengrass Gruppe hinzu. Ausführliche Informationen zu den Schritten dieses Prozesses finden Sie unter [Client-Geräte in einer AWS IoT Greengrass Gruppe erstellen](device-group.md).
   + Benennen Sie die Client-Geräte **GG\$1Switch** und**GG\$1TrafficLight**.
   + Generieren Sie die Sicherheitsressourcen für beide Client-Geräte und laden Sie sie herunter.
   + Notieren Sie sich die Zertifikat-ID in den Dateinamen der Sicherheitsressourcen für die Client-Geräte. Sie werden diese Werte in einem späteren Schritt verwenden.

1. Erstellen Sie auf Ihrem Computer einen Ordner für die Sicherheitsanmeldeinformationen dieser Client-Geräte. Kopieren Sie die Zertifikate und Schlüssel in diesen Ordner.

1. Stellen Sie sicher, dass die Client-Geräte so eingestellt sind, dass sie lokale Schatten verwenden und nicht mit dem synchronisieren AWS Cloud. Wenn nicht, wählen Sie das Client-Gerät aus, wählen Sie **Shadow synchronisieren** und anschließend **Shadow-Synchronisierung mit Cloud deaktivieren**.

1. <a name="module5-subscriptions"></a>Fügen Sie die Abonnements der folgenden Tabelle zu Ihrer Gruppe hinzu. So erstellen Sie beispielsweise das erste Abonnement:

   1. Wählen Sie auf der Gruppenkonfigurationsseite die Registerkarte **Abonnements** und dann **Hinzufügen** aus.

   1. Wählen Sie als **Quelltyp** die Option **Client-Gerät** und dann **GG\$1Switch** aus.

   1. Wählen Sie als **Zieltyp** **Service** und dann **Local Shadow** Service aus.

   1. Geben Sie unter **Topic filter (Themenfilter)** **\$1aws/things/GG\$1TrafficLight/shadow/update** ein.

   1. Wählen Sie **Create subscription** (Abonnement erstellen) aus.

   Die Themen müssen genau wie in der Tabelle eingegeben werden. Sie können zwar Platzhalter verwenden, um einige der Abonnements zu konsolidieren, dies wird jedoch nicht empfohlen. Weitere Informationen finden Sie unter [Shadow MQTT-Themen](https://docs.aws.amazon.com/iot/latest/developerguide/device-shadow-mqtt.html) im *AWS IoT Developer Guide*.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/config-dev-subs.html)

   Die neuen Abonnements werden auf der Registerkarte **Abonnements** angezeigt.
**Anmerkung**  
Weitere Informationen zum `$`-Zeichen finden Sie im Abschnitt über [Reservierte Themen](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html#reserved-topics).

1. <a name="enable-automatic-detection"></a>Stellen Sie sicher, dass die automatische Erkennung aktiviert ist, damit der Greengrass Core eine Liste seiner IP-Adressen veröffentlichen kann. Client-Geräte verwenden diese Informationen, um den Core zu ermitteln. Gehen Sie wie folgt vor:

   1. Wählen Sie auf der Gruppenkonfigurationsseite die Registerkarte **Lambda-Funktionen** aus.

   1. Wählen Sie unter **System-Lambda-Funktionen** die Option **IP-Detektor** und dann **Bearbeiten** aus.

   1. **Wählen **Sie unter IP-Detektoreinstellungen bearbeiten** die Option **MQTT-Broker-Endpunkte automatisch erkennen und überschreiben** aus und wählen Sie dann Speichern aus.**

1. Stellen Sie sicher, dass der Greengrass-Daemon läuft, wie unter beschrieben. [Bereitstellen von Cloud-Konfigurationen für ein Core-Gerät](configs-core.md)

1. <a name="console-actions-deploy"></a>**Wählen Sie auf der Gruppenkonfigurationsseite Deploy aus.**

# Download der benötigten Dateien
<a name="file-download"></a>

1. Falls Sie dies noch nicht getan haben, installieren Sie das AWS IoT Device SDK für Python. Anweisungen hierzu finden Sie in Schritt 1 unter [Installieren Sie das AWS IoT Device SDK für Python](IoT-SDK.md).

   Dieses SDK wird von Client-Geräten für die Kommunikation mit AWS IoT und mit AWS IoT Greengrass Kerngeräten verwendet.

1. Laden Sie aus dem Ordner mit den [ TrafficLight](https://github.com/aws/aws-greengrass-core-sdk-python/tree/master/examples/TrafficLight)Beispielen die `trafficLight.py` Dateien `lightController.py` und auf GitHub Ihren Computer herunter. Speichern Sie sie in dem Ordner, der die Zertifikate und Schlüssel der TrafficLight Client-Geräte GG\$1Switch und GG\$1 enthält.

   Das `lightController.py` Skript entspricht dem GG\$1Switch-Clientgerät und das `trafficLight.py` Skript entspricht dem GG\$1-Clientgerät. TrafficLight   
![\[Screenshot der Dateien, einschließlich der beiden Python-Skripts und der Gerätzertifikate und Schlüssel.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/gg-get-started-082.png)
**Anmerkung**  
Die Python-Beispieldateien werden der Einfachheit halber im AWS IoT Greengrass Core SDK for Python-Repository gespeichert, sie verwenden jedoch nicht das AWS IoT Greengrass Core SDK.

# Testen der Kommunikation (Gerätesynchronisierungen deaktiviert)
<a name="comms-disabled"></a>

1. <a name="ping-device"></a>Stellen Sie sicher, dass Ihr Computer und das AWS IoT Greengrass Kerngerät über dasselbe Netzwerk mit dem Internet verbunden sind.

   1. Führen Sie auf dem AWS IoT Greengrass Core-Gerät den folgenden Befehl aus, um dessen IP-Adresse zu ermitteln.

      ```
      hostname -I
      ```

   1. Führen Sie auf Ihrem Computer mit der IP-Adresse des Cores den folgenden Befehl aus. Mit Ctrl \$1 C können Sie den Befehl **ping** stoppen.

      ```
      ping IP-address
      ```

      Eine Ausgabe, die der folgenden ähnelt, weist auf eine erfolgreiche Kommunikation zwischen dem Computer und dem AWS IoT Greengrass Kerngerät hin (0% Paketverlust):  
![\[Erfolgreiche Ping-Befehlsausgabe.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/gg-get-started-075.5.png)
**Anmerkung**  
Wenn Sie eine laufende EC2 Instance nicht pingen können, stellen Sie sicher AWS IoT Greengrass, dass die Regeln für eingehende Sicherheitsgruppen für die Instance ICMP-Verkehr für [Echo-Anforderungsnachrichten](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-ping) zulassen. Weitere Informationen finden Sie unter [Regeln zu einer Sicherheitsgruppe hinzufügen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule) im * EC2 Amazon-Benutzerhandbuch*.  
Auf Windows-Hostcomputern müssen Sie in der App „Windows-Firewall mit erweiterter Sicherheit“ möglicherweise auch eine Regel für eingehende Echoanfragen aktivieren (z. B. **Datei- und Druckerfreigabe (Echo Request — ICMPv4 -In))**, oder eine Regel erstellen.

1. Holen Sie sich Ihren Endpunkt AWS IoT .

   1. <a name="iot-settings"></a>Wählen Sie im Navigationsbereich der [AWS IoT Konsole](https://console.aws.amazon.com/iot/) **Einstellungen** aus.

   1. <a name="iot-settings-endpoint"></a>Notieren Sie sich unter **Endpunkt für Gerätedaten** den Wert von **Endpoint**. Sie verwenden diesen Wert, um den *AWS\$1IOT\$1ENDPOINT* Platzhalter in den Befehlen in den folgenden Schritten zu ersetzen.
**Anmerkung**  
Stellen Sie sicher, dass Ihre [Endpunkte Ihrem Zertifikatstyp entsprechen](gg-core.md#certificate-endpoints).

1. <a name="repeated-step"></a>Öffnen Sie auf Ihrem Computer (nicht auf dem AWS IoT Greengrass Hauptgerät) zwei [Befehlszeilenfenster](https://en.wikipedia.org/wiki/Command-line_interface) (Terminal oder Eingabeaufforderung). Ein Fenster steht für das GG\$1Switch-Client-Gerät und das andere für das GG\$1-Client-Gerät. TrafficLight 

   1. <a name="run-switch-device"></a>Führen Sie im Fenster des GG\$1Switch-Client-Geräts die folgenden Befehle aus.
      + *path-to-certs-folder*Ersetzen Sie durch den Pfad zu dem Ordner, der die Zertifikate, Schlüssel und Python-Dateien enthält.
      + Ersetzen Sie *AWS\$1IOT\$1ENDPOINT* durch Ihren Endpunkt.
      + Ersetzen Sie die beiden *switchCertId* Instanzen durch die Zertifikat-ID im Dateinamen Ihres GG\$1Switch-Client-Geräts.

      ```
      cd path-to-certs-folder
      python lightController.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert switchCertId-certificate.pem.crt --key switchCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_Switch
      ```

   1. <a name="run-trafficlight-device"></a>Führen Sie im Fenster des TrafficLight GG\$1-Client-Geräts die folgenden Befehle aus.
      + *path-to-certs-folder*Ersetzen Sie durch den Pfad zu dem Ordner, der die Zertifikate, Schlüssel und Python-Dateien enthält.
      + Ersetzen Sie *AWS\$1IOT\$1ENDPOINT* durch Ihren Endpunkt.
      + Ersetzen Sie die beiden *lightCertId* Instanzen durch die Zertifikat-ID im Dateinamen Ihres TrafficLight GG\$1-Client-Geräts.

      ```
      cd path-to-certs-folder
      python trafficLight.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert lightCertId-certificate.pem.crt --key lightCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_TrafficLight
      ```

      Alle 20 Sekunden aktualisiert der Schalter den Schattenzustand mit „G”, „Y” und „R” und die Lampe zeigt ihren neuen Zustand an, wie nachfolgend dargestellt.

      GG\$1Switch Ausgabe:  
![\[Bildschirm der Ausgabe im Zusammenhang mit GG_Switch.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/gg-get-started-083.png)

      TrafficLight GG\$1-Ausgabe:  
![\[Screenshot der Ausgabe, die mit TrafficLight GG_ verknüpft ist.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/gg-get-started-084.png)

   Bei der ersten Ausführung führt jedes Client-Geräteskript den AWS IoT Greengrass Erkennungsdienst aus, um eine Verbindung zum AWS IoT Greengrass Core herzustellen (über das Internet). Nachdem ein Client-Gerät den AWS IoT Greengrass Core erkannt und erfolgreich mit ihm verbunden hat, können future Operationen lokal ausgeführt werden.
**Anmerkung**  
<a name="check-connection-info"></a> Die Skripts `trafficLight.py` und `lightController.py` speichern Verbindungsinformationen im Ordner `groupCA`. Dieser wird im selben Ordner wie die Skripts erstellt. Wenn Sie Verbindungsfehler erhalten, stellen Sie sicher, dass die IP-Adresse in der `ggc-host` Datei mit dem IP-Adressendpunkt für Ihren Core übereinstimmt.

1. Wählen Sie in der AWS IoT Konsole Ihre AWS IoT Greengrass Gruppe aus, klicken Sie auf die Registerkarte **Client-Geräte** und dann auf **GG\$1**, TrafficLight um die Seite mit den Ding-Details des AWS IoT Client-Geräts zu öffnen.

1. Wählen Sie den Tab „**Geräteschatten**“. Nachdem der GG\$1Switch den Status geändert hat, sollte es keine Updates für diesen Shadow geben. Das liegt daran, dass GG\$1 auf „**Schattensynchronisierung mit der Cloud deaktivieren**“ eingestellt TrafficLight ist.

1. Drücken Sie Ctrl \$1 C im Fenster des GG\$1Switch (`lightController.py`) -Client-Geräts. Sie sollten sehen, dass das GG\$1 TrafficLight (`trafficLight.py`) -Fenster keine Statusänderungsnachrichten mehr empfängt.

   Schließen Sie diese Fenster nicht, damit Sie die Befehle im nächsten Abschnitt erneut ausführen können.

# Testen der Kommunikation (Gerätesynchronisierungen aktiviert)
<a name="comms-enabled"></a>

Für diesen Test konfigurieren Sie den GG\$1 TrafficLight Device Shadow, mit dem synchronisiert werden soll AWS IoT. Führen Sie die gleichen Befehle wie im vorherigen Test aus, aber dieses Mal wird der Schattenzustand in der Cloud aktualisiert, sobald GG\$1Switch eine Aktualisierungsanforderung sendet.

1. Wählen Sie in der AWS IoT Konsole Ihre AWS IoT Greengrass Gruppe und dann die Registerkarte **Client-Geräte** aus.

1. Wählen Sie das TrafficLight GG\$1-Gerät aus, wählen Sie **Shadow synchronisieren** und anschließend **Shadow-Synchronisierung mit Cloud aktivieren** aus.

   Sie sollten eine Benachrichtigung erhalten, dass der Shadow-Sync-Status des Geräts aktualisiert wurde.

1. <a name="console-actions-deploy"></a>Wählen Sie auf der Seite mit der Gruppenkonfiguration die Option **Bereitstellen** aus.

1. [Führen Sie in Ihren beiden Befehlszeilenfenstern die Befehle aus dem vorherigen Test für die Client-Geräte [GG\$1Switch und GG\$1](comms-disabled.md#run-switch-device) aus. TrafficLight](comms-disabled.md#run-trafficlight-device)

1. Überprüfen Sie nun den Shadow-Status in der Konsole. AWS IoT Wählen Sie Ihre AWS IoT Greengrass Gruppe aus, wählen Sie die Registerkarte **Client-Geräte**, wählen Sie **GG\$1 TrafficLight**, wählen Sie die Registerkarte **Geräteschatten** und dann **Classic Shadow**.

   Da Sie die Synchronisierung von GG\$1 TrafficLight Shadow mit aktiviert haben AWS IoT, sollte der Shadow-Status in der Cloud jedes Mal aktualisiert werden, wenn GG\$1Switch ein Update sendet. Diese Funktionalität kann verwendet werden, um den Status eines Client-Geräts offenzulegen. AWS IoT
**Anmerkung**  
Falls erforderlich, können Sie Probleme beheben, indem Sie sich die AWS IoT Greengrass wichtigsten Protokolle ansehen, insbesondere`runtime.log`:  

   ```
   cd /greengrass/ggc/var/log
   sudo cat system/runtime.log | more
   ```
 Sie können auch `GGShadowSyncManager.log` und `GGShadowService.log` einsehen. Weitere Informationen finden Sie unter [Problembehebung AWS IoT Greengrass](gg-troubleshooting.md). 

Halten Sie die Client-Geräte und Abonnements eingerichtet. Sie werden sie im nächsten Modul wieder verwenden. Zudem werden Sie die gleichen Befehle ausführen.