Tutoriel : Ajout d'une constante

Dans ce tutoriel, vous ajoutez une constante et l'utilisez dans une métrique de données par lots. Les métriques de flux de données en continu n'utilisent pas de constantes.

Avant de commencer

  1. Installez Python 3.9.x dans votre environnement.
  2. Installez IoT Functions dans votre environnement local. Suivez les instructions dans le fichier Readme des fonctions IoT.
    Pour installer IoT Functions et ses dépendances, vous pouvez également suivre les étapes de la section Avant de commencer du Tutoriel: Ajout d'une fonction personnalisée. Clonez le module de démarrage HelloWorld et importez-le dans PyCharm. Installez les éléments requis depuis PyCharm.
  3. Tutoriel complet : Ajout d'expressions pour ajouter un distance métrique au type d'appareil robot dans Maximo Monitor.

A propos de cette tâche

Remarque: Pour suivre ce tutoriel, vous utilisez un exemple de modèle de type de terminal et des données. Les exemples de type de terminal n'utilisent pas la dernière version des types de terminal et ne prennent pas en charge les métriques de flux de données en continu. Pour plus d'informations, voir Initiation pour les utilisateurs.

Réglez la distance à prendre en compte pour un délai.

Etapes

Procédez comme suit pour appliquer un calcul qui fait référence à une valeur constante dans les exemples de données.

Etape 1 : Définir votre calcul

Définissez 'distance_adjusted_by_constant' comme suit :

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

Etape 2 : Sauvegarder vos données d'identification dans un fichier

Définir les informations d'identification pour se connecter à Maximo Monitor.

  1. Téléchargez le fichier credentials_as.json.
  2. Remplacez les variables par vos données, puis sauvegardez le fichier sur votre machine locale.
Remarque: prenez soin de ne pas sauvegarder le fichier de données d'identification dans un référentiel externe.

Étape 3 : Créer une constante globale

Exécutez l'API constante POST avec la charge utile suivante

[
    {
        "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
    },
]

Etape 4 : Définir la valeur de la constante à partir de l'interface utilisateur

  1. Sur la page Configuration , dans l'onglet Périphériques , sélectionnez un type de périphérique et cliquez sur Configurer le type de périphérique.
  2. Cliquez sur l'icône Configurer le type de terminal, puis sélectionnez Gérer les contraintes.
  3. Pour la contrainte delay , cliquez sur l'icône Editer.
  4. Affectez une valeur de 2 et cliquez sur Sauvegarder.

Etape 5 : Référencer la constante dans une expression

  1. Dans l'onglet Données , cliquez sur Créer une métrique .
  2. Sélectionnez la fonction PythonExpression dans le catalogue.
  3. Définissez la portée, puis cliquez sur Suivant.
  4. Entrez ou collez l'expression suivante :
        df['distance']*c['delay']
  5. Cliquez sur Suivant.
  6. Spécifiez distance_adjusted_by_factor comme sortie.
  7. Cliquez sur Créer
  8. Affichez les nouvelles données de métrique distance_adjusted_by_factor .

Attendez jusqu'à 5 minutes pour que Maximo Monitor évalue l'expression par rapport aux données de l'échantillon.

Marche à suivre pour mettre à jour, inverser et supprimer des valeurs constantes

Procédez comme suit pour mettre à jour, inverser les valeurs des constantes ou supprimer une constante

Mise à jour de la valeur globale par défaut

  1. Sur la page de configuration, dans l'onglet Périphériques, sélectionnez un type de périphérique et cliquez dessus.
  2. Cliquez sur l'icône Configurer le type de terminal, puis sélectionnez Gérer les contraintes.
  3. Dans la boîte de dialogue Constantes, survolez la constante, sélectionnez Autres actions, puis Changez la valeur globale par défaut
  4. Attribuez une valeur et cliquez sur Enregistrer.

Mise à jour des constantes de niveau de ressources

  1. Sur la page de configuration, dans l'onglet Périphériques, sélectionnez un type de périphérique et cliquez dessus.
  2. Cliquez sur l'icône Configurer le type de terminal, puis sélectionnez Gérer les contraintes.
  3. Dans la boîte de dialogue Constantes, survolez la constante, sélectionnez Modifier
  4. Attribuez une valeur et cliquez sur Enregistrer.

Rétablir la valeur globale par défaut de la constante de niveau de ressource

  1. Sur la page de configuration, dans l'onglet Périphériques, sélectionnez un type de périphérique et cliquez dessus.
  2. Cliquez sur l'icône Configurer le type de terminal, puis sélectionnez Gérer les contraintes.
  3. Dans la boîte de dialogue Constantes, survolez la constante, sélectionnez Modifier
  4. Choisissez l'option Revenir à la valeur globale par défaut.
  5. Sélectionnez Revert pour confirmer votre choix.

Étape facultative : Annuler l'enregistrement de la constante

Écrivez un script unregister_constant.py et exécutez-le. Le désenregistrement de la constante a un impact sur tous les calculs qui utilisent cette 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'])

Étape facultative : Supprimer la constante de niveau ressource ou de niveau global

  1. Sur la page de configuration, dans l'onglet Périphériques, sélectionnez un type de périphérique et cliquez dessus.
  2. Cliquez sur l'icône Configurer le type de terminal, puis sélectionnez Gérer les contraintes.
  3. Dans la boîte de dialogue Constantes, survolez la constante, sélectionnez d'autres actions, puis choisissez Supprimer la constante
  4. Sélectionnez Supprimer pour confirmer votre choix.