guh 0.0.7 → 0.0.8

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 068cafcdebfd3a9f6001772252d927c8a51bdc60
4
- data.tar.gz: 5f1b8f7cb9575e656aa2e16e1efb624f0dfeeec1
3
+ metadata.gz: d4d9c7442043ff911a635dce551e050563e6dada
4
+ data.tar.gz: a93a5f0f1b94fe8e1376651595d504ca88185ce2
5
5
  SHA512:
6
- metadata.gz: 3b6c5acdf0d427af9d69555f35b45f9bf4f8b50806b1aeb1755ac730754bc7e655a949a56dfd359f76cad3b8f088b92980375868774f94720e275d8f9b1eb247
7
- data.tar.gz: da8e4508aeb160afdd3466acbb68d5117cb056c0cd36b54dbccff2c1df8b6e7ebb7e9ddc89b9239b7e93f315c88896f515b07e739599b8b84267e62a3b033fed
6
+ metadata.gz: 818cf818e6ce9bac1d326f713d32c0a287a8901e6edc6eee6856e0e65014c1014fd5197a6e90faa3c2de28c8ba22c79dddc3dfefc4b769d50257e02a510520ab
7
+ data.tar.gz: 10a5f8c681aecee9f25fdbf9f7f72ff8522bf47330660c8c9de0e3069bd3aba5c7a66e9cb6b9ca5ae3d1b202b7e4f2286488687949a3f9064eb453bb478b071f
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ task :console do
14
14
  require 'guh'
15
15
 
16
16
  Guh::Base.configure do |c|
17
- c.guh_ip_address = '192.168.1.30'
17
+ c.guh_ip_address = '172.20.10.4'
18
18
  c.guh_port = 1234
19
19
  end
20
20
 
data/lib/guh/action.rb CHANGED
@@ -26,7 +26,7 @@ module Guh
26
26
  if response['deviceError'] == 'DeviceErrorNoError'
27
27
  return response
28
28
  else
29
- raise Guh::ArgumentError, response['deviceError']
29
+ raise Guh::DeviceError, response['deviceError']
30
30
  end
31
31
  end
32
32
 
data/lib/guh/device.rb CHANGED
@@ -61,7 +61,7 @@ module Guh
61
61
  if response['deviceError'] == 'DeviceErrorNoError'
62
62
  return response['deviceDescriptors']
63
63
  else
64
- raise Guh::ResponseError, response['deviceError']
64
+ raise Guh::DeviceError, response['deviceError']
65
65
  end
66
66
  end
67
67
 
@@ -86,17 +86,16 @@ module Guh
86
86
  #
87
87
  # To create a discovered device you have to provide a descriptor ID in the params:
88
88
  #
89
- # Guh::Device.add("{985195aa-17ad-4530-88a4-cdd753d747d7}", {descriptorId: "{727a4a9a-c187-446f-aadf-f1b2220607d1}"})
89
+ # Guh::Device.add("{985195aa-17ad-4530-88a4-cdd753d747d7}", {deviceDescriptorId: "{727a4a9a-c187-446f-aadf-f1b2220607d1}"})
90
90
  #
91
91
  def self.add(device_class_id, params)
92
92
  device_class = Guh::DeviceClass.find(device_class_id)
93
93
 
94
- case device_class['createMethod']
95
- when 'CreateMethodUser'
94
+ if device_class['createMethods'].include? 'CreateMethodUser'
96
95
  add_configured_device(device_class_id, params)
97
- when 'CreateMethodDiscovery'
98
- add_discovered_device(device_class_id, params['descriptorId'])
99
- when 'CreateMethodAuto'
96
+ elsif device_class['createMethods'].include? 'CreateMethodDiscovery'
97
+ add_discovered_device(device_class_id, params.delete('deviceDescriptorId'), params)
98
+ elsif device_class['createMethods'].include? 'CreateMethodAuto'
100
99
  # Nothing to do here
101
100
  # TODO should we raise an exception?
102
101
  end
@@ -120,7 +119,7 @@ module Guh
120
119
  if response['deviceError'] == 'DeviceErrorNoError'
121
120
  return response
122
121
  else
123
- raise Guh::ArgumentError, response['deviceError']
122
+ raise Guh::DeviceError, response['deviceError']
124
123
  end
125
124
  end
126
125
 
@@ -145,7 +144,7 @@ module Guh
145
144
  if response['deviceError'] == 'DeviceErrorNoError'
146
145
  return true
147
146
  else
148
- raise Guh::ResponseError, response['deviceError']
147
+ raise Guh::DeviceError, response['deviceError']
149
148
  end
150
149
  end
151
150
 
@@ -174,51 +173,53 @@ module Guh
174
173
  if response['deviceError'] == 'DeviceErrorNoError'
175
174
  return response['deviceId']
176
175
  else
177
- raise Guh::ArgumentError, response['deviceError']
176
+ raise Guh::DeviceError, response['deviceError']
178
177
  end
179
178
  end
180
179
 
181
- def self.add_discovered_device(device_class_id, descriptor_id)
180
+ def self.add_discovered_device(device_class_id, descriptor_id, params = [])
182
181
  device_class = Guh::DeviceClass.find(device_class_id)
183
182
 
184
183
  if device_class['setupMethod'] == 'SetupMethodJustAdd'
185
- add_discovered_device_just_add(device_class_id, descriptor_id)
184
+ add_discovered_device_just_add(device_class_id, descriptor_id, params)
186
185
  else
187
- add_discovered_device_pair(device_class_id, descriptor_id)
186
+ add_discovered_device_pair(device_class_id, descriptor_id, params)
188
187
  end
189
188
  end
190
189
 
191
- def self.add_discovered_device_just_add(device_class_id, descriptor_id)
190
+ def self.add_discovered_device_just_add(device_class_id, device_descriptor_id, params = [])
192
191
  response = get({
193
192
  id: generate_request_id,
194
193
  method: "Devices.AddConfiguredDevice",
195
194
  params: {
196
195
  deviceClassId: device_class_id,
197
- deviceDescriptorId: descriptor_id
196
+ deviceDescriptorId: device_descriptor_id,
197
+ deviceParams: params
198
198
  }
199
199
  })
200
200
 
201
201
  if response['deviceError'] == 'DeviceErrorNoError'
202
202
  return response['deviceId']
203
203
  else
204
- raise Guh::ArgumentError, response['deviceError']
204
+ raise Guh::DeviceError, response['deviceError']
205
205
  end
206
206
  end
207
207
 
208
- def self.add_discovered_device_pair(device_class_id, descriptor_id)
208
+ def self.add_discovered_device_pair(device_class_id, descriptor_id, params = [])
209
209
  response = get({
210
210
  id: generate_request_id,
211
211
  method: "Devices.PairDevice",
212
212
  params: {
213
213
  deviceClassId: device_class_id,
214
- deviceDescriptorId: descriptor_id
214
+ deviceDescriptorId: descriptor_id,
215
+ deviceParams: params
215
216
  }
216
217
  })
217
218
 
218
219
  if response['deviceError'] == 'DeviceErrorNoError'
219
220
  return response
220
221
  else
221
- raise Guh::ArgumentError, response['deviceError']
222
+ raise Guh::DeviceError, response['deviceError']
222
223
  end
223
224
  end
224
225
 
data/lib/guh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Guh
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
data/lib/guh.rb CHANGED
@@ -20,6 +20,8 @@ module Guh
20
20
  class ConnectionError < Exception; end
21
21
  class ResponseError < Exception; end
22
22
  class ArgumentError < Exception; end
23
+ class DeviceError < Exception; end
24
+ class ActionError < Exception; end
23
25
  class DeviceClassNotFound < Exception; end
24
26
 
25
27
  end
data/spec/helper.rb CHANGED
@@ -9,7 +9,7 @@ RSpec.configure do |config|
9
9
 
10
10
  config.before(:all) do
11
11
  Guh::Base.configure do |c|
12
- c.guh_ip_address = '192.168.1.30'
12
+ c.guh_ip_address = '172.20.10.4'
13
13
  c.guh_port = 1234
14
14
  end
15
15
 
@@ -61,5 +61,5 @@ def create_configured_device(device_class_id, params)
61
61
  device_id = Guh::Device.add(device_class_id, params)
62
62
 
63
63
  # Get the newly configured device
64
- return Guh::Device.all.detect{|d| d['id']==device_id}
64
+ return Guh::Device.all.detect{|d| d['id'] == device_id}
65
65
  end
@@ -7,11 +7,11 @@ describe Guh::Action do
7
7
  device_class_id = "{308ae6e6-38b3-4b3a-a513-3199da2764f8}"
8
8
 
9
9
  @device = create_configured_device(device_class_id, [
10
- {name: 'channel1', value: true},
11
- {name: 'channel2', value: false},
12
- {name: 'channel3', value: false},
13
- {name: 'channel4', value: false},
14
- {name: 'channel5', value: false},
10
+ {name: 'channel 1', value: true},
11
+ {name: 'channel 2', value: false},
12
+ {name: 'channel 3', value: false},
13
+ {name: 'channel 4', value: false},
14
+ {name: 'channel 5', value: false},
15
15
  {name: 'A', value: false},
16
16
  {name: 'B', value: false},
17
17
  {name: 'C', value: false},
@@ -27,9 +27,10 @@ describe Guh::Action do
27
27
  end
28
28
 
29
29
  it "should execute a single action" do
30
- -> {
31
- response = Guh::Action.execute(@device['id'], @action['id'], [{name: 'power', value: true}])
32
- }.should_not raise_error
30
+ pending "Find another device to test this"
31
+ # -> {
32
+ # response = Guh::Action.execute(@device['id'], @action['id'], [{name: 'power', value: true}])
33
+ # }.should_not raise_error
33
34
  end
34
35
 
35
36
  it 'should fail if the wrong params are provided' do
@@ -19,11 +19,11 @@ describe Guh::Device do
19
19
 
20
20
  -> {
21
21
  response = Guh::Device.add("{308ae6e6-38b3-4b3a-a513-3199da2764f8}", [
22
- {name: 'channel1', value: true},
23
- {name: 'channel2', value: false},
24
- {name: 'channel3', value: false},
25
- {name: 'channel4', value: false},
26
- {name: 'channel5', value: false},
22
+ {name: 'channel 1', value: true},
23
+ {name: 'channel 2', value: false},
24
+ {name: 'channel 3', value: false},
25
+ {name: 'channel 4', value: false},
26
+ {name: 'channel 5', value: false},
27
27
  {name: 'A', value: false},
28
28
  {name: 'B', value: false},
29
29
  {name: 'C', value: false},
@@ -39,7 +39,7 @@ describe Guh::Device do
39
39
  configured_count = Guh::Device.count
40
40
 
41
41
  -> {
42
- response = Guh::Device.add("{308ae6e6-38b3-4b3a-a513-3199da2764f8}", {})
42
+ response = Guh::Device.add("{308ae6e6-38b3-4b3a-a513-3199da2764f8}", [])
43
43
  }.should raise_error
44
44
 
45
45
  Guh::Device.count.should eq(configured_count)
@@ -50,7 +50,7 @@ describe Guh::Device do
50
50
 
51
51
  device_id.should match(/^\{[a-z0-9\-]+\}$/i)
52
52
 
53
- Guh::Device.remove(device_id).should be_truthy
53
+ Guh::Device.remove(device_id).should be_true
54
54
 
55
55
  Guh::Device.find(device_id).should be_nil
56
56
  end
@@ -66,7 +66,9 @@ describe Guh::Device do
66
66
 
67
67
  device_descriptors = Guh::Device.discover(device_class_id, [{name: 'location', value: 'Salzburg'}])
68
68
 
69
- response = Guh::Device.add(device_class_id, {'descriptorId' => device_descriptors.first['id']})
69
+ response = Guh::Device.add(device_class_id, {'deviceDescriptorId' => device_descriptors.first['id']})
70
+
71
+ response.should match /\A\{.*\}\z/
70
72
  end
71
73
 
72
74
  end
@@ -11,7 +11,7 @@ describe Guh::Rule do
11
11
  # Intertechno Switch
12
12
  @receiver = create_configured_device("{324219e8-7c53-41b5-b314-c2900cd15252}", [
13
13
  {name: 'familyCode', value: 'A'},
14
- {name: 'buttonCode', value: 1}
14
+ {name: 'button', value: 1}
15
15
  ])
16
16
 
17
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christoph Edthofer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-07 00:00:00.000000000 Z
12
+ date: 2014-11-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json