Guía de aprendizaje: adición de una constante

En esta guía de aprendizaje, está añadiendo una constante y utilizándola en una métrica de datos por lotes. Las métricas de datos en modalidad continua no utilizan constantes.

Antes de empezar

  1. Instale Python 3.9.x en el entorno.
  2. Instale las funciones de IoT en su entorno local. Siga las instrucciones del documento Léame de las funciones de IoT.
    De forma alternativa, para instalar las funciones de IoT y sus dependencias, puede seguir los pasos de la sección Antes de empezar de Guía de aprendizaje: adición de una función personalizada. Clone el paquete iniciador HelloWorld e importe el paquete iniciador en PyCharm. Instale los requisitos de PyCharm.
  3. Tutorial completo: Agregar expresiones para agregar un distance métrica al tipo de dispositivo robot en Maximo Monitor.

Acerca de esta tarea

Nota: Para completar esta guía de aprendizaje, utilice una plantilla de tipo de dispositivo de ejemplo y datos. Los tipos de dispositivo de ejemplo no utilizan la versión más reciente de los tipos de dispositivo y no dan soporte a las métricas de datos en modalidad continua. Para obtener más información, consulte Iniciación para usuarios.

Ajuste la distancia para explicar un retraso.

Pasos

Complete estos pasos para aplicar un cálculo que haga referencia a un valor constante en los datos de ejemplo.

Paso 1: definir el cálculo

Defina 'distance_adjusted_by_constant' de la siguiente manera:

df['distance_adjusted_by_constant'] = df['distance']*delay

Paso 2: guardar las credenciales en un archivo

Establecer credenciales para conectarse a Maximo Monitor.

  1. Descargue el archivo credentials_as.json.
  2. Sustituya las variables por los datos y, a continuación, guarde el archivo en la máquina local.
Nota: Tenga cuidado de no guardar el archivo de credenciales en ningún repositorio externo.

Paso 3: Crear constante global

Ejecute la API POST constante con la siguiente carga útil

[
    {
        "name": "ArrayConstant",
        "enabled": true,
        "value": {
            "value": [
                "A",
            ]
        },
        "metadata": {
            "jsonSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "type": "array",
                "minItems": 1,
                "items": {
                    "type": "string"
                }
            },
            "dataType": "ARRAY",
            "values": [
                "A",
                "B",
                "C"
            ],
            "description": "Sample multi-valued array",
            "dataTypeForArray": [
                "LITERAL"
            ],
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
    {
        "name": "alpha",
        "enabled": true,
        "value": {
            "value": 4
        },
        "metadata": {
            "dataType": "NUMBER",
            "values": null,
            "description": "general purpose numeric constant",
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
    {
        "name": "delay",
        "enabled": true,
        "value": {
            "value": 120
        },
        "metadata": {
            "dataType": "NUMBER",
            "values": null,
            "description": "Adjustment to output due to delay",
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
    {
        "name": "text",
        "enabled": true,
        "value": {
            "value": "ABC"
        },
        "metadata": {
            "dataType": "LITERAL",
            "values": null,
            "description": "This is string text",
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
    {
        "name": "json",
        "enabled": true,
        "value": {
            "value": {
                "A": "B",
                "B": "A",
                "C": {
                    "A": "B",
                    "B": "A"
                }
            }
        },
        "metadata": {
            "dataType": "JSON",
            "values": null,
            "description": "This is JSON text",
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
    {
        "name": "Gamma",
        "enabled": true,
        "value": {
            "value": 5
        },
        "metadata": {
            "dataType": "NUMBER",
            "values": null,
            "description": "general purpose numeric constant",
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
]

Paso 4: establecer el valor de la constante de desde la interfaz de usuario

  1. En la página Configuración , en la pestaña Dispositivos , seleccione un tipo de dispositivo y pulse Configurar tipo de dispositivo.
  2. Pulse el icono Configurar tipo de dispositivo y, a continuación, seleccione Gestionar restricciones.
  3. Para la restricción delay , pulse el icono Editar.
  4. Asigne el valor 2 y pulse Guardar.

Paso 5: hacer referencia a la constante en una expresión

  1. En la pestaña Datos , pulse Crear métrica
  2. Seleccione la función PythonExpression en el catálogo.
  3. Establezca el ámbito y, a continuación, pulse Siguiente.
  4. Especifique o pegue en la siguiente expresión:
        df['distance']*c['delay']
  5. Haga clic en Siguiente.
  6. Especifique distance_adjusted_by_factor como salida.
  7. Pulse Crear
  8. Ver los nuevos datos de métrica de distance_adjusted_by_factor .

Espere hasta 5 minutos para Maximo Monitor evalúe la expresión con los datos de la muestra.

Pasos para actualizar, revertir y eliminar valores constantes

Siga estos pasos para actualizar, revertir los valores de las constantes o eliminar una constante

Actualizar el valor predeterminado global

  1. En la página Configuración, en la pestaña Dispositivos, seleccione un tipo de dispositivo y haga clic en él.
  2. Pulse el icono Configurar tipo de dispositivo y, a continuación, seleccione Gestionar restricciones.
  3. En el cuadro de diálogo Constantes, sitúe el cursor sobre la constante, seleccione más acciones y, a continuación, seleccione Cambiar valor global por defecto
  4. Asigne un valor y haga clic en Guardar.

Actualizar constantes de nivel de recursos

  1. En la página Configuración, en la pestaña Dispositivos, seleccione un tipo de dispositivo y haga clic en él.
  2. Pulse el icono Configurar tipo de dispositivo y, a continuación, seleccione Gestionar restricciones.
  3. En el cuadro de diálogo Constantes, sitúe el cursor sobre la constante y seleccione Editar
  4. Asigne un valor y haga clic en Guardar.

Revertir la constante de nivel de recurso al valor global por defecto

  1. En la página Configuración, en la pestaña Dispositivos, seleccione un tipo de dispositivo y haga clic en él.
  2. Pulse el icono Configurar tipo de dispositivo y, a continuación, seleccione Gestionar restricciones.
  3. En el cuadro de diálogo Constantes, sitúe el cursor sobre la constante y seleccione Editar
  4. Elija la opción Volver al valor global por defecto.
  5. Seleccione Revertir para confirmar su elección.

Paso opcional : Anular el registro de la constante

Escriba un script unregister_constant.py y ejecútelo. Anular el registro de la constante afecta a cualquier cálculo que utilice esta constante.

  #Import packages and libraries

  import logging
  logging.basicConfig(level=logging.DEBUG)
  logger = logging.getLogger(__name__)
  import pandas as pd
  import json
  #Import these classes from IoT Functions
  from iotfunctions.db import Database
  from iotfunctions.ui import UISingle,UIMulti

  #Connect to the Maximo Monitor
  with open('credentials_as.json', encoding='utf-8') as F:
    credentials = json.loads(F.read())
  db_schema = None
  db = Database(credentials=credentials)

  #Connect to the Maximo Monitor
  db = Database(credentials = credentials)

  #Unregister the constant using the database object
  db.unregister_constants(['delay'])

Paso opcional: Borrar la constante de nivel de recurso o de nivel global

  1. En la página Configuración, en la pestaña Dispositivos, seleccione un tipo de dispositivo y haga clic en él.
  2. Pulse el icono Configurar tipo de dispositivo y, a continuación, seleccione Gestionar restricciones.
  3. En el cuadro de diálogo Constantes, pase el ratón por encima de la constante, seleccione más acciones y, a continuación, elija Eliminar constante
  4. Seleccione Eliminar para confirmar su elección.