techium

このブログは何かに追われないと頑張れない人たちが週一更新をノルマに技術情報を発信するブログです。もし何か調査して欲しい内容がありましたら、@kobashinG or @muchiki0226 までいただけますと気が向いたら調査するかもしれません。

HomeKit in WWDC 2016

HomeKit in WWDC 2016

この記事は全て公開情報をもとに記載しています。

HomeKit

WWDC 2014 で発表されたものの、特に目立った動きの無かった感ある HomeKit。
2014年発表時点で Siri と連携できるなど魅力的な機能は既に備わってはいたものの、そもそも「iOS デバイスで HomeKit 対応機器を登録・操作する機能」は API が提供されただけ、というところに片手落ち感を覚えた。
(私が知らないところでしっかり流行ってたかもしれないし、「いやもっと大きな要因があって」とか異論があろうとは思う。あくまで私見。)

アプリ開発者として HomeKit へ積極的に関わっていく方法、目指すべき姿みたいのがぼんやりとでも思い描けなかったというのもあってすっかりご無沙汰していた HomeKit。
で、今回 WWDC 2016 Keynote で 発表のあった iOS 10、それにプリインストールされる Home アプリ。
私としては「やっとか」という気分も無くはないのだが、ともかくこれで家中の HomeKit 対応機器を一括管理できる環境が整ったというわけだ。
機器登録・管理は Home アプリに任せつつ、自アプリ内からの機器操作などメインでやりたい機能の開発に集中できる。
当たり前のようなこの環境が整うのを待っていた。(もちろん対応機器の拡充とかもっと必要な要素はあるが)

Keynote 内でも発表のあった通り、Air Conditioners, Cameras が追加されている。カメラとか無駄に楽しそうでワクワクする。

さて、とは言え何を隠そう HomeKit 対応機器を持っていない私だがこの Home アプリを試してみたいのでその記録。

まだ開発者向けプレビュー版の iOS 10 を動作させているためスクリーンショットなどは掲載しない。
WWDC 2016 Keynote 発表と合わせてご覧いただきたい。
(Keynote 以外も、開発者アカウントログインしなくても見れてるからきっと NDA 対象ではなかったりするんだろうかな)

HomeKit 対象機器を構築(?)

日本国内なら Hue 一択。

私は Home アプリが試せれば良いので、以前 IRKit + HomeKit のお試しでお世話になったこちらを確認してみる。
KhaosT/HAP-NodeJS/ Node.js implementation of HomeKit Accessory Server.

大変長らくウォッチしていなかったので、開発継続しているかな?みたいなところから不安になったが杞憂。
しっかり継続している。

HAP-NodeJS 立ち上げ

動作環境としては Node.js が動けばなんでも良い。

$ git clone https://github.com/KhaosT/HAP-NodeJS.git
$ cd HAP-NodeJS/
$ npm install
$ node BridgedCore.js

これでネットワーク内に擬似的に HomeKit 対応機器が出来上がる。

Home アプリで登録

ここからの手順はそれこそ iOS 10 の非公開情報に当たるので詳しくは記述しないが、Home アプリを起動して表示される説明にそっていけば、家や部屋、アクセサリにシーンなどが登録でき、Keynote で発表されていた一通りの動作を試すことができる。
一点、機器登録時に、機器の PIN を入力するよう求められる画面がある。なんじゃそりゃ、と思ったが、ソースコード中を検索すると該当の数字を発見。これを入力すれば無事に登録が完了した。
HAP-NodeJS は開発継続しているとは言え iOS 10 では動かなくなっているかも、とか思ったが、無事に動作している。
さすがに新規追加されたアクセサリタイプ(カメラとか)には HAP-NodeJS はまだ対応していないが、既に issue も切られており着々と進められていきそうな予感。

カメラ動かしたいなー(うずうず)

余談

つい先日某キャリアの SIM ロックのかかった iPhone 5s を再利用とリサイクル - Apple(日本) にて売払い、手元に残った iPad mini でいざと思ったところに iPad mini には iOS 10 来なかったので急遽 iPad Air 2 購入からの即プレビュー焼き込みでいまに至る。

せっかく手に入れたので、NDA には気を使いつつ可能なものはご紹介していきたい。