ガジェットと写真とランニングのblog

管理人が日々の生活で感じたことやガジェットのレビューをつらつらと

IRKitとIFTTTを連携してエアコンをつけてみる

ガジェット好きなkossie0o0です。

去年からIoTという言葉が市民権を得てきている。

でもじゃあ何ができるのよ。ということで自分で実際に試してみようと思う。

ターゲットはIRKit。

 

これは、WiFi機能の付いたオープンソースな赤外線リモコンデバイス。学習リモコンのように自宅にあるリモコン信号を覚えさせることができる。

特徴はAPIが用意されていることで、APIを叩くことで赤外線信号を飛ばすことができる。

APIが提供されているので外部のサービスとの連携も容易にできるのがポイントかな。

 

IRKit - Open Source WiFi Connected Infrared Remote Controller

 

今回はIFTTTと連携をさせて任意の時間でエアコンを動かせるようにしようと思う。

エアコンを動かす理由

朝ランニングをしたいがなかなか起きれない。原因は寒くて布団から出れないこと。起床前にエアコンを着けることで解決できないかと期待。

タイマーでONにするのもいいが、忘れてしまうことも多いので、毎日同じ時間に起動できるようにしようと思う。

IFTTTとは

 

ifttt.com

まずはIRKitでエアコン信号を調べる。

GET /messages
公式ページにあるように以下のコマンドを叩くと最も新しい受信した赤外線信号を返す。

% curl -i "http://192.168.1.10/messages" -H "X-Requested-With: curl"
HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Server: IRKit/3.0.0.0.g85190b1
Content-Type: text/plain {"format":"raw","freq":38,"data":[18031,8755,...]}

このJSON部分をメモっておく。

次にインターネット上からIRKitを操作させるため情報を取得する

POST /keysとPOST /1/keys
まずはclienttoken を取得します。 clienttoken を IRKit Internet HTTP API の POST /1/keys へのリクエストすることで、 clientkey, deviceid を取得する。

clientkey, deviceid が外部から赤外線通信をするためには必要となる。


% curl -i "http://192.168.1.10/keys" -d '' -H "X-Requested-With: curl" HTTP/1.0 200 OK Access-Control-Allow-Origin: * Server: IRKit/3.0.0.0.g85190b1 Content-Type: text/plain {"clienttoken":"xxxxxxxxxxxxxxxxxxxxx"} % curl -i -d "clienttoken=xxxxxxxxxxxxxxxxxxxxx" "https://api.getirkit.com/1/keys" HTTP/1.1 200 OK Server: openresty Date: Thu, 05 Jan 2017 13:39:13 GMT Content-Type: application/json; charset=utf-8 Content-Length: 94 Connection: keep-alive Access-Control-Allow-Origin: * Access-Control-Allow-Headers: X-Requested-With X-Content-Type-Options: nosniff {"deviceid":"xxxxxxxxxxxxxxxxxxxxx","clientkey":"xxxxxxxxxxxxxxxxxxxxx"}

取得したclientkey, deviceidと赤外線信号を使って次にIFTTTに設定する

 まずはIFTTTのページでNewAppletを押下する。

f:id:kossie0o0:20170108221817j:plain

 つぎにトリガーを指定。今回は時間指定なのでDate & Timeを選択して時間を指定する。

f:id:kossie0o0:20170108224517j:plain

 

f:id:kossie0o0:20170108224637j:plain

次にアクションを指定する。今回はIRKitを外部から動かすためにMakerChannelを選択する

MakerChannelとは

IFTTTが提供してくれた、自分で作ったハードウェアをIFTTTにつなげるためのものである。トリガーとして自分のハードウェアからメッセージを飛ばしたり、サービスの受け手として自分のハードウェアが受けることができるようになるものである。

今回は受け手側として、MakerChannelを利用する。受け手側の場合、URLとパラメータを送ることができる。

f:id:kossie0o0:20170108224828j:plain

IRKitでは、Internet HTTP APIを用意してくれているので、MakerChannelからリクエストするように設定する。f:id:kossie0o0:20170108225948j:plain

先程取得したclientkey, deviceidと赤外線信号をBodyに入れて設定してあげれば良い。

設定が完了すると・・・おお、エアコンが付いた!!

これでQoLが少し向上したかな。