ゲートウェイにて収集されたデータはMODE Cloudにて管理されます。MODE プラットフォームのAPIを利用することで外部のアプリケーションから参照したり、外部アプリケーションからデータを登録したりすることができます。
データストア
MODE Cloudではアプリケーションの用途に応じた様々なデータストアを提供しています。Mobility Cloud では、センサーデータの管理にTSDB(時系列データベース)、動画データの管理にVideo smart moduleを利用します。外部のアプリケーションは各Smart Moduleが提供するAPIを利用することで各データにアクセスすることができます。
時系列データ
センサーデータは、TSDBに保存されます。TSDBが提供するAPIを利用することで、外部のアプリケーションからも取得して利用することができます。
Collection IDの命名規則
Mobility Cloud では、センサー毎にコレクションを分けてデータを管理します。各コレクションのID (Collection ID) には以下の命名規則があります。
{Data type name}:asset-{Asset ID}
Data type nameはデータの種類を表します。Asset IDは測定対象のアセットのIDを表します。
Collection IDの例 | 意味 |
location:asset-1234 | アセット#1234の位置情報 |
sleepbuster:asset-345 | アセット#345のスリープバスターのデータ |
データの種類
Mobility Cloud の標準アプリケーションでは以下のデータの種類に対応しています。session, event, location は必須のデータとなります。
Data Type Name | 説明 |
session | データの取得を開始したとき(例:ゲートウェイの電源が入ったとき)の日時が記録されます。 |
event | 危険運転や眠気といった事象を検出したときに記録されます。詳細は、インシデントの管理をご確認ください。 |
acceleration | 加速度のデータ。標準では10秒毎の最大値が記録されます。 |
location | 位置情報。標準では10秒毎の最新値が記録されます。 |
environment | 温度、湿度などの環境情報が記録されます。 |
sleepbuster | スリープバスターのデータが記録されます。 |
obd2 | OBD-IIから取得したデータ。標準では10秒毎の最新値が記録されます。 |
各Collectionでは、日時(timestamp)の他に、以下に示す数値データ(valueNames)とタグ(tagNames)を持ちます。値が不明な場合や未定義の場合、0 または 空白文字列が入ります。
session
valueNames | assetId | データ取得を開始したときのAsset ID。 不明な場合は0。 |
| deviceId | データ取得を開始したときのDevice ID。 不明な場合は0。 |
| operatorId | データ取得を開始したときのUser ID。 不明な場合は0。 |
tagNames | (無し) |
|
event
valueNames | assetId | 事象が発生したAsset ID。不明な場合は0。 |
| heading | 事象が発生したときの進行方向。不明な場合は0。 |
| lat | 事象が発生した緯度。不明な場合は0。 |
| lon | 事象が発生した経度。不明な場合は0。 |
| operatorId | 事象を発生させたUser ID。不明な場合は0。 |
| speed | 事象が発生した速度。不明な場合は0。 |
| type | Event Type。インシデントの管理を参照のこと。 |
tagNames | addr | 通常時はブランク(空白文字)。 |
| name | Event Name。インシデントの管理を参照のこと。 |
| timestamp | 事象が発生した日時 |
| uuid | 事象を識別するユニークなID。UUID。 |
| value | Event Value。インシデントの管理を参照のこと。 |
location
valueNames | heading | 方向 (GPS bearing) |
| lat | 緯度 |
| lon | 経度 |
| speed | 速度 (km/h) |
tagNames | (無し) |
|
acceleration
valueNames | x | 進行方向加速度 (g) |
| y | 左右方向加速度 (g) |
| z | 垂直方向加速度 (g) |
tagNames | (無し) |
|
environment
valueNames | ambientLight | 環境光 (lx) |
| co2 | CO2 (ppm) |
| pressure | 大気圧 (hPa) |
| relativeHumidity | 湿度 (%) |
| seq | データ連番。無い場合や不明な場合は0。 |
| soundNoise | 騒音 (dB) |
| temperature | 室内温度 (°C) |
| tvoc | TVOC (ppb) |
| uvIndex | UV Index (Omronセンサー固有値) |
tagNames | addr | 任意。センサーデバイスのアドレス。 |
| name | 任意。デバイス名。 |
sleepbuster
valueNames | condition | 判定結果 |
| conditionMapX | 体調マップX |
| conditionMapY | 体調マップY |
| elapsedTime | 経過時間(秒) |
| feelingMapX | 感覚マップX |
| feelingMapY | 感覚マップY |
| invalid | 通常時は0。想定外のデータを受信したときに1。 |
| peakFreq | peak周波数変動 |
| peakSlope | peak周波数傾き |
| peakTiredness | peak疲労値 |
| touch | 画面タッチ |
| triage | 休息トリアージュ結果 |
| zeroFreq | 0x周波数変動 |
| zeroSlope | 0x周波数傾き |
| zeroTiredness | 0x疲労値 |
tagNames | line | Sleep Busterから受信した元のデータ文字列 |
obd2
valueNames | engineCoolantTemp | エンジンクーラント温度 (°C) |
| engineLoad | エンジン負荷 (%) |
| engineRPM | エンジン回転数 (rpm) |
| fuelTankLevelInput | 燃料タンクレベル (%) |
| massAirFlow | マスエアフロー (grams/sec) |
| speed | 速度 (km/h) |
| throttlePosition | スロットル位置 (%) |
tagNames | (無し) |
|
補足事項:
Data Typeやそのデータ項目は各プロジェクトごとに自由に追加することができます。ただし、標準UIアプリケーションでは追加した項目は表示されません。UIアプリケーションのカスタマイズまたは独自UIアプリケーションの開発が必要となります。
インシデントの管理
Mobility Cloud では、ゲートウェイやセンサーが検知した危険運転や眠気といった事象を「イベント」としてTSDBの “event” Collectionの中で管理します。(MODE Cloudがデータの送受信で利用するEventとは異なります。)
標準で以下のイベントタイプを規定しています。独自のイベントを追加したい場合、Event Typeは9000番台を利用してください。Event Nameにはセンサーデバイスの名称など、わかりやすい任意の文字列を設定してください。
Event Type | Event Name | 説明 |
1101 | Unsafe Driving | 急ブレーキ |
1102 | Unsafe Driving | 急加速 |
1103 | Unsafe Driving | 急ハンドル |
1201 | Unsafe Driver Condition | 眠気・疲労 (Sleep Buster) |
2001 | BTN01 (ボタンのデバイス名) | ボタンプッシュ (Braveridge) |
Event ValueにはEvent Typeに応じた値(JSONオブジェクトの文字列)がセットされます。
Event Type | Event Value | 説明 |
11xx | {"gx":%.2f,"gy":%.2f} | X方向加速度とY方向加速度 |
1201 | {"triage":%d,"condition":%d} | 判定結果と休息トリアージュ結果 |
2001 | “click” “double click” “long press” | 文字列 |
補足事項: Event Typeの先頭2桁には以下の通りの意味があります。
1xxx: unsafe event
11xx: unsafe driving event
12xx: unsafe driver condition event
2xxx: driver's operation event (e.g. button push)
9xxx: project specific event
データの登録方法
MODE Cloudが提供するAPIを利用することでMODEのゲートウェイの代わりに外部アプリケーションションからデータを登録することができます。データの登録方法には以下の2種類があります。具体的な手順は、APIを使ったデータの管理の例をご覧ください。
方式 | 説明 |
Event の送信 | プロジェクトAPIキーを使いREST API (put /homes/{homeId}/event)に、"timeSeriesData" イベントを送信する方式。デバイスAPIキーを使うこともできる。(put /devices/{deviceId}/event)
HTTPで呼び出しができるため実装が容易。ただし、大量のデータ登録には利用できない。100件/秒が上限の目安。 |
Bulk Data Upload | Deviceからのみ利用できる方式。MQTTプロトコルを利用し、1回の送信で1MBまでのデータを送信することが可能。
動画は本方式でアップロードする必要がある。 |
補足事項:
データの登録には、プロジェクトAPIキーまたはデバイスAPIキーが必要です。そのため、スマホアプリ含む外部のデバイスからデータをアップロードする場合、予めそのデバイスを1台ずつMODEのデバイスとして登録しておく必要があります。ユーザーのAPIキーではデータの登録はできません。