鍵をひねって照明とエアコン、テレビをONに! HackeyとIRKit連携で実現する家電コントロール術


こんにちは、Hackeyのプロダクトマネージャーを担当している小薬(こぐすり)です。

元々DMM 3Dプリントサービスでシステム周りのお手伝いをしていたのですが、ハードウェアの開発をしたくてCerevoに入りました。

Hackeyの企画から、どうやったらユーザーさんに使ってもらえるかを苦心しました。ふわっとした製品なので、作例をどんどん記事に書いてみなさんの参考になれば幸いです。

今回はHackeyと「IRKit」というネットに繋がるリモコンを使って、簡単に色々家電を操作します。IRKitとは無線LANと赤外線を搭載したデバイスで、テレビやリモコンなど赤外線で操作できる家電を、スマートフォンやタブレットからIRKitを通じてコントロールできる、という製品です。

IRKit – Open Source WiFi Connected Infrared Remote Controller
http://getirkit.com/

通常はスマートフォンやタブレットを使ってIRKitを操作するのですが、Hackeyと連携することで「鍵をひねって」操作することも可能です。今回はそのサンプルとして、「Hackeyの鍵をひねると、IRKitを通じてリモコン付きLEDキャンドルをON/OFFをする」という動作を設定してみます。

20151102014658

[全体概要]

概要
画像(概要)

大まかな流れは以下のとおりです。

  1. IRKitをペアリングし、[clienttoken]、[deviceid]、[clientkey]を取り出す
  2. IRKitのリモコンシグナルを取り出す
  3. IFTTTにレシピを登録する
  4. DashboardにMaker ChannelのURLを設定する

1. IRKitをペアリングし、[clienttoken]、[deviceid]、[clientkey]を取り出す

まず、IRKitのウィザードを参考にペアリングを行ってください。

http://getirkit.com

ちなみに、私はここで引っかかったのですが、

  • 赤点灯 : ネットワークに接続できてない
  • 緑点滅 : 接続試行中
  • 青点滅 : サーバー接続中
  • 青点灯 : 接続完了、待機中

なかなか青点灯にならなかったのですが、2.4Ghz帯しか対応してなかった、チャンネルは下の方(1~12?)じゃないと動かない、みたいな何かがあったようです。

私の手元ではMacbook Proをインターネット共有してWPA2、チャンネルは1~11の設定で動作できました。

Screen Shot 2015-10-29 at 18.14.56 Screen Shot 2015-10-29 at 18.15.07

接続が完了したら、こちらの本家URL(http://ifttt.getirkit.com)を参考に、手順を進めます。必要なコマンドは4つです。

※ IRKitのファームウェアアップデート情報が出ています。
2015/10/29時点で最新のファームは3.0.0です。こちらで記載したコマンドは3.0.0で使用しています。

1. IRKitのインスタンス名を確認する

$ dns-sd -B _irkit._tcp

Browsing for _irkit._tcp
DATE: ---Thu 29 Oct 2015---
18:18:14.737  ...STARTING...
Timestamp     A/R    Flags  if Domain   Service Type  Instance Name
18:18:14.988  Add        2  12 local.   _irkit._tcp.  iRKit0000
18:18:15.984  Add        2   5 local.   _irkit._tcp.  irkit0000
^C

2. IPアドレスを取り出す

$ dns-sd -G v4 irkit0000.local

DATE: ---Thu 29 Oct 2015---
18:30:53.919 ...STARTING...
Timestamp    A/R Flags if  Hostname         Address     TTL
18:30:54.325 Add 2     12  irkit0000.local. 192.168.2.4   10
18:30:55.193 Add 2     5   irkit0000.local. 192.168.2.4   10
^C

3. デバイスIDを取り出す

$ curl -i "http://192.168.2.4/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":"D59FB397F8D04A588B10415234A0xxxx"}

4. デバイスIDとクライアントキーを取り出す

$ curl -i -d "clienttoken=D59FB397F8D04A588B10415234A0xxxx" "https://api.getirkit.com/1/keys"

HTTP/1.1 200 OK
Server: ngx_openresty
Date: Thu, 29 Oct 2015 09:38:54 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":"72EC5FC2707F4216A9B1E6EC11E5xxxx","clientkey":"C1D3CA0731CA4BE8822F363F823xxxx"}

2. IRKitのリモコンシグナルを取り出す

上記のデバイスIDとクライアントキーの他に、送信用シグナルの情報が必要です。
送信用シグナルは、最後にIRKitに対して送信された情報が戻されます。
先ほど取り出したIRKitのIPアドレスを使用して、curlコマンドを送信します。

送信用シグナルを取り出す

$ curl -i "http://192.168.2.4/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,1111,~~,4400,1111]}

3. IFTTTにレシピを登録する

 

IFTTT側にレシピを作成します。
this側にMaker Channelを入れます。

Screen Shot 2015-10-29 at 20.03.56

トリガー設定を指定し、イベント名を設定します。

Screen Shot 2015-10-29 at 20.04.07Screen Shot 2015-10-29 at 20.04.19

That部にWordpressを指定します。

Screen Shot 2015-10-29 at 20.04.41

アクションはcreate a postになります。

Screen Shot 2015-10-29 at 20.07.04

Action情報を指定します。
Screen Shot 2015-10-29 at 19.11.22

入力後のイメージはこちら。
Screen Shot 2015-10-29 at 19.08.54

レシピを保存します。

4. DashboardにMaker ChannelのURLを設定する

IFTTT MakerChannel(https://ifttt.com/maker)にトリガーURLを作成します。

Screen Shot 2015-10-29 at 19.01.35

トリガーのURLをコピーして、Hackeyのダッシュボードにwebhookを追加します。

Screen Shot 2015-10-29 at 19.03.26

これで設定完了です。

うまく動きましたか?

これを活用すれば、部屋に入った時に鍵をひねると、照明やエアコン、テレビを全部まとめてつける! なんて使い方も可能になります。

アナログなのにデジタルハックなHackeyをどうぞよろしくお願いします〜!

IndiegogoでHackeyが特別価格になってます!
https://www.indiegogo.com/projects/hackey-a-smart-wi-fi-connected-key-switch#/