

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.

# Habilite la detección de anomalías en los sensores de un activo
<a name="anom-detection-sensors-asset"></a>

## Crear un modelo de cálculo ()AWS CLI
<a name="create-computation-model"></a>

Para crear un modelo de cálculo, utilice la interfaz de línea de AWS comandos ()AWS CLI. Tras definir el modelo de cálculo, entrene el modelo y programe la inferencia para detectar anomalías en un activo. AWS IoT SiteWise
+ Cree un archivo `anomaly-detection-computation-model-payload.json` con el siguiente contenido:

  ```
  {
      "computationModelName": "anomaly-detection-computation-model-name",
      "computationModelConfiguration": {
          "anomalyDetection": {
              "inputProperties": "${input_properties}",
              "resultProperty": "${result_property}"
          }
      },
      "computationModelDataBinding": {
          "input_properties": {
              "list": [{
                      "assetModelProperty": {
                          "assetModelId": "asset-model-id",
                          "propertyId": "input-property-id-1"
                      }
                  },
                  {
                      "assetModelProperty": {
                          "assetModelId": "asset-model-id",
                          "propertyId": "input-property-id-2"
                      }
                  }
              ]
          },
          "result_property": {
              "assetModelProperty": {
                  "assetModelId": "asset-model-id",
                  "propertyId": "results-property-id"
              }
          }
      }
  }
  ```
+ Ejecute el siguiente comando para crear un modelo de cálculo:

  ```
  aws iotsitewise create-computation-model \
      --cli-input-json file://anomaly-detection-computation-model-payload.json
  ```

## ExecuteAction Preparación de la carga útil de la API
<a name="create-action-payload"></a>

 Los siguientes pasos para ejecutar la formación y la inferencia se realizan con la [ExecuteAction](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExecuteAction.html)API. Tanto el entrenamiento como la inferencia se configuran con una configuración de carga útil de acciones de JSON. Al invocar la [ExecuteAction](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExecuteAction.html)API, la carga útil de la acción debe proporcionarse como un valor junto con una carga útil. `stringValue` 

 La carga útil debe cumplir estrictamente los requisitos de la API. En concreto, el valor debe ser una **cadena plana**, sin **caracteres de control** (por ejemplo, líneas nuevas, tabulaciones o devoluciones).

Las siguientes opciones proporcionan dos formas fiables de proporcionar una carga útil de acción válida: 

### Opción 1: utilice un archivo de carga limpio
<a name="clean-payload-file"></a>

El siguiente procedimiento describe los pasos para limpiar un archivo de carga útil:

1. Limpie el archivo para eliminar los caracteres de control.

   ```
   tr -d '\n\r\t' < original-action-payload.json > training-or-inference-action-payload.json
   ```

1. Ejecute la acción con el archivo`@=file://...`.

   ```
   aws iotsitewise execute-action \
       --target-resource computationModelId=<MODEL_ID> \
       --action-definition-id <ACTION_DEFINITION_ID> \
       --resolve-to assetId=<ASSET_ID> \
       --action-payload stringValue@=file://training-or-inference-action-payload.json
   ```

### Opción 2: cadena en línea con comillas de escape
<a name="inline-string-quotes"></a>

En los siguientes pasos se describen los pasos para suministrar la carga útil en línea y evitar los archivos intermediarios:
+ Usa comillas dobles escapadas (`\"`) dentro de la cadena JSON.
+ Envuelve la `StringValue=..` expresión completa entre comillas dobles.

**Example de una carga útil de acción que se ha escapado:**  

```
aws iotsitewise execute-action \
    --target-resource computationModelId=<MODEL_ID> \
    --action-definition-id <ACTION_DEFINITION_ID> \
    --resolve-to assetId=<ASSET_ID> \
    --action-payload "stringValue={\"exportDataStartTime\":1717225200,\"exportDataEndTime\":1722789360,\"targetSamplingRate\":\"PT1M\"}"
```

## Entrena al modelo ()AWS CLI
<a name="start-training-cli"></a>

Una vez creado un modelo de cálculo, puede entrenar un modelo en función de los activos. Siga los pasos que se indican a continuación para entrenar un modelo para un activo:

1. Ejecute el siguiente comando para buscar el `actionDefinitionId` de la acción `AWS/ANOMALY_DETECTION_TRAINING`. `computation-model-id`Sustitúyalo por el identificador devuelto en el paso anterior.

   ```
   aws iotsitewise describe-computation-model \
       --computation-model-id computation-model-id
   ```

1. Cree un archivo llamado `anomaly-detection-training-payload.json` y añada los siguientes valores:
**nota**  
 La carga útil debe ajustarse a[Opción 1: utilice un archivo de carga limpio](#clean-payload-file). 

   1. `StartTime`con el inicio de los datos de entrenamiento, proporcionados en segundos por época.

   1. `EndTime`con el final de los datos de entrenamiento, proporcionados en segundos de época.

   1. Opcionalmente[Configuraciones de entrenamiento avanzadas](adv-training-configs.md), puede configurarlo para mejorar el rendimiento del modelo.

      1. (Opcional) `TargetSamplingRate` con la frecuencia de muestreo de los datos.

      1. (Opcional) `LabelInputConfiguration` para especificar los períodos de tiempo en los que se produjo un comportamiento anómalo para mejorar el entrenamiento del modelo.

      1. (Opcional) `ModelEvaluationConfiguration` para evaluar el rendimiento del modelo mediante la ejecución de la inferencia en un intervalo de tiempo específico una vez finalizado el entrenamiento.

      1. (Opcional) `ModelMetricsDestination` para recopilar datos de rendimiento completos (precisión, recuperación, área bajo la curva).

   ```
   {
     "trainingMode": "TRAIN_MODEL", 
     "exportDataStartTime": StartTime,
     "exportDataEndTime": EndTime
   }
   ```  
**Example de un ejemplo de carga útil de entrenamiento:**  

   ```
   {
     "trainingMode": "TRAIN_MODEL",            
     "exportDataStartTime": 1717225200,
     "exportDataEndTime": 1722789360
   }
   ```

1. Ejecute el siguiente comando para iniciar el entrenamiento. Sustituya los siguientes parámetros del comando:

   1. `computation-model-id`con el ID del modelo de cálculo objetivo.

   1. `asset-id`con el ID del activo con el que entrenará el modelo.

   1. `training-action-definition-id`con el ID de la `AWS/ANOMALY_DETECTION_TRAINING` acción del paso 1.

   ```
   aws iotsitewise execute-action \
       --target-resource computationModelId=computation-model-id \
       --resolve-to assetId=asset-id \
       --action-definition-id training-action-definition-id \
       --action-payload stringValue@=file://anomaly-detection-training-payload.json
   ```  
**Example de una acción de ejecución:**  

   ```
   aws iotsitewise execute-action --target-resource computationModelId=27cb824c-fd84-45b0-946b-0a5b0466d890 --resolve-to assetId=cefd4b68-481b-4735-b466-6a4220cd19ee --action-definition-id e54cea94-5d1c-4230-a59e-4f54dcbc972d --action-payload stringValue@=file://anomaly-detection-training-payload.json
   ```

1. Ejecute el siguiente comando para comprobar el estado del proceso de entrenamiento del modelo. El resumen de ejecución más reciente muestra el estado de la ejecución (`RUNNING``COMPLETED`//`FAILED`).

   ```
   aws iotsitewise list-executions \
       --target-resource-type COMPUTATION_MODEL \
       --target-resource-id computation-model-id\
       --resolve-to-resource-type ASSET \
       --resolve-to-resource-id asset-id
   ```

1. Ejecute el siguiente comando para comprobar la configuración del último modelo entrenado. Este comando produce un resultado solo si al menos un modelo se entrenó correctamente.

   ```
   aws iotsitewise describe-computation-model-execution-summary \
       --computation-model-id computation-model-id \
       --resolve-to-resource-type ASSET \
       --resolve-to-resource-id asset-id
   ```

1. Cuando a `ComputationModel` esté en uso AssetModelProperty, utilice la [ListComputationModelResolveToResources](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListComputationModelResolveToResources.html)API para identificar los activos con las acciones ejecutadas.

   ```
   aws iotsitewise list-computation-model-resolve-to-resources \
       --computation-model-id computation-model-id
   ```

## Inicie y detenga el reentrenamiento del modelo ()AWS CLI
<a name="start-stop-retraining-cli"></a>

Tras el entrenamiento inicial del modelo, puede configurar el reentrenamiento automático para abordar la desviación de los datos y mantener la precisión del modelo a lo largo del tiempo. El programador de reentrenamiento le permite configurar actualizaciones periódicas del modelo con modos de promoción configurables.

### Inicie el programador de reentrenamiento
<a name="start-retraining-scheduler"></a>

1. Ejecute el siguiente comando para buscar el `actionDefinitionId` de la acción `AWS/ANOMALY_DETECTION_TRAINING`. `computation-model-id`Sustitúyalo por el ID devuelto al crear el modelo de cálculo.

   ```
   aws iotsitewise describe-computation-model \
       --computation-model-id computation-model-id
   ```

1. Cree un archivo llamado `anomaly-detection-start-retraining-payload.json` y añada el siguiente código. Sustituya los parámetros por valores tal y como se describe.
**nota**  
 La carga útil debe ajustarse a[Opción 1: utilice un archivo de carga limpio](#clean-payload-file). 

   1. `lookbackWindow`con la ventana de datos históricos para utilizarla en el reentrenamiento (`P180D`//`P360D``P540D`/`P720D`).

   1. `retrainingFrequency`con qué frecuencia se debe volver a entrenar el modelo (mínima`P30D`, máxima`P1Y`).

   1. (Opcional) `promotion` con el modo de promoción del modelo (`SERVICE_MANAGED`o`CUSTOMER_MANAGED`). El valor predeterminado es `SERVICE_MANAGED`.

   1. (Opcional) `retrainingStartDate` con la fecha de inicio del programa de reentrenamiento, indicada en segundos por época. Trunca la hora hasta el día UTC más cercano. Opcional, el valor predeterminado es la fecha actual.

   1. Si lo desea, puede configurarlo [Configuraciones de entrenamiento avanzadas](adv-training-configs.md) para mejorar el rendimiento del modelo.

      1. (Opcional) `ModelMetricsDestination` para obtener datos de rendimiento completos (precisión, recuperación, área bajo la curva).

   ```
   {
       "trainingMode": "START_RETRAINING_SCHEDULER",
       "retrainingConfiguration": {
           "lookbackWindow": "P180D",
           "promotion": "SERVICE_MANAGED",
           "retrainingFrequency": "P30D",
           "retrainingStartDate": "StartDate"
       }
   }
   ```

1. Ejecute el siguiente comando para iniciar el programador de reentrenamiento. Sustituya los siguientes parámetros del comando:

   1. `computation-model-id`con el ID del modelo de cálculo objetivo.

   1. `asset-id`con el ID del activo con el que entrenará el modelo.

   1. `training-action-definition-id`con el ID de la `AWS/ANOMALY_DETECTION_TRAINING` acción del paso 1.

   ```
   aws iotsitewise execute-action \
       --target-resource computationModelId=computation-model-id \
       --resolve-to assetId=asset-id \
       --action-definition-id training-action-definition-id \
       --action-payload stringValue@=file://anomaly-detection-start-retraining-payload.json
   ```  
**Example Ejemplo del comando de ejecución de la acción**  

   ```
   aws iotsitewise execute-action --target-resource computationModelId=27cb824c-fd84-45b0-946b-0a5b0466d890 --resolve-to assetId=cefd4b68-481b-4735-b466-6a4220cd19ee --action-definition-id e54cea94-5d1c-4230-a59e-4f54dcbc972d --action-payload stringValue@=file://anomaly-detection-start-retraining-payload.json
   ```

### Detenga el programador de reentrenamiento
<a name="stop-retraining-scheduler"></a>

1. Ejecute el siguiente comando para buscar el `actionDefinitionId` de la acción `AWS/ANOMALY_DETECTION_TRAINING`. `computation-model-id`Sustitúyalo por el ID real del modelo de cálculo creado anteriormente.

   ```
   aws iotsitewise describe-computation-model \
       --computation-model-id computation-model-id
   ```

1. Cree un archivo `anomaly-detection-stop-retraining-payload.json` y añada lo siguiente:
**nota**  
 La carga útil debe ajustarse a[Opción 1: utilice un archivo de carga limpio](#clean-payload-file). 

   ```
   {
       "trainingMode": "STOP_RETRAINING_SCHEDULER"
   }
   ```

1. Ejecute el siguiente comando para detener el programador de reentrenamiento. Sustituya los siguientes parámetros del comando:

   1. `computation-model-id`con el ID del modelo de cálculo objetivo.

   1. `asset-id`con el ID del activo con el que entrenará el modelo.

   1. `training-action-definition-id`con el ID de la `AWS/ANOMALY_DETECTION_TRAINING` acción del paso 1.

   ```
   aws iotsitewise execute-action \
       --target-resource computationModelId=computation-model-id \
       --resolve-to assetId=asset-id \
       --action-definition-id training-action-definition-id \
       --action-payload stringValue@=file://anomaly-detection-stop-retraining-payload.json
   ```

## Iniciar y detener la inferencia ()AWS CLI
<a name="start-stop-inference"></a>

Después de entrenar el modelo, inicie la inferencia. Esto indica AWS IoT SiteWise que debe monitorear activamente sus activos industriales para detectar anomalías.

### Comience la inferencia
<a name="start-inference"></a>

1. Ejecute el siguiente comando para buscar el `actionDefinitionId` de la acción `AWS/ANOMALY_DETECTION_INFERENCE`. `computation-model-id`Sustitúyalo por el identificador real del modelo de cálculo creado anteriormente.

   ```
   aws iotsitewise describe-computation-model \
       --computation-model-id computation-model-id
   ```

1. Cree un archivo `anomaly-detection-start-inference-payload.json` y añada los siguientes valores:
**nota**  
 La carga útil debe ajustarse a[Opción 1: utilice un archivo de carga limpio](#clean-payload-file). 

   ```
   "inferenceMode": "START",
   "dataUploadFrequency": "DataUploadFrequency"
   ```

   1. `DataUploadFrequency`: Configure la frecuencia con la que se ejecuta el programa de inferencias para realizar la detección de anomalías. Los valores permitidos son: `PT5M, PT10M, PT15M, PT30M, PT1H, PT2H..PT12H, PT1D`.

   1. (Opcional) `DataDelayOffsetInMinutes` con el retardo compensado en minutos. Establezca este valor entre 0 y 60 minutos.

   1. (Opcional) `TargetModelVersion` con la versión del modelo que se va a activar.

   1. (Opcional) Configure la configuración `weeklyOperatingWindow` con una configuración de turnos.

   1. Opcionalmente, puede configurarlo[Configuraciones de inferencia avanzadas](advanced-inference-configurations.md).

      1. [Inferencia de alta frecuencia (de 5 minutos a 1 hora)](advanced-inference-configurations.md#high-frequency-inferencing).

      1. [Inferencia de baja frecuencia (2 horas — 1 día)](advanced-inference-configurations.md#low-frequency-inferencing).

      1. [Programación flexible](advanced-inference-configurations.md#flexible-scheduling).

1. Ejecute el siguiente comando para iniciar la inferencia. Sustituya los siguientes parámetros en el archivo de carga útil.

   1. `computation-model-id`con el ID del modelo de cálculo objetivo.

   1. `asset-id`con el ID del activo con el que se entrenó el modelo.

   1. `inference-action-definition-id`con el ID de la `AWS/ANOMALY_DETECTION_INFERENCE` acción del paso 1.

   ```
   aws iotsitewise execute-action \
       --target-resource computationModelId=computation-model-id \
       --resolve-to assetId=asset-id \
       --action-definition-id inference-action-definition-id \
       --action-payload stringValue@=file://anomaly-detection-inference-payload.json
   ```

1. Ejecute el siguiente comando para comprobar si la inferencia sigue ejecutándose. El `inferenceTimerActive` campo se establece `TRUE` cuando la inferencia está activa.

   ```
   aws iotsitewise describe-computation-model-execution-summary \
       --computation-model-id computation-model-id \
       --resolve-to-resource-type ASSET \
       --resolve-to-resource-id asset-id
   ```

1. El siguiente comando muestra todas las ejecuciones de inferencias:

   ```
   aws iotsitewise list-executions \
      --target-resource-type COMPUTATION_MODEL \
      --target-resource-id computation-model-id \
      --resolve-to-resource-type ASSET \
      --resolve-to-resource-id asset-id
   ```

1. Ejecute el siguiente comando para describir una ejecución individual. `execution-id`Sustitúyalo por el identificador del paso 5 anterior.

   ```
   aws iotsitewise describe-execution \
       --execution-id execution-id
   ```

### Detenga la inferencia
<a name="stop-inference"></a>

1. Ejecute el siguiente comando para buscar el `actionDefinitionId` de la acción `AWS/ANOMALY_DETECTION_INFERENCE`. `computation-model-id`Sustitúyalo por el identificador real del modelo de cálculo creado anteriormente.

   ```
   aws iotsitewise describe-computation-model \
       --computation-model-id computation-model-id
   ```

1. Cree un archivo `anomaly-detection-stop-inference-payload.json` y añada el siguiente código.

   ```
   {
       "inferenceMode": "STOP"
   }
   ```
**nota**  
 La carga útil debe ajustarse a[Opción 1: utilice un archivo de carga limpio](#clean-payload-file). 

1. Ejecute el siguiente comando para detener la inferencia. Sustituya el siguiente parámetro en el archivo de carga útil:

   1. `computation-model-id`con el ID del modelo de cálculo de destino.

   1. `asset-id`con el ID del activo con el que se entrenó el modelo.

   1. `inference-action-definition-id`con el ID de la `AWS/ANOMALY_DETECTION_INFERENCE` acción del paso 1.  
**Example del comando stop inference:**  

   ```
   aws iotsitewise execute-action \
       --target-resource computationModelId=computation-model-id \
       --resolve-to assetId=asset-id \
       --action-definition-id inference-action-definition-id \
       --action-payload stringValue@=file://anomaly-detection-stop-inference-payload.json
   ```

## Encuentre modelos de cálculo que utilicen un recurso determinado en el enlace de datos
<a name="find-computation-models-data-binding"></a>

Para enumerar los modelos de cálculo que están vinculados a un recurso determinado:
+ **modelo de activos** (busque todos los modelos de cálculo en los que esté vinculada alguna de las propiedades de este modelo de activos).
+ **activo** (busque todos los modelos de cálculo en los que esté vinculada alguna de las propiedades de este activo)
+ **propiedad del modelo de activos** (busca todos los modelos de cálculo en los que está vinculada esta propiedad)
+ **propiedad de activo** (busca todos los modelos de cálculo a los que está vinculada esta propiedad). Esto puede ser con fines informativos o ser necesario cuando el usuario intenta vincular esta propiedad a otro modelo de cálculo (pero ya está enlazada a otro lugar)

Utilice la [ ListComputationModelDataBindingUsages](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListComputationModelDataBindingUsages.html)API para obtener una lista de `ComputationModelId` s que incluyan el activo (propiedad) o el modelo de activo (propiedad) como enlace de datos.

Prepare una `request.json` con la siguiente información:

```
{
  "dataBindingValueFilter": {
    "asset": {
      "assetId": "<string>"
    }
    // OR
    "assetModel": {
      "assetModelId": "<string>"
    }
    // OR
    "assetProperty": {
      "assetId": "<string>",
      "propertyId": "<string>"
    }
    // OR
    "assetModelProperty": {
      "assetModelId": "<string>",
      "propertyId": "<string>"
    }
  },
  "nextToken": "<string>",
  "maxResults": "<number>"
}
```

Utilice el `list-computation-model-data-binding-usages` comando para recuperar los modelos con activos o los modelos de activos como enlaces de datos.

```
aws iotsitewise list-computation-model-data-binding-usages \
--cli-input-json file://request.json
```