IFTTTを使ってIRKitで赤外線機器を制御したいと思ったのですが、非開発者の僕には難しかったので、最低限必要な手続きをまとめました。
目次
IRKit購入
以前にこんな記事を書きました。
この記事の最後に書いたように、せっかくリモコン化したので、ネット経由で制御したいと思い、IRKitを購入しました。
IRKitは、ネットワーク経由で赤外線信号を飛ばすことができるデバイス。
IRKitにリモコン信号を記憶させれば、自宅内のWi-Fiはもちろん、インターネット経由で赤外線信号を飛ばすことができるので、iPhoneなどを使って外出先からも家電をコントロールできます。
さらに、WebサービスをつなげるIFTTTを使えば、他のWebサービスなどをトリガーにして自動で赤外線信号を飛ばすこともできます。
IRKitをIFTTTと連携するためには、IFTTTのMakerチャンネルを使います。
上記のような記事は割とたくさんあるのですが、多くは開発者向けに書かれたもので、そもそもそこにたどり着くまでどのようなプロセスを経ればいいのか、僕のような非開発者にはなかなか分かりづらい。
そこで、「開発とかは分からないけどとにかくIRKitで赤外線機器をコントロールできればいい」という人のために、「IFTTTのMakerチャンネルでIRKitから赤外線を飛ばす」ことに限定して、そのための最低限の手続きをまとめてみます。
IFTTTのレシピに必要な最低限の情報を取得するための手続き
あらかじめIRKitのセットアップとIFTTTのMakerチャンネルをアクティベートしているものとします。 手続きは5つ。
- IRKitのInstance Nameを取得
- IRKitのIPアドレスを取得
- クライアントトークンを取得
- deviceidとclientkeyを取得
- 機器のリモコンからIRKitに目的の赤外線を飛ばし、そのリモコン信号を取得
いろいろ取得する情報が多いですが… この順番にやっていけば、あとはIFTTTのレシピをつくるだけです。
中でも1.3.4.は最初に一度だけ取得すればいいので、レシピを作るたびに1.から5.のすべてをやる必要はありません。
1. IRKitのInstance Nameを取得
IRKitと同じネットワーク上のMac or PCで作業します。 Macではターミナルを使います。
Windowsでいうコマンドプロンプト(って今でも言うのかな?)です。
% dns-sd -B _irkit._tcp
これを入力すると、「iRKit◯◯◯◯」のようにInstance Nameが表示されます。
ここに限らず、ターミナルではくれぐれもタイプミスに注意してください。
2. IRKitのIPアドレスを取得
続いて、先ほど取得したInstance Nameを使って、以下のように入力します。
% dns-sd -G v4 irkita1b1.local
「irkita1b1」のところを、先ほど取得したInstance Nameにします。
全部小文字で良いようです。 IPアドレスが取得できます。
3. クライアントトークンを取得
さらに続いて、このIPアドレスを使って、クライアントトークンを取得します。
% curl -i "//10.0.1.2/keys" -d '' -H "X-Requested-With: curl"
10.0.1.2のところを、先ほど取得したIPアドレスにします。
下のように、クライアントトークンが取得できます。
4. deviceidとclientkeyを取得
このクライアントトークンを使って、deviceidとclienykeyを取得します。
% curl -i -d "clienttoken=XXXXXXXXXXXXXXXXXXXXX" "https://api.getirkit.com/1/keys"
ここまででひとまず準備は完了。
あとは、実際に使いたい赤外線信号をIRKitに飛ばして、その赤外線信号をターミナルから取得します。
5. 機器のリモコンからIRKitに目的の赤外線を飛ばし、そのリモコン信号を取得
リモコンをIRKitに向け、使いたいボタンを押します。
IRKitの青ランプが点滅すればOK。
ふたたびターミナルに戻って、以下を入力します。
% curl -i "//10.0.1.2/messages" -H "X-Requested-With: curl"
10.0.1.2の部分は2.で取得したIPアドレスです。
これで表示されるのが赤外線信号です。
このコマンドは、最後に入力された信号を取得します。
また、このコマンドを実行すると信号はIRKitから消えます。
再度取得するには、もう一度リモコンをIRKitに向けて押す必要があります。
注意点としては、自宅のルータのルーターモードがDHCPの場合、一定期間が経つとIPアドレスが変わっていることがあるので、5.の赤外線信号取得の前に2.を実行してIPアドレスを確認しておく必要があります。
IFTTTのMakerチャンネルの設定
最終的に必要な情報は、deviceid、clientkey、赤外線信号の3つです。
これらをIFTTTのMakerチャンネルのアクションの入力欄に入れていきます。
トリガー(This)を目的に応じて設定したら、ThatでMaker>「Make a web request」を選択。 各項目を以下のように設定します。
URL | https://api.getirkit.com/1/messages |
Method | POST |
Content Type | application/x-www-form-urlencoded |
Body | clientkey=[自分のclientkey]&deviceid=[自分のdeviceid]&message={“format”:〜で始まる赤外線信号〜]} |
以上で完成です。
以降は2.でIPアドレスを確認して、5.で赤外線信号を取得、レシピを作っていけばいいだけです。