データフローの確認

AWS IoT SiteWise ゲートウェイは、OPC-UA サーバーからデータストリームを取得し、SiteWise にアップロードします。アセット Generator-1 には3つのデータストリームが関連付けられています。通知が有効になっているため、データは AWS IoT Core に送信されます。

SiteWise は、通知が有効なプロパティのデータを以下のトピックに送信します。

$aws/sitewise/asset-models/[ASSET_MODEL_ID]/assets/[ASSET_ID]/properties/[PROPERTY_ID]

アセットモデル -> アセット -> アセットプロパティ の階層を覚えていますか?

通知ステータスを 有効 に設定したアセットからのすべてのメッセージを確認するには、トピック $aws/sitewise/asset-models/+/assets/+/properties/+ をサブスクライブします。

トピックにサブスクライブする方法

AWS IoT Core コンソール へ移動します。

  1. テスト の下の MQTT テストクライアント をクリック
  2. トピックをサブスクライブする を選択
    • トピックのフィルター: $aws/sitewise/asset-models/+/assets/+/properties/+ を入力
  3. サブスクライブ をクリック

サブスクリプション ペインの $aws/sitewise/asset-models/+/assets/+/properties/+ に、以下のようなメッセージが定期的に表示されます。

{
  "type": "PropertyValueUpdate",
  "payload": {
    "assetId": "835d67e1-b5a7-495f-8545-4ac0afc38da9",
    "propertyId": "83262e8c-fee5-4fda-936c-ea43f96baefe",
    "values": [
      {
        "timestamp": {
          "timeInSeconds": 1634182205,
          "offsetInNanos": 572000000
        },
        "quality": "GOOD",
        "value": {
          "doubleValue": 94.48563937046083
        }
      },
      {
        "timestamp": {
          "timeInSeconds": 1634182210,
          "offsetInNanos": 572000000
        },
        "quality": "GOOD",
        "value": {
          "doubleValue": 91.16124316357875
        }
      }
    ]
  }
}

1つのアセットプロパティのメッセージだけを受信したい場合は、該当するトピックをサブスクライブします。AWS IoT SiteWise コンソールのアセット情報で、次のような形式のトピック名を確認することができます。$aws/sitewise/asset-models/4ddae1ce-0e73-4c2e-8e41-e04167e4c426/assets/3cc0345a-e51a-434d-98c5-645882335f28/properties/cc83cf68-46b1-49f6-b789-a553de75ec4d

$aws/sitewise/# のようなトピックをサブスクライブすることはできません。AWS IoT コンソールの MQTT テストクライアントを使用しても、このトピックはサブスクライブできません。また、他の MQTT クライアントでこのトピックをサブスクライブしようとすると、サービスによって切断されます。

AWS IoT SiteWise コンソールでも、アセットが受信したデータストリームを確認できます。

AWS IoT SiteWise コンソール へ移動します。

  1. 左上の 3 本バー をクリック
  2. ビルド の下の アセット をクリック
  3. Generator-1 を選択

データが到着すると、測定 及び メトリクス タブの 最新の値 の列に表示されます。

発電機アセットをさらに追加する

以下の発電機アセットも作成して、より多くのデータを取り込みましょう。

  • Generator-2: SiteWise ゲートウェイを介してデータを取り込みます。
  • Generator-3: AWS IoT SiteWise PUT API を介してデータを取り込みます。
  • Generator-7: AWS IoT Core のルールエンジンを介してデータを取り込みます。

これらの作成についても、Generator-1 と同様の流れで アセットの作成データストリームの関連付けと通知の設定 を行います。“serial” には任意の値を、測定値には関連するデータストリームを指定します。データストリームには発電機の番号が含まれており、例えばストリーム /DayOneEnergyCorp/7/Generator/rpmGenerator-7 の 回転数 (rpm) を表しています。

例として、Generator-2 アセットの手順を示します。

AWS IoT SiteWise コンソール へ移動します。

アセットの作成

  1. 左上の 3 本バー をクリック
  2. ビルド の下の アセット をクリック
  3. アセットの作成 をクリック
  4. モデル: Generator model 262966 Doppler を選択
  5. 名前: Generator-2 を入力
  6. アセットの作成 をクリック

データストリームの関連付けと通知の設定

  1. 左上の 3 本バー をクリック
  2. ビルド の下の アセット をクリック
  3. Generator-2編集 をクリック
  4. 属性
    • 「serial」
      • プロパティエイリアスの入力: 2345 を入力
      • MQTT 通知ステータス: 有効 を選択
  5. 測定
    • 「rpm」
      • プロパティエイリアスの入力: /DayOneEnergyCorp/2/Generator/rpm を入力
      • MQTT 通知ステータス: 有効 を選択
    • 「temperature」
      • プロパティエイリアスの入力: /DayOneEnergyCorp/2/Generator/Temperature を入力
      • MQTT 通知ステータス: 有効 を選択
    • 「watts_1m」
      • プロパティエイリアスの入力: /DayOneEnergyCorp/2/Generator/Power を入力
      • MQTT 通知ステータス: 有効 を選択
  6. メトリクス
    • 「sum_watts_5m」
      • MQTT 通知ステータス: 有効 を選択
    • 「ratio_avg_rpm_power_5m」
      • MQTT 通知ステータス: 有効 を選択
  7. 保存 をクリック

上記の手順を、Generator-3Generator-7 に対しても行ってください。

アセットを作成した後、新しいアセットにデータが取り込まれていることが MQTT テストクライアントで確認できます。

Generator-4Generator-8 は、AWS SDK を使用したアセット作成の方法を学ぶ際に作成します。