ガイドAPIリファレンス
ガイド

センサーデータを処理する

HERE Tracking APIはバッテリー、温度、加速度、改ざんセンサーなど、さまざまなタイプのセンサーをサポートしています。この例では、「My battery level」ルールを作成して、デバイスのバッテリーレベルが20%未満になったときに所有者に通知します。

センサールールを作成するには、sensorsエンドポイントにリクエストを送信します。ユーザーが複数のプロジェクトのメンバーである場合は、クエリパラメーターprojectIdでターゲットプロジェクトIDを指定する必要があります。

curl -X POST \
  'https://{tcHost}/sensors/v3?projectId=`projectId`' \
  -H 'authorization: Bearer {userToken}' \
  -H 'content-type: application/json' \
  -d '{
  "type": "battery",
  "range":  {
    "begin": 20,
    "end": 80
  },
  "name": "My battery level"
}'

これによりバッテリールールが作成され、一意のルールIDが返ります。この時点でルールはどのデバイスにも関連付けられていません。 以下はユーザーが過去に作成したセンサールールのリストを返します。

curl -X GET \
  'https://{tcHost}/sensors/v3?projectId=`projectId`' \
  -H 'authorization: Bearer {userToken}' \
  -H 'content-type: application/json'

詳細については、「すべてのセンサールールを取得する」を参照してください。

ルールとデバイスを関連付ける

センサールールを作成すると、デバイス関連付けることができるようになり、センサーデータをTracking APIに送信できます。これにより、報告されたデバイスのバッテリーレベルがルールで定義された範囲内または範囲外になるたびにイベントが生成されます。 trackingIdはユーザーが登録した仮想デバイスのトラッキングIDです。

curl -X PUT \
  https://{tcHost}/associations/v3/{trackingId}/sensors/{ruleId} \
  -H 'authorization: Bearer {userToken}' \
  -H 'content-type: application/json'

テレメトリーを送信する

定義された範囲内のテレメトリーをバッテリー情報を含めて送信し、その後範囲を下回ってから送信します。クラウドへのデータ送信を開始する手順を参照してください。

curl -X POST \
  https://tracking.api.here.com/v3/ \
  -H 'authorization: Bearer {deviceToken}' \
  -H 'content-type: application/json' \
  -d '{
  "appId": "MyAppId123",
  "id": "MyDevice1",
  "data": [
    {
      "timestamp": 1569300623010,
      "position": {
        "alt": 107,
        "accuracy": 13,
        "lat": 52.520806,
        "lng": 13.410514,
        "altaccuracy": 14
      },
      "system": {
        "reportedSensorData": {
          "batteryLevel": 21
        }
      }      
    }
  ]
}'
curl -X POST \
  https://tracking.api.here.com/v3/ \
  -H 'authorization: Bearer {deviceToken}' \
  -H 'content-type: application/json' \
  -d '{
  "appId": "MyAppId123",
  "id": "MyDevice1",
  "data": [
    {
      "timestamp": 1569300814020,
      "position": {
        "alt": 107,
        "accuracy": 10,
        "lat": 52.521880,
        "lng": 13.412724,
        "altaccuracy": 15
      },
      "system": {
        "reportedSensorData": {
          "batteryLevel": 19
        }
      }      
    }
  ]
}'
📘

タイムスタンプはUNIXのエポック時間 (ミリ秒単位) です。

イベントが記録されたことを確認する

すべてのセンサーイベントが記録されます。最初のテレメトリーの取り込みによってトリガーされる「範囲内」イベントと、2つ目のテレメトリーの取り込みによってトリガーされる「範囲を下回る」イベントの、2つの異なるイベントが確認できます。報告されたセンサーの状態がルールの上限または下限しきい値を超えると、イベントが生成されます。 以下はexternalIdとプロジェクトappIdで識別される仮想デバイスのすべてのイベントを返します。

curl -X GET \
  https://{tcHost}/events/v3/{externalId}?appId=`appId` \
  -H 'authorization: Bearer {userToken}' \
  -H 'content-type: application/json'

詳細については、「デバイスまたは出荷のイベント履歴を取得する」を参照してください。