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

技術情報

Reekohとは

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

tech-1008-1.png

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

Sigfox GPS端末から標高APIまで

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

tech-1008-2.png

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と接続します。

tech-1008-3.png

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

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

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

tech-1008-4.png

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

tech-1008-5.png

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

tech-1008-6.png

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

tech-1008-7.png