lights 0.8.18 → 0.8.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTUwNmZjMWQ4MzMyMjA2ODU1ZmJhMTVmNGY5ODJiNWFjZTU5ZjgyMQ==
4
+ MjUyYjgwZTU5M2I1ZjhhMDNhYjQyN2ZiYmU1NmZjMGUxNjNlZjE0MQ==
5
5
  data.tar.gz: !binary |-
6
- MGQxNTExYWM5NjI1MzRlMzZlOGI1OTVlNjM2Y2YyNjlmOTEwMTFhMA==
6
+ MmY0YzRlMWQ3OTE0NjczYjk4NDhkN2E4YWE1NDI5OGMyNDBlNzA1Mg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZDg4MGE0MmIwNjdhNzljZmFjNmI2YWQ3ZTAyNTRkZDExYzg4MTZkZmY4N2Fi
10
- Y2ZlYWQ1Yjk4NmYzZDFiM2NlOGQzNDQ5MDgzYzE2NmM3OTE4MzAxMDQwZmZl
11
- N2I1N2M5NjA1YWY2MWM2MzQ0ZDFlNjFmNzM0MWNmZDhlMTY2ZTc=
9
+ MWM3ODk4ZDUyZGI1MWMyZGUyMWI3MjE0NTVmZGIzYjA1ZmJiODg2ZTc2NjZh
10
+ NWZiNzFkNzg4Njk1Nzk1YTBhYmI5MzQ2NjQ5NjQ5YzEwODhhNzEwZjM4ODJi
11
+ MDkwNjQ4ZjQwMWY2NTkyMzI2YTI5MjlhNjYyN2Y2ZDMyNWQzNmE=
12
12
  data.tar.gz: !binary |-
13
- Y2Q2OWVkMDI3ODAzMjI5NjUwYTI3MjU2YjY0MjY0NTE5YzEzNWE0MmZhODBj
14
- NDcwODRhYTc2MDQ3OWI3YzM4MWQ3ZTkyY2Q3ZDE1Y2ViODhiYjU2ZGM4MmQx
15
- OGE5NWU5N2Q2ZTFiNzE2MDNjNDAyMjgxYjljODUxMmQzMGNmNDA=
13
+ ZjNkZThjYTg1YjBiOTQ2OWNmYTY5OTQyOTk2OGM4Mzg1M2YwZGUxNDkyYTdk
14
+ OTNmYWIyNGJlZmVlY2NkZDBlMWVmYWY5ZGFhNTA1ODc0OTBmNzI2MTRiOGM5
15
+ MDRmNTMzNWMxYmRhODMxYTBkYTg5OGQxMjM3MWFkMTNkZjk4OGI=
@@ -4,7 +4,6 @@ class Bridge < HObject
4
4
 
5
5
  attr_reader :id, :ip, :name, :mac
6
6
  def initialize(data = {})
7
- super
8
7
  @id = data["id"]
9
8
  @ip = data["internalipaddress"]
10
9
  @mac = data["macaddress"]
@@ -2,22 +2,29 @@ require 'lights/bulbstate'
2
2
  require 'lights/hobject'
3
3
 
4
4
  class Bulb < HObject
5
- attr_reader :id, :name, :type, :swversion, :state
5
+ attr_reader :id, :name, :type, :sw_version, :state,
6
+ :point_symbol, :model_id, :unique_id
7
+ attr_writer :name, :state
6
8
  def initialize(id,data = {})
7
- super(data)
8
9
  @id = id
9
10
  @name = data["name"]
10
11
  @type = data["type"]
11
- @swversion = data["swversion"]
12
+ @sw_version = data["swversion"]
13
+ @point_symbol = data["pointsymbol"]
14
+ @model_id = data["modelid"]
15
+ @unique_id = data["uniqueid"]
12
16
  @state = BulbState.new data["state"]
13
17
  end
14
18
 
15
19
  def data
16
- data = @data
20
+ data = {}
17
21
  data["name"] = @name if @name
18
22
  data["type"] = @type if @type
19
- data["swversion"] = @swversion if @swversion
20
- data["state"] = @state.data if !@state.data.empty?
23
+ data["swversion"] = @sw_version if @sw_version
24
+ data["state"] = @state.data unless @state.data.empty?
25
+ data["pointsymbol"] = @point_symbol if @point_symbol
26
+ data["modelid"] = @model_id if @model_id
27
+ data["uniqueid"] = @unique_id if @unique_id
21
28
  data
22
29
  end
23
30
  end
@@ -45,7 +45,6 @@ class BulbState < HObject
45
45
  :reachable, :transition_time
46
46
  def initialize( data = {} )
47
47
  data = {} if data == nil
48
- super
49
48
  @on = data["on"]
50
49
  set_bri data["bri"]
51
50
  set_hue data["hue"]
@@ -172,8 +171,8 @@ class BulbState < HObject
172
171
  end
173
172
 
174
173
  def data
175
- data = @data
176
- data["on"] = @on if (@on!=nil)
174
+ data = {}
175
+ data["on"] = @on unless @on.nil?
177
176
  data["bri"] = @bri if @bri
178
177
  data["hue"] = @hue if @hue
179
178
  data["sat"] = @sat if @sat
@@ -182,7 +181,7 @@ class BulbState < HObject
182
181
  data["alert"] = @alert if @alert
183
182
  data["effect"] = @effect if @effect
184
183
  data["colormode"] = @color_mode if @color_mode
185
- data["reachable"] = @reachable if @reachable
184
+ data["reachable"] = @reachable unless @reachable.nil?
186
185
  data["transitiontime"] = @transition_time if @transition_time
187
186
  data
188
187
  end
@@ -3,14 +3,13 @@ require 'lights/hobject'
3
3
  class Command < HObject
4
4
  attr_reader :address, :method, :body
5
5
  def initialize(data = {})
6
- super
7
6
  @address = data["address"]
8
7
  @body = data["body"]
9
8
  @method = data["method"]
10
9
  end
11
10
 
12
11
  def data
13
- data = @data
12
+ data = {}
14
13
  data["address"] = @address if @address
15
14
  data["body"] = @body if @body
16
15
  data["method"] = @method if @method
@@ -2,19 +2,58 @@ require 'lights/userlist'
2
2
  require 'lights/hobject'
3
3
 
4
4
  class HueConfig < HObject
5
- attr_reader :name, :swversion, :whitelist
5
+ attr_reader :name, :zigbee_channel, :mac, :dhcp,
6
+ :ip_address, :netmask, :gateway,
7
+ :proxy_address, :proxy_port, :utc,
8
+ :local_time, :time_zone, :whitelist,
9
+ :swversion, :api_version, :sw_update,
10
+ :link_button, :portal_services,
11
+ :portal_connection, :portal_state
6
12
  def initialize(data = {})
7
- super
8
13
  @name = data["name"]
9
- @swversion = data["swversion"]
14
+ @zigbee_channel = data["zigbeechannel"]
15
+ @mac = data["mac"]
16
+ @dhcp = data["dhcp"]
17
+ @ip_address = data["ipaddress"]
18
+ @netmask = data["netmask"]
19
+ @gateway = data["gateway"]
20
+ @proxy_address = data["proxyaddress"]
21
+ @proxy_port = data["proxyport"]
22
+ @utc = data["UTC"]
23
+ @local_time = data["localtime"]
24
+ @time_zone = data["timezone"]
10
25
  @whitelist = UserList.new(data["whitelist"])
26
+ @sw_version = data["swversion"]
27
+ @api_version = data["apiversion"]
28
+ @sw_update = data["swupdate"]
29
+ @link_button = data["linkbutton"]
30
+ @portal_services = data["portalservices"]
31
+ @portal_connection = data["portalconnection"]
32
+ @portal_state = data["portalstate"]
11
33
  end
12
34
 
13
35
  def data
14
- data = @data
36
+ data = {}
15
37
  data["name"] = @name if @name
16
- data["swversion"] = @swversion if @swversion
17
- data["whitelist"] = @whitelist.data if !@whitelist.data.empty?
38
+ data["zigbeechannel"] = @zigbee_channel if @zigbee_channel
39
+ data["mac"] = @mac if @mac
40
+ data["dhcp"] = @dhcp unless @dhcp.nil?
41
+ data["ipaddress"] = @ip_address if @ip_address
42
+ data["netmask"] = @netmask if @netmask
43
+ data["gateway"] = @gateway if @gateway
44
+ data["proxyaddress"] = @proxy_address if @proxy_address
45
+ data["proxyport"] = @proxy_port if @proxy_port
46
+ data["UTC"] = @utc if @utc
47
+ data["localtime"] = @local_time if @local_time
48
+ data["timezone"] = @time_zone if @time_zone
49
+ data["whitelist"] = @whitelist.data unless @whitelist.data.empty?
50
+ data["swversion"] = @sw_version if @sw_version
51
+ data["apiversion"] = @api_version if @api_version
52
+ data["swupdate"] = @sw_update unless @sw_update.nil?
53
+ data["linkbutton"] = @link_button unless @link_button.nil?
54
+ data["portalservices"] = @portal_services unless @portal_services.nil?
55
+ data["portalconnection"] = @portal_connection if @portal_connection
56
+ data["portalstate"] = @portal_state unless @portal_state.nil?
18
57
  data
19
58
  end
20
59
  end
@@ -11,7 +11,6 @@ class Datastore < HObject
11
11
  attr_reader :lights, :groups, :config, :rules,
12
12
  :scenes, :schedules, :sensors
13
13
  def initialize(data = {})
14
- super
15
14
  @lights = BulbList.new(data["lights"])
16
15
  @groups = GroupList.new(data["groups"])
17
16
  @config = HueConfig.new(data["config"])
@@ -32,7 +31,7 @@ class Datastore < HObject
32
31
  end
33
32
 
34
33
  def data
35
- data = @data
34
+ data = {}
36
35
  data["lights"] = @lights.data if !@lights.data.empty?
37
36
  data["groups"] = @groups.data if !@groups.data.empty?
38
37
  data["config"] = @config.data if !@config.data.empty?
@@ -12,7 +12,7 @@ end
12
12
 
13
13
  class BulbStateValueOutOfRangeException < Exception
14
14
  def initalize(msg = "Value out of range.")
15
- super(msg)
15
+ super
16
16
  end
17
17
  end
18
18
 
@@ -1,21 +1,22 @@
1
1
  require 'lights/hobject'
2
2
 
3
3
  class Group < HObject
4
- attr_reader :id, :data, :name, :lights, :action
4
+ attr_reader :id, :data, :name, :lights, :action, :type
5
5
  attr_writer :name, :lights, :action
6
6
  def initialize( id = nil, data = {} )
7
- super(data)
8
7
  @id = id
9
8
  @action = BulbState.new(data["action"])
10
9
  @name = data["name"]
11
10
  @lights = data["lights"]
11
+ @type = data["type"]
12
12
  end
13
13
 
14
14
  def data
15
- data = @data
15
+ data = {}
16
16
  data["name"] = @name if @name
17
17
  data["lights"] = @lights if @lights
18
- data["action"] = @action.data if @action.data != {}
18
+ data["type"] = @type if @type
19
+ data["action"] = @action.data unless @action.data.empty?
19
20
  data
20
21
  end
21
22
  end
@@ -1,6 +1,5 @@
1
1
  class HObject
2
- def initialize(data={})
3
- @data = data
2
+ def initialize(*args)
4
3
  end
5
4
 
6
5
  def to_json(options={})
@@ -9,12 +9,11 @@ class List < HObject
9
9
 
10
10
  attr_reader :list
11
11
  def initialize(data = {})
12
- super
13
12
  @list = []
14
13
  end
15
14
 
16
15
  def data
17
- data = @data
16
+ data = {}
18
17
  @list.each {|b| data[b.id] = b.data} if @list
19
18
  data
20
19
  end
@@ -1,16 +1,31 @@
1
1
  require 'lights/hobject'
2
2
 
3
3
  class Rule < HObject
4
- attr_reader :id, :data, :name
4
+ attr_reader :id, :name, :owner, :created,
5
+ :last_triggered, :times_triggered,
6
+ :status, :conditions, :actions
5
7
  def initialize( id = nil, data = {} )
6
- super(data)
7
8
  @id = id
8
9
  @name = data["name"]
10
+ @owner = data["owner"]
11
+ @created = data["created"]
12
+ @last_triggered = data["lasttriggered"]
13
+ @times_triggered = data["timestriggered"]
14
+ @status = data["status"]
15
+ @conditions = data["conditions"]
16
+ @actions = data["actions"]
9
17
  end
10
18
 
11
19
  def data
12
- data = @data
20
+ data = {}
13
21
  data["name"] = @name if @name
22
+ data["owner"] = @owner if @owner
23
+ data["created"] = @created if @created
24
+ data["lasttriggered"] = @last_triggered if @last_triggered
25
+ data["timestriggered"] = @times_triggered if @times_triggered
26
+ data["status"] = @status if @status
27
+ data["conditions"] = @conditions if @conditions
28
+ data["actions"] = @actions if @actions
14
29
  data
15
30
  end
16
31
  end
@@ -3,7 +3,6 @@ require 'lights/hobject'
3
3
  class Scene < HObject
4
4
  attr_accessor :id, :name, :active, :lights
5
5
  def initialize(id,data = {})
6
- super(data)
7
6
  @id = id
8
7
  @name = data["name"]
9
8
  @active = data["active"]
@@ -13,7 +12,7 @@ class Scene < HObject
13
12
  def data
14
13
  data = {}
15
14
  data["name"] = @name if @name
16
- data["active"] = @active if @active
15
+ data["active"] = @active unless @active.nil?
17
16
  data["lights"] = @lights if @lights
18
17
  data
19
18
  end
@@ -2,13 +2,17 @@ require 'lights/command'
2
2
  require 'lights/hobject'
3
3
 
4
4
  class Schedule < HObject
5
- attr_reader :id, :name, :time, :status
5
+ attr_reader :id, :name, :time, :status,
6
+ :description, :local_time,
7
+ :created, :command
6
8
  def initialize(id,data = {})
7
- super(data)
8
9
  @id = id
9
10
  @name = data["name"]
10
11
  @time = data["time"]
11
12
  @status = data["status"]
13
+ @description = data["description"]
14
+ @local_time = data["localtime"]
15
+ @created = data["created"]
12
16
  @command = Command.new(data["command"])
13
17
  end
14
18
 
@@ -17,11 +21,14 @@ class Schedule < HObject
17
21
  end
18
22
 
19
23
  def data
20
- data = @data
24
+ data = {}
21
25
  data["name"] = @name if @name
22
26
  data["time"] = @time if @time
23
27
  data["status"] = @status if @status
24
- data["command"] = @command.data if !@command.data.empty?
28
+ data["description"] = @description if @description
29
+ data["localtime"] = @local_time if @local_time
30
+ data["created"] = @created if @created
31
+ data["command"] = @command.data unless @command.data.empty?
25
32
  data
26
33
  end
27
34
  end
@@ -1,35 +1,25 @@
1
1
  class SensorState < HObject
2
2
  attr_reader :last_updated
3
3
  def initialize(data)
4
- super
5
4
  @last_updated = data["lastupdated"]
5
+ @daylight = data["daylight"]
6
+ @button_event = data["buttonevent"]
6
7
  end
7
8
 
8
9
  def data
9
- data = @data
10
+ data = {}
10
11
  data["lastupdated"] = @last_updated if @last_updated
11
- data
12
- end
13
- end
14
-
15
- class TapState < SensorState
16
- attr_reader :button_event
17
- def initialize(data)
18
- super
19
- @button_event = data["button_event"]
20
- end
21
-
22
- def data
23
- data = @data
24
- data["button_event"] = @button_event if @button_event
12
+ data["daylight"] = @daylight unless @daylight.nil?
13
+ data["buttonevent"] = @button_event if @button_event
25
14
  data
26
15
  end
27
16
  end
28
17
 
29
18
  class Sensor < HObject
30
- attr_reader :id, :data, :name, :type, :model_id, :manufacturer_name, :unique_id, :sw_version, :state
19
+ attr_reader :id, :data, :name, :type, :model_id,
20
+ :manufacturer_name, :unique_id,
21
+ :sw_version, :state
31
22
  def initialize( id, data = {} )
32
- super(data)
33
23
  @id = id
34
24
  @name = data["name"]
35
25
  @type = data["type"]
@@ -37,19 +27,20 @@ class Sensor < HObject
37
27
  @manufacturer_name = data["manufacturername"]
38
28
  @unique_id = data["uniqueid"]
39
29
  @sw_version = data["swversion"]
30
+ @config = data["config"]
40
31
  @state = SensorState.new(data["state"])
41
- #@config = SensorConfig.new(data["config"])
42
32
  end
43
33
 
44
34
  def data
45
- data = @data
35
+ data = {}
46
36
  data["name"] = @name if @name
47
37
  data["type"] = @type if @type
48
38
  data["modelid"] = @model_id if @model_id
49
39
  data["manufacturername"] = @manufacturer_name if @manufacturer_name
50
40
  data["uniqueid"] = @unique_id if @unique_id
51
41
  data["swversion"] = @sw_version if @sw_version
52
- data["state"] = @state.data if @state.data if !@state.data.empty?
42
+ data["config"] = @config if @config
43
+ data["state"] = @state.data unless @state.data.empty?
53
44
  data
54
45
  end
55
46
  end
@@ -3,7 +3,6 @@ require 'lights/hobject'
3
3
  class User < HObject
4
4
  attr_reader :id, :name, :create_date, :last_use_date
5
5
  def initialize( id, data = {} )
6
- super(data)
7
6
  @id = id
8
7
  @name = data["name"]
9
8
  @create_date = data["create date"]
@@ -11,7 +10,7 @@ class User < HObject
11
10
  end
12
11
 
13
12
  def data
14
- data = @data
13
+ data = {}
15
14
  data["name"] = @name if @name
16
15
  data["create date"] = @create_date if @create_date
17
16
  data["last use date"] = @last_use_date if @last_use_date
@@ -1,3 +1,3 @@
1
1
  module LightsConst
2
- VERSION = "0.8.18"
2
+ VERSION = "0.8.19"
3
3
  end
@@ -7,6 +7,13 @@ describe Bulb do
7
7
  bulb.name.should eql "test name"
8
8
  end
9
9
 
10
+ it "properly set name parameter" do
11
+ data = { "name" => "test name" }
12
+ bulb = Bulb.new(1,data)
13
+ bulb.name = "new test name"
14
+ bulb.name.should eql "new test name"
15
+ end
16
+
10
17
  it "properly creates state object" do
11
18
  data = {
12
19
  "name" => "test name",
@@ -2,15 +2,45 @@ require 'lights'
2
2
 
3
3
  describe Datastore do
4
4
  it "properly reconstructs sub objects" do
5
+ data = JSON.parse(DATASTORE_JSON)
6
+ ds = Datastore.new data
7
+ ds.data.should eql data
8
+ end
9
+
10
+ it "properly reconstructs light objects" do
5
11
  data = JSON.parse(DATASTORE_JSON)
6
12
  ds = Datastore.new data
7
13
  ds.lights.data.should eql data["lights"]
14
+ end
15
+ it "properly reconstructs group objects" do
16
+ data = JSON.parse(DATASTORE_JSON)
17
+ ds = Datastore.new data
8
18
  ds.groups.data.should eql data["groups"]
19
+ end
20
+ it "properly reconstructs rule objects" do
21
+ data = JSON.parse(DATASTORE_JSON)
22
+ ds = Datastore.new data
9
23
  ds.rules.data.should eql data["rules"]
24
+ end
25
+ it "properly reconstructs scene objects" do
26
+ data = JSON.parse(DATASTORE_JSON)
27
+ ds = Datastore.new data
10
28
  ds.scenes.data.should eql data["scenes"]
29
+ end
30
+ it "properly reconstructs schedule objects" do
31
+ data = JSON.parse(DATASTORE_JSON)
32
+ ds = Datastore.new data
11
33
  ds.schedules.data.should eql data["schedules"]
34
+ end
35
+ it "properly reconstructs sensor objects" do
36
+ data = JSON.parse(DATASTORE_JSON)
37
+ ds = Datastore.new data
12
38
  ds.sensors.data.should eql data["sensors"]
13
- ds.data.should eql data
39
+ end
40
+ it "properly reconstructs config object" do
41
+ data = JSON.parse(DATASTORE_JSON)
42
+ ds = Datastore.new data
43
+ ds.config.data.should eql data["config"]
14
44
  end
15
45
  end
16
46
 
@@ -19,7 +49,7 @@ DATASTORE_JSON = %Q{
19
49
  "lights": {
20
50
  "1": {
21
51
  "state": {
22
- "on": true,
52
+ "on": false,
23
53
  "bri": 254,
24
54
  "hue": 34495,
25
55
  "sat": 232,
@@ -31,7 +61,7 @@ DATASTORE_JSON = %Q{
31
61
  "ct": 155,
32
62
  "alert": "none",
33
63
  "colormode": "xy",
34
- "reachable": true
64
+ "reachable": false
35
65
  },
36
66
  "type": "Extended color light",
37
67
  "name": "Hue Lamp 1",
@@ -227,7 +257,7 @@ DATASTORE_JSON = %Q{
227
257
  "name": "Philips hue",
228
258
  "zigbeechannel": 25,
229
259
  "mac": "00:11:22:33:44:55",
230
- "dhcp": true,
260
+ "dhcp": false,
231
261
  "ipaddress": "192.168.1.27",
232
262
  "netmask": "255.255.255.0",
233
263
  "gateway": "192.168.1.1",
@@ -269,7 +299,7 @@ DATASTORE_JSON = %Q{
269
299
  "notify": false
270
300
  },
271
301
  "linkbutton": false,
272
- "portalservices": true,
302
+ "portalservices": false,
273
303
  "portalconnection": "connected",
274
304
  "portalstate": {
275
305
  "signedon": true,
@@ -320,7 +350,7 @@ DATASTORE_JSON = %Q{
320
350
  "4",
321
351
  "5"
322
352
  ],
323
- "active": true
353
+ "active": false
324
354
  },
325
355
  "da01b1eaf-on-0": {
326
356
  "name": "Purple on 0",
@@ -2,22 +2,152 @@ require 'lights'
2
2
 
3
3
  describe Group do
4
4
  it "properly parses input parameters" do
5
- data = {
6
- "key1" => "value 1",
7
- "key2" => "value 2",
8
- }
5
+ data = JSON.parse(GROUPS_JSON)["1"]
9
6
  group = Group.new(1,data)
10
7
  group.id.should eql 1
11
- group.data.should eql data
8
+ group.name.should eql "Ceiling light"
9
+ group.type.should eql "LightGroup"
10
+ group.lights.should eql ["1","2","3","4"]
12
11
  end
13
12
 
14
13
  it "properly reconstucts object hash" do
15
- data = {
16
- "key1" => "value 1",
17
- "key2" => "value 2",
18
- }
14
+ data = JSON.parse(GROUPS_JSON)["1"]
19
15
  group = Group.new(1,data)
20
16
  group.id.should eql 1
21
17
  group.data.should eql data
22
18
  end
23
19
  end
20
+
21
+ GROUPS_JSON = %Q{
22
+ {
23
+ "1": {
24
+ "name": "Ceiling light",
25
+ "lights": [
26
+ "1",
27
+ "2",
28
+ "3",
29
+ "4"
30
+ ],
31
+ "type": "LightGroup",
32
+ "action": {
33
+ "on": true,
34
+ "bri": 254,
35
+ "hue": 56100,
36
+ "sat": 232,
37
+ "effect": "none",
38
+ "xy": [
39
+ 0.4119,
40
+ 0.1949
41
+ ],
42
+ "ct": 293,
43
+ "colormode": "xy"
44
+ }
45
+ },
46
+ "2": {
47
+ "name": "Lamp",
48
+ "lights": [
49
+ "5"
50
+ ],
51
+ "type": "LightGroup",
52
+ "action": {
53
+ "on": true,
54
+ "bri": 254,
55
+ "hue": 56100,
56
+ "sat": 232,
57
+ "effect": "none",
58
+ "xy": [
59
+ 0.4119,
60
+ 0.1949
61
+ ],
62
+ "ct": 293,
63
+ "colormode": "xy"
64
+ }
65
+ },
66
+ "3": {
67
+ "name": "HueCraft_Ambiance1",
68
+ "lights": [
69
+ "1",
70
+ "2"
71
+ ],
72
+ "type": "LightGroup",
73
+ "action": {
74
+ "on": true,
75
+ "bri": 254,
76
+ "hue": 56100,
77
+ "sat": 232,
78
+ "effect": "none",
79
+ "xy": [
80
+ 0.4119,
81
+ 0.1949
82
+ ],
83
+ "ct": 293,
84
+ "colormode": "xy"
85
+ }
86
+ },
87
+ "4": {
88
+ "name": "HueCraft_Ambiance2",
89
+ "lights": [
90
+ "3",
91
+ "4"
92
+ ],
93
+ "type": "LightGroup",
94
+ "action": {
95
+ "on": true,
96
+ "bri": 254,
97
+ "hue": 56100,
98
+ "sat": 232,
99
+ "effect": "none",
100
+ "xy": [
101
+ 0.4119,
102
+ 0.1949
103
+ ],
104
+ "ct": 293,
105
+ "colormode": "xy"
106
+ }
107
+ },
108
+ "5": {
109
+ "name": "HueCraft_Effect1",
110
+ "lights": [
111
+ "5"
112
+ ],
113
+ "type": "LightGroup",
114
+ "action": {
115
+ "on": true,
116
+ "bri": 254,
117
+ "hue": 56100,
118
+ "sat": 232,
119
+ "effect": "none",
120
+ "xy": [
121
+ 0.4119,
122
+ 0.1949
123
+ ],
124
+ "ct": 293,
125
+ "colormode": "xy"
126
+ }
127
+ },
128
+ "6": {
129
+ "name": "HueCraft_HueCraft",
130
+ "lights": [
131
+ "1",
132
+ "2",
133
+ "3",
134
+ "4",
135
+ "5"
136
+ ],
137
+ "type": "LightGroup",
138
+ "action": {
139
+ "on": true,
140
+ "bri": 254,
141
+ "hue": 56100,
142
+ "sat": 232,
143
+ "effect": "none",
144
+ "xy": [
145
+ 0.4119,
146
+ 0.1949
147
+ ],
148
+ "ct": 293,
149
+ "colormode": "xy"
150
+ }
151
+ }
152
+ }
153
+ }
@@ -4,8 +4,6 @@ describe Rule do
4
4
  it "properly reconstucts object hash" do
5
5
  data = {
6
6
  "name" => "test name",
7
- "key1" => "value 1",
8
- "key2" => "value 2",
9
7
  }
10
8
  rule = Rule.new(1,data)
11
9
  rule.id.should eql 1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lights
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.18
4
+ version: 0.8.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brady Turner