IRKitで毎朝自動的に電気をつける
IRKit - Open Source WiFi Connected Infrared Remote Controller
IRKitを購入したので、ちょっと利用してみます。
IRKitは基本的にHTTPリクエストを送ることで操作が可能です。
例: 最後に受信した赤外線信号を取得
% curl -i "http://192.168.x.x/messages" HTTP/1.0 200 OK Access-Control-Allow-Origin: * Server: IRKit/2.1.2.0.g424fa95 Content-Type: text/plain {"format":"raw","freq":38,"data":[873,873,873,...]}
常にcurlコマンドで操作するのは難儀なので、ruby-irkitというRubyGemを利用して操作します。ありがたい。
GitHub - shokai/ruby-irkit: IRKit Client for Ruby
# bonjourを利用するため、avahiをインストール % sudo apt-get install libavahi-compat-libdnssd-dev # ruby-irkitのインストール % gem install irkit # LAN内のIRKitリストを取得 % irkit --list ~> /home/jimaoka/.irkit.json == Data == Devices 192.168.x.x irkit479e (bonjour)
今回は朝に電気を点けるために電灯をONにする信号を学習させます。
# IRKitに向けてリモコン信号を送信した後に実行する % irkit --get roomlight_on finding IRKit with bonjour... using #<IRKit::Device @address="192.168.x.x" @bonjour_name="irkit479e"> {"format":"raw","freq":38,"data":[17421,8755,1190,...]} "roomlight_on" saved! # irkitコマンドのフルパスを確認 # rbenvを使用している為、ホーム以下にあります % which irkit /home/jimaoka/.rbenv/shims/irkit # crontabをいじる(毎朝6時50分に電気を点ける) % sudo vim /etc/crontab 50 6 * * * jimaoka /home/jimaoka/.rbenv/shims/irkit --post roomlight_on
一度これで試してみる。。が上手く動作しない。
失敗している場合はbonjourのサービス検索がタイムアウトになっているっぽいので、
5分毎にデバイス検索をしてbonjourのキャッシュを作っておく。
# crontabをいじる(5分毎にデバイス検索) % sudo vim /etc/crontab */5 * * * * jimaoka /home/jimaoka/.rbenv/shims/irkit --list
これで上手く動いた!
【使用した感想】
テレビの電源ONも併用するとかなり起きれます。