

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.

# Serieller Stream-Anschluss
<a name="serial-stream-connector"></a>

**Warnung**  <a name="connectors-extended-life-phase-warning"></a>
Dieser Connector befindet sich in der *Phase mit verlängerter Lebensdauer* und veröffentlicht AWS IoT Greengrass keine Updates, die Funktionen, Verbesserungen vorhandener Funktionen, Sicherheitspatches oder Bugfixes bieten. Weitere Informationen finden Sie unter [AWS IoT Greengrass Version 1 Wartungspolitik](maintenance-policy.md).

Der Serial Stream [Connector](connectors.md) liest und schreibt an eine serielle Schnittstelle eines AWS IoT Greengrass Core-Geräts.

Dieser Konnektor unterstützt zwei Betriebsarten:
+ **Read-On-Demand**. Empfängt Lese- und Schreibanforderungen zu MQTT-Themen und veröffentlicht die Antwort des Lesevorgangs oder den Status des Schreibvorgangs.
+ **Polling-Read**. Liest in regelmäßigen Abständen von der seriellen Schnittstelle. Dieser Modus unterstützt auch Read-On-Demand Anfragen.

**Anmerkung**  
Leseanforderungen sind auf eine maximale Leselänge von 63994 Bytes begrenzt. Schreibanforderungen sind auf eine maximale Datenlänge von 128000 Bytes beschränkt.

Dieser Konnektor hat die folgenden Versionen.


| Version | ARN | 
| --- | --- | 
| 3 | `arn:aws:greengrass:region::/connectors/SerialStream/versions/3` | 
| 2 | `arn:aws:greengrass:region::/connectors/SerialStream/versions/2` | 
| 1 | `arn:aws:greengrass:region::/connectors/SerialStream/versions/1` | 

Informationen über Versionsänderungen finden Sie im [Änderungsprotokoll](#serial-stream-connector-changelog).

## Voraussetzungen
<a name="serial-stream-connector-req"></a>

Dieser Konnektor hat die folgenden Anforderungen:

------
#### [ Version 3 ]
+ <a name="conn-req-ggc-v1.9.3"></a>AWS IoT Greengrass Kernsoftware v1.9.3 oder höher.
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python-Version](https://www.python.org/) 3.7 oder 3.8 wurde auf dem Core-Gerät installiert und zur Umgebungsvariablen PATH hinzugefügt.
**Anmerkung**  <a name="use-runtime-py3.8"></a>
Um Python 3.8 zu verwenden, führen Sie den folgenden Befehl aus, um einen symbolischen Link vom standardmäßigen Python 3.7-Installationsordner zu den installierten Python 3.8-Binärdateien zu erstellen.  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt.
+ <a name="conn-serial-stream-req-serial-port-resource"></a>Eine [lokale Geräteressource](access-local-resources.md) in der Greengrass-Gruppe, die auf die serielle Zielschnittstelle verweist.
**Anmerkung**  
Bevor Sie diesen Konnektor bereitstellen, empfehlen wir, die serielle Schnittstelle einzurichten und zu überprüfen, ob sie lesbar und beschreibbar ist. 

------
#### [ Versions 1 - 2 ]
+ <a name="conn-req-ggc-v1.7.0"></a>AWS IoT Greengrass Kernsoftware v1.7 oder höher.
+ [Python-Version](https://www.python.org/) 2.7 wurde auf dem Core-Gerät installiert und zur Umgebungsvariablen PATH hinzugefügt.
+ <a name="conn-serial-stream-req-serial-port-resource"></a>Eine [lokale Geräteressource](access-local-resources.md) in der Greengrass-Gruppe, die auf die serielle Zielschnittstelle verweist.
**Anmerkung**  
Bevor Sie diesen Konnektor bereitstellen, empfehlen wir, die serielle Schnittstelle einzurichten und zu überprüfen, ob sie lesbar und beschreibbar ist. 

------

## Konnektor-Parameter
<a name="serial-stream-connector-param"></a>

Dieser Konnektor stellt die folgenden Parameter bereit:

`BaudRate`  
Die Baudrate der seriellen Verbindung.  
Anzeigename in der AWS IoT Konsole: **Baudrate**  
Erforderlich: `true`  
Typ: `string`  
Zulässige Werte: `110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200, 230400`  
Gültiges Muster: `^110$|^300$|^600$|^1200$|^2400$|^4800$|^9600$|^14400$|^19200$|^28800$|^38400$|^56000$|^57600$|^115200$|^230400$`

`Timeout`  
Der Timeout (in Sekunden) für einen Lesevorgang.  
Anzeigename in der AWS IoT Konsole: **Timeout**  
Erforderlich: `true`  
Typ: `string`  
Zulässige Werte: `1 - 59`  
Gültiges Muster: `^([1-9]|[1-5][0-9])$`

`SerialPort`  
Der absolute Pfad zur physikalischen seriellen Schnittstelle auf dem Gerät. Dies ist der Quellpfad, der für die lokale Geräteressource angegeben ist.  
Anzeigename in der AWS IoT Konsole: **Serielle Schnittstelle**  
Erforderlich: `true`  
Typ: `string`  
Gültiges Muster: `[/a-zA-Z0-9_-]+`

`SerialPort-ResourceId`  
Die ID der lokalen Geräteressource, die die physische serielle Schnittstelle darstellt.  
Dieser Konnektor hat Zugriff zum Lesen und Schreiben auf die Ressource.
Anzeigename in der AWS IoT Konsole: **Ressource für serielle Schnittstelle**  
Erforderlich: `true`  
Typ: `string`  
Gültiges Muster: `[a-zA-Z0-9_-]+`

`PollingRead`  
Legt den Lesemodus fest: Polling-Read oder. Read-On-Demand  
+ Für den Polling-Read-Modus geben Sie `true` an. In diesem Modus werden nur die Eigenschaften `PollingInterval`, `PollingReadType` und `PollingReadLength` benötigt.
+ Geben Sie für Read-On-Demand den Modus an. `false` In diesem Modus werden die Werte für Typ und Länge in der Leseanforderung angegeben.
Anzeigename in der AWS IoT Konsole: **Lesemodus**  
Erforderlich: `true`  
Typ: `string`  
Zulässige Werte: `true, false`  
Gültiges Muster: `^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`PollingReadLength`  
Die Länge der zu lesenden Daten (in Bytes) bei jedem Polling-Lesevorgang. Dies gilt nur bei Verwendung des Polling-Read-Modus.  
Anzeigename in der AWS IoT Konsole: **Leselänge beim Abfragen**  
Erforderlich: `false`. Diese Eigenschaft ist erforderlich, wenn `PollingRead` `true` ist.  
Typ: `string`  
Gültiges Muster: `^(|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-2][0-9]{3}|63[0-8][0-9]{2}|639[0-8][0-9]|6399[0-4])$`

`PollingReadInterval`  
Das Intervall (in Sekunden), in dem das Lesen des Pollings stattfindet. Dies gilt nur bei Verwendung des Polling-Read-Modus.  
Anzeigename in der AWS IoT Konsole: **Leseintervall für Abfragen**  
Erforderlich: `false`. Diese Eigenschaft ist erforderlich, wenn `PollingRead` `true` ist.  
Typ: `string`  
Gültige Werte: 1 — 999  
Gültiges Muster: `^(|[1-9]|[1-9][0-9]|[1-9][0-9][0-9])$`

`PollingReadType`  
Der Typ der Daten, die der Polling-Thread liest. Dies gilt nur bei Verwendung des Polling-Read-Modus.  
Anzeigename in der AWS IoT Konsole: **Lesetyp der Abfrage**  
Erforderlich: `false`. Diese Eigenschaft ist erforderlich, wenn `PollingRead` `true` ist.  
Typ: `string`  
Zulässige Werte: `ascii, hex`  
Gültiges Muster: `^(|[Aa][Ss][Cc][Ii][Ii]|[Hh][Ee][Xx])$`

`RtsCts`  
Gibt an, ob die RTS/CTS-Flusssteuerung aktiviert werden soll. Der Standardwert ist `false`. Weitere Informationen finden Sie unter [RTS, CTS und RTR](https://en.wikipedia.org/wiki/RS-232#RTS,_CTS,_and_RTR).   
Anzeigename in der AWS IoT Konsole: **RTS/CTS Flow Control**  
Erforderlich: `false`  
Typ: `string`  
Zulässige Werte: `true, false`  
Gültiges Muster: `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`XonXoff`  
Gibt an, ob die Software-Flusssteuerung aktiviert werden soll. Der Standardwert ist `false`. Weitere Informationen finden Sie unter [Software-Flusssteuerung](https://en.wikipedia.org/wiki/Software_flow_control).  
Anzeigename in der AWS IoT Konsole: **Softwareflusssteuerung**  
Erforderlich: `false`  
Typ: `string`  
Zulässige Werte: `true, false`  
Gültiges Muster: `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`Parity`  
Die Parität der seriellen Schnittstelle. Der Standardwert ist `N`. Weitere Informationen finden Sie unter [Parität](https://en.wikipedia.org/wiki/Serial_port#Parity).   
Anzeigename in der AWS IoT Konsole: **Parität der seriellen Schnittstelle**  
Erforderlich: `false`  
Typ: `string`  
Zulässige Werte: `N, E, O, S, M`  
Gültiges Muster: `^(|[NEOSMneosm])$`

### Beispiel für das Erstellen eines Konnektors (AWS CLI)
<a name="serial-stream-connector-create"></a>

Der folgende CLI-Befehl erstellt eine `ConnectorDefinition` mit einer ersten Version, die den Serial Stream-Connector enthält. Konfiguriert den Konnektor für den Polling-Read-Modus.

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MySerialStreamConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/SerialStream/versions/3",
            "Parameters": {
                "BaudRate" : "9600",
                "Timeout" : "25",
                "SerialPort" : "/dev/serial1",
                "SerialPort-ResourceId" : "my-serial-port-resource",
                "PollingRead" : "true",
                "PollingReadLength" : "30",
                "PollingReadInterval" : "30",
                "PollingReadType" : "hex"
            }
        }
    ]
}'
```

In der AWS IoT Greengrass Konsole können Sie über die Connectors-Seite der Gruppe einen **Connector** hinzufügen. Weitere Informationen finden Sie unter [Erste Schritte mit Greengrass-Konnektoren (Konsole)](connectors-console.md).

## Eingabedaten
<a name="serial-stream-connector-data-input"></a>

Dieser Connector akzeptiert Lese- oder Schreibanforderungen für serielle Schnittstellen zu zwei MQTT-Themen. Eingabenachrichten müssen im JSON-Format sein.
+ Leseanforderungen zum Thema `serial/+/read/#`.
+ Schreibanforderungen zum Thema `serial/+/write/#`.

Um zu diesen Themen zu veröffentlichen, ersetzen Sie den Platzhalter `+` durch den Namen des Core-Objekts und den Platzhalter `#` durch den Pfad zur seriellen Schnittstelle. Zum Beispiel:

```
serial/core-thing-name/read/dev/serial-port
```

**Themenfilter:** `serial/+/read/#`  
Verwenden Sie dieses Thema, um On-Demand-Leseanforderungen an einen seriellen Pin zu senden. Leseanforderungen sind auf eine maximale Leselänge von 63994 Bytes begrenzt.    
**Nachrichten-Eigenschaften**    
`readLength`  
Die Länge der Daten, die von der seriellen Schnittstelle gelesen werden sollen.  
Erforderlich: `true`  
Typ: `string`  
Gültiges Muster: `^[1-9][0-9]*$`  
`type`  
Der Typ der zu lesenden Daten.  
Erforderlich: `true`  
Typ: `string`  
Zulässige Werte: `ascii, hex`  
Gültiges Muster: `(?i)^(ascii|hex)$`  
`id`  
Eine willkürliche ID für die Anforderung. Diese Eigenschaft wird verwendet, um eine Eingangsanforderung einer Ausgabeantwort zuzuordnen.  
Erforderlich: `false`  
Typ: `string`  
Gültiges Muster: `.+`  
**Beispieleingabe**  

```
{
    "readLength": "30",
    "type": "ascii",
    "id": "abc123"
}
```

**Themenfilter:** `serial/+/write/#`  
Verwenden Sie dieses Thema, um Schreibanforderungen an einen seriellen Pin zu senden. Schreibanforderungen sind auf eine maximale Datenlänge von 128000 Bytes beschränkt.    
**Nachrichten-Eigenschaften**    
`data`  
Die Zeichenfolge, die auf die serielle Schnittstelle geschrieben werden soll.  
Erforderlich: `true`  
Typ: `string`  
Gültiges Muster: `^[1-9][0-9]*$`  
`type`  
Der Typ der zu lesenden Daten.  
Erforderlich: `true`  
Typ: `string`  
Zulässige Werte: `ascii, hex`  
Gültiges Muster: `^(ascii|hex|ASCII|HEX)$`  
`id`  
Eine willkürliche ID für die Anforderung. Diese Eigenschaft wird verwendet, um eine Eingangsanforderung einer Ausgabeantwort zuzuordnen.  
Erforderlich: `false`  
Typ: `string`  
Gültiges Muster: `.+`  
**Beispiel-Eingabe: ASCII-Anforderung**  

```
{
    "data": "random serial data",
    "type": "ascii",
    "id": "abc123"
}
```  
**Beispiel-Eingabe: Hex-Anforderung**  

```
{
    "data": "base64 encoded data",
    "type": "hex",
    "id": "abc123"
}
```

## Ausgabedaten
<a name="serial-stream-connector-data-output"></a>

Der Konnektor veröffentlicht Ausgabedaten zu zwei Themen:
+ Statusinformationen vom Konnektor im Thema `serial/+/status/#`.
+ Antworten auf Leseanforderungen zum Thema `serial/+/read_response/#`.

Bei der Veröffentlichung zu diesem Thema ersetzt der Konnektor den Platzhalter `+` durch den Namen des Core-Objekts und den Platzhalter `#` durch den Pfad zur seriellen Schnittstelle. Zum Beispiel:

```
serial/core-thing-name/status/dev/serial-port
```

**Themenfilter:** `serial/+/status/#`  
Verwenden Sie dieses Thema, um den Status von Lese- und Schreibanforderungen anzuhören. Wenn eine `id`-Eigenschaft in die Anfrage aufgenommen wird, wird sie in der Antwort zurückgegeben.    
**Beispielausgabe: Erfolg**  

```
{
    "response": {
        "status": "success"
    },
    "id": "abc123"
}
```  
**Beispielausgabe: Fehler**  
Eine Fehlerreaktion beinhaltet eine `error_message`-Eigenschaft, die den Fehler oder das Timeout beschreibt, das beim Ausführen des Lese- oder Schreibvorgangs aufgetreten ist.  

```
{
    "response": {
        "status": "fail",
        "error_message": "Could not write to port"
    },
    "id": "abc123"
}
```

**Themenfilter:** `serial/+/read_response/#`  
Verwenden Sie dieses Thema, um Antwortdaten von einem Lesevorgang zu empfangen. Die Antwortdaten sind Base64-kodiert, wenn der Typ `hex` ist.    
**Beispielausgabe**  

```
{
    "data": "output of serial read operation"
    "id": "abc123"
}
```

## Beispiel für die Verwendung
<a name="serial-stream-connector-usage"></a>

<a name="connectors-setup-intro"></a>Verwenden Sie die folgenden allgemeinen Schritte, um eine Python-3.7-Lambda-Beispielfunktion einzurichten, mit der Sie den Konnektor ausprobieren können.

**Anmerkung**  <a name="connectors-setup-get-started-topics"></a>
Wenn Sie andere Python-Laufzeiten verwenden, können Sie einen Symlink von Python3.x zu Python 3.7 erstellen.
In den Themen [Beginnen Sie mit Konnektoren (Konsole)](connectors-console.md) und [Erste Schritte mit Konnektoren (CLI)](connectors-cli.md) wird ausführlich beschrieben, wie Sie einen Beispielkonnektor für Twilio-Benachrichtigungen konfigurieren und bereitstellen.

1. Stellen Sie sicher, dass Sie die [Anforderungen](#serial-stream-connector-req) für den Konnektor erfüllen.

1. <a name="connectors-setup-function"></a>Erstellen und veröffentlichen Sie eine Lambda-Funktion, die Eingabedaten an den Connector sendet.

   Speichern Sie den [Beispielcode](#serial-stream-connector-usage-example) als PY-Datei. <a name="connectors-setup-function-sdk"></a>Laden Sie das [AWS IoT Greengrass Core SDK für Python](lambda-functions.md#lambda-sdks-core) herunter und entpacken Sie es. Erstellen Sie dann ein ZIP-Paket, das die PY-Datei und den Ordner `greengrasssdk` auf Stammebene enthält. Dieses Zip-Paket ist das Bereitstellungspaket, in das Sie AWS Lambda hochladen.

   <a name="connectors-setup-function-publish"></a>Nachdem Sie die Lambda-Funktion Python 3.7 erstellt haben, veröffentlichen Sie eine Funktionsversion und erstellen Sie einen Alias.

1. Konfigurieren Sie Ihre Greengrass-Gruppe.

   1. <a name="connectors-setup-gg-function"></a>Fügen Sie die Lambda-Funktion mit ihrem Alias hinzu (empfohlen). Konfigurieren Sie den Lambda-Lebenszyklus als langlebig (oder `"Pinned": true` in der CLI).

   1. <a name="connectors-setup-device-resource"></a>Fügen Sie die erforderliche lokale Geräteressource hinzu und gewähren Sie Lese-/Schreibzugriff auf die Lambda-Funktion.

   1. Fügen Sie Ihrer Gruppe den Konnektor hinzu und konfigurieren Sie seine [Parameter](#serial-stream-connector-param).

   1. Fügen Sie der Gruppe Abonnements hinzu, die es dem Konnektor ermöglichen, [Eingabedaten](#serial-stream-connector-data-input) zu empfangen und [Ausgabedaten](#serial-stream-connector-data-output) zu unterstützten Themenfiltern zu senden.
      + <a name="connectors-setup-subscription-input-data"></a>Legen Sie die Lambda-Funktion als Quelle und den Konnektor als Ziel fest und verwenden Sie einen unterstützten Eingabethemenfilter.
      + <a name="connectors-setup-subscription-output-data"></a>Legen Sie den Konnektor als Quelle und AWS IoT Core als Ziel fest und verwenden Sie einen unterstützten Ausgabethemenfilter. Sie verwenden dieses Abonnement, um Statusmeldungen in der AWS IoT Konsole anzuzeigen.

1. <a name="connectors-setup-deploy-group"></a>Stellen Sie die Gruppe bereit.

1. <a name="connectors-setup-test-sub"></a>Abonnieren Sie in der AWS IoT Konsole auf der **Testseite** das Thema Ausgabedaten, um Statusmeldungen vom Connector anzuzeigen. Die Lambda-Beispielfunktion ist langlebig und beginnt unmittelbar nach der Bereitstellung der Gruppe mit dem Senden von Nachrichten.

   Wenn Sie mit dem Testen fertig sind, können Sie den Lambda-Lebenszyklus auf On-Demand (oder `"Pinned": false` in der CLI) setzen und die Gruppe bereitstellen. Dadurch wird verhindert, dass die Funktion Nachrichten sendet.

### Beispiel
<a name="serial-stream-connector-usage-example"></a>

Die folgende Lambda-Beispielfunktion sendet eine Eingabenachricht an den Konnektor.

```
import greengrasssdk
import json

TOPIC_REQUEST = 'serial/CORE_THING_NAME/write/dev/serial1'

# Creating a greengrass core sdk client
iot_client = greengrasssdk.client('iot-data')

def create_serial_stream_request():
	request = {
		"data": "TEST",
		"type": "ascii",
		"id": "abc123"
	}
	return request

def publish_basic_request():
	iot_client.publish(payload=json.dumps(create_serial_stream_request()), topic=TOPIC_REQUEST)

publish_basic_request()

def lambda_handler(event, context):
	return
```

## Lizenzen
<a name="serial-stream-connector-license"></a>

Der Serial Stream Connector umfasst die folgende Software/Lizenzierung von Drittanbietern:
+ [pyserial](https://github.com/pyserial/pyserial)/BSD

Dieser Connector ist im Rahmen der [Greengrass Core Software-Lizenzvereinbarung](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf) veröffentlicht.

## Änderungsprotokoll
<a name="serial-stream-connector-changelog"></a>

In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen des Connectors beschrieben.


| Version | Änderungen | 
| --- | --- | 
| 3 | <a name="upgrade-runtime-py3.7"></a>Die Lambda-Laufzeit wurde auf Python 3.7 aktualisiert, was die Laufzeitanforderungen ändert. | 
| 2 | Der Connector-ARN wurde zur AWS-Region Unterstützung aktualisiert. | 
| 1 | Erstversion.  | 

<a name="one-conn-version"></a>Eine Greengrass-Gruppe kann jeweils nur eine Version des Connectors enthalten. Weitere Informationen zum Aktualisieren einer Konnektorversion finden Sie unter [Aktualisieren von Konnektorversionen](connectors.md#upgrade-connector-versions).

## Weitere Informationen finden Sie auch unter
<a name="serial-stream-connector-see-also"></a>
+ [Integrieren von Services und Protokollen mit Greengrass-Konnektoren](connectors.md)
+ [Erste Schritte mit Greengrass-Konnektoren (Konsole)](connectors-console.md)
+ [Erste Schritte mit Greengrass-Konnektoren (CLI)](connectors-cli.md)