AWS IoT SiteWise API を使用したデータ取得

この演習を実施するかどうかは任意です。ワークショップを進める上で必須ではありません。

SiteWise では、プロパティの最新の値、過去の値、集計した値を取得することができます。この演習では、Jupyter ノートブックを使用して、API を使用したデータ取得の方法を学びます。

この演習では以下のノートブックを使用します。

  • 01_SW_Config.ipynb (以前の演習で使用した場合は、このノートブックを再度実行する必要はありません)
  • 03_SW_Getting_Data.ipynb

Amazon SageMaker インスタンスの Jupyter ノートブックにアクセス

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

  1. SiteWiseWorkshop をクリック
  2. 出力 セクションの AmazonSageMakerInstanceURL にあるリンクをクリックして SageMaker ノートブックインスタンスを開く
  3. sitewise をダブルクリック
  4. 以下のノートブックがあるので、ダブルクリックして作業を開始します。
    • 01_SW_Config.ipynb (以前の演習で使用した場合は、このノートブックを再度実行する必要はありません。)
    • 03_SW_Getting_Data.ipynb

Jupyter ノートブックの解説

01_SW_Config.ipynb

  1. Libraries
    • 各種ライブラリをインポートします。
  2. Get AWS region
    • CONFIG に各種設定情報を書き込みます
      • Jupyter ノートブックを起動しているリージョン
      • 利用するアセットモデル名

03_SW_Getting_Data.ipynb

  1. Libraries
    • 各種ライブラリをインポートします。
  2. Restore configuration
    • CONFIG を取得します。
  3. Get the service resource
    • AWS IoT SiteWise のサービスリソースを取得します。
  4. Get value for a propery
    • Generator-1Power プロパティの値とタイムスタンプを以下のように表示します。
    response: {
      "propertyValue": {
        "value": {
          "doubleValue": 16.004143042998606
        },
        "timestamp": {
          "timeInSeconds": 1575948455,
          "offsetInNanos": 252000000
        },
        "quality": "GOOD"
      }
    }
       
    timestamp: 1575948455 datetime: 2019-12-10T03:27:35
    
  5. Get historical values
    • Generator-1Power の直近 15 分間の値を以下のように表示します。
    start_date: 1575974277 end_date: 1575975177
    response: {
      "assetPropertyValueHistory": [
        {
          "value": {
            "doubleValue": 14.267643410982373
          },
          "timestamp": {
            "timeInSeconds": 1575974675,
            "offsetInNanos": 40000000
          },
          "quality": "GOOD"
        },
        {
          "value": {
            "doubleValue": 19.858343117873712
          },
          "timestamp": {
            "timeInSeconds": 1575974735,
            "offsetInNanos": 79000000
          },
          "quality": "GOOD"
        },
        {
          "value": {
            "doubleValue": 14.63935394284245
          },
          "timestamp": {
            "timeInSeconds": 1575974795,
            "offsetInNanos": 160000000
          },
          "quality": "GOOD"
        },
        {
          "value": {
            "doubleValue": 16.004143042998606
          },
          "timestamp": {
            "timeInSeconds": 1575974855,
            "offsetInNanos": 252000000
          },
          "quality": "GOOD"
        },
        {
          "value": {
            "doubleValue": 22.050965493724668
          },
          "timestamp": {
            "timeInSeconds": 1575974915,
            "offsetInNanos": 440000000
          },
          "quality": "GOOD"
        },
        {
          "value": {
            "doubleValue": 21.160215255144248
          },
          "timestamp": {
            "timeInSeconds": 1575974975,
            "offsetInNanos": 627000000
          },
          "quality": "GOOD"
        },
        {
          "value": {
            "doubleValue": 17.005372244866756
          },
          "timestamp": {
            "timeInSeconds": 1575975035,
            "offsetInNanos": 827000000
          },
          "quality": "GOOD"
        },
        {
          "value": {
            "doubleValue": 19.32277413502939
          },
          "timestamp": {
            "timeInSeconds": 1575975096,
            "offsetInNanos": 263000000
          },
          "quality": "GOOD"
        }
      ]
    }
    
  6. Aggregate values
    • Generator-1Temperature の直近 15 分間の統計データ (1 分間の平均値、データ数、最大値、最小値) を以下のように表示します。
    start_date: 1575974390 end_date: 1575975290
       
    response: {
      "aggregatedValues": [
        {
          "timestamp": "2019-12-10 03:25:00+00:00",
          "quality": "GOOD",
          "value": {
            "average": 17.8489961270208,
            "count": 5.0,
            "maximum": 26.593127646458683,
            "minimum": 10.285909208423707
          }
        },
        {
          "timestamp": "2019-12-10 03:26:00+00:00",
          "quality": "GOOD",
          "value": {
            "average": 19.655876219328444,
            "count": 12.0,
            "maximum": 29.88799747651543,
            "minimum": 10.00053203215946
          }
        },
        {
          "timestamp": "2019-12-10 03:27:00+00:00",
          "quality": "GOOD",
          "value": {
            "average": 19.903863853352025,
            "count": 12.0,
            "maximum": 29.918475852747754,
            "minimum": 10.33849541170277
          }
        },
        {
          "timestamp": "2019-12-10 03:28:00+00:00",
          "quality": "GOOD",
          "value": {
            "average": 19.643225917972096,
            "count": 12.0,
            "maximum": 29.466361493453824,
            "minimum": 10.095007391051197
          }
        },
        {
          "timestamp": "2019-12-10 03:29:00+00:00",
          "quality": "GOOD",
          "value": {
            "average": 19.68432709345073,
            "count": 11.0,
            "maximum": 29.735403793582446,
            "minimum": 10.306338635121651
          }
        },
        {
          "timestamp": "2019-12-10 03:30:00+00:00",
          "quality": "GOOD",
          "value": {
            "average": 19.924308571049135,
            "count": 12.0,
            "maximum": 29.771750654006652,
            "minimum": 10.16930492112502
          }
        },
        {
          "timestamp": "2019-12-10 03:31:00+00:00",
          "quality": "GOOD",
          "value": {
            "average": 19.91735394874632,
            "count": 11.0,
            "maximum": 29.987007242502827,
            "minimum": 10.16122517354998
          }
        },
        {
          "timestamp": "2019-12-10 03:32:00+00:00",
          "quality": "GOOD",
          "value": {
            "average": 19.332853844068957,
            "count": 9.0,
            "maximum": 29.96515583273179,
            "minimum": 10.23927508637987
          }
        },
        {
          "timestamp": "2019-12-10 03:33:00+00:00",
          "quality": "GOOD",
          "value": {
            "average": 20.222540453084815,
            "count": 12.0,
            "maximum": 29.88133048156937,
            "minimum": 10.075449384494302
          }
        },
        {
          "timestamp": "2021-03-30 03:34:00+00:00",
          "quality": "GOOD",
          "value": {
            "average": 20.319220192677367,
            "count": 11.0,
            "maximum": 29.809456916606557,
            "minimum": 10.129217794399132
          }
        }
      ]
    }
    

以上の演習が完了したら、ノートブックで自由に実験したり、コードを改良したり、新しいことを試してみてください。