iOS10新アプリ「ホーム」とSiriでエアコンをON/OFFしてみた(Homebridge・IRKit)

f:id:syonx:20160919154036j:plain

ホームってなに

こいつです。

f:id:syonx:20160919150021j:plain

f:id:syonx:20160919150104j:plain

アプリ自体の使い方にも四苦八苦しました。

  • PIN コード読取をカメラでできるようだけど反応せず。手入力で対処
  • アクセサリをタップするとスイッチONしてしまう
    • iPhone 6s だと 3D Touch の「押し込み」で項目詳細画面

ようす

Siri は賢いので、エアコンを「つけて」「オンにして」「けして」「切って」をいい具合に解釈して命令を実行してくれます。

f:id:syonx:20160919153812j:plain

f:id:syonx:20160919182744p:plain

どうやるの

Homebridge という iOS HomeKit API をコントロールするサーバを立てて、そのプラグインの1つである homebridge-irkit で IRKit とつなげてエアコンを ON/OFF します。たぶんこんな感じ。

Siri --- HomeKit API --- Homebridge --- homebridge-irkit --- IRKit --- エアコン

必要なもの

  • iPhone
    • Apple Watch からも操作可能
    • 外出先からインターネット経由で操作するには Apple TV が必要
  • Mac
    • Node.js 環境
    • 他の OS でも HomeKit 環境は構築できるっぽい
    • Raspberry Pi で作ってる人情報よくある
    • 筆者環境 Windows 10 で試したら homebridge インストールに失敗
    • Mac mini を常時起動でサーバとして動作させてる
  • IRKit
    • リモコンの赤外線信号を代わりに送ってくれるやつ

  • エアコン
    • リモコン

つくりかた

Homebridge サーバとなる Mac で以下の通りインストール。

$ npm install -g homebridge
$ npm install -g homebridge-irkit

設定ファイル ~/.homebridge/config.json を用意する

  • Homebridge の設定ファイルであり、これにアクセサリを定義する
  • 本件で言うアクセサリとは「Siri 呼び出し時に使うアクセサリ名と IRKit の接続情報とエアコン ON/OFF 信号2つ」というカタマリを指す
  • 赤外線信号のテキストデータを取得するには Ruby Gem の irkit を使うのが便利

f:id:syonx:20160919170603p:plain

サーバ起動

$ homebridge

f:id:syonx:20160919170847p:plain

ちゅうい

  • Homebridge 設定変更でサービス再起動したりアクセサリ追加・削除を変な順番でやるとおかしなことになる
    • Homebridge の再インストールを試そう
  • 「ホーム」アプリを削除してもリモコン登録情報は残る
    • リモコンをちゃんと消してから Homebridge サーバを停止しよう
    • アプリは AppStore から再インストールできる

以上、デフォルトの部屋からお送りしました。

ご参考

syonx.hatenablog.com

qiita.com