#!/usr/bin/ruby ### config user="" pass="" ip="192.168.x.x" ### No need to change anything below require "httparty" url="http://#{user}:#{pass}@#{ip}/white" ## funkce def rgbwstatus(url,channel=0) page_data = HTTParty.get("#{url}/#{channel}") responses = page_data.parsed_response return responses end def rgbwtoggle(url,channel=0) if rgbwstatus(url,channel)["ison"] == true then page_data = HTTParty.get("#{url}/#{channel}?turn=off") status = page_data.parsed_response else page_data = HTTParty.get("#{url}/#{channel}?turn=on") status = page_data.parsed_response end end def rgbwbrup(url,channel=0) brightness = rgbwstatus(url,channel)["brightness"].to_i brightness = brightness+5 if brightness > 100 then brightness=100 end if brightness < 5 then brightness=5 end page_data = HTTParty.get("#{url}/#{channel}?brightness=#{brightness}") status = page_data.parsed_response end def rgbwbrdown(url,channel=0) brightness = rgbwstatus(url,channel)["brightness"].to_i brightness = brightness-5 if brightness > 100 then brightness=100 end if brightness < 5 then brightness=5 end page_data = HTTParty.get("#{url}/#{channel}?brightness=#{brightness}") status = page_data.parsed_response end def rgbwbright(url,brightness,channel=0) brightness=brightness.to_i if brightness > 100 then brightness=100 end if brightness < 5 then brightness=5 end page_data = HTTParty.get("#{url}/#{channel}?brightness=#{brightness}") status = page_data.parsed_response end def rgbwtoggle(url,channel=0) if rgbwstatus(url,channel)["ison"] == true then page_data = HTTParty.get("#{url}/#{channel}?turn=off") status = page_data.parsed_response else page_data = HTTParty.get("#{url}/#{channel}?turn=on") status = page_data.parsed_response end end def rgbwoff(url,channel=0) page_data = HTTParty.get("#{url}/#{channel}?turn=off") status = page_data.parsed_response end def rgbwon(url,channel=0) page_data = HTTParty.get("#{url}/#{channel}?turn=on") status = page_data.parsed_response end ## Ovladani command, *parametry = ARGV case command when "on" if ! parametry[0].nil? then channel = parametry[0].to_i if ! channel.between?(0,3) then puts "Neplatny kanal, hodnota musi byt v rozsahu 0 - 3" exit end rgbwon(url,channel) else rgbwon(url) end when "off" if ! parametry[0].nil? then channel = parametry[0].to_i if ! channel.between?(0,3) then puts "Neplatny kanal, hodnota musi byt v rozsahu 0 - 3" exit end rgbwoff(url,channel) else rgbwoff(url) end when "toggle" if ! parametry[0].nil? then channel = parametry[0].to_i if ! channel.between?(0,3) then puts "Neplatny kanal, hodnota musi byt v rozsahu 0 - 3" exit end rgbwtoggle(url,channel) else rgbwtoggle(url) end when "up" if ! parametry[0].nil? then channel = parametry[0].to_i if ! channel.between?(0,3) then puts "Neplatny kanal, hodnota musi byt v rozsahu 0 - 3" exit end rgbwbrup(url,channel) else rgbwbrup(url) end when "down" if ! parametry[0].nil? then channel = parametry[0].to_i if ! channel.between?(0,3) then puts "Neplatny kanal, hodnota musi byt v rozsahu 0 - 3" exit end rgbwbrdown(url,channel) else rgbwbrdown(url) end when "brightness" if parametry[0].nil? then puts "Musite zadat hodnotu intenzity v procentech (5-100)" exit 1 else brightness=parametry[0].to_i end if ! parametry[1].nil? then channel = parametry[1].to_i if ! channel.between?(0,3) then puts "Neplatny kanal, hodnota musi byt v rozsahu 0 - 3" exit end rgbwbright(url,brightness,channel) else rgbwbright(url,brightness) end end