Chintax Sugar

個人用技術メモとか

IRKit で家電を操作してみた

巷で噂になっている IRKit、買ってみたのでいろいろ試してみました。
ちなみに以前から存在はなんとなく知っていたのですが、Rebuildfm のスポンサー枠で紹介されたのが決め手になって購入に踏み切りました。

IRKit is 何

赤外線で操作できる家電をネット経由で、スマホタブレットから操作できるようにするものです。 今回は基本的な使い方と、少し応用した使い方を紹介します。

準備~設置

必要な物は以下の通り。

  • IRKit 本体 (Amazonで購入可。\7,700)
  • 無線LAN環境
  • MicroUSBケーブル (本体の給電用)

まずは本体を買わないと始まりません。Amazon でポチー。
届いた箱の中身はこんな感じ。

f:id:sunlight0915:20151215222126j:plain

ケーブル等ごちゃごちゃした物は何も入っておらずシンプルです。
本体に MicroUSBケーブルを挿して給電してあげれば設置完了。

iPhone から家電を操作

本体に同梱されている説明書の通り、AppStore で IRKitシンプルリモコン をダウンロードします。
アプリを起動するとウィザード形式で設定が進みます。直感的に設定できるので詳細は省略します。
初期設定が終わった後は使いたいリモコンの信号を登録していきます。
こんな感じで

f:id:sunlight0915:20151215225105j:plain

本体にリモコンの信号を受信させてボタンを追加します。
出来上がった画面がこちら。とりあえずよく使いそうなものを登録してみました。

f:id:sunlight0915:20151220145605p:plain

エアコンON ボタンを押してみると…電源がついた!
iPhoneWiFi を OFF にして外部のネットワークから繋いでもちゃんと操作できます。これはすごい。

位置情報を利用

サードパーティー製のアプリもいくつか公開されています。
例えばこの Geo IR を使えば位置情報を利用して家に近づいたタイミングでエアコンの電源をON!なんてこともできそうです。

f:id:sunlight0915:20151220150638p:plain

なお寒くて外に出られなかったので試してません(テヘペロ

コマンドプロンプトから操作

IRKit はWebサーバーとしての機能を持っているため、HTTPリクエストを直接投げて操作することが可能です。 なので CURL を使えば Windowsコマンドプロンプトからもリモコン操作を行うことができます。

手順

1.IRKit のIPアドレスを取得

方法はいくつかあると思いますが、今回はルーターの管理画面から接続クライアントの一覧を見て調べました。 以下では仮に「192.168.11.123」としておきます。

2.送信したい信号の JSON を取得

本体にリモコンから信号を受信させた後、以下のコマンドを実行します。

curl -i "http://192.168.11.123/messages" -H "X-Requested-With: curl"

正しく取得できると以下のように信号データの JSON が返ってきます。data の部分は長いので省略。

HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Server: IRKit/3.0.0.0.g85190b1
Content-Type: text/plain

{"format":"raw","freq":xx,"data":[xx]}
3.取得した JSON を使って信号を送信

以下のコマンドを実行します。コマンドプロンプトから実行する場合、JSON 内のダブルクォーテーションはエスケープする必要があるので注意。

curl -i "http://192.168.11.123/messages" -H "X-Requested-With: curl" -d '{\"format\":\"raw\",\"freq\":xx,\"data\":[xx]}'

カチャカチャ…ッターン!すると、無事任意の信号を送信することができました。
こうやって操作できるのは楽しいですが、iPhone から操作したほうが確実に早いです。

タイマー設定

IFTTT と連携することでタイマー機能を実現することが可能です。
毎朝7時にエアコンをONにする、ということをやってみようと思います。

手順

1.IFTTT のアカウントを作成(ない場合)
2.ログインして「My Recipes」から「Create a Recipe」を選択
3.トリガーに「Date & Time」を選択
4.トリガーの種類から「Every day at」を選択
5.時刻を指定
6.アクションに「Maker」を選択
7.アクションの種類から「Make a web request」を選択
8.リクエストの詳細を記入

URL : https://api.getirkit.com/1/messages
Method : POST
Content Type : application/x-www-form-urlencoded
Body : clientkey=clientkey&deviceid=deviceid&message={“format”:”raw”,”freq”:xx,”data”:[xx]}

なお clientkey と deviceid はまず clienttoken を取得して、それをキーとすることにより取得できます。

clientkey 取得

curl -i "http://192.168.11.123/keys" -d '' -H "X-Requested-With: curl"

clientkey deviceid 取得

curl -i -d "clienttoken=xx" "https://api.getirkit.com/1/keys"
9.Create Action を選択し、レシピの説明文を書けば完成

実際に試してみたところ、2分ほどラグがありましたが無事指定の時刻にリモコン操作を行うことができました。

注意点、気になることなど

・設置位置は工夫が必要
→当然ながら間に障害物があったりすると信号が対象の機器に届かないので、使いたいボタンは一通りテストを行う必要があります。

・アプリは iOS 端末でしか使えない?
Android アプリもあるようです。IRKitシンプルリモコン

・自分でアプリは作れる?
SDKが公開されています。IRKit iOS-SDK

まとめ

今のところエアコン、テレビのONOFFしか主に使っていませんが、もっと応用すればいろいろなことができそうです。
例えば先日 Netflix が寝落ち検出機能を備えたリモコン靴下を発表していましたが、それと似たようなことをして寝落ちしたら部屋の照明をOFFにする、なんてこともできるかもしれません。

比較的安価、かつ導入が非常に容易ですので、是非お買い求めになって試してみてはいかがでしょうか。