アプリケーションの構成
ゲートウェイとそれに接続するエンドノードは、スマートフォンなどのモバイルアプリから操作します。モバイルアプリはゲートウェイのベンダーとエンドノードのベンダーがそれぞれ開発します。ここでは、ゲートウェイアプリ、エンドノードアプリと呼びます。
ゲートウェイアプリ
ゲートウェイアプリは、ゲートウェイの管理を行うためのモバイルアプリ、および、Kii Cloud 上のアプリケーションです。
ゲートウェイアプリでは、ゲートウェイの Thing 情報を管理すると同時に、そのゲートウェイを使用しているエンドノードアプリの一覧を保持します。
現状、ゲートウェイアプリには特別な機能を持たせることはできませんが、開発はしておく必要があります。ゲートウェイアプリの用途として、将来のバージョンでゲートウェイのハードウェアの交換を行うとき、Kii Cloud 上のゲートウェイアプリに保存されているエンドノードアプリの一覧情報を使って、各エンドノードアプリで交換処理を行うことを想定しています。
エンドノードアプリ
エンドノードアプリは、エンドノードの管理と機能の実行を行うためのアプリケーションです。モバイルアプリと Kii Cloud 上のアプリケーションで構成されます。
ゲートウェイにエンドノードを追加、削除する管理機能や、エンドノードを実際に使用するためのコマンドの送受信などの操作機能を実装します。
いずれの場合も、スマートフォン上のモバイルアプリ 1 つと、Kii Cloud 上のアプリケーション 1 つがセットになって機能を実現します。
ゲートウェイベンダーは、ゲートウェイの管理機能と、自社のエンドノードの操作機能を 1 つにまとめたモバイルアプリを作成することもできます。また、エンドノードのベンダーは複数種類のデバイスを操作できる 1 つのエンドノードアプリを作成することも、デバイスの種類別にエンドノードアプリを作成することもできます。
アプリケーションの例
ここでは、ゲートウェイの構成要素を 3 つの異なるベンダーが提供する場合を例として挙げます。
- ゲートウェイベンダーは、ゲートウェイアプリとして、「ホームゲートウェイ」アプリを提供します。このアプリでは、ゲートウェイのデバイスそのものの管理を行います。
- ベンダー A は、スマート LED 照明を操作するエンドノードアプリとして、「照明」アプリを提供します。このアプリでは、スマート LED 照明の追加、削除などの管理と、照明のオン/オフなどの操作を行うことができます。
- ベンダー B は、セキュリティカメラを操作するエンドノードアプリとして、「セキュリティカメラ」アプリを提供します。このアプリでは、セキュリティカメラの追加、削除などの管理と、カメラを使った録画や再生などの操作を行うことができます。
ベンダーはそれぞれ Kii Cloud 上にアプリケーションを作成し、ゲートウェイアプリやエンドノードアプリなどのモバイルアプリから利用します。
これら 3 つのモバイルアプリのアイコンはユーザーデバイスのホーム画面上に並びます。それぞれのモバイルアプリは別のベンダーが開発したものですが、スマートライトやセキュリティカメラのエンドノードは、ゲートウェイを通して Thing Interaction Framework につながっており、ゲートウェイ経由でコマンドを受け取ります。
現在のバージョンの Kii Clould では、エンドノードアプリ同士の連携には対応せず、それぞれ独立して操作することを想定しています。
アプリケーション上の Thing
ゲートウェイアプリとエンドノードアプリでは、対応する Kii Cloud 上のアプリケーションと連携して、以下のオブジェクトを管理することになります。
ゲートウェイアプリ
ゲートウェイアプリには、ゲートウェイの Thing だけが登録され、エンドノードの Thing は登録されません。
エンドノードアプリ
エンドノードアプリには、ゲートウェイの Thing と、それに接続するエンドノードの Thing が登録されます。
以下の点にご注意ください。
- ゲートウェイの Thing は、ゲートウェイアプリとエンドノードアプリの両方に登録されます。この Thing の vendorThingID はどのアプリケーションでも同じですが、thingID はアプリケーションごとに異なるものが割り当てられます。
- Thing はアプリケーションの管理対象に応じて異なるアプリケーションに登録されます。下記の例では、スマート LED 照明 はエンドノードアプリ 1 に、セキュリティカメラはエンドノードアプリ 2 に登録されています。同じゲートウェイに接続している Thing が、同じアプリケーションに登録されるとは限りません。
- Thing は管理単位ごとにエンドノードアプリに登録されます。下記の例では、スマート LED 照明 2 個とセキュリティカメラ 2 個のそれぞれに対して KiiThing が 1 つずつ作成されています。