わふうの人が書いてます。

iOSアプリケーション開発、BLEのファームウェアとハードウェア試作のフリーランスエンジニア。

HomeKitADKを動かしてみる

スマートホームは、機器のネットワークへの接続と、その応用場面の広がりの2つが揃わなければ、利用する価値が生まれません。ネットワーク接続という付加価値を求めた、家庭用機器がこれまでにいくつもの企業から発売されては、製品としてジャンルを確立しないまま消えていきました。

そのスマートホームの流れの中で、新たにAmazonとAppleとGoogleそしてZigbeeアライアンスなどの業界グループから、スマートホームデバイス向けのオープン規格を目指す発表がありました。

https://www.apple.com/newsroom/2019/12/amazon-apple-google-and-the-zigbee-alliance-to-develop-connectivity-standard/

また、HomeKitのデバイス側の開発コードがAppleから公開されています。

https://github.com/apple/HomeKitADK

HomeKitの通信仕様自体は数年前に公開されていて、非商用での開発ができましたが、今回はAppleからさらに開発用コードが提供される形になりました。

https://developer.apple.com/homekit/

HomeKitADKは、非商用で利用できます。製造販売を行うにはMFiの取得が必要です。アプリケーションのコードは、電球と鍵の2つが入っています。

ADKは、Darwin,Linux,ラズベリーパイで動きます。ラズベリにはDockerファイルも提供されています。ビルドは楽そうです。

ソースコードを見ると、Darwinの方は、BLEのペリフェラルとして動くようです。

https://github.com/apple/HomeKitADK/tree/master/PAL/Darwin

Linuxの方は、BLE関連はモックファイルを内部でインクルードしているだけですから、動きません。

ちょっとMacOSで動かしてみました。
READMEにあるビルド方法そのままで、すんなりビルドできます。
IPの方は動きますが、BLEの方はペアリング完了の段階でMac側のアクセサリのプログラムが止まります。
ペアリングの8桁のコードは、”111-22-333”です。

HomeKit ADKをうごかしてみる、Mac OSで。

% cd ~/tmp
% git clone https://github.com/apple/HomeKitADK
Download and install Xcode 11
install brew
% /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
% brew install openssl@1.1
% brew install mbedtls –HEAD
% make all

使ったのはこのブランチ
https://github.com/apple/HomeKitADK/tree/35c8adbb0dae4e44c694fc267dead68be936e65b

BLEのプログラムは、8桁のコードを入力した時点で、アクセサリ側のプログラムが止まるっぽい。こんなメッセージが最後に出ていた。中身まではみていない。
‘’’’
01a0 a0f3 ..
timer register 0x7fa851e1ab20
‘’’’