ADKがオープンソース化されました。https://github.com/apple/HomeKitADKHomeKit対応アクセサリ作ってみよう!?ちなみにHomeKitの世界ではHomeKitに対応した機器のことをアクセサリと呼びます。いってもハードウェアを作るわけではなく、手元のMac上で動き、HomeアプリからOnするとSlackになにか投稿するというアクセサリを作る実験をしてみようと思います。考えたわけですが、12/23現在ですとまだドキュメント等も優しくはないので、リポジトリを覗いてもなにがなんやらの状態です。allすれば、なにやらビルドは成功します。ビルドされたOutput/Darwin-x86_64-apple-darwin19.0.0/Debug/IP/Applications/Lightbulb.OpenSSLを実行したらなにやら動きます1。Accessoryのサンプルという理解で良さそうです。LightbulbのサンプルをiPhoneのHomeアプリに追加してみよう上のLightbulb.OpenSSLを動かしている状態で、iPhoneのHomeアプリを起動し、以下のようにすると、このサンプルのアクセサリを実際に追加できます。書かれていたものを使ってみました。将来、このサンプル用の設定コードは変わるかもしれません。これでサンプルのLightbulbがHomeアプリに追加されましたので、Homeアプリ上でこのサンプルのライトを点灯/消灯することができるようになりました。いっても実際に電球があるわけではないので、点灯したよ、消灯したよ、というのはログ上で確認できるのみです。falseといったログが確認できるかと思います。Piなどでそれをやってみるのも簡単と思います)。今回はSlackにメッセージを送信するアクセサリを作るというのが目的なので、https://github.com/tokorom/HomeKitADK/blob/lightbulb_slack/Applications/Lightbulb/App.c#L165-L184このあたりに、SlackにメッセージをPOSTする機能を追加しましょう。system("./handleLightBulbOn");}ライトがOnになったら外部のShellスクリプトを叩くという実装だけして、あとはShellスクリプトで書く...という形に逃げちゃいます。Slackにメッセージ送信するスクリプトの追加ここからは慣れ親しんだSwiftなどでSlackにメッセージ送信するコード書くだけなので、ここで紹介するまでもないです。こんなかんじのものです。Webhooksを使っています。semaphore.signal()}task.resume()semaphore.wait()実験成功!これをビルドし直して2Homeアプリに追加して、点灯命令を出したら、とSlackにメッセージが投稿されるのを確認できました!これにて実験終了。友太,製本版,電子版PEAKSで購入するtokorom。