homebridge-applescriptを試す

Apple には HomeKit という技術がある。iOS 上の音声認識 siri との組合せで、対応する家庭内ので電気機器などのコントロールが行えるものだ。日本では利用可能な機器は多くないが、対応製品を購入すればこれを利用することが出来る。「テレビを付けて」とか「エアコンを付けて」などと iPhone に話しかけることで機器を動かす訳だ。
http://www.apple.com/jp/ios/homekit/
 
一方、正式な対応機器ではなくてもこの技術を利用できるようにするために homebridge というソフトウェアが公開されている。
https://github.com/nfarina/homebridge
 
このソフトウェアを使ってどんなことが出来るのかはこの辺りが参考になる。
Siriで部屋中の家電を操作できるようにして未来のお部屋を作ってみた
homebridgeでsiriから家電コントロール
Raspberry Pi + HomeKit + IRKit = Siriで家電を音声操作できるようにする
 
おおよそ皆 Raspberry Pi と IRKit を組み合わせて使用しているが、Homebridge は node.js で作られているのでインストールする環境は Linux に限らず、Mac でも Windows でも可能なはずだ。また色々な機器に対応させるためにプラグインが書かれて公開されている。

Raspberry Pi 2 Model B

Raspberry Pi 2 Model B

 
我が家の Raspberry Pi自動給餌機専用になってしまっているし、もう一台欲しいがどうせ買うなら Raspberry Pi 3 が少し安くなってから… と思ったので常時起動している Mac mini にインストールしてみることにした。
homebridge-applescript というプラグインを見つけたからでもある。これは名前の通りで applescript を起動するためのプラグインである。
 
homebridge の設定ファイルである config.json に以下のように設定する。
AppleScript はセンテンスの区切りが改行なので、ここでどう書いたら複数命令の AppleScript が書けるか悩んだが ”\n” で良かった。ここでは30分待った後に iTunes の音楽再生を停止するスクリプトだ。

        "accessories": [
                 {
                         "accessory": "Applescript",
                         "name": "Sleep after 30min",
                         "on": "delay 30*60 \n tell application ''iTunes'' to stop"
                 }
         ]

 
iPhone には Insteon+ というアプリをインストールする。
 
同じローカルネットワーク上で homebridge が動いていると設定した命令が見えるようになる。SIRI CONTROL に siri で認識可能な名称を設定する。しかし、付けたい名前を設定するとタイマー機能が動いてしまったり、「認識できません」と言われてしまったりでなかなか適切な名前が設定できず、とりあえずこんな名前に…

 
そしてこのように話すと設定した AppleScript が動く

 
今回は実験レベルなので常時これを動かそうとはしていないが、IRKit の導入も含めて今後いろいろ遊んでみたい。