Class: Hue::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/hue/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(username = nil, use_mdns: true) ⇒ Client

Returns a new instance of Client.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/hue/client.rb', line 10

def initialize(username = nil, use_mdns: true)
  @bridge_id = nil
  @username = username || find_username
  @use_mdns = use_mdns

  if @username
    begin
      validate_user
    rescue Hue::UnauthorizedUser
      register_user
    end
  else
    register_user
  end
end

Instance Attribute Details

#usernameObject (readonly)

Returns the value of attribute username.



8
9
10
# File 'lib/hue/client.rb', line 8

def username
  @username
end

Instance Method Details

#add_lightsObject



50
51
52
# File 'lib/hue/client.rb', line 50

def add_lights
  bridge.add_lights
end

#bridgeObject

Raises:



26
27
28
29
30
31
32
33
34
35
# File 'lib/hue/client.rb', line 26

def bridge
  @bridge_id = find_bridge_id unless @bridge_id
  if @bridge_id
    bridge = bridges.select { |b| b.id == @bridge_id }.first
  else
    bridge = bridges.first
  end
  raise NoBridgeFound unless bridge
  bridge
end

#bridgesObject



37
38
39
40
41
42
43
44
# File 'lib/hue/client.rb', line 37

def bridges
  @bridges ||= begin
    bs = []
    discovery_mdns(bs) if @use_mdns
    discovery_meethue(bs) if bs.empty?
    bs
  end
end

#group(id = nil) ⇒ Object



63
64
65
66
67
68
# File 'lib/hue/client.rb', line 63

def group(id = nil)
  return Group.new(self, bridge) if id.nil?

  id = id.to_s
  groups.select { |g| g.id == id }.first
end

#groupsObject



59
60
61
# File 'lib/hue/client.rb', line 59

def groups
  bridge.groups
end

#light(id) ⇒ Object



54
55
56
57
# File 'lib/hue/client.rb', line 54

def light(id)
  id = id.to_s
  lights.select { |l| l.id == id }.first
end

#lightsObject



46
47
48
# File 'lib/hue/client.rb', line 46

def lights
  bridge.lights
end

#scene(id) ⇒ Object



74
75
76
77
# File 'lib/hue/client.rb', line 74

def scene(id)
  id = id.to_s
  scenes.select { |s| s.id == id }.first
end

#scenesObject



70
71
72
# File 'lib/hue/client.rb', line 70

def scenes
  bridge.scenes
end