カスタム deviceShifu データ ハンドラー
Shifu を使用すると、ユーザーはdeviceShifuをカスタマイズしてデジタル ツインをより効率的にすることができます。
デフォルト
デフォルトでは、デバイスからdeviceShifuへのデータは元の形式で提供されます。
カスタム処理
カスタム ロジックを追加した後、deviceShifu はデータを処理して、アプリケーションにより適したものにすることができます。
1. データをユーザーが必要な形式に変換します。2. 不要なデータを除外します。3. 動的計算とデータ分析を実行します。
カスタムデバイスShifuを追加
Shifuの実行を開始する前に、最初に行うべきことが 3 つあります。
1.customized_handlers.py
データ処理ロジックを に書き込みます。処理メソッドの一般的な構造は次のとおりです。
#使用指令/API名称作为方法名称
def humidity(raw_data):
new_data = process(raw_data)
return new_data
2.にcustomized_handlers.py
移動しますpkg/deviceshifu/pythoncustomizedhandlers
。
3. deviceShifuを生成します。
例: 水分検出器
ここで使用されるデバイスの例は、examples/deviceshifu/customized/humidity_detector
ディレクトリ内にあります。
HTTP
このデバイスは、指定されたJSON
形式 (コマンド/API のみ)で湿度と温度のデータを消費する仮想湿度検出器ですhumidity
。
0. 湿度検出器の仮想デバイスを作成する
最初のステップは、 Docker イメージhumidity-detector.go
に含まれるexamples/deviceshifu/customized/humidity_detector
Dockerfile を使用して Docker イメージを構築することですhumidity-detector
。
1. カスタム データ ハンドラーを追加する
にファイルexamples/deviceshifu/customized/humidity_detector/pythoncustomizedhandlers
があるのでcustomized_hanlders.py
、そのファイルを にコピーしますpkg/deviceshifu/pythoncustomizedhandlers
。
2.deviceShifuのDockerファイルを編集する
examples/deviceshifu/customized/humidity_detector/sample_deviceshifu_dockerfiles/Dockerfile.deviceshifuHTTP
にコピーされますdockerfiles
。
3. データハンドラーのマッピングを追加します。
examples/deviceshifu/customized/humidity_detector/configuration中
ファイル内でdeviceshifu-humidity-detector-configmap.yaml
、デバイス命令をデータ ハンドラーの funcName にマップします。
(例: 命令は「/123」、関数名は「湿度」)
次に、 「指示」の下にある機器の指示をセットアップしてセットアップする必要customInstructionsPython
が123: humidity
instructions.instructions
telemetries.telemetries.device_health.properties.instruction
次のように:
data:
customInstructionsPython: |
123: humidity
#123是instructions,humidity是处理程序funcName
instructions: |
instructions:
123:
telemetries: |
telemetries:
device_health:
properties:
instruction:
123
4. deviceShifu の Docker イメージを作成する
新しいdeviceShifuイメージを構築して、カスタム データ ハンドラーを追加します。
shifu
のルート ディレクトリで次のコマンドを実行して、 deviceShifuの Docker イメージを構築します。
make buildx-build-imag-deviceshifu-http-http
5.启动Shifu
このセクションは、クイックスタート デモとまったく同じです。
Shifuが実行されたら、新しく作成した湿度検出器仮想デバイスをkind
クラスターにインポートする必要があります。
kind load docker-image humidity-detector:v0.0.1
6. 加工したデータを確認する
この仮想デバイスからの生データは、customized_hanlders.py
で。
nginx シェルでは、API をカールして結果が処理されたかどうかを確認できるはずですhumidity
。結果は次のようになります。
[
{
"unit": "℃",
"code": "20990922009",
"exception": "temperature is too high",
"name": "atmosphere temperature",
"val": "37"
},
{
"unit": "%RH",
"code": "20990922009",
"exception": "humidity is too high",
"name": "atmosphere humidity",
"val": "88"
}
]
この記事は Boundless Authorization によって公開されています