Device connection with RESTful




Device connection with RESTful

DeviceWebAPI Managerはスマートフォン上で仮想サーバとして動作し、デバイスを操作するためのWeb APIを提供します。

DeviceWebAPI Manager向けに作られたプラグインをインストールする事で、WebAPIから操作できるデバイスを増やすことができます。

DeviceWebAPI Managerは、オープンソースプロジェクトであるDeviceConnectをベースに開発された、実験的なアプリです。

仮想サーバ

Device Web API Managerでは、仮想サーバに、下記の記述で、接続可能です。
ホスト名 localhost
Port番号 4035

例えば、端末内でDevice Web API Managerが利用可能かどうかを調べる場合、下記のURIで確認をおこなう事が可能です。

Request
GET
Response
{
  "product":"Device Web API Manager",
  "version":"x.x",
  "result": 0
}
                                

クロスプラットフォーム対応

Device Web APIを使用したWebアプリはAndroidおよびiOSの両方で動作させることが可能です。

Android上では、Device Web API Managerおよびプラグインを端末にインストールすることにより、Android Chrome等のブラウザアプリからDevice Web APIにアクセスできます。

iOS上では、Device Web API Managerおよびプラグインの両方をライブラリとして組み込んだブラウザアプリを端末にインストールすることで、 そのブラウザアプリ上からDevice Web APIにアクセスできます。

プラグイン方式による拡張性

Device Web API Managerでは、各種デバイスへのアクセスは、プラグインをインストールする事で行います。 ターゲットとなるハードウェアに対応したプラグインを組み込む事で、汎用的なRESTfulのAPIでハードウェアへのアクセスが可能になります。


アイコン プラグイン名 説明
Heart Rate (BLE)プラグイン Health profileで、BLE対応の心拍計から心拍数を取得できるようになります。
hueプラグイン Light profileで、hueの色の変更やOn/Offができるようになります。
HVCプラグイン Human Detect profileで、オムロン社製HVC-Cによる人間の顔・手・身体の認識を実行できるようになります。
IRKitプラグイン Remote Controller profileで、IRKitから赤外線の送受信ができるようになります。
Spheroプラグイン Light profileで、Spheroの色の変更やOn/Offができるようになります。また、Drive Controller profileで、Spheroの操作を行う事も可能になります。 Device Orientation profileでは、Spheroに搭載している加速度センサーなどの値を取得する事が可能です。
Kadecot GotAPI プラグイン GotAPIを使ってKadecotがサポートする機器(ECHONET Lite、iRemocon、 Braviaなど)の機能を呼び出せるプラグイン。 詳細は こちら を参照ください。 (株式会社ソニーコンピュータサイエンス研究所 提供)

GotAPI

Device Web API Managerは、OMA策定のOMA Generic Open Terminal API Framework V1.0(GotAPI)をサポートしています。 GotAPIをサポートする事で、下記のようなRESTfulでの記述で、スマートフォン上で起動している仮想サーバを通して、ハードウェアへのアクセスが可能になります。
GotAPIが利用可能かどうか?

Device Web API Manager動作状態の確認を行う場合、下記のようなRESTfulの記述を用いて確認します。レスポンスのようなJSONが返却された場合は、Device Web API Managerが動作しています。

Request
GET
Request Header
Response
{
  "product":"Device Web API Manager",
  "version":"x.x",
  "result": 0
}

Local OAuthのTokenを取得する

Device Web API Managerを使用するためのユーザ認可処理を行う場合、下記のようなRESTfulの記述を用います。レスポンスで返却されたaccessTokenを用いて、各APIにアクセスすることで使用することができます。

Request
GET
Request Header
Response
{
  "product":"Device Web API Manager",
  "version":"x.x",
  "result": 0,
  "accessToken": "0a93ac0aade4e046ed63eb24d1172f5f35c88ca60daa901547c28d5827cb418a5de1d7c5f9e62405",
  "scopes":[
    {
      "scope": "file",
      "expirePeriod": 15552000
    },
    {
      "scope": "creditcard",
      "expirePeriod": 0
    }
  ],
  "expire": xxxxxxxxxx
}

スマートライトをOnにする

hueとSpheroなどのライト制御を行う場合、下記のような同じRESTfulの記述を用いてライト制御をする事が可能になります。 このように、汎用性の高いAPIで抽象化する事で、Webブラウザやアプリから統一的な記述で簡単にハードウェアにアクセスすることが可能になります。


Request
POST
Request Header Request Body
serviceId=localhost.deviceconnect.org&accessToken=xxxxx&lightId=1&color=FF0000

Response
{
  "product":"Device Web API Manager",
  "version":"x.x",
  "result": 0
}