はじめに
HomeKitとは、AppleがWWDC2014で発表したiOSの新しいフレームワークです。 スマートハウス等の言葉を耳にしたことがあるかと思いますが、 iOS8から使用可能になる、スマートハウス等に該当する機能がHomeKitになります。
どのようなことができるのか
家の中にある照明のON/OFF切り替えや鍵の開閉等をiOSから操作することができるようになります。もちろん、普通のハードウェアはそのままでは操作することはできません。Appleが提供している独自のプロトコルを使用して通信ができるハードウェアに限られます。プロトコルの詳細な内容はAppleのMFI Programに参加しないと見ることは出来ないようです。
※ 上記のMFI Programに参加する必要があるのは、ハードウェアの開発を行う場合だけのようです。HomeKitを使用したiOSのアプリを作成するだけの場合は参加する必要はありません。
HomeKitのクラスについて
HomeKitには以下のクラスが存在しています。各クラスについて軽く説明いたします。
・HMHomeManager
家を管理するクラスです。家の追加や削除ができます。
家は複数追加することができます。
・HMHome
家を表すクラスです。
HomeKitの核となるクラスで、部屋(HMRoom)や照明(ドア)等の機器(HMAccessory)
を追加することで家に何があるかを管理します。また、後述の操作(HMAction)を登録 することもできます。
・HMRoom
部屋を表すクラスです。
家に対して部屋の追加は必須ではないようですが、追加することで部屋ごとの操作が
可能となります。実際の位置や大きさは管理していません。
・HMZone
部屋をまとめて管理する場合に使用します。
1階の部屋や2階の部屋等として設定します。この単位で操作を行う事ができます。
・HMAccessory
照明やドア等の実際に操作される物を表すクラスです。
このクラスには、どのような機能があるかHMServiceで設定されています。
HMAccessoryBrowserというクラスを使用して探します。
・HMService
HMAccessoryの機能を表します。
現時点では以下の種類があります。
HMServiceTypeLightbulb:電球
HMServiceTypeSwitch:スイッチ
HMServiceTypeThermostat:温度調節装置
HMServiceTypeLock:鍵
HMServiceTypeGarageDoorOpener:ガレージの開閉装置
・HMAction
HMAccessoryに対する操作を表す抽象クラスです。
サブクラスとしてHMCharacteristicWriteActionが存在しています。
HMActionを複数束ねて一連の操作として扱うためにHMActionSetというクラスが
あります。
・HMTrigger
自動で操作を実施するために使用するクラスです。
実際に設定するときは、このクラスではなくサブクラスを使用する必要があります。
現在デフォルトで用意されているのは、HMTimerTriggerというクラスだけです。
HMTimerTriggerは名前の通り時間を指定します。指定時間になった場合、iOSから
実行されます。
それぞれのクラスには基本的にはnameプロパティがあり、名前を指定することでSiriから操作できるようです。
最後に
Xcode6にはHomeKit用のシュミレータが付属しています。 このシミュレータを使用することで、実際の機器が無くてもHomeKitの動作を試すことができます。 今回はクラスの簡単な説明だけになってしまいましたので、次回以降、実際にプログラムを作成してみたいと思います。