Shifu の高度な機能: カスタム デバイスShifu データ ハンドラー

カスタム 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_detectorDockerfile を使用して 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」、関数名は「湿度」)

次に、 「指示」のにある機器の指示をセットアップしてセットアップする必要customInstructionsPython123: humidityinstructions.instructionstelemetries.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 によって公開されています

おすすめ

転載: blog.csdn.net/Edgenesis/article/details/129526757