Raspberry PiからIRKitを操作する

ようやくRaspberry PiからIRKit Device HTTP APIを使ってIRKitを操作するようにできた。(ほぼChef-SoloでRaspberry Piをセットアップする方に時間を割いていたわけなのだが)

Raspberry PiからIRKit

前回iOSアプリ(ツール)で調べた赤外線信号をRubyのSinatraプロジェクトからjsonでただPOSTするだけのシステム。超適当。

require 'net/http'

# Send to IRKit
get '/:command' do

  irkit_address = '192.168.1.43'
  ir_commands = {
       aircon_off: '{"format":"raw","data":[6881,...],"freq":38}',
       aircon_on: '{"format":"raw","data":[6881,...],"freq":38}'
  }
  command = params[:command].to_sym

  uri = URI.parse("http://#{irkit_address}/messages")
  request = Net::HTTP::Post.new(uri.request_uri, initheader = {'Content-Type' => 'application/json'})
  request.body = ir_commands[command]

  http = Net::HTTP.new(uri.host, uri.port)
  http.start do |h|
    response = h.request(request)
  end

  response.body if response
end

秘密のURLにアクセスするとエアコンを入れたり、切ったりすることができる。二人は同じUSBハブから給電していて一蓮托生。低電力で動くのもこの手のデバイスの魅力。