エアコンのオン・オフをHomeKitで操作出来るようにした
ちょっと前にPhilips Hueを買ってHomeKitでオン・オフ出来るようにしていて便利さを体感していたのと、夏なので会社から家に帰る時にエアコンを予めオンに出来たら便利だなと思ってやってみた。
ちなみに、IRKitのiOSアプリだけでも屋外からエアコンは操作出来る模様。
エアコンの操作はIRKitで行い、IRKitとHomeKitの連携は、買うだけ買って放置していたRaspberry PiにHomebridgeを入れて行う。
やったこと
- Raspberry PiでHomebridgeを動かす
- IRKitのHomebridge-plugin入れる
- IRKitセットアップ
手順
公式サイトや先人の知恵を拝借。
- Raspberry PiにRaspbianをインストールする for Mac OSX
- Running Homebridge on a Raspberry Pi · nfarina/homebridge Wiki · GitHub
- 赤外線リモコンで操作する家電をHomekit対応にする、homebridge-irkitの使い方 - ワタナベ書店
- 青色ランプを自動的に切れるようにする
知見やハマリポイントなど
Raspberry PiのOSイメージ書き込み時間
デスクトップなしRaspbian 1.7GBをclass4のmicroSDに書き込むのに大体15分くらいかかった。
おわた。1.7MB/s くらいで書き込めてたらしい。理論値4MB/s の40%強の実測値か
— 75㎏ (@eiryu) 2017年7月21日
systemdの設定をミスってHomebridgeが起動しなかった
凡ミスして、/etc/default/homebridge
を以下のように書いていたためエラーが出ていた。
. . HOMEBRIDGE_OPTS=-U /home/pi/.homebridge/config.json . .
エラー
Error: ENOTDIR: not a directory, mkdir '/home/pi/.homebridge/config.json/persist'
/home/pi/.homebridge
にすれば動くんだろうが、homebridge
ユーザーで動かすこともあるので、もともと書かれていた設定通り、/var/lib/homebridge
にしてディレクトリを作成し、所有者もhomebridge
としておいた。configもコピーして配置。
IRKitへのHTTPクリエストはX-Requested-With
ヘッダ必須
$ http http://192.168.0.xxx/messages HTTP/1.0 400 Bad Request Access-Control-Allow-Origin: * Content-Type: text/plain Server: IRKit/3.0.0.0.g85190b1 $ http http://192.168.0.xxx/messages X-Requested-With:HTTPie HTTP/1.0 200 OK Access-Control-Allow-Origin: * Content-Type: text/plain Server: IRKit/3.0.0.0.g85190b1
IRKitのファームウェア書き換え時のシリアルポート
/dev/tty.usbmodemXXXX
を指定せよとのことだったが、Arduino IDEからは/dev/cu.usbmodemXXXX
しか見えなかった。
ターミナルからだとttyも見える。MacBookのUSB-Cアダプタ経由で接続しているとか理由あるんだろうか?
$ ll /dev/*usbmodemXXXXX crw-rw-rw- 1 root wheel 20, 5 7 24 04:00 /dev/cu.usbmodemXXXXX crw-rw-rw- 1 root wheel 20, 4 7 24 04:00 /dev/tty.usbmodemXXXXX
書き込んでみたら問題なくファームウェア更新出来て、青色ランプが消えるようになった。
homebridge-irkitのpluginまで入れたから寝る
— 75㎏ (@eiryu) 2017年7月21日
デプロイした #IRKit pic.twitter.com/Nxe09s93nM
— 75㎏ (@eiryu) 2017年7月22日
#Homebridge #raspberrypi pic.twitter.com/1R4VAVoIVW
— 75㎏ (@eiryu) 2017年7月22日
systemdだと勝手に落ちるけど、とりま手動だとちゃんとHomebridge経由でエアコン設定出来た pic.twitter.com/3WQKpHaKFL
— 75㎏ (@eiryu) 2017年7月22日
青ランプの眩しさ想像以上だわ #IRKit
— 75㎏ (@eiryu) 2017年7月23日
#IRKit のファームウェア書き換えて青いランプ消えるようにしたので安眠出来る - IRKitいじってみた話 - Slideck https://t.co/paccrC5DAG
— 75㎏ (@eiryu) 2017年7月23日