iOS10新アプリ「ホーム」とSiriでエアコンをON/OFFしてみた(Homebridge・IRKit)
ホームってなに
こいつです。
アプリ自体の使い方にも四苦八苦しました。
- PIN コード読取をカメラでできるようだけど反応せず。手入力で対処
- アクセサリをタップするとスイッチONしてしまう
- iPhone 6s だと 3D Touch の「押し込み」で項目詳細画面
ようす
Siri は賢いので、エアコンを「つけて」「オンにして」「けして」「切って」をいい具合に解釈して命令を実行してくれます。
どうやるの
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 の設定ファイルであり、これにアクセサリを定義する
- homebridge-irkit にあるサンプル を参考に
- このサンプル、自分の環境でやったらJSONパースエラーだったので
off_form
行末尾のカンマ消すとよい
- 本件で言うアクセサリとは「Siri 呼び出し時に使うアクセサリ名と IRKit の接続情報とエアコン ON/OFF 信号2つ」というカタマリを指す
- 赤外線信号のテキストデータを取得するには Ruby Gem の
irkit
を使うのが便利
サーバ起動
$ homebridge
ちゅうい
- Homebridge 設定変更でサービス再起動したりアクセサリ追加・削除を変な順番でやるとおかしなことになる
- Homebridge の再インストールを試そう
- 「ホーム」アプリを削除してもリモコン登録情報は残る
- リモコンをちゃんと消してから Homebridge サーバを停止しよう
- アプリは AppStore から再インストールできる
覚書き
実際に運用しながら詰まったことなどを書いています。
Homebridge 覚書き - syonbox - Scrapbox
以上、デフォルトの部屋からお送りしました。