

Aviso de fin de soporte: el 7 de octubre de 2026, AWS suspenderemos el soporte para AWS IoT Greengrass Version 1. Después del 7 de octubre de 2026, ya no podrá acceder a los AWS IoT Greengrass V1 recursos. Para obtener más información, visita [Migrar desde AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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.

# Conector Serial Stream
<a name="serial-stream-connector"></a>

**aviso**  <a name="connectors-extended-life-phase-warning"></a>
Este conector ha pasado a la *fase de vida útil prolongada* y AWS IoT Greengrass no lanzará actualizaciones que proporcionen características, mejoras de las características existentes, parches de seguridad o correcciones de errores. Para obtener más información, consulte [AWS IoT Greengrass Version 1 política de mantenimiento](maintenance-policy.md).

El [conector](connectors.md) Serial Stream lee y escribe en un puerto serie de un dispositivo AWS IoT Greengrass central.

Este conector es compatible con dos modos de operación:
+ **Lectura bajo demanda**. Recibe las solicitudes de lectura y escritura en temas de MQTT y publica la respuesta de la operación de lectura o el estado de la operación de escritura.
+ **Lectura de sondeo**. Lee desde el puerto de serie a intervalos regulares. Este modo también admite Read-On-Demand solicitudes.

**nota**  
Las solicitudes de lectura se limitan a una longitud de lectura máxima de 63994 bytes. Las solicitudes de escritura se limitan a una longitud de datos máxima de 128000 bytes.

Este conector tiene las siguientes versiones.


| Versión | 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` | 

Para obtener información sobre los cambios de versión, consulte el [Registro de cambios](#serial-stream-connector-changelog).

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

Este conector exige los siguientes requisitos:

------
#### [ Version 3 ]
+ <a name="conn-req-ggc-v1.9.3"></a>AWS IoT Greengrass Software básico v1.9.3 o posterior.
+ <a name="conn-req-py-3.7-and-3.8"></a>Se necesita tener la versión 3.7 o 3.8 de [Python](https://www.python.org/) instalada en el dispositivo principal y añadido a la variable de entorno PATH.
**nota**  <a name="use-runtime-py3.8"></a>
Para usar Python 3.8, ejecute el siguiente comando para crear un enlace simbólico desde la carpeta de instalación predeterminada de Python 3.7 a los binarios de Python 3.8 instalados.  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
Esto configura su dispositivo para que cumpla con el requisito de Python para AWS IoT Greengrass.
+ <a name="conn-serial-stream-req-serial-port-resource"></a>Un [recurso de dispositivo local](access-local-resources.md) en el grupo Greengrass que apunta al puerto serie de destino.
**nota**  
Antes de implementar este conector, le recomendamos que configure el puerto de serie y verifique que puede leer y escribir en él. 

------
#### [ Versions 1 - 2 ]
+ <a name="conn-req-ggc-v1.7.0"></a>AWS IoT Greengrass Software básico v1.7 o posterior.
+ Versión 2.7 de [Python](https://www.python.org/) instalada en el dispositivo principal y añadida a la variable de entorno PATH.
+ <a name="conn-serial-stream-req-serial-port-resource"></a>Un [recurso de dispositivo local](access-local-resources.md) en el grupo Greengrass que apunta al puerto serie de destino.
**nota**  
Antes de implementar este conector, le recomendamos que configure el puerto de serie y verifique que puede leer y escribir en él. 

------

## Parámetros de conector
<a name="serial-stream-connector-param"></a>

Este conector proporciona los siguientes parámetros:

`BaudRate`  
La velocidad en baudios de la conexión de serie.  
Nombre para mostrar en la AWS IoT consola: velocidad en **baudios**  
Obligatorio: `true`  
Tipo: `string`  
Valores válidos: `110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200, 230400`  
Patrón válido: `^110$|^300$|^600$|^1200$|^2400$|^4800$|^9600$|^14400$|^19200$|^28800$|^38400$|^56000$|^57600$|^115200$|^230400$`

`Timeout`  
El tiempo de espera (en segundos) para una operación de lectura.  
**Nombre para mostrar en la AWS IoT consola: Timeout**  
Obligatorio: `true`  
Tipo: `string`  
Valores válidos: `1 - 59`  
Patrón válido: `^([1-9]|[1-5][0-9])$`

`SerialPort`  
La ruta absoluta al puerto de serie físico del dispositivo. Esta es la ruta de origen que haya especificado para el recurso de dispositivo local.  
Nombre para mostrar en la AWS IoT consola: **puerto serie**  
Obligatorio: `true`  
Tipo: `string`  
Patrón válido: `[/a-zA-Z0-9_-]+`

`SerialPort-ResourceId`  
El ID del recurso de dispositivo local que representa el puerto de serie físico.  
A este conector se le concede acceso de lectura y escritura al recurso.
Nombre para mostrar en la AWS IoT consola: **recurso de puerto serie**  
Obligatorio: `true`  
Tipo: `string`  
Patrón válido: `[a-zA-Z0-9_-]+`

`PollingRead`  
Establece el modo de lectura: Polling-Read o. Read-On-Demand  
+ Para el modo de lectura de sondeo, especifique `true`. En este modo, se necesitan las propiedades `PollingInterval`, `PollingReadType` y `PollingReadLength`.
+ Para el Read-On-Demand modo, especifique. `false` En este modo, los valores de tipo y longitud se especifican en la solicitud de lectura.
Nombre para mostrar en la AWS IoT consola: **modo de lectura**  
Obligatorio: `true`  
Tipo: `string`  
Valores válidos: `true, false`  
Patrón válido: `^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`PollingReadLength`  
La longitud de los datos (en bytes) que se leen en cada operación de lectura de sondeo. Esto se aplica únicamente cuando se utiliza de modo de lectura de sondeo.  
Nombre para mostrar en la AWS IoT consola: **longitud de lectura del sondeo**  
Obligatorio: `false`. Esta propiedad es obligatoria cuando `PollingRead` es `true`.  
Tipo: `string`  
Patrón válido: `^(|[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`  
El intervalo (en segundos) en el que tiene lugar la lectura de sondeo. Esto se aplica únicamente cuando se utiliza de modo de lectura de sondeo.  
Nombre para mostrar en la AWS IoT consola: **intervalo de lectura del sondeo**  
Obligatorio: `false`. Esta propiedad es obligatoria cuando `PollingRead` es `true`.  
Tipo: `string`  
Valores válidos: 1 - 999  
Patrón válido: `^(|[1-9]|[1-9][0-9]|[1-9][0-9][0-9])$`

`PollingReadType`  
El tipo de datos que el subproceso de sondeo lee. Esto se aplica únicamente cuando se utiliza de modo de lectura de sondeo.  
Nombre para mostrar en la AWS IoT consola: **tipo de lectura de sondeo**  
Obligatorio: `false`. Esta propiedad es obligatoria cuando `PollingRead` es `true`.  
Tipo: `string`  
Valores válidos: `ascii, hex`  
Patrón válido: `^(|[Aa][Ss][Cc][Ii][Ii]|[Hh][Ee][Xx])$`

`RtsCts`  
Indica si se debe activar el control de RTS/CTS flujo. El valor predeterminado es `false`. Para obtener más información, consulte [RTS, CTS, and RTR](https://en.wikipedia.org/wiki/RS-232#RTS,_CTS,_and_RTR).   
Nombre para mostrar en la AWS IoT consola: control de flujo **RTS/CTS**  
Obligatorio: `false`  
Tipo: `string`  
Valores válidos: `true, false`  
Patrón válido: `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`XonXoff`  
Indica si se debe habilitar el control de flujo de software. El valor predeterminado es `false`. Para obtener más información, consulte [Software flow control](https://en.wikipedia.org/wiki/Software_flow_control).  
Nombre para mostrar en la AWS IoT consola: Control de flujo por **software**  
Obligatorio: `false`  
Tipo: `string`  
Valores válidos: `true, false`  
Patrón válido: `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`Parity`  
La paridad del puerto de serie. El valor predeterminado es `N`. Para obtener más información, consulte [Parity](https://en.wikipedia.org/wiki/Serial_port#Parity).   
Nombre para mostrar en la AWS IoT consola: **paridad de puertos serie**  
Obligatorio: `false`  
Tipo: `string`  
Valores válidos: `N, E, O, S, M`  
Patrón válido: `^(|[NEOSMneosm])$`

### Ejemplo de creación de conector (AWS CLI)
<a name="serial-stream-connector-create"></a>

El siguiente comando de la CLI crea una `ConnectorDefinition` con una versión inicial que contiene el conector Serial Stream. Configura el conector para el modo de lectura de sondeo.

```
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"
            }
        }
    ]
}'
```

En la AWS IoT Greengrass consola, puede añadir un conector desde la página de **conectores** del grupo. Para obtener más información, consulte [Introducción a los conectores de Greengrass (consola)](connectors-console.md).

## Datos de entrada
<a name="serial-stream-connector-data-input"></a>

Este conector acepta las solicitudes de lectura o escritura para los puertos de serie en dos temas de MQTT. Los mensajes de entrada deben tener un formato JSON válido.
+ Solicitudes de lectura en el tema `serial/+/read/#`.
+ Solicitudes de escritura en el tema `serial/+/write/#`.

Para publicar en estos temas, sustituya el comodín `+` con el nombre de cosa de núcleo y el comodín `#` con la ruta al puerto de serie. Por ejemplo:

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

**Filtro de temas:** `serial/+/read/#`  
Consulte este tema para enviar las solicitudes de lectura bajo demanda a un pin de serie. Las solicitudes de lectura se limitan a una longitud de lectura máxima de 63994 bytes.    
**Propiedades de mensajes**    
`readLength`  
La longitud de los datos para leer desde el puerto de serie.  
Obligatorio: `true`  
Tipo: `string`  
Patrón válido: `^[1-9][0-9]*$`  
`type`  
El tipo de datos para leer.  
Obligatorio: `true`  
Tipo: `string`  
Valores válidos: `ascii, hex`  
Patrón válido: `(?i)^(ascii|hex)$`  
`id`  
Un ID arbitrario para la solicitud. Esta propiedad se usa para asignar una solicitud de entrada a una respuesta de salida.  
Obligatorio: `false`  
Tipo: `string`  
Patrón válido: `.+`  
**Ejemplo de entrada**  

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

**Filtro de temas:** `serial/+/write/#`  
Use este tema para enviar solicitudes de escritura a un pin de serie. Las solicitudes de escritura se limitan a una longitud de datos máxima de 128000 bytes.    
**Propiedades de mensajes**    
`data`  
La cadena para escribir en el puerto de serie.  
Obligatorio: `true`  
Tipo: `string`  
Patrón válido: `^[1-9][0-9]*$`  
`type`  
El tipo de datos para leer.  
Obligatorio: `true`  
Tipo: `string`  
Valores válidos: `ascii, hex`  
Patrón válido: `^(ascii|hex|ASCII|HEX)$`  
`id`  
Un ID arbitrario para la solicitud. Esta propiedad se usa para asignar una solicitud de entrada a una respuesta de salida.  
Obligatorio: `false`  
Tipo: `string`  
Patrón válido: `.+`  
**Ejemplo entrada: solicitud ASCII**  

```
{
    "data": "random serial data",
    "type": "ascii",
    "id": "abc123"
}
```  
**Ejemplo entrada: solicitud hex**  

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

## Datos de salida
<a name="serial-stream-connector-data-output"></a>

El conector publica los datos de salida en dos temas:
+ La información del estado del conector en el tema `serial/+/status/#`.
+ Las respuestas de solicitudes de lectura en el tema `serial/+/read_response/#`.

Al publicar en este tema, el conector sustituye el comodín `+` con el nombre de cosa de núcleo y el comodín `#` con la ruta al puerto de serie. Por ejemplo:

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

**Filtro de temas:** `serial/+/status/#`  
Consulte este tema para escuchar el estado de las solicitudes de lectura y escritura. Si una propiedad `id` está incluida en la solicitud, se devuelve en la respuesta.    
**Ejemplo de salida: Correcto**  

```
{
    "response": {
        "status": "success"
    },
    "id": "abc123"
}
```  
**Ejemplo de salida: Error**  
Una respuesta de error incluye una propiedad `error_message` que describe el error o el tiempo de espera que se produce cuando se realiza la operación de lectura o escritura.  

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

**Filtro de temas:** `serial/+/read_response/#`  
Utilice este tema para recibir los datos de respuesta de una operación de lectura. Los datos de respuesta son Base64 codificados si el tipo es `hex`.    
**Ejemplo de salida**  

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

## Ejemplo de uso
<a name="serial-stream-connector-usage"></a>

<a name="connectors-setup-intro"></a>Utilice los siguientes pasos de alto nivel para configurar una función de Lambda de Python 3.7 de ejemplo que puede utilizar para probar el conector.

**nota**  <a name="connectors-setup-get-started-topics"></a>
Si usa otros tiempos de ejecución de Python, puede crear un enlace simbólico de Python3.x a Python 3.7.
Los temas [Introducción a los conectores (consola)](connectors-console.md) y [Introducción a los conectores (CLI)](connectors-cli.md) contienen pasos detallados que muestran cómo configurar e implementar un conector de notificaciones Twilio de ejemplo.

1. Asegúrese de cumplir los [requisitos](#serial-stream-connector-req) para el conector.

1. <a name="connectors-setup-function"></a>Cree y publique una función de Lambda que envíe datos de entrada al conector.

   Guarde el [código de ejemplo](#serial-stream-connector-usage-example) como un archivo PY. <a name="connectors-setup-function-sdk"></a>Descargue y descomprima el [SDK de AWS IoT Greengrass Core para Python](lambda-functions.md#lambda-sdks-core). A continuación, cree un paquete zip que contenga el archivo PY y la carpeta `greengrasssdk` en el nivel raíz. Este paquete zip es el paquete de implementación que se carga en AWS Lambda.

   <a name="connectors-setup-function-publish"></a>Después de crear la función de Lambda de Python 3.7, publique una versión de característica y cree un alias.

1. Configuración del grupo de Greengrass.

   1. <a name="connectors-setup-gg-function"></a>Agregue la función de Lambda por su alias (recomendado). Configure el ciclo de vida de Lambda como de larga duración (o `"Pinned": true` en la CLI).

   1. <a name="connectors-setup-device-resource"></a>Añada el recurso de dispositivo local necesario y conceda read/write acceso a la función Lambda.

   1. Agregue el conector a su grupo y configure sus [parámetros](#serial-stream-connector-param).

   1. Agregue suscripciones al grupo que permitan que el conector reciba [datos de entrada](#serial-stream-connector-data-input) y envíe [datos de salida](#serial-stream-connector-data-output) en filtros de tema compatibles.
      + <a name="connectors-setup-subscription-input-data"></a>Establezca la función de Lambda como fuente, el conector como destino y utilice un filtro de tema de entrada compatible.
      + <a name="connectors-setup-subscription-output-data"></a>Establezca el conector como origen, AWS IoT Core como destino y utilice un filtro de tema de salida compatible. Esta suscripción se utiliza para ver los mensajes de estado en la AWS IoT consola.

1. <a name="connectors-setup-deploy-group"></a>Implemente el grupo.

1. <a name="connectors-setup-test-sub"></a>En la AWS IoT consola, en la página de **prueba**, suscríbase al tema de datos de salida para ver los mensajes de estado del conector. La función de Lambda de ejemplo es de larga duración y comienza a enviar mensajes inmediatamente después de implementar el grupo.

   Cuando haya terminado de probar, puede establecer el ciclo de vida de Lambda en Bajo demanda (o `"Pinned": false` en la CLI) e implementar el grupo. Esto impide que la característica envíe mensajes.

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

El siguiente ejemplo de función de Lambda envía un mensaje de entrada al conector.

```
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
```

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

El conector Serial Stream incluye el siguiente software y licencia de terceros:
+ [pyserial](https://github.com/pyserial/pyserial)/BSD

Este conector se publica bajo el [contrato de licencia de software de Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

## Registros de cambios
<a name="serial-stream-connector-changelog"></a>

La siguiente tabla describe los cambios en cada versión del conector.


| Versión | Cambios | 
| --- | --- | 
| 3 | <a name="upgrade-runtime-py3.7"></a>Se actualizó el tiempo de ejecución de Lambda a Python 3.7, lo que cambia el requisito de tiempo de ejecución. | 
| 2 | Se actualizó el ARN del conector para Región de AWS brindar soporte. | 
| 1 | Versión inicial.  | 

<a name="one-conn-version"></a>Un grupo de Greengrass solo puede contener una versión del conector a la vez. Para obtener información sobre cómo actualizar una versión de conector, consulte [Actualización de versiones de los conectores](connectors.md#upgrade-connector-versions).

## Véase también
<a name="serial-stream-connector-see-also"></a>
+ [Integración con servicios y protocolos mediante conectores de Greengrass](connectors.md)
+ [Introducción a los conectores de Greengrass (consola)](connectors-console.md)
+ [Introducción a los conectores de Greengrass (CLI)](connectors-cli.md)