Tutorial: incluindo uma constante

Neste tutorial, você está incluindo uma constante e usando em uma métrica de dados em lote. Métricas de dados de fluxo não usam constantes.

Antes de iniciar

  1. Instale o Python 3.9.x em seu ambiente.
  2. Instale o IoT Functions em seu ambiente local. Siga as instruções nas Funções IoT do readme.
    Como alternativa, para instalar o IoT Functions e suas dependências, é possível seguir as etapas na seção Antes de iniciar do Tutorial: Incluindo uma função customizada. Clone o pacote iniciador HelloWorld e importe o pacote iniciador no PyCharm. Instale os requisitos do PyCharm.
  3. Tutorial completo: Adicionando expressões para adicionar um distance métrica para o tipo de dispositivo do robô no Maximo Monitor.

Sobre esta tarefa

Nota: para concluir este tutorial, você usa um modelo de tipo de dispositivo de amostra e dados. Os tipos de dispositivos de amostra não utilizam a versão mais recente de tipos de dispositivo e não suportam métricas de dados de streaming. Para obter mais informações, consulte Introdução para usuários.

Ajuste a distância para considerar um atraso.

Etapas

Conclua estas etapas para aplicar um cálculo que referencia um valor constante aos dados de amostra.

Etapa 1: definir seu cálculo

Defina 'distance_adjusted_by_constant' conforme a seguir:

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

Etapa 2: salvar suas credenciais em um arquivo

Definir credenciais para conexão Maximo Monitor.

  1. Faça o download do arquivo credentials_as.json
  2. Substitua as variáveis por seus dados e salve o arquivo em sua máquina local.
Nota: Tome cuidado para não salvar o arquivo de credenciais em qualquer repositório externo.

Etapa 3: Criar constante global

Execute a API constante POST com o payload abaixo

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

Etapa 4: configurar o valor da constante por meio da IU

  1. Na página Configuração , na guia Dispositivos , selecione um tipo de dispositivo e clique em Configurar tipo de dispositivo..
  2. Clique no ícone Configurar tipo de dispositivo e, em seguida, selecione Gerenciar restrições..
  3. Para a restrição delay , clique no ícone Editar.
  4. Atribua um valor de 2 e clique em Salvar.

Etapa 5: referenciar a constante em uma expressão

  1. Na guia Dados , clique em Criar métrica
  2. Selecione a função PythonExpression no catálogo.
  3. Configure o escopo e, em seguida, clique em Avançar.
  4. Insira ou cole na expressão a seguir:
        df['distance']*c['delay']
  5. Clique em Avançar.
  6. Especifique distance_adjusted_by_factor como uma saída
  7. Clique em Criar.
  8. Visualize os novos dados da métrica distance_adjusted_by_factor .

Aguarde até 5 minutos para que o Maximo Monitor avalie a expressão em relação aos dados de amostra.

Etapas para atualizar, reverter e excluir valores constantes

Conclua estas etapas para atualizar, reverter valores para constantes ou excluir uma constante

Atualizar o valor padrão global

  1. Na página Setup (Configuração), na guia Devices (Dispositivos ), selecione um tipo de dispositivo e clique nele.
  2. Clique no ícone Configurar tipo de dispositivo e, em seguida, selecione Gerenciar restrições..
  3. Na caixa de diálogo Constants (Constantes ), passe o mouse sobre a constante, selecione mais ações e, em seguida, escolha Change global default value (Alterar valor padrão global )
  4. Atribua um valor e clique em Save (Salvar ).

Atualizar as constantes de nível de recurso

  1. Na página Setup (Configuração), na guia Devices (Dispositivos ), selecione um tipo de dispositivo e clique nele.
  2. Clique no ícone Configurar tipo de dispositivo e, em seguida, selecione Gerenciar restrições..
  3. Na caixa de diálogo Constants (Constantes ), passe o mouse sobre a constante e selecione Edit
  4. Atribua um valor e clique em Save (Salvar ).

Reverter a constante de nível de recurso para o valor padrão global

  1. Na página Setup (Configuração), na guia Devices (Dispositivos ), selecione um tipo de dispositivo e clique nele.
  2. Clique no ícone Configurar tipo de dispositivo e, em seguida, selecione Gerenciar restrições..
  3. Na caixa de diálogo Constants (Constantes ), passe o mouse sobre a constante e selecione Edit
  4. Escolha a opção Reverter para o valor padrão global.
  5. Selecione Revert para confirmar sua escolha.

Etapa opcional: Cancelar o registro da constante

Escreva um script unregister_constant.py e execute-o. O cancelamento do registro da constante afeta qualquer cálculo que a utilize.

  #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'])

Etapa opcional: Excluir a constante de nível de recurso ou de nível global

  1. Na página Setup (Configuração), na guia Devices (Dispositivos ), selecione um tipo de dispositivo e clique nele.
  2. Clique no ícone Configurar tipo de dispositivo e, em seguida, selecione Gerenciar restrições..
  3. Na caixa de diálogo Constants (Constantes ), passe o mouse sobre a constante, selecione mais ações e, em seguida, escolha Delete constant (Excluir constante )
  4. Selecione Remove para confirmar sua escolha.