guh 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
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