ReekohでSigfox GPS端末の緯度経度を標高データサービスと合わせMapダッシュボードに表示する


Reekohとは

Reekohとは、IoTデータをNode-REDのようにハードウェアデバイス/APIをオンラインサービスに接続したり、独自のダッシュボードを構築することができるクラウドサービスです。
ただ、フリーサービスではないので、Reekoh社及び代理店からの提供されるエンタープライズ向けツールです。
ここでは、Sigfox対応GPSデバイスの緯度経度データを、国土地理院の試験サービス「標高API」に渡し、その地点の標高を取得し、ストレージに保存。最後に緯度経度及び標高を地図ダッシュボードに表示するところまでやってみます。(こんな感じです)

国土地理院の標高APIを使うReekoh Pluginの作り方はこちらに書いています。
また、SigfoxクラウドのCallbackを受け、パイプラインに渡す方法は、こちらに書いていますので、参考にしてください。

Sigfox GPS端末から標高APIまで

まずは、Reekoh Pipeline StudioでSigfox GWと自家製GSI Service Pluginを配置します。

SigfoxクラウドからのCallbackは下記のようなJSONでPOSTされることを想定しています。

{
  "device": "{device}",
  "time": "{time}",
  "lat": {lat},
  "lng": {lng}
}

2つのPluginをPipeline Studioに配置し、Sigfox GW側の設定にあわせたSigfox Callback設定をいれておけば、標高API結果を取得するまではノンプログラミングでいけます。つまり、下図のところまではノンプログラミングに可能で、このパイプラインを動かすと、下記のような上記JSONをSigfoxクラウドから受信するたびに、下記のJSONをアウトプットします。

{
  "title": "GSI Service Result",
  "data": {
    "device": "73xxxx",
    "time": 1538654677,
    "lat": 34.87436466683923,
    "lng": 135.6094595891116,
    "rkhDeviceInfo": {
      "_id": "73xxxx",
      "name": "iHere #0073xxxx",
      "location": [
        34.874365,
        135.60946
      ],
      "metadata": {}
    },
    "lastReadingDateTime": 1538654704735,
    "elevation": 80.7,
    "hsrc": "5m(写真測量)"
  },
  "result": {
    "elevation": 80.7,
    "hsrc": "5m(写真測量)"
  }
}

標高APIの結果をストレージに保存

上記JSONのようなアウトプットをストレージに保存します。Reekohでは、x_変数名という形にするのが暗黙ルールっぽいので、Converterのhandler.jsで、それぞれデバイスID、緯度経度、標高をx_device, x_lat, x_lng, x_elevationパラメータに代入しておきます。

handler.js
'use strict'

exports.handle = function (data, logger) {
  logger.log(data)
  return Promise.resolve({
    x_device: _.get(data, 'rkhDeviceInfo._id'),
    x_lat: data.lat,
    x_lng: data.lng,
    x_elevation: data.elevation, 
    x_datetime: moment(data.readingTime).format('YYYY-MM-DD HH:mm:ss')
  })
}

次にDatasetsプラグインを配置し、Converterと接続します。

これで、DatasetにデバイスIDに加え、緯度経度、標高が蓄積されていくことになります。

地図表示用のダッシュボードを作成する

ReekohメニューからDashboard Studioを選択するとダッシュボードを作成することができます。

ダッシュボードの大まかな流れは、Add Visualizationでガジェットを作成し、ガジェットの設定を行った後、他のガジェット追加のために再度Add Visualizationしていきます。最後に[Save Dashboard]でダッシュボードが作成されます。

Mapビューを作る場合は下図の通り、PipelineからDatasetの選択(Select Pipeline Dataset)、Select VisualizationでMapタグを選択、緯度経度情報として、Datasetのどのカラムを使うか(Set Latitude and Longitude)、Map表示にアイコン選択(Marker Icon)、アイコンクリック時のダイアログ表示項目を選択し、[Configure]ボタンをクリックすればOKです。

すると、下図のようなダッシュボードができあがります。

Sigfox Japan KCCS