top of page
isana.net

iOS8のHomeKitの概要について

更新日:2019年12月24日



はじめに

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の動作を試すことができます。 今回はクラスの簡単な説明だけになってしまいましたので、次回以降、実際にプログラムを作成してみたいと思います。

bottom of page