ようやくRaspberry PiからIRKit Device HTTP APIを使ってIRKitを操作するようにできた。(ほぼChef-SoloでRaspberry Piをセットアップする方に時間を割いていたわけなのだが)
前回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ハブから給電していて一蓮托生。低電力で動くのもこの手のデバイスの魅力。