class Hue

Attributes

bulbs[R]

Public Class Methods

new(ip,username) click to toggle source
# File lib/rubyhue.rb, line 22
def initialize(ip,username)
  @ip = ip 
  @username = username
  @http = Net::HTTP.new(ip,80)
  @bulbs = []
  @groups = []
end

Public Instance Methods

add_bulb(id,bulb_data) click to toggle source
# File lib/rubyhue.rb, line 41
def add_bulb(id,bulb_data)
  @bulbs << HueBulb.new( id, bulb_data )
end
register_username() click to toggle source
# File lib/rubyhue.rb, line 30
def register_username
  data = { "devicetype"=>"rubyhue",
            "username"=>@username }
  response = @http.post "/api", data.to_json
  JSON.parse response.body
end
request_bulb_info( id ) click to toggle source
# File lib/rubyhue.rb, line 49
def request_bulb_info( id )
  hue_get "lights/#{id}"
end
request_bulb_list() click to toggle source
# File lib/rubyhue.rb, line 45
def request_bulb_list
  hue_get "lights"
end
request_config() click to toggle source
# File lib/rubyhue.rb, line 37
def request_config
  hue_get "config"
end
request_group_list() click to toggle source
# File lib/rubyhue.rb, line 53
def request_group_list
  hue_get "groups"
end
set_bulb_state( id, state ) click to toggle source
# File lib/rubyhue.rb, line 57
def set_bulb_state( id, state )
  hue_put "lights/#{id}/state", state.data
end

Private Instance Methods

hue_get( path ) click to toggle source
# File lib/rubyhue.rb, line 62
def hue_get( path )
  request = Net::HTTP::Get.new( "/api/#{@username}/#{path}" )
  response = @http.request request
  JSON.parse response.body
end
hue_put( path, data ) click to toggle source
# File lib/rubyhue.rb, line 68
def hue_put( path, data )
  response = @http.put( "/api/#{@username}/#{path}", data.to_json )
  JSON.parse response.body
end