

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.

# Recopile FleetWise datos de AWS IoT con campañas
<a name="campaigns"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

Una campaña es una orquestación de reglas de recopilación de datos. Las campañas proporcionan al FleetWise software Edge Agent para AWS IoT instrucciones sobre cómo seleccionar, recopilar y transferir datos a la nube.

Usted crea campañas en la nube. Una vez que tú o tu equipo hayan aprobado una campaña, el AWS IoT FleetWise establece la campaña como lista para su despliegue y se desplegará la próxima vez que se registre el vehículo. Puede optar por implementar una campaña en un vehículo o en una flota de vehículos. El software Edge Agent no comienza a recopilar datos hasta que se implementa una campaña activa en el vehículo.

**importante**  
Para que las campañas funcionen, debe disponer de lo siguiente:  
El software Edge Agent ejecutándose en el vehículo. Para obtener más información sobre cómo desarrollar, instalar y trabajar con el software Edge Agent, haga lo siguiente.  
Abre la [ FleetWise consola AWS de IoT](https://console.aws.amazon.com/iotfleetwise).
En la página de inicio del servicio, en la FleetWise sección **Comenzar con AWS IoT**, elija **Explore Edge Agent**.
Lo has configurado AWS IoT Core para aprovisionar tu vehículo. Para obtener más información, consulte [Aprovisionamiento AWS de FleetWise vehículos de IoT](provision-vehicles.md).

**nota**  
También puedes utilizar plantillas de estado [Supervisión del último estado conocido de los vehículos](last-known-state.md) (no de flotas) prácticamente en tiempo real, que te permiten transmitir datos de telemetría con una estrategia de actualización «en caso de cambio» o «periódica». La función también incluye funciones «bajo demanda» para activar o desactivar las plantillas desplegadas anteriormente o solicitar el estado actual del vehículo una sola vez (recuperarlo).   
El acceso al último estado conocido está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

Cada elemento de la lista contiene la siguiente información:

`signalCatalogArn`  
El Nombre de recurso de Amazon (ARN) del catálogo de señales asociado a la campaña.

(Opcional) `tags`  
Las etiquetas son metadatos que se pueden utilizar para administrar la campaña. Puede asignar la misma etiqueta a los recursos de diferentes servicios para indicar que los recursos están relacionados.

`TargetArn`  
El ARN de un vehículo o una flota donde se implementa la campaña.

`name`  
Un nombre único que ayuda a identificar la campaña.

`collectionScheme`  
Los esquemas de recopilación de datos proporcionan al software Edge Agent instrucciones sobre qué datos recopilar o cuándo recopilarlos. AWS FleetWise Actualmente, el IoT admite el esquema de recolección basado en condiciones y el esquema de recolección basado en el tiempo.  
+ `conditionBasedCollectionScheme`— el esquema de recopilación basado en condiciones utiliza una expresión lógica para reconocer qué datos recopilar. El software Edge Agent recopila datos cuando se cumple la condición.
  + `expression`— la expresión lógica utilizada para reconocer qué datos recopilar. Por ejemplo, si se especifica la expresión `$variable.`myVehicle.InVehicleTemperature` > 50.0`, el software Edge Agent recopila valores de temperatura superiores a 50,0. Para obtener instrucciones acerca de cómo escribir expresiones, consulte [Expresiones lógicas para FleetWise campañas AWS de IoT](logical-expression.md).
  + (Opcional)`conditionLanguageVersion`: la versión del lenguaje de expresiones condicionales.
  + (Opcional)`minimumTriggerIntervalMs`: el tiempo mínimo entre dos eventos de recopilación de datos, en milisegundos. Si una señal cambia con frecuencia, es conveniente recopilar datos a un ritmo más lento.
  + (Opcional)`triggerMode`: puede ser uno de los siguientes valores:
    + `RISING_EDGE`— el software Edge Agent recopila datos solo cuando se cumple la condición por primera vez. Por ejemplo, `$variable.`myVehicle.AirBagDeployed` == true`.
    + `ALWAYS`: el software Edge Agent recopila datos siempre que se cumpla la condición.
+ `timeBasedCollectionScheme`— cuando defina un esquema de recopilación basado en el tiempo, especifique un período de tiempo en milisegundos. El software Edge Agent utiliza el periodo para decidir con qué frecuencia deben recopilarse datos. Por ejemplo, si el periodo es de 120 000 milisegundos, el software Edge Agent recopila datos una vez cada dos minutos.
  + `periodMs`— el período de tiempo (en milisegundos) para decidir con qué frecuencia se recopilarán los datos.

(Opcional) `compression`  
Para ahorrar ancho de banda inalámbrico y reducir el tráfico de la red, puede especificar [SNAPPY](https://opensource.google/projects/snappy) para comprimir los datos en los vehículos.  
De forma predeterminada (`OFF`), el software Edge Agent no comprime los datos.

`dataDestinationConfigs`  
Elige el único destino al que la campaña transferirá los datos del vehículo. Puede enviar los datos a un [tema de MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html) o almacenarlos en Amazon S3 o Amazon Timestream.  
El MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería ligero y ampliamente adoptado. Puede publicar datos en un tema de MQTT para crear sus propias arquitecturas basadas en eventos mediante reglas. AWS IoT AWS IoT [La compatibilidad con MQTT se basa en la especificación [MQTT v3.1.1 y la especificación MQTT v5.0](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html), con algunas diferencias.](http://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) [Para obtener más información, consulte Diferencias entre MQTT.](https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html#mqtt-differences.html)  
S3 puede ser un mecanismo de almacenamiento de datos rentable que ofrece capacidades duraderas de administración de datos y servicios de datos posteriores. Puede utilizar S3 para obtener datos relacionados con los comportamientos de conducción o para analizar el mantenimiento a largo plazo.  
Timestream es un mecanismo de persistencia de datos que puede ayudarlo a identificar tendencias y patrones casi en tiempo real. Puede utilizar Timestream para obtener datos de serie temporal; por ejemplo, para analizar las tendencias históricas en la velocidad o el frenado del vehículo.  
Amazon Timestream no está disponible en la región Asia Pacífico (Bombay).

(Opcional) `dataExtraDimensions`  
Puede agregar uno o más atributos para proporcionar información adicional sobre una señal.

(Opcional) `dataPartitions`  
Cree una partición de datos para almacenar temporalmente los datos de señal de un vehículo. Usted configura cuándo y cómo reenviar los datos a la nube.  
+ Especifique cómo el AWS IoT FleetWise almacena los datos en un vehículo o flota definiendo el tamaño máximo de almacenamiento, el tiempo mínimo de vida y la ubicación de almacenamiento.
+ La campaña `spoolingMode` debe serlo`TO_DISK`.
+ Las configuraciones de carga incluyen la definición de la versión del lenguaje de condiciones y la expresión lógica.

(Opcional) `description`  
Agrega una descripción para ayudar a identificar el propósito de la campaña.

(Opcional) `diagnosticsMode`  
Cuando el modo de diagnóstico está configurado para ello`SEND_ACTIVE_DTCS`, la campaña envía códigos de problemas de diagnóstico estándar y almacenados que ayudan a identificar qué es lo que está mal en tu vehículo. DTCs Por ejemplo, el número P0097 indica que el módulo de control del motor (ECM) ha determinado que la entrada del sensor de temperatura del aire de admisión 2 (IAT2) está por debajo del rango normal del sensor.  
De forma predeterminada (`OFF`), el software Edge Agent no envía códigos de diagnóstico.

(Opcional) `expiryTime`  
Defina la fecha de caducidad de su campaña. Cuando una campaña caduca, el software Edge Agent deja de recopilar los datos tal y como se especifica en dicha campaña. Si se implementan varias campañas en el vehículo, el software Edge Agent utiliza otras campañas para recopilar datos.   
Valor predeterminado: `253402243200` (31 de diciembre de 9999 a las 00:00:00 UTC)

(Opcional) `postTriggerCollectionDuration`  
Puede definir una duración para la recopilación posterior a la activación, de modo que el software Edge Agent siga recopilando datos durante un periodo específico tras invocar un esquema. Por ejemplo, si se invoca un esquema de recopilación basado en la condición con la expresión `$variable.`myVehicle.Engine.RPM` > 7000.0`, el software Edge Agent sigue recopilando los valores de revoluciones por minuto (RPM) del motor. Incluso si las RPM solo suben por encima de 7000 una vez, esto podría indicar la presencia de un problema mecánico. En este caso, es posible que desee que el software Edge Agent continúe recopilando datos para ayudar a supervisar el estado del vehículo.  
Valor predeterminado: `0`

(Opcional) `priority`  
Especifique un número entero para indicar el nivel de prioridad de la campaña. Las campañas con un número menor tienen mayor prioridad. Si implementa varias campañas en un vehículo, las campañas con mayor prioridad se inician primero.  
Valor predeterminado: `0`

(Opcional) `signalsToCollect`  
Una lista de señales a partir de las cuales se recopilan datos cuando se invoca el esquema de recopilación de datos.  
+ `name`— el nombre de la señal desde la que se recopilan los datos cuando se invoca el esquema de recopilación de datos.
+ `dataPartitionId`— el ID de la partición de datos que se va a utilizar en la señal. El ID debe coincidir con uno de los IDs proporcionados`dataPartitions`. Si carga una señal como condición en su partición de datos, deberá incluir esas mismas señales`signalsToCollect`.
+ (Opcional)`maxSampleCount`: el número máximo de muestras de datos que el software Edge Agent recopila y transfiere a la nube cuando se invoca el esquema de recopilación de datos.
+ (Opcional)`minimumSamplingIntervalMs`: el tiempo mínimo entre dos eventos de recopilación de muestras de datos, en milisegundos. Si una señal cambia con frecuencia, puede utilizar este parámetro para recopilar datos a un ritmo más lento.

  Rango válido: 0‐4294967295

(Opcional) `spoolingMode`  
Si `spoolingMode` está configurado para `TO_DISK`, el software Edge Agent almacena temporalmente los datos de forma local cuando el vehículo no está conectado a la nube. Una vez restablecida la conexión, los datos almacenados localmente se transfieren de forma automática a la nube.  
Valor predeterminado: `OFF`

(Opcional) `startTime`  
Una campaña aprobada se activa a la hora de inicio.  
Valor predeterminado: `0`

El estado de una campaña puede ser uno de los siguientes valores:
+ `CREATING`— AWS IoT FleetWise está procesando tu solicitud para crear la campaña.
+ `WAITING_FOR_APPROVAL`: una vez creada una campaña, esta entra en el estado `WAITING_FOR_APPROVAL`. Para aprobar la campaña, utilice la operación de la API `UpdateCampaign`. Una vez aprobada la campaña, AWS IoT despliega FleetWise automáticamente la campaña en el vehículo o la flota objetivo. Para obtener más información, consulte [Actualizar una FleetWise campaña AWS de IoT](update-campaign-cli.md).
+ `RUNNING `: la campaña está activa.
+ `SUSPENDED`: la campaña está suspendida. Para reanudar la campaña, utilice la operación de la API `UpdateCampaign`.

AWS El IoT FleetWise proporciona las siguientes operaciones de API que puedes usar para crear y administrar campañas.
+ [CreateCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CreateCampaign.html)— Crea una nueva campaña.
+ [UpdateCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_UpdateCampaign.html)— Actualiza una campaña existente. Una vez creada una campaña, debe usar esta operación de API para aprobarla.
+ [DeleteCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_DeleteCampaign.html)— Elimina una campaña existente.
+ [ListCampaigns](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_ListCampaigns.html)— Recupera una lista paginada de resúmenes de todas las campañas.
+ [GetCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_GetCampaign.html)— Recupera información sobre una campaña.

**Topics**
+ [Crea una FleetWise campaña AWS de IoT](create-campaign.md)
+ [Actualizar una FleetWise campaña AWS de IoT](update-campaign-cli.md)
+ [Eliminar una FleetWise campaña AWS de IoT](delete-campaign.md)
+ [Obtenga información sobre FleetWise la campaña de AWS IoT](get-campaign-information-cli.md)
+ [Almacene y reenvíe los datos de la campaña](store-and-forward.md)
+ [Recopile datos de códigos de problemas de diagnóstico mediante AWS IoT FleetWise](diagnostic-trouble-codes.md)
+ [Visualice los datos de FleetWise vehículos de AWS IoT](process-visualize-data.md)

# Crea una FleetWise campaña AWS de IoT
<a name="create-campaign"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

Puedes usar la FleetWise consola de AWS IoT o la API para crear campañas que recopilen datos de vehículos.

**importante**  
Para que la campaña funcione, debe disponer de lo siguiente:  
El software Edge Agent ejecutándose en el vehículo. Para obtener más información sobre cómo desarrollar, instalar y trabajar con el software Edge Agent, haga lo siguiente:  
Abre la [ FleetWise consola AWS de IoT](https://console.aws.amazon.com/iotfleetwise).
En la página de inicio del servicio, en la FleetWise sección **Comenzar con AWS IoT**, elija **Explore Edge Agent**.
Lo has configurado AWS IoT Core para aprovisionar tu vehículo. Para obtener más información, consulte [Aprovisionamiento AWS de FleetWise vehículos de IoT](provision-vehicles.md).

**Topics**
+ [Creación de una campaña (consola)](#create-campaign-console)
+ [Creación de una campaña (AWS CLI)](#create-campaign-cli)
+ [Expresiones lógicas para FleetWise campañas AWS de IoT](logical-expression.md)

## Creación de una campaña (consola)
<a name="create-campaign-console"></a>

Utilice la FleetWise consola de AWS IoT para crear una campaña para seleccionar, recopilar y transferir los datos del vehículo a la nube.

**Para crear una campaña**

1. <a name="fleetwise-open-console"></a>Abre la [ FleetWise consola AWS de IoT](https://console.aws.amazon.com/iotfleetwise).

1. <a name="choose-campaigns"></a>En el panel de navegación, elija **Campañas**.

1. En la página **Campañas**, elija **Crear campaña** y, a continuación, complete los pasos de los siguientes temas.

**Topics**
+ [Paso 1: Configurar la campaña](#configure-campaign-console)
+ [Paso 2: Especifique las condiciones de almacenamiento y carga](#specify-storage-upload-conditions)
+ [Paso 3: Configurar el destino de los datos](#configure-data-collection-scheme-console)
+ [Paso 4: Añadir vehículos](#add-attributes-console)
+ [Paso 5: Revisar y crear](#review-and-create-campaign-console)
+ [Paso 6: Despliega una campaña](#update-campaign-console)

**importante**  
Para poder crear una campaña, debe disponer de un catálogo de señales y de un vehículo. Para obtener más información, consulte [Gestione los catálogos FleetWise de señales de AWS IoT](signal-catalogs.md) y [Administre FleetWise vehículos de AWS IoT](vehicles.md).
Una vez creada una campaña, debe aprobarla. Para obtener más información, consulte [Actualizar una FleetWise campaña AWS de IoT](update-campaign-cli.md).

### Paso 1: Configurar la campaña
<a name="configure-campaign-console"></a>

En la sección **Información general**, haga lo siguiente:

1. Introduzca un nombre para la campaña.

1. (Opcional) Introduzca una descripción.

Configure el esquema de recopilación de datos de la campaña. Un esquema de recopilación de datos proporciona al software Edge Agent instrucciones sobre qué datos deben recopilarse y cuándo debe hacerse. En la FleetWise consola de AWS IoT, puede configurar un esquema de recopilación de datos de las siguientes maneras:
+ Defina de forma manual el esquema de recopilación de datos.
+ Cargue un archivo para definir automáticamente el esquema de recopilación de datos.

En **Opción de configuración**, elija cualquiera de las siguientes opciones:
+ Para especificar manualmente el tipo de esquema de recopilación de datos y definir las opciones para personalizarlo, elija **Definir el esquema de recopilación de datos**. 

#### Definición manual del esquema de recopilación de datos
<a name="manually-define-scheme-console"></a>

  Especifique manualmente el tipo de esquema de recopilación de datos y defina las opciones para personalizar el esquema.

  1. En la sección **Detalles del esquema de recopilación de datos**, elija el tipo de esquema de recopilación de datos que desea que use la campaña. Si desea usar una expresión lógica para reconocer qué datos del vehículo deben recopilarse, elija **Basado en condición**. Para utilizar un periodo específico a fin de decidir con qué frecuencia deben recopilarse datos del vehículo, elija **En función del tiempo**.

  1. Defina el tiempo durante el que la campaña recopila datos.
**nota**  
De forma predeterminada, una campaña aprobada se activa de inmediato y no tiene una hora de finalización establecida. Para evitar cargos adicionales, debe especificar un intervalo de tiempo.

  1. Si especificó un esquema de recopilación de datos basado en condiciones, debe definir una expresión lógica para reconocer qué datos recopilar. AWS El IoT FleetWise utiliza una expresión lógica para reconocer qué datos recopilar para un esquema basado en condiciones. La expresión debe especificar el nombre completo de una señal como variable, un operador de comparación y un valor de comparación.

     Por ejemplo, si especificas la `$variable.`myVehicle.InVehicleTemperature` > 50.0` expresión, AWS IoT FleetWise recopila valores de temperatura superiores a 50,0. Para obtener instrucciones acerca de cómo escribir expresiones, consulte [Expresiones lógicas para FleetWise campañas AWS de IoT](logical-expression.md). 

     Introduzca la expresión lógica que se utiliza para reconocer qué datos deben recopilarse.

  1. (Opcional) Especifique la versión de idioma de la expresión condicional. El valor predeterminado es 1.

  1. (Opcional) Especifique el intervalo de activación mínimo, que es la duración mínima entre dos eventos de recopilación de datos. Por ejemplo, si una señal cambia con frecuencia, es conveniente recopilar datos a un ritmo más lento.

  1. Especifique la condición del **Modo del desencadenador** para que el software Edge Agent recopile datos. De forma predeterminada, el FleetWise software Edge Agent para AWS IoT **siempre** recopila datos siempre que se cumpla la condición. O bien solo puede recopilar datos cuando se cumple la condición por primera vez, **En el primer desencadenador**.

  1. Si ha especificado un esquema de recopilación de datos basado en el tiempo, debe especificar un **Periodo** en milisegundos, de 10 000 a 60 000 milisegundos. El software Edge Agent utiliza el periodo para decidir con qué frecuencia deben recopilarse datos.

  1. (Opcional) Edite las **opciones avanzadas del esquema**. 

     1. Para ahorrar ancho de banda inalámbrico y reducir el tráfico de red mediante la compresión de datos, elija **Snappy**.

     1. (Opcional) Para definir cuánto tiempo, en milisegundos, se deben seguir recopilando datos tras un evento de recopilación de datos, puede especificar la **Duración de la recopilación posterior al desencadenador**.

     1. (Opcional) Para indicar el nivel de prioridad de la campaña, especifique la **prioridad** de la campaña. Las campañas con un número de prioridad menor se implementan primero y se considera que tienen una prioridad más alta.

     1. El software Edge Agent puede almacenar temporalmente datos de forma local cuando un vehículo no está conectado a la nube. Una vez restablecida la conexión, los datos almacenados localmente se transfieren de forma automática a la nube. Especifique si desea que Edge Agent **almacene los datos de forma local** durante una pérdida de conexión.

     1. (Opcional) Para proporcionar información adicional para una señal, agregue hasta cinco atributos como **Dimensiones de datos adicionales**.
+ Para cargar un archivo para definir el esquema de recopilación de datos, selecciona **Cargar un archivo.json desde tu dispositivo local**. AWS El IoT define FleetWise automáticamente las opciones que se pueden definir en el archivo. Puede revisar y actualizar las opciones seleccionadas. 

#### Importación de un archivo para definir el esquema de recopilación de datos
<a name="import-file-scheme-console"></a>

  Cargue un archivo .json con detalles sobre el esquema de recopilación de datos.

  1. Para importar información sobre el esquema de recopilación de datos, elija **Elegir archivos**. Para obtener más información sobre el formato de archivo requerido, consulte la documentación de la [CreateCampaign](https://docs.aws.amazon.com//iot-fleetwise/latest/APIReference/API_CreateCampaign.html#API_CreateCampaign)API.
**nota**  
AWS FleetWise Actualmente, IoT admite la extensión de formato de archivo.json.

  1.  AWS El IoT define FleetWise automáticamente el esquema de recopilación de datos en función de la información de su archivo. Revisa las opciones que AWS IoT FleetWise seleccionó para ti. Puede actualizar las opciones si es necesario. 

### Paso 2: Especifique las condiciones de almacenamiento y carga
<a name="specify-storage-upload-conditions"></a>

Para elegir si el software Edge Agent almacenará temporalmente los datos de forma local cuando el vehículo no esté conectado a la nube, especifique el modo de bobina.
+ En el **modo de transferencia de datos, elige una de las siguientes** opciones:
  + **No almacenado**: el software Edge Agent recopila datos, pero no los almacena temporalmente de forma local cuando un vehículo está desconectado. El software Edge Agent transfiere los datos a la nube cuando el vehículo se vuelve a conectar.
  + **Almacenado en disco**: el software Edge Agent recopila y almacena temporalmente los datos de forma local cuando un vehículo está desconectado. Los datos recopilados se almacenan temporalmente en una ubicación definida en la sección de «persistencia» del archivo de configuración de Edge Agent. El Edge Agent transfiere los datos a la nube cuando el vehículo se vuelve a conectar.
  + **Almacenados en un disco con particiones**: el vehículo siempre almacena temporalmente los datos en el Edge, en la partición de datos especificada. Puedes elegir cuándo quieres reenviar los datos almacenados a la nube.

    1. (Opcional) Introduzca un identificador de partición para designar un conjunto de datos concreto.

    1. Introduzca un nombre de carpeta como ubicación en la que se almacenarán los datos. La ruta absoluta de la ubicación de almacenamiento es`{persistency_path} / {vehicle_name} / {campaign_name} / {storage_location}`.

    1. Introduzca el tamaño máximo de almacenamiento de los datos almacenados en la partición. Los datos más recientes sobrescriben los datos más antiguos cuando la partición alcanza el tamaño máximo.

    1. Introduzca el tiempo mínimo durante el que los datos de esta partición permanecerán en el disco.

    1. (Opcional) Introduzca las condiciones de carga de la partición.

#### Especificación de señales
<a name="specify-signals-console"></a>

Puede especificar las señales de las que se recopilarán los datos durante la campaña.

**Para especificar las señales de las que se van a recopilar datos**

1. Selecciona el **nombre de la señal**.

1. (Opcional) Para obtener el **número máximo de muestras**, introduce la cantidad máxima de muestras de datos que el software Edge Agent recopila y transfiere a la nube durante la campaña.

1. (Opcional) En **Intervalo de muestreo mínimo**, introduzca el tiempo mínimo entre dos eventos de recopilación de muestras de datos, en milisegundos. Si una señal cambia con frecuencia, puede utilizar este parámetro para recopilar datos a un ritmo más lento.

1. Para agregar otra señal, elija **Agregar más señales**. Puede agregar hasta 999 señales.

1. Elija **Siguiente**.

### Paso 3: Configurar el destino de los datos
<a name="configure-data-collection-scheme-console"></a>

**nota**  
Si la campaña contiene señales de datos del sistema de visión, solo puede almacenar los datos del vehículo en Amazon S3. No puede almacenarlos en Timestream ni enviarlos a un tema de MQTT.  
Los datos de sistemas de visión están en versión de vista previa y sujetos a cambios.  
Amazon Timestream no está disponible en la región Asia Pacífico (Bombay).

Elija el destino al que desea enviar o almacenar los datos recopilados por la campaña. Puede enviar los datos del vehículo a un tema de MQTT o almacenarlos en Amazon S3 o Amazon Timestream.

En **Configuración de destino**, haga lo siguiente:
+ Elija el tema Amazon S3, Amazon Timestream o MQTT en la lista desplegable.

#### Amazon S3
<a name="S3-destination"></a>

**importante**  
Solo puedes transferir datos a S3 si el AWS IoT FleetWise tiene permisos para escribir en el bucket de S3. Para obtener más información sobre la concesión de acceso, consulte [Controlar el acceso con AWS IoT FleetWise](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/controlling-access.html).

Para guardar los datos del vehículo en un bucket de S3, elija **Amazon S3**. S3 es un servicio de almacenamiento de objetos que almacena datos como objetos dentro de buckets. Para obtener más información, consulte [Crear, configurar y trabajar con buckets de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html) en la *Guía del usuario de Amazon Simple Storage Service*.

S3 optimiza el costo del almacenamiento de datos y proporciona mecanismos adicionales para utilizar los datos de los vehículos, como los lagos de datos, el almacenamiento centralizado de datos, los procesos de procesamiento de datos y los análisis. Puede usar S3 para almacenar datos para su procesamiento y análisis por lotes. Por ejemplo, puede crear informes de eventos de frenada brusca para el modelo de machine learning (ML). Los datos entrantes del vehículo se almacenan en un búfer durante 10 minutos antes de la entrega.

En **Configuración de destino de S3**, haga lo siguiente:

1. En **Bucket de S3**, elija un bucket para el que AWS IoT FleetWise tenga permisos. 

1. (Opcional) Introduzca un prefijo personalizado que puede usar para organizar los datos almacenados en el bucket de S3.

1. Elija el formato de salida, que es el formato de los archivos que se guardan en el bucket de S3.

1. Elija si desea comprimir los datos almacenados en el bucket de S3 como un archivo .gzip. Recomendamos comprimir los datos para minimizar los costos de almacenamiento.

1. Las opciones seleccionadas en la **configuración de destino de S3** cambian el **URI del objeto S3 del ejemplo**. Este es un ejemplo del tipo de archivos que se guardan en S3.

#### Amazon Timestream
<a name="Timestream-destination"></a>

**importante**  
Solo puedes transferir datos a una tabla si el AWS IoT FleetWise tiene permisos para escribir datos en Timestream. Para obtener más información sobre la concesión de acceso, consulte [Controlar el acceso con AWS IoT FleetWise](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/controlling-access.html).  
Amazon Timestream no está disponible en la región Asia Pacífico (Bombay).

Para almacenar los datos del vehículo en una tabla de Timestream, elija **Amazon Timestream**. Puede utilizar Timestream para consultar los datos del vehículo y así identificar tendencias y patrones. Por ejemplo, puede utilizar Timestream para crear una alarma para el nivel de combustible del vehículo. Los datos entrantes del vehículo se transfieren a Timestream casi en tiempo real. Para obtener más información, consulte [¿Qué es Amazon Timestream?](https://docs.aws.amazon.com/timestream/latest/developerguide/what-is-timestream.html) en la Guía para desarrolladores de *Amazon Timestream*.

En **Configuración de la tabla de Timestream**, haga lo siguiente:

1. En **Nombre de base de datos de Timestream**, elija el nombre de la base de datos de Timestream en la lista desplegable.

1. En **Nombre de tabla de Timestream**, elija el nombre de la tabla de Timestream en la lista desplegable.

En **Acceso al servicio para Timestream**, haga lo siguiente:
+ Elija un rol de IAM en la lista desplegable.

#### Tema MQTT
<a name="MQTT-destination"></a>

**importante**  
Solo puedes enrutar datos a un tema de MQTT si AWS IoT FleetWise tiene permisos para los AWS IoT temas. Para obtener más información sobre la concesión de acceso, consulte [Controlar el acceso con AWS IoT FleetWise](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/controlling-access.html).

Para enviar datos del vehículo a un tema de MQTT, elija un tema de **MQTT**.

Los datos del vehículo enviados por la mensajería MQTT se envían prácticamente en tiempo real y te permiten usar reglas para tomar medidas o enviar los datos a otros destinos. Para obtener más información sobre el uso de MQTT, consulte [las reglas y [protocolos de comunicación de los dispositivos](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)AWS IoT en la Guía para AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) *desarrolladores*.

1. En el **tema MQTT**, introduzca el nombre del **tema**.

1. En el **tema Acceso a servicios para MQTT**, elija si quiere permitir que AWS IoT FleetWise **cree y use un nuevo rol de servicio** por usted. Si desea **utilizar un rol de servicio existente**, seleccione el rol en la lista desplegable bajo **Seleccionar** rol.
+ Elija **Siguiente**.

### Paso 4: Añadir vehículos
<a name="add-attributes-console"></a>

Para elegir en qué vehículos desea implementar la campaña, selecciónelos en la lista de vehículos. Filtre los vehículos buscando los atributos y valores que les agregó al crearlos, o bien buscando por nombre de vehículo.

En **Filtrar vehículos**, haga lo siguiente:

1. En el cuadro de búsqueda, busque el atributo o el nombre del vehículo y elíjalo de la lista.
**nota**  
Cada atributo puede utilizarse solo una vez.

1. Introduzca el valor del atributo o el nombre del vehículo en el que desee implementar la campaña. Por ejemplo, si el nombre completo del atributo es `fuelType`, introduzca `gasoline` como valor.

1. Para buscar otro atributo del vehículo, repita los pasos anteriores. Puede buscar hasta cinco atributos de vehículo y un número ilimitado de nombres de vehículo. 

1. Los vehículos que coinciden con la búsqueda aparecen en **Nombre del vehículo**. Elija los vehículos en los que desee implementar la campaña.
**nota**  
En los resultados de la búsqueda se muestran hasta 100 vehículos. Elija **Seleccionar todo** para agregar todos los vehículos a la campaña.

1. Elija **Siguiente**.

### Paso 5: Revisar y crear
<a name="review-and-create-campaign-console"></a>

Verifique las configuraciones de la campaña y, a continuación, elija **Crear campaña**.

**nota**  
Tras crear una campaña, usted o su equipo deben implementarla en los vehículos.

### Paso 6: Despliega una campaña
<a name="update-campaign-console"></a>

Tras crear una campaña, usted o su equipo deben implementarla en los vehículos.

**Para implementar una campaña**

1. En la página **Resumen de la campaña**, elija **Implementar**.

1. Revise y confirme que desea iniciar la implementación y empezar a recopilar datos de los vehículos conectados a la campaña.

1. Elija **Implementar**.

Si desea detener la recopilación de datos de los vehículos conectados a la campaña, en la página **Resumen de la campaña** elija **Suspender**. Para reanudar la recopilación de datos de los vehículos conectados a la campaña, elija **Reanudar**.



## Creación de una campaña (AWS CLI)
<a name="create-campaign-cli"></a>

Puedes usar la operación de la [CreateCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CreateCampaign.html)API para crear una campaña. El siguiente ejemplo utiliza AWS CLI.

Al crear una campaña, los datos recopilados de los vehículos pueden enviarse a un tema de MQTT o almacenarse en Amazon S3 (S3) o Amazon Timestream. Elija Timestream para obtener una base de datos de serie temporal rápida, escalable y sin servidor; por ejemplo, para almacenar datos que requieren un procesamiento casi en tiempo real. Elija S3 para almacenar objetos con una escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes del sector. Elija MQTT para entregar los datos prácticamente en tiempo real y utilice [las reglas para](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) realizar las acciones que AWS IoT defina o enrutar los datos a otros destinos. 

**importante**  
Solo puedes transferir los datos del vehículo a un tema de MQTT, Amazon S3 o Amazon AWS Timestream FleetWise si el IoT tiene permisos para enviar mensajes de MQTT en tu nombre o para escribir datos en S3 o Timestream. Para obtener más información sobre la concesión de acceso, consulte [Controlar el acceso con AWS IoT FleetWise](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/controlling-access.html).  
Amazon Timestream no está disponible en la región Asia Pacífico (Bombay).

### Creación de una campaña
<a name="create-campaign-command"></a>

**importante**  
Para poder crear una campaña, debe disponer de un catálogo de señales y de un vehículo o una flota. Para obtener más información, consulte [Gestione los catálogos FleetWise de señales de AWS IoT](signal-catalogs.md), [Administre FleetWise vehículos de AWS IoT](vehicles.md) y [Gestione flotas en IoT AWS FleetWise](fleets.md).
Una vez creada una campaña, debe utilizar la operación de la API `UpdateCampaign` para aprobarla. Para obtener más información, consulte [Actualizar una FleetWise campaña AWS de IoT](update-campaign-cli.md)

Para crear una campaña, ejecute el siguiente comando:

*file-name*Sustitúyalo por el nombre del archivo.json que contiene la configuración de la campaña.

```
aws iotfleetwise create-campaign --cli-input-json file://file-name.json
```

#### Archivo de configuración de ejemplo para S3
<a name="example-configuration-file-s3"></a>
+ *campaign-name*Sustitúyalo por el nombre de la campaña que estás creando.
+ *signal-catalog-arn*Sustitúyalo por el Amazon Resource Name (ARN) del catálogo de señales.
+ *target-arn*Sustitúyalo por el ARN de una flota o vehículo que haya creado.
+ *bucket-arn*Sustitúyalo por el ARN del cucharón S3.

```
{
    "name": "campaign-name",
    "targetArn": "target-arn", 
    "signalCatalogArn": "signal-catalog-arn", 
    "collectionScheme": {
        "conditionBasedCollectionScheme": {
            "conditionLanguageVersion": 1,
            "expression": "$variable.`Vehicle.DemoBrakePedalPressure` > 7000",
            "minimumTriggerIntervalMs": 1000,
            "triggerMode": "ALWAYS"
        }
    },
    "compression": "SNAPPY",
    "diagnosticsMode": "OFF",
    "postTriggerCollectionDuration": 1000,
    "priority": 0,
    "signalsToCollect": [
        {
         "maxSampleCount": 100,
         "minimumSamplingIntervalMs": 0,
         "name": "Vehicle.DemoEngineTorque"
        },
        {
         "maxSampleCount": 100,
         "minimumSamplingIntervalMs": 0,
         "name": "Vehicle.DemoBrakePedalPressure"
        }
    ],
    "spoolingMode": "TO_DISK",
    "dataDestinationConfigs": [
        {
         "s3Config": { 
             "bucketArn": "bucket-arn",
             "dataFormat": "PARQUET",
             "prefix": "campaign-name",
              "storageCompressionFormat": "GZIP"
      }
    }
  ],
     "dataPartitions": [ 
      { ...  }
  ]
}
```

#### Archivo de configuración de ejemplo para Timestream
<a name="example-configuration-file-ts"></a>

**nota**  
Amazon Timestream no está disponible en la región Asia Pacífico (Bombay).
+ *campaign-name*Sustitúyalo por el nombre de la campaña que está creando.
+ *signal-catalog-arn*Sustitúyalo por el ARN del catálogo de señales.
+ *target-arn*Sustitúyalo por el ARN de una flota o vehículo que haya creado.
+ *role-arn*Sustitúyalo por el ARN del rol de ejecución de tareas que otorga el FleetWise permiso de AWS IoT para entregar datos a la tabla Timestream.
+ *table-arn*Sustitúyalo por el ARN de la tabla Timestream.

```
{
  "name": "campaign-name",
  "targetArn": "target-arn",
  "signalCatalogArn": "signal-catalog-arn",
  "collectionScheme": {
    "conditionBasedCollectionScheme": {
      "conditionLanguageVersion": 1,
      "expression": "$variable.`Vehicle.DemoBrakePedalPressure` > 7000",
      "minimumTriggerIntervalMs": 1000,
      "triggerMode": "ALWAYS"
    }
  },
  "compression": "SNAPPY",
  "diagnosticsMode": "OFF",
  "postTriggerCollectionDuration": 1000,
  "priority": 0,
  "signalsToCollect": [
    {
      "maxSampleCount": 100,
      "minimumSamplingIntervalMs": 0,
      "name": "Vehicle.DemoEngineTorque"
    },
    {
      "maxSampleCount": 100,
      "minimumSamplingIntervalMs": 0,
      "name": "Vehicle.DemoBrakePedalPressure"
    }
  ],
  "spoolingMode": "TO_DISK",
  "dataDestinationConfigs": [
    {
      "timestreamConfig": {
        "executionRoleArn": "role-arn",
        "timestreamTableArn": "table-arn"
      }
    }
  ],
   "dataPartitions": [ 
      { ...  }
  ]
}
```

#### Ejemplo de archivo de configuración para un tema de MQTT
<a name="example-configuration-file-mqtt"></a>
+ *campaign-name*Sustitúyalo por el nombre de la campaña que estás creando.
+ *signal-catalog-arn*Sustitúyalo por el Amazon Resource Name (ARN) del catálogo de señales.
+ *target-arn*Sustitúyalo por el ARN de una flota o vehículo que haya creado.
+ *topic-arn*Sustitúyalo por el ARN del [tema MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html) que especificó como destino de los mensajes que contienen datos del vehículo.
+ *role-arn*Sustitúyalo por el ARN del rol de ejecución de tareas que otorga FleetWise permiso a AWS IoT para enviar, recibir y realizar acciones en los mensajes del tema MQTT que especificaste.

```
{
  "name": "campaign-name",
  "targetArn": "target-arn",
  "signalCatalogArn": "signal-catalog-arn",
  "collectionScheme": {
    "conditionBasedCollectionScheme": {
      "conditionLanguageVersion": 1,
      "expression": "$variable.`Vehicle.DemoBrakePedalPressure` > 7000",
      "minimumTriggerIntervalMs": 1000,
      "triggerMode": "ALWAYS"
    }
  },
  "compression": "SNAPPY",
  "diagnosticsMode": "OFF",
  "postTriggerCollectionDuration": 1000,
  "priority": 0,
  "signalsToCollect": [
    {
      "maxSampleCount": 100,
      "minimumSamplingIntervalMs": 0,
      "name": "Vehicle.DemoEngineTorque"
    },
    {
      "maxSampleCount": 100,
      "minimumSamplingIntervalMs": 0,
      "name": "Vehicle.DemoBrakePedalPressure"
    }
  ],
  "spoolingMode": "TO_DISK",
  "dataDestinationConfigs": [
      {
          "mqttTopicConfig": {
              "mqttTopicArn": "topic-arn",
              "executionRoleArn": "role-arn"
          }
      }
  ]
}
```

Si has [activado el cifrado](key-management.md) mediante una AWS KMS clave gestionada por el cliente, incluye la siguiente declaración de política para que tu función pueda invocar la operación de la `CreateCampaign` API. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey*",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------

# Expresiones lógicas para FleetWise campañas AWS de IoT
<a name="logical-expression"></a>

AWS El IoT FleetWise utiliza una expresión lógica para reconocer qué datos recopilar como parte de una campaña. Para obtener más información acerca de expresiones, consulte [Expresiones](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html) en la *Guía para desarrolladores de AWS IoT Events *.

La variable de expresión se debe construir de manera que cumpla con las reglas del tipo de datos que se recopila. Para los datos del sistema de telemetría, la variable de expresión debe ser el nombre totalmente cualificado de la señal. Para datos de sistemas de visión, la expresión combina el nombre totalmente cualificado de la señal con la ruta que va desde el tipo de datos de la señal hasta una de sus propiedades.

Por ejemplo, si el catálogo de la señal contiene los siguientes nodos:

```
{
    myVehicle.ADAS.Camera:
    type: sensor
    datatype: Vehicle.ADAS.CameraStruct
    description: "A camera sensor"

    myVehicle.ADAS.CameraStruct:
    type: struct
    description: "An obstacle detection camera output struct"
}
```

Si los nodos siguen la definición de ROS 2: 

```
{
    Vehicle.ADAS.CameraStruct.msg:
    boolean obstaclesExists
    uint8[] image
    Obstacle[30] obstacles
}
{
    Vehicle.ADAS.Obstacle.msg:
    float32: probability
    uint8 o_type
    float32: distance
}
```

A continuación, se muestran todas las variables de expresión de eventos posibles:

```
{
...
    $variable.`myVehicle.ADAS.Camera.obstaclesExists`
    $variable.`myVehicle.ADAS.Camera.Obstacle[0].probability`
    $variable.`myVehicle.ADAS.Camera.Obstacle[1].probability`
...
    $variable.`myVehicle.ADAS.Camera.Obstacle[29].probability`
    $variable.`myVehicle.ADAS.Camera.Obstacle[0].o_type`
    $variable.`myVehicle.ADAS.Camera.Obstacle[1].o_type`
...
    $variable.`myVehicle.ADAS.Camera.Obstacle[29].o_type`
    $variable.`myVehicle.ADAS.Camera.Obstacle[0].distance`
    $variable.`myVehicle.ADAS.Camera.Obstacle[1].distance`
...
    $variable.`myVehicle.ADAS.Camera.Obstacle[29].distance`
}
```

# Actualizar una FleetWise campaña AWS de IoT
<a name="update-campaign-cli"></a>

Puedes usar la operación de la [UpdateCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_UpdateCampaign.html)API para actualizar una campaña existente. El siguiente comando usa AWS CLI.
+ *campaign-name*Sustitúyelo por el nombre de la campaña que está actualizando.
+ Reemplace *action* por uno de los siguientes:
  + `APPROVE`— Aprueba la campaña para permitir que el AWS IoT FleetWise lo despliegue en un vehículo o flota.
  + `SUSPEND`: suspende la campaña. La campaña se elimina de los vehículos y todos los vehículos de la campaña suspendida dejarán de enviar datos.
  + `RESUME`: reactiva la `SUSPEND` campaña. Está previsto que la campaña se redistribuya en todos los vehículos la próxima vez que se registren y los vehículos volverán a enviar datos.
  + `UPDATE`— Actualiza la campaña definiendo los atributos y asociándolos a la campaña.
+ *description*Sustitúyala por una nueva descripción.

  La descripción puede tener un máximo de 2.048 caracteres.
+ *data-extra-dimensions*Sustitúyala por atributos específicos del vehículo para enriquecer los datos recopilados durante la campaña. Por ejemplo, puedes añadir la marca y el modelo del vehículo a la campaña, y el AWS IoT FleetWise asociará los datos con esos atributos como dimensiones en Amazon Timestream. A continuación, puede consultar los datos comparándolos con la marca y el modelo del vehículo.

```
aws iotfleetwise update-campaign \
            --name campaign-name \
            --action action \
            --description description \
            --data-extra-dimensions data-extra-dimensions
```

Si has [activado el cifrado](key-management.md) mediante una AWS KMS clave gestionada por el cliente, incluye la siguiente declaración de política para que tu función pueda invocar la operación de la `UpdateCampaign` API. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey*",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------

# Eliminar una FleetWise campaña AWS de IoT
<a name="delete-campaign"></a>

Puedes usar la FleetWise consola o la API de AWS IoT para eliminar campañas.

## Eliminación de una campaña (consola)
<a name="delete-campaign-console"></a>

Para eliminar una campaña, usa la FleetWise consola de AWS IoT.

**Para eliminar una campaña**

1. <a name="fleetwise-open-console"></a>Abre la [ FleetWise consola AWS de IoT](https://console.aws.amazon.com/iotfleetwise).

1. <a name="choose-campaigns"></a>En el panel de navegación, elija **Campañas**.

1. En la página **Campañas**, elija la campaña de destino.

1. Elija **Eliminar**.

1. En ¿**Eliminar **campaign-name**?**, introduzca el nombre de la campaña que desea eliminar y, a continuación, elija **Confirmar**.

## Eliminación de una campaña (AWS CLI)
<a name="delete-campaign-cli"></a>

Puedes usar la operación de la [DeleteCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_DeleteCampaign.html)API para eliminar una campaña. En el siguiente ejemplo, se utiliza AWS CLI.

Para eliminar una campaña, ejecute el siguiente comando:

*campaign-name*Sustitúyalo por el nombre del vehículo que vas a eliminar.

```
aws iotfleetwise delete-campaign --name campaign-name
```

**Las particiones de datos eliminadas no se pueden recuperar**  
Al eliminar una campaña, se eliminan todos los datos de los dispositivos y los datos de una partición no se subirán a la nube.

## Verifica la eliminación de la campaña
<a name="verify-campaign-deletion"></a>

Puedes usar la operación de la [ListCampaigns](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_ListCampaigns.html)API para verificar si se ha eliminado una campaña. El siguiente ejemplo utiliza AWS CLI.

Para recuperar una lista paginada de resúmenes de todas las campañas, ejecute el siguiente comando:

```
aws iotfleetwise list-campaigns
```

# Obtenga información sobre FleetWise la campaña de AWS IoT
<a name="get-campaign-information-cli"></a>

Puede utilizar la operación de la [GetCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_GetCampaign.html)API para recuperar la información del vehículo. El siguiente ejemplo utiliza AWS CLI.

Para recuperar los metadatos de una campaña, ejecute el siguiente comando:

*campaign-name*Sustitúyala por el nombre de la campaña que deseas recuperar.

```
aws iotfleetwise get-campaign --name campaign-name
```

**nota**  
Esta operación es [a largo plazo coherente](https://web.stanford.edu/class/cs345d-01/rl/eventually-consistent.pdf). En otras palabras, los cambios que se hagan en la campaña podrían no reflejarse de inmediato.

Si has [activado el cifrado](key-management.md) mediante una AWS KMS clave gestionada por el cliente, incluye la siguiente declaración de política para que tu función pueda invocar la operación de la `GetCampaign` API. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------

# Almacene y reenvíe los datos de la campaña
<a name="store-and-forward"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

Utilice particiones de datos en las campañas para almacenar temporalmente los datos de señales de vehículos y flotas en el Edge. Al configurar las opciones de carga y almacenamiento para las particiones de datos, puede optimizar las condiciones ideales para el reenvío de datos a los destinos de datos designados (como un bucket de Amazon S3). Por ejemplo, puede configurar la partición de datos para almacenar datos en un vehículo hasta que se conecte a una red Wi-Fi. Luego, una vez que el vehículo se conecta, la campaña activa el envío de los datos de esa partición concreta a la nube. Como alternativa, puede recopilar datos mediante AWS IoT Jobs.

**Topics**
+ [Cree particiones de datos](create-campaign-data-partitions.md)
+ [Sube los datos de la campaña](update-campaign-cli-data-partitions.md)
+ [Sube datos mediante AWS IoT Jobs](update-campaign-cli-data-partitions-jobs.md)

# Cree particiones de datos
<a name="create-campaign-data-partitions"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

Una partición de datos de una campaña almacena temporalmente los datos de las señales. Usted configura cuándo y cómo reenviar los datos a la nube. 

Una partición de datos funciona designando primero un conjunto de datos concreto y utilizándolo `dataPartitionId` para una campaña. Luego, puede definir con más detalle las opciones de almacenamiento de la partición, como el tamaño máximo, el tiempo mínimo para mantener la partición de datos activa (en el disco) y dónde almacenar los datos en el Edge. Puede determinar la ubicación de almacenamiento en el vehículo utilizando`storageLocation`. La ubicación de almacenamiento determina el nombre de la carpeta de la partición de datos situada en la carpeta de almacenamiento de la campaña. La carpeta de almacenamiento de la campaña se encuentra en una carpeta que lleva el nombre del vehículo y sigue una ruta de persistencia definida en el archivo de configuración de Edge. Esta es la ruta absoluta de la ubicación de almacenamiento:`{persistency_path} / {vehicle_name} / {campaign_name} / {storage_location}`.

El modo de bobina configurado para `TO_DISK` especificar que los datos particionados deben guardarse en un disco del vehículo. El almacenamiento de datos para las particiones de datos funciona según el método FIFO (primero en entrar, primero en salir). Si eliminas una campaña, también eliminas los datos de la partición de datos asociada. Si no especificas una partición de datos para los casos de on/off uso de conectividad, el AWS IoT FleetWise sigue almacenando los datos en un búfer circular del vehículo cuando no hay conectividad. Cuando se reanuda la conectividad, el AWS IoT FleetWise carga los datos a la nube. Este comportamiento se puede configurar en el FleetWise software Edge Agent para AWS IoT.

**importante**  
Si la partición de datos supera el límite máximo de almacenamiento establecido, los datos más recientes sobrescriben los más antiguos cuando la partición alcanza el tamaño máximo. Los datos perdidos en el Edge no se pueden recuperar. El tamaño de almacenamiento viene determinado por el límite de almacenamiento de Edge.  
Cuando los datos se cargan en la nube, se pueden eliminar una vez transcurrido el tiempo mínimo de vida. Establezca el tiempo mínimo de vida adecuado para evitar su eliminación involuntaria.

Las opciones de carga determinan las expresiones variables y condicionan el idioma. Si se especifican las opciones de carga, también debe especificar las opciones de almacenamiento. También puede solicitar que las señales de las particiones de datos se carguen en la nube. Para obtener más información, consulte [Sube los datos de la campaña](update-campaign-cli-data-partitions.md).

Una vez definidas las condiciones de partición de datos, `signalsToCollect` ayuda a especificar qué señales se deben tener en cuenta en la partición de datos. Puede especificar IDs las particiones de datos o configurarlas `dataPartitionId` `default` para que utilicen una partición de datos predeterminada establecida. Una señal sin una señal especificada se `dataPartitionId` asociará a la señal predeterminada`dataPartition`.

**Para crear una partición de datos**

Con el siguiente ejemplo, cree una campaña con una condición de almacenamiento de particiones de datos. Esta campaña de ejemplo está configurada para almacenar los datos del vehículo en Amazon Timestream.

1. *campaign-name*Sustitúyala por el nombre de la campaña que estás creando.

1. (Opcional) Proporcione una descripción.

1. *role-arn*Sustitúyalo por el nombre de recurso de Amazon (ARN) del rol de ejecución de tareas que otorga el FleetWise permiso de AWS IoT para entregar datos a la tabla Timestream.

1. *table-arn*Sustitúyalo por el ARN de la tabla Timestream.

1. *signal-catalog-arn*Sustitúyalo por el ARN del catálogo de señales.

1. *data-partition-id*Sustitúyalos por el `dataPartitions` ID y por el ID con el que se va a asociar`signalsToCollect`. En primer lugar, sustituya el ID de la partición de datos que se va a utilizar en la señal. Pues`signalsToCollect`, el ID debe coincidir con uno de los IDs proporcionados`dataPartitions`.
**nota**  
Establezca una partición de datos predeterminada para una campaña `default` utilizándola como ID.

1. *target-arn*Sustitúyalo por el ARN de una flota o vehículo que haya creado.

```
{
    "name": "campaign-name",
    "description": "Measurement of SOC, SOH, thermal, and power optimization for Fleet 2704",
    "targetArn": "target-arn",
    "collectionScheme": {
        "conditionBasedCollectionScheme": {
            "conditionLanguageVersion": 1,
            "expression": "$variable.`Vehicle.BMS` > 50",
            "minimumTriggerIntervalMs": 1000,
            "triggerMode": "ALWAYS"
        }
    },
    "compression": "SNAPPY",
    "dataDestinationConfigs": [{
        "timestreamConfig": {
            "executionRoleArn": "role-arn",
            "timestreamTableArn": "table-arn"
        }
    }],
    "dataPartitions": [{
        "id": "data-partition-id",
        "storageOptions": {
            "maximumSize": {
                "unit": "GB",
                "value": 1024
            },
            "minimumTimeToLive": {
                "unit": "WEEKS",
                "value": 6
            },
            "storageLocation": "string"
        },
        "uploadOptions": {
            "conditionLanguageVersion": 1,
            "expression": "$variable.`Vehicle.BMS.PowerOptimization` > 90"
        }
    }],
    "signalCatalogArn": "signal-catalog-arn",
    "signalsToCollect": [{
        "dataPartitionId": "data-partition-id",
        "maxSampleCount": 50000,
        "minimumSamplingIntervalMs": 100,
        "name": "Below-90-percent"
    }],
    "spoolingMode": "TO_DISK",
    "tags": [{
        "Key": "BMS",
        "Value": "Under-90"
    }]
}
```

Tras cumplir todas las condiciones especificadas, los datos particionados se reenvían a la nube, lo que permite recopilar y almacenar nuevas señales particionadas.

A continuación, llamará a la `UpdateCampaign` API para implementarla en el FleetWise software Edge Agent para AWS IoT. Para obtener más información, consulte [Sube los datos de la campaña](update-campaign-cli-data-partitions.md).

# Sube los datos de la campaña
<a name="update-campaign-cli-data-partitions"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

Hay dos formas de cargar los datos de la campaña en Edge:
+ Las campañas que cumplan tus condiciones de carga subirán los datos automáticamente a la nube una vez que se aprueben. Para aprobar una campaña, usa la operación de la `updateCampaign` API. 
+ A través de AWS IoT Jobs, puedes forzar la carga de datos incluso cuando no se cumplan las condiciones especificadas. Para obtener más información, consulte [Sube datos mediante AWS IoT Jobs](update-campaign-cli-data-partitions-jobs.md).

**Para cargar los datos de la campaña mediante la operación `UpdateCampaign` de la API**

Una vez creada la campaña, el estado de la campaña se muestra como tal `WAITING_FOR_APPROVAL` hasta que cambies `action` a`APPROVED`.
+ Usa el siguiente ejemplo para actualizar la campaña `action` recurriendo a la operación de la [UpdateCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_UpdateCampaign.html)API.

  ```
  {
     "action": "APPROVED",
     "dataExtraDimensions": [ "string" ],
     "description": "string",
     "name": "string"
  }
  ```

# Sube datos mediante AWS IoT Jobs
<a name="update-campaign-cli-data-partitions-jobs"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

Con AWS IoT Jobs, puedes configurar campañas para subir los datos de vehículos almacenados a la nube siempre que los necesites.

**Para crear un documento de trabajo para tu campaña**
+ Utilice el siguiente ejemplo para crear un documento de trabajo para la campaña. Un documento de trabajo es un archivo.json que contiene información sobre los vehículos o las flotas necesarios para realizar un trabajo. Para obtener más información sobre la creación de un documento de trabajo, consulte [Crear y administrar trabajos mediante la AWS CLI](https://docs.aws.amazon.com/iot/latest/developerguide/manage-job-cli.html) Guía para *AWS IoT desarrolladores*.

  Para solicitar que solo un vehículo cargue datos, defina el objetivo de la tarea en AWS IoT lo que esté asociado al vehículo. Para solicitar que varios vehículos (de la misma campaña) suban datos, crea un grupo de cosas con todas las cosas correspondientes a los vehículos y, a continuación, establece el objetivo de trabajo en ese grupo de cosas.

  ```
  {
    "version": "1.0",
    "parameters": {
       "campaignArn": ${aws:iot:parameter:campaignArn},
       "endTime": ${aws:iot:parameter:endTime}
    }
  }
  ```

  1. `CampaignArn`Sustitúyalo por el nombre de recurso de Amazon (ARN) de una campaña de la misma región y cuenta. Se requiere el ARN de la campaña.

  1. (Opcional) `endTime` Sustitúyalo por la marca de tiempo de los datos recopilados en el vehículo en formato ISO 8601 UTC (sin milisegundos). Por ejemplo, `2024-03-05T23:00:00Z`. La marca de tiempo es exclusiva y determina el último punto de datos que se va a cargar. Si lo omites`endTime`, el software Edge Agent seguirá cargándose hasta que se carguen todos los datos almacenados en la campaña. Una vez cargados todos los datos, actualiza el [estado de ejecución del trabajo](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs-lifecycle.html#iot-job-execution-states) a`SUCCEEDED`. El [estado](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs-lifecycle.html#iot-jobs-states) del trabajo se actualiza a`COMPLETED`.

**Para crear un trabajo mediante una plantilla de trabajo gestionado**

1. Elija **IoT-IO TFleet Wise- CollectCampaignData** de la lista de plantillas administradas. *Para obtener más información, consulte [Crear un trabajo a partir de plantillas AWS administradas](https://docs.aws.amazon.com/iot/latest/developerguide/job-template-manage-console-create.html) en la AWS IoT Guía para desarrolladores.*

1. La plantilla gestionada tiene los `endTime` parámetros `CampaignArn` y.

   1. `CampaignArn`Sustitúyalo por el nombre de recurso de Amazon (ARN) de una campaña de la misma región y cuenta. Se requiere el ARN de la campaña.

   1. (Opcional) `endTime` Sustitúyalo por la marca de tiempo de los datos recopilados en el vehículo en formato ISO 8601 UTC (sin milisegundos). Por ejemplo, `2024-03-05T23:00:00Z`. La marca de tiempo es exclusiva y determina el último punto de datos que se va a cargar. Si lo omites`endTime`, el software Edge Agent seguirá cargándose hasta que se carguen todos los datos almacenados en la campaña. Una vez cargados todos los datos, actualiza el [estado de ejecución del trabajo](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs-lifecycle.html#iot-job-execution-states) a`SUCCEEDED`. El [estado](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs-lifecycle.html#iot-jobs-states) del trabajo se actualiza a`COMPLETED`.

Para ver temas relacionados con la solución de problemas, consulte[Almacena y reenvía las incidencias](troubleshooting-campaign.md).

Para obtener más información sobre los AWS IoT trabajos, consulte los [trabajos](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html) en la *guía para AWS IoT desarrolladores*.

# Recopile datos de códigos de problemas de diagnóstico mediante AWS IoT FleetWise
<a name="diagnostic-trouble-codes"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

Cuando un vehículo detecta un error, genera un código de diagnóstico de averías (DTC) y graba una instantánea de los sensores o actuadores afectados. DTCs le ayudan a conocer los errores casi en tiempo real, a entender su causa y a tomar medidas correctivas. AWS El IoT FleetWise admite la recopilación de DTCs, incluidas las correspondientes instantáneas de DTC y datos ampliados, a través de una campaña de recopilación de datos. En este tema se presentan los conceptos, los flujos de trabajo y las palabras clave que facilitan la recopilación de datos de DTC, ilustrados con ejemplos.

A continuación se muestran los conceptos clave para el uso de los DTC.

**Funciones definidas a medida**  
Una función definida a medida es la capacidad de invocar y ejecutar sus propias funciones predefinidas en el Edge Agent, lo que amplía el concepto de [decodificación personalizada](network-agnostic-data-collection.md). Estas funciones se utilizan en coordinación con el FleetWise agente de AWS IoT. El FleetWise software Edge Agent para AWS IoT proporciona funciones integradas para calcular las estadísticas de señal, como los valores mínimo, máximo y promedio. Una función personalizada amplía esta capacidad al permitirle crear una lógica personalizada para casos de uso específicos. Para recopilar datos sobre los códigos de diagnóstico de problemas (DTC), los desarrolladores pueden aprovechar las funciones personalizadas para implementar mecanismos avanzados de recuperación de datos, como la obtención de códigos DTC, instantáneas y datos ampliados directamente desde la periferia del vehículo mediante los Servicios de Diagnóstico Unificado (UDS) o interfaces de diagnóstico alternativas.   
*Para obtener más información, consulte la guía de [funciones personalizadas y la [implementación de referencia sobre la recopilación de datos de DTC](https://github.com/aws/aws-iot-fleetwise-edge/blob/main/docs/dev-guide/edge-agent-uds-dtc-dev-guide.md#dtc_query-function-implementation) en la Guía](https://github.com/aws/aws-iot-fleetwise-edge/blob/main/docs/dev-guide/custom-function-dev-guide.md) para desarrolladores de Edge Agent.*

**Obtención de señales**  
En las campañas de recopilación de datos, las señales generalmente se recopilan de forma continua desde un dispositivo y se almacenan en búfer en el software Edge Agent. Luego, las señales se cargan o almacenan periódicamente en campañas basadas en el tiempo o se activan en función de condiciones específicas en las campañas basadas en las condiciones. Sin embargo, debido a la preocupación por la congestión del tráfico de los dispositivos, las señales DTC no se pueden recopilar de los dispositivos y almacenarlas en búfer de forma continua. Para solucionar este problema, el AWS IoT FleetWise proporciona la captación de señales, lo que garantiza que la señal objetivo se obtenga de forma discontinua desde un dispositivo.  
La obtención de señales admite acciones tanto periódicas como condicionadas. Puede definir el método, las condiciones y las acciones exactas basadas en la búsqueda mediante funciones personalizadas definidas para cada señal que no se deben recopilar de un dispositivo de forma continua. En el caso de las señales gestionadas mediante el mecanismo de captación de señales, el tipo de activación y las condiciones de almacenamiento local o carga en la nube siguen rigiéndose por los dos `CollectionScheme` factores `timeBasedCollectionScheme` y `conditionBasedCollectionScheme` son compatibles, lo que equivale a lo que ocurre con las señales normales.

Los siguientes temas le muestran cómo puede crear y usar DTCs.

**Topics**
+ [Palabras clave de códigos de diagnóstico de problemas](dtc-keywords.md)
+ [Cree una campaña de recopilación de datos para los códigos de diagnóstico de problemas](dtc-data-collection.md)
+ [Casos de uso de códigos de diagnóstico de problemas](dtc-use-cases.md)

# Palabras clave de códigos de diagnóstico de problemas
<a name="dtc-keywords"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

**`signalsToFetch`parámetro para crear una campaña**

Utilice la signalsToFetchsintaxis para configurar cómo se puede obtener la información de la señal en el Edge. La obtención de señales estándar se controla mediante el modelado mediante reglas definidas explícitamente en un manifiesto del decodificador o definidas de forma personalizada mediante Edge First Modeling. Con las señales que recuperar, puedes definir cuándo y cómo se obtienen los datos durante las campañas. 

Las señales que se van a buscar permiten recopilar información sobre los DTC. Por ejemplo, puede crear una señal denominada tipo cadena `DTC_Info` que contenga información sobre los DTC de cada unidad de control del motor (ECU). O bien, puede filtrar por una ECU específica.
+ `SignalFetchInformation`definiciones de estructura y parámetros.

  ```
  structure SignalFetchInformation {
      @required
      fullyQualifiedName: NodePath,
      @required
      signalFetchConfig: SignalFetchConfig,
      // Conditional language version for this config
      conditionLanguageVersion: languageVersion,
      @required
      actions: EventExpressionList,
  }
  ```
  + `fullyQualifiedName`: el nombre completo (FQDN) de la señal para la que desea utilizar la búsqueda personalizada. 
  + `signalFetchConfig`: define las reglas sobre cómo se deben obtener las señales definidas anteriormente. Admite la búsqueda basada en el tiempo y en la condición.
  + `conditionLanguageVersion`: la versión del lenguaje condicional utilizada para analizar la expresión en la configuración.
  + `actions`: una lista de todas las expresiones de acción evaluadas en Edge. The Edge obtendrá el valor de la señal definida.
**importante**  
Las acciones solo se pueden usar`custom_function`.

## Palabras clave de expresión de campaña
<a name="dtc-expression-keywords"></a>

La siguiente expresión toma el nombre completo de una señal compatible con el vehículo y vuelve a ser verdadera si la señal no tiene ningún dato en los búferes de señal del Edge. Por otro lado, devuelve falso.

```
isNull(signalFqdn:String): Boolean
```

**Example uso**  

```
isNull($variable.`Vehicle.ECU1.DTC_INFO`) == false

We want to make sure DTC_Info signal is being generated
on edge.
```

Esta expresión toma la siguiente entrada:

**Nombre de la función: cadena**  
El nombre de la función personalizada que admite Edge

**parámetros: varargs *Expression***  
Parámetros para. `functionName` Puede ser cualquier lista de expresiones.  
Los parámetros admiten tipos literales: String, Int, Boolean o Double.

```
custom_function(functionName:String, params: varargsExpression): Void
```

**Example uso**  

```
{
       "fullyQualifiedName":"Vehicle.ECU1.DTC_INFO",
       "signalFetchConfig":{
          "timeBased":{
             "executionFrequencyMs":2000
          }
       },
       "actions":"custom_function(“DTC_QUERY”, -1, 2, -1)"
    }
```

# Cree una campaña de recopilación de datos para los códigos de diagnóstico de problemas
<a name="dtc-data-collection"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

En este tema se describe cómo crear una campaña de recopilación de datos para códigos de diagnóstico de problemas (DTC).

1. Defina una señal personalizada en el Edge. Debe definir las reglas de decodificación para la señal DTC en el Edge como una señal decodificada personalizada. Para obtener más información, consulte [Tutorial: Configurar la recopilación de datos independiente de la red mediante una interfaz de decodificación personalizada](network-agnostic-data-collection.md).

1. Defina una función personalizada en el Edge. Debe definir una función personalizada para recopilar las señales DTC en el Edge en un momento compilado.

   Para obtener más información, consulte la [guía de funciones personalizadas](https://github.com/aws/aws-iot-fleetwise-edge/blob/main/docs/dev-guide/custom-function-dev-guide.md ) y la [implementación de referencia sobre la recopilación de datos de DTC](https://github.com/aws/aws-iot-fleetwise-edge/blob/main/docs/dev-guide/edge-agent-uds-dtc-dev-guide.md#dtc_query-function-implementation) en la Guía para *desarrolladores de Edge Agent*.
**nota**  
Un ejemplo de función definida personalizada es el `DTC_QUERY` que se muestra en el [script de demostración](https://github.com/aws/aws-iot-fleetwise-edge/blob/main/docs/dev-guide/edge-agent-uds-dtc-dev-guide.md).

1. Cree un catálogo de señales que modele una señal DTC como un tipo de cadena.

   ```
   [
    {
       "branch": {
           "fullyQualifiedName": "Vehicle",
           "description": "Vehicle"
           }
         },
         {
       "branch": {
           "fullyQualifiedName": "Vehicle.ECU1",
           "description": "Vehicle.ECU1"
           }
         },
         {
       "sensor": {
           "fullyQualifiedName": "Vehicle.ECU1.DTC_INFO",
           "description": "Vehicle.ECU1.DTC_INFO",
           "dataType": "STRING"
         }
      }
    ]
   ```

1. Cree y active un modelo de vehículo con la señal DTC añadida.

1. Cree y active un manifiesto del decodificador con la señal DTC añadida. La señal DTC debe ser del tipo de decodificador `CUSTOM_DECODING_SIGNAL` de señal con un `CUSTOM_DECODING_INTERFACE` tipo de interfaz de red.  
**Example decodificador de señal**  

   ```
   [
     {
       "fullyQualifiedName": "Vehicle.ECU1.DTC_INFO",
       "interfaceId": "UDS_DTC",
       "type": "CUSTOM_DECODING_SIGNAL",
       "customDecodingSignal": {
         "id": "Vehicle.ECU1.DTC_INFO"
       }
     }
    ]
   ```  
**Example interfaz de red**  

   ```
   [
     {
       "interfaceId": "UDS_DTC",
       "type": "CUSTOM_DECODING_INTERFACE",
       "customDecodingInterface": {
         "name": "NamedSignalInterface"
       }
     }
   ]
   ```
**nota**  
Las señales de la red de área del controlador (CAN) no admiten el tipo de datos de cadena.

1. Aprovisiona y crea vehículos. Los vehículos deben utilizar un modelo de vehículo (manifiesto de modelo) y un manifiesto de decodificador que se activaron en los pasos anteriores.

1. Crea y aprueba la campaña. Debe crear una campaña definiendo las señales DTC (opcionalmente, con señales de telemetría) e implementarlas en los vehículos.

1. Acceda a los datos en el destino definido. Los datos de los DTC incluyen `DTCCode``DTCSnapshot`, y `DTCExtendedDatastrings` como una cadena sin procesar en el destino de datos definido en la campaña.

# Casos de uso de códigos de diagnóstico de problemas
<a name="dtc-use-cases"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

En los siguientes casos de uso, se supone que la `DTC_QUERY` función se definió en el [script de demostración](https://github.com/aws/aws-iot-fleetwise-edge/blob/main/docs/dev-guide/edge-agent-uds-dtc-dev-guide.md).

## Búsqueda periódica
<a name="dtc-periodic-fetch"></a>

Obtenga una colección de DTC a intervalos configurados.

El siguiente ejemplo es una campaña en la que se obtienen señales periódicas `Vehicle.DTC_INFO` para todos DTCs con una máscara de estado para todos. ECUs Existe una condición para la recopilación de datos. `Vehicle.DTC_INFO`

```
{
  "compression": "SNAPPY",
  "spoolingMode": "TO_DISK",
  "signalsToFetch": [
    {
      "fullyQualifiedName": "Vehicle.ECU1.DTC_INFO",
      "signalFetchConfig": {
        "timeBased": {
        // The FleetWise Edge Agent will query the UDS module for all DTCs every five seconds.
          "executionFrequencyMs": 5000
        }
      },
      "actions": [
      // Every five seconds, this action is called and its output is stored in the
      // signal history buffer of Vehicle.DTC_INFO
        "custom_function(\"DTC_QUERY\", -1, 2, -1)"
      ]
    }
  ],
  "signalsToCollect": [
    {
      "name": "Vehicle.ECU1.DTC_INFO"
    }
  ],
  "collectionScheme": {
    "conditionBasedCollectionScheme": {
      "conditionLanguageVersion": 1,
      // Whenever a new DTC is filled into the signal, the data is ingested.
      "expression": "!isNull($variable.`Vehicle.ECU1.DTC_INFO`)",
      "minimumTriggerIntervalMs": 1000,
      // Make sure that data is ingested only when there are new DTCs.
      "triggerMode": "RISING_EDGE"
    }
  },
  "dataDestinationConfigs": [
    {
      "s3Config": 
        {
          "bucketArn": "bucket-arn",
          "dataFormat": "PARQUET",
          "prefix": "campaign-name",
          "storageCompressionFormat": "GZIP"
        }
    }
  ]
}
```

## Búsqueda basada en condiciones
<a name="dtc-condition-fetch"></a>

Obtenga un conjunto de DTC cuando se cumpla una condición. Por ejemplo, cuando la señal CAN lo esté`Vehicle.Ignition == 1`, busque y cargue los datos del DTC.

En la siguiente campaña de ejemplo, se obtiene una señal basada en una condición `Vehicle.ECU1.DTC_INFO` para comprobar si el DTC (» AAA123 «) está pendiente con el número de registro 1 para la ECU-1. Esta campaña recopila y carga de datos en función del tiempo.

```
{
  "compression": "SNAPPY",
  "spoolingMode": "TO_DISK",
  "signalsToFetch": [
    {
      "fullyQualifiedName": "Vehicle.ECU1.DTC_INFO",
      "signalFetchConfig": {
        "conditionBased": {
        // The action will only run when the ignition is on.
          "conditionExpression": "$variable.`Vehicle.Ignition` == 1",
          "triggerMode": "ALWAYS"
        }
      },
      // The UDS module is only requested for the specific ECU address and the specific DTC Number/Status.
      "actions": ["custom_function(\"DTC_QUERY\", 1, 2, 8, \"0xAAA123\")"]
    }
  ],
  "signalsToCollect": [
    {
      "name": "Vehicle.ECU1.DTC_INFO"
    },
    {
      "name": "Vehicle.Ignition"
    }
  ],
  "collectionScheme": {
    "timeBasedCollectionScheme": {
      "periodMs": 10000
    }
  },
  "dataDestinationConfigs": [
    {
      "s3Config": 
        {
          "bucketArn": "bucket-arn",
          "dataFormat": "PARQUET",
          "prefix": "campaign-name",
          "storageCompressionFormat": "GZIP"
        }
    }
  ]
}
```

## Búsqueda bajo demanda
<a name="fetch-dtc-for-fleet"></a>

Busca un DTC específico para una flota.

Para un caso de uso bajo demanda, puedes usar la misma campaña que se define en la búsqueda periódica. El efecto bajo demanda se consigue suspendiendo la campaña poco después de desplegarla mediante la FleetWise consola de AWS IoT o ejecutando el siguiente comando CLI.
+ *command-name*Sustitúyalo por el nombre del comando.

```
aws iotfleetwise update-campaign \
    --name campaign-name \
    --action APPROVE
```

A continuación, suspenda la campaña cuando lleguen los datos del DTC.

```
aws iotfleetwise update-campaign \
    --name campaign-name \
    --action SUSPEND
```

Puedes reanudar la campaña de nuevo para obtener los datos de los DTC.

```
aws iotfleetwise update-campaign \
    --name campaign-name \
    --action RESUME
```

# Visualice los datos de FleetWise vehículos de AWS IoT
<a name="process-visualize-data"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

El FleetWise software Edge Agent para AWS IoT envía los datos del vehículo seleccionados a un tema de MQTT o los transfiere a Amazon Timestream o Amazon Simple Storage Service (Amazon S3). Una vez que los datos lleguen al destino de los datos, puede utilizar otros AWS servicios para procesarlos, redireccionarlos, visualizarlos y compartirlos.

**nota**  
Amazon Timestream no está disponible en la región Asia Pacífico (Bombay).

## Procesar los datos del vehículo enviados a un tema de MQTT
<a name="process-mqtt-data"></a>

Los datos del vehículo enviados mediante la mensajería MQTT se envían prácticamente en tiempo real y te permiten utilizar las reglas para tomar medidas o enviar los datos a otros destinos. Para obtener más información sobre el uso de MQTT, consulte [las reglas y [protocolos de comunicación de los dispositivos](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)AWS IoT en la Guía para AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) *desarrolladores*.

El esquema de datos predeterminado que se envía en un mensaje MQTT contiene los siguientes campos.


| Nombre del campo | Tipo de datos: | Description (Descripción) | 
| --- | --- | --- | 
|  `eventId`  |  varchar  |  El ID del evento de recopilación de datos.  | 
|  `vehicleName`  |  varchar  |  El ID del vehículo del que se han recopilado los datos.  | 
|  `name`  |  varchar  |  El nombre de la campaña que utiliza el software Edge Agent para recopilar datos.  | 
|  `time`  |  timestamp  |  La marca de tiempo del punto de datos.  | 
|  `measure_name`  |  varchar  |  El nombre de la señal.  | 
|  `measure_value::bigint`  |  bigint  |  Valores de señal de tipo Entero.  | 
|  `measure_value::double`  |  double  |  Valores de señal de tipo Doble.  | 
|  `measure_value::boolean`  |  boolean  |  Valores de señal de tipo Booleano.  | 
|  `measure_value::varchar`  |  varchar  |  Valores de señal de tipo varchar.  | 

## Procesa los datos del vehículo en Timestream
<a name="process-vehicle-data"></a>

Amazon Timestream es una base de datos de serie temporal completamente administrada que puede almacenar y analizar billones de puntos de datos de serie temporal por día. Los datos se almacenan en una tabla de Timestream administrada por el cliente. Puede utilizar Timestream para consultar los datos de los vehículos y obtener información sobre ellos. Para obtener más información, consulte [¿Qué es Amazon Timestream?](https://docs.aws.amazon.com/timestream/latest/developerguide/what-is-timestream.html)

El esquema de datos predeterminado que se transfiere a Timestream contiene los siguientes campos:


| Nombre del campo | Tipo de datos: | Description (Descripción) | 
| --- | --- | --- | 
|  `eventId`  |  varchar  |  El ID del evento de recopilación de datos.  | 
|  `vehicleName`  |  varchar  |  El ID del vehículo del que se han recopilado los datos.  | 
|  `name`  |  varchar  |  El nombre de la campaña que utiliza el software Edge Agent para recopilar datos.  | 
|  `time`  |  timestamp  |  La marca de tiempo del punto de datos.  | 
|  `measure_name`  |  varchar  |  El nombre de la señal.  | 
|  `measure_value::bigint`  |  bigint  |  Valores de señal de tipo Entero.  | 
|  `measure_value::double`  |  double  |  Valores de señal de tipo Doble.  | 
|  `measure_value::boolean`  |  boolean  |  Valores de señal de tipo Booleano.  | 
|  `measure_value::varchar`  |  varchar  |  Valores de señal de tipo varchar.  | 

## Visualice los datos del vehículo almacenados en Timestream
<a name="visualize-vehicle-data"></a>

Una vez transferidos los datos del vehículo a Timestream, puede usar los siguientes servicios de AWS para visualizarlos, supervisarlos, analizarlos y compartirlos.
+ Visualice y supervise los datos en los paneles mediante [Grafana o Amazon Managed Grafana](https://docs.aws.amazon.com/timestream/latest/developerguide/Grafana.html). Puede visualizar datos de múltiples AWS fuentes (como Amazon CloudWatch y Timestream) y otras fuentes de datos con un único panel de Grafana.
+ [Analice y visualice los datos en los paneles de control con Quick.](https://docs.aws.amazon.com/timestream/latest/developerguide/Quicksight.html)

## Procese los datos del vehículo en Amazon S3
<a name="process-vehicle-data-s3"></a>

Amazon S3 es un servicio de almacenamiento de objetos que almacena y protege cualquier cantidad de datos. Puede usar S3 para diversos casos de uso, como lagos de datos, copias de seguridad y restauración, archivado, aplicaciones empresariales, AWS IoT dispositivos y análisis de macrodatos. Los datos se almacenan en S3 como objetos en buckets. Para obtener más información, consulte [¿Qué es Amazon S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)

El esquema de datos predeterminado que se transfiere a Amazon S3 contiene los siguientes campos:


| Nombre del campo | Tipo de datos: | Description (Descripción) | 
| --- | --- | --- | 
|  `eventId`  |  varchar  |  El ID del evento de recopilación de datos.  | 
|  `vehicleName`  |  varchar  |  El ID del vehículo del que se han recopilado los datos.  | 
|  `name`  |  varchar  |  El nombre de la campaña que utiliza el software Edge Agent para recopilar datos.  | 
|  `time`  |  timestamp  |  La marca de tiempo del punto de datos.  | 
|  `measure_name`  |  varchar  |  El nombre de la señal.  | 
|  `measure_value_BIGINT`  |  bigint  |  Valores de señal de tipo Entero.  | 
|  `measure_value_DOUBLE`  |  double  |  Valores de señal de tipo Doble.  | 
|  `measure_value_BOOLEAN`  |  boolean  |  Valores de señal de tipo Booleano.  | 
|  `measure_value_STRUCT`  |  struct  |  Valores de señal de tipo estructura.  | 
|  `measure_value_VARCHAR`  |  varchar  |  Valores de señal de tipo varchar.  | 

## Formato de objeto Amazon S3
<a name="visualize-vehicle-data-s3-format"></a>

AWS El IoT FleetWise transfiere los datos del vehículo a S3, donde se guardan como un objeto. Puede usar el URI del objeto que identifica los datos de forma exclusiva para buscar datos de la campaña. El formato del URI del objeto de S3 depende de si los datos recopilados son datos no estructurados o procesados.

### Datos no estructurados
<a name="unstructured-data"></a>

Los datos no estructurados se almacenan en S3 de una manera no predefinida. Puede estar en varios formatos, como imágenes o vídeos. 

Los mensajes de los vehículos que se transmiten al AWS IoT FleetWise con datos de señal de los archivos de Amazon Ion se decodifican y se transfieren a S3 como objetos. Los objetos de S3 representan cada señal y están codificados en binario.

El URI del objeto de S3 de datos utiliza el formato siguiente:

```
s3://bucket-name/prefix/unstructured-data/random-ID-yyyy-MM-dd-HH-mm-ss-SSS-vehicleName-signalName-fieldName
```

### Datos procesados
<a name="processed-data"></a>

Los datos procesados se almacenan en S3 y se someten a pasos de procesamiento que validan, enriquecen y transforman los mensajes. Las listas de objetos y la velocidad son ejemplos de datos procesados. 

Los datos transferidos a S3 se almacenan como objetos que representan registros almacenados en búfer durante un periodo de unos 10 minutos. De forma predeterminada, AWS IoT FleetWise añade un prefijo de hora UTC en el formato `year=YYYY/month=MM/date=DD/hour=HH` antes de escribir objetos en S3. Este prefijo crea una jerarquía lógica en el bucket en la que cada barra inclinada (`/`) crea un nivel jerárquico. Los datos procesados también contienen el URI del objeto de S3 para los datos no estructurados.

El URI del objeto de S3 de datos procesados usa el formato siguiente:

```
s3://bucket-name/prefix/processed-data/year=YYYY/month=MM/day=DD/hour=HH/part-0000-random-ID.gz.parquet
```

### Datos sin procesar
<a name="raw-data"></a>

Los datos sin procesar, también conocidos como datos primarios, son datos recopilados de los archivos de Amazon Ion. Puede utilizar los datos sin procesar para solucionar cualquier problema o para determinar la causa raíz de los errores.

El URI del objeto de S3 de datos sin procesar usa el formato siguiente:

```
s3://bucket-name/prefix/raw-data/vehicle-name/eventID-timestamp.10n
```

## Analice los datos del vehículo almacenados en Amazon S3
<a name="analyze-vehicle-data-s3"></a>

Una vez transferidos los datos del vehículo a S3, puede usar los siguientes servicios de AWS para monitorearlos, analizarlos y compartirlos.

Extraiga y analice datos con Amazon SageMaker AI para flujos de trabajo posteriores de etiquetado y aprendizaje automático (ML).

Para obtener más información, consulte los siguientes temas de la *Guía para desarrolladores de Amazon SageMaker AI*:
+ [Procesamiento de datos](https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html)
+ [Formación de modelos de machine learning](https://docs.aws.amazon.com/sagemaker/latest/dg/train-model.html)
+ [Etiquetar imágenes](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-images.html)

Cataloga tus datos con Amazon Athena Rastreador de AWS Glue y analízalos. De forma predeterminada, los objetos escritos en S3 tienen particiones temporales al estilo de Apache Hive, con rutas de datos que contienen pares clave-valor conectados por signos iguales.

Para obtener más información, consulte los siguientes temas en la *Guía del usuario de Amazon Athena*.
+ [Particiones de datos en Athena](https://docs.aws.amazon.com/athena/latest/ug/partitions.html)
+ [Uso AWS Glue para conectarse a fuentes de datos en Amazon S3](https://docs.aws.amazon.com/athena/latest/ug/data-sources-glue.html)
+ [Mejores prácticas al usar Athena con AWS Glue](https://docs.aws.amazon.com/athena/latest/ug/glue-best-practices.html)

Visualice los datos con Quick leyendo directamente la tabla de Athena o el bucket de S3.

**sugerencia**  
Si estás leyendo directamente desde S3, confirma que los datos de tu vehículo estén en formato JSON, ya que Quick no es compatible con el formato Apache Parquet.

Para obtener más información, consulta los siguientes temas de la *Guía rápida del usuario de Amazon*:
+ [Orígenes de datos admitidos](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-sources.html)
+ [Creación de un origen de datos](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-source.html)