Class: Hue

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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context, bridge_state) ⇒ Hue

Returns a new instance of Hue.



14
15
16
17
18
19
20
# File 'lib/ha/hue.rb', line 14

def initialize(context, bridge_state)
  @context = context
  @bridge_state = bridge_state
  @groups =  groups
  @sensors =  sensors
  @lights =  lights
end

Class Method Details

.bridge_stateObject



22
23
24
25
26
27
28
29
# File 'lib/ha/hue.rb', line 22

def self.bridge_state
  unless defined? @bridge_state
    conn = Faraday.new(url: "http://#{BRIDGE_IP}")
    get = conn.get("/api/#{USERNAME}/")
    @bridge_state = JSON.parse(get.body)
  end
  @bridge_state
end

Instance Method Details

#all_a(selector) ⇒ Object



56
57
58
59
60
61
# File 'lib/ha/hue.rb', line 56

def all_a  selector
  items =  sensors_a selector
  items +=  lights_a selector
  items +=  groups_a selector
  items += rules_a selector
end

#groupsObject



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

def groups
  parsed = @bridge_state["groups"]
  parsed.to_a.map { |group_pair| Group.new(*group_pair)}
end

#groups_a(selector) ⇒ Object



71
72
73
# File 'lib/ha/hue.rb', line 71

def groups_a selector
  groups.map { |group| group.array(selector)}
end

#lightsObject



41
42
43
44
# File 'lib/ha/hue.rb', line 41

def lights
  parsed = @bridge_state["lights"]
  parsed.to_a.map { |light_pair| Light.new(*light_pair, @groups)}
end

#lights_a(selector) ⇒ Object



67
68
69
# File 'lib/ha/hue.rb', line 67

def lights_a selector
  lights.map { |light| light.array(selector)}
end

#pairObject



31
32
33
34
# File 'lib/ha/hue.rb', line 31

def pair
  @context[:useraccount] = "12345"
  @context.save
end

#rulesObject



51
52
53
54
# File 'lib/ha/hue.rb', line 51

def rules
  parsed = @bridge_state["rules"]
  parsed.to_a.map { |rule_pair| Rule.new(*rule_pair)}
end

#rules_a(selector) ⇒ Object



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

def rules_a selector
  rules.map { |rule| rule.array(selector)}
end

#sensorsObject



36
37
38
39
# File 'lib/ha/hue.rb', line 36

def sensors
  parsed = @bridge_state["sensors"]
  parsed.to_a.map { |sensor_pair| Sensor.new(*sensor_pair)}
end

#sensors_a(selector) ⇒ Object



63
64
65
# File 'lib/ha/hue.rb', line 63

def sensors_a selector
  sensors.map { |sensor| sensor.array(selector)}
end