チュートリアル: 定数の追加
このチュートリアルでは、定数を追加し、それをバッチ・データ・メトリックで使用します。 ストリーミング・データ・メトリックは定数を使用しません。
始める前に
- ご使用の環境に Python 3.9.x をインストールします。
- IoT 関数をローカル環境にインストールします。 「IoT 機能 README」の指示に従ってください。
あるいは、「 チュートリアル: カスタム関数の追加」の「始める前に」セクションのステップに従って、 IoT 関数とその依存関係をインストールすることもできます。 HelloWorld スターター・パッケージを複製し、そのスターター・パッケージを PyCharm にインポートします。 PyCharm から要件をインストールします。 - 完全なチュートリアル: 式を追加して
distance
Maximo Monitor のロボット デバイス タイプに対するメトリック。
このタスクについて
注: このチュートリアルを完了するには、サンプルのデバイス・タイプ・テンプレートとデータを使用します。 サンプル・デバイス・タイプは、最新バージョンのデバイス・タイプを使用せず、ストリーミング・データ・メトリックをサポートしません。 詳しくは、 ユーザーのための入門を参照してください。
遅延を考慮して距離を調整します。
ステップ
定数値を参照する計算をサンプル・データに適用するには、以下のステップを実行します。
ステップ 1: 計算を定義する
次のように、「distance_adjusted_by_constant」を定義します。
df['distance_adjusted_by_constant'] = df['distance']*delay
ステップ 2: 資格情報をファイルに保存する
接続するための認証情報を設定する Maximo Monitor.
-
credentials_as.json
ファイルをダウンロードします。 - 変数をデータに置き換え、ファイルをローカル・マシンに保存します。
注: 資格情報ファイルを外部リポジトリーに保存しないように注意してください。
ステップ3:グローバル定数の作成
以下のペイロードでPOST定数APIを実行する
[
{
"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
},
]
ステップ 4: 定数の値を UI から設定する
- 「セットアップ」 ページの 「デバイス」 タブで、デバイス・タイプを選択し、 「デバイス・タイプのセットアップ」をクリックします。
- 「デバイス・タイプの構成」アイコンをクリックし、 「制約の管理」を選択します。
delay
制約については、「編集」アイコンをクリックします。- 「2」の値を割り当てて、「セーブ」をクリックします。
ステップ 5: 式内で定数を参照する
- 「データ」 タブで、 「メトリックの作成」 をクリックします。
- カタログから
PythonExpression
関数を選択します。 - スコープを設定し、 「次へ」をクリックします。
- 次の式を入力するか貼り付けます。
df['distance']*c['delay']
- 次へをクリックします。
distance_adjusted_by_factor
を出力として指定します。- 作成 をクリックします
- 新しい
distance_adjusted_by_factor
メトリック・データを表示します。
を最大5分待つ。 Maximo Monitor まで待つ。
定数値の更新、復帰、削除の手順
定数の更新、値の変更、定数の削除は以下の手順で行います
グローバル・デフォルト値の更新
- Setup(セットアップ) ページの Devices(デバイス) タブで、デバイスの種類を選択し、クリックする。
- 「デバイス・タイプの構成」アイコンをクリックし、 「制約の管理」を選択します。
- 定数ダイアログボックスで、 定数にカーソルを合わせ、 その他のアクションを選択し、 グローバルデフォルト値の変更を選択します
- 値を割り当て、 Saveをクリックする。
リソースレベル定数の更新
- Setup(セットアップ) ページの Devices(デバイス) タブで、デバイスの種類を選択し、クリックする。
- 「デバイス・タイプの構成」アイコンをクリックし、 「制約の管理」を選択します。
- 定数ダイアログボックスで、 定数にカーソルを合わせ、 編集を選択します
- 値を割り当て、 Saveをクリックする。
リソースレベル定数をグローバルなデフォルト値に戻す
- Setup(セットアップ) ページの Devices(デバイス) タブで、デバイスの種類を選択し、クリックする。
- 「デバイス・タイプの構成」アイコンをクリックし、 「制約の管理」を選択します。
- 定数ダイアログボックスで、 定数にカーソルを合わせ、 編集を選択します
- グローバルデフォルト値に戻すオプションを選択します。
- 選択を確定するには、 「戻す 」を選択する。
オプションのステップ:定数の登録を解除する
unregister_constant.py
スクリプトを作成して実行します。 定数の登録を解除すると、この定数を使用する計算に影響を与える。
#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'])
オプションのステップリソースレベルまたはグローバルレベルの定数を削除する
- Setup(セットアップ) ページの Devices(デバイス) タブで、デバイスの種類を選択し、クリックする。
- 「デバイス・タイプの構成」アイコンをクリックし、 「制約の管理」を選択します。
- 定数ダイアログボックスで、 定数にカーソルを合わせ、 その他のアクションを選択し、 定数の削除を選択します
- 選択を確定するために削除を選択します。