ゲートウェイにて収集されたデータは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キーではデータの登録はできません。