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 +4 -4
- data/Rakefile +1 -1
- data/lib/guh/action.rb +1 -1
- data/lib/guh/device.rb +20 -19
- data/lib/guh/version.rb +1 -1
- data/lib/guh.rb +2 -0
- data/spec/helper.rb +2 -2
- data/spec/integration/action_spec.rb +9 -8
- data/spec/integration/device_spec.rb +10 -8
- data/spec/integration/rule_spec.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4d9c7442043ff911a635dce551e050563e6dada
|
4
|
+
data.tar.gz: a93a5f0f1b94fe8e1376651595d504ca88185ce2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 818cf818e6ce9bac1d326f713d32c0a287a8901e6edc6eee6856e0e65014c1014fd5197a6e90faa3c2de28c8ba22c79dddc3dfefc4b769d50257e02a510520ab
|
7
|
+
data.tar.gz: 10a5f8c681aecee9f25fdbf9f7f72ff8522bf47330660c8c9de0e3069bd3aba5c7a66e9cb6b9ca5ae3d1b202b7e4f2286488687949a3f9064eb453bb478b071f
|
data/Rakefile
CHANGED
data/lib/guh/action.rb
CHANGED
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::
|
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}", {
|
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
|
-
|
95
|
-
when 'CreateMethodUser'
|
94
|
+
if device_class['createMethods'].include? 'CreateMethodUser'
|
96
95
|
add_configured_device(device_class_id, params)
|
97
|
-
|
98
|
-
add_discovered_device(device_class_id, params
|
99
|
-
|
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::
|
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::
|
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::
|
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,
|
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:
|
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::
|
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::
|
222
|
+
raise Guh::DeviceError, response['deviceError']
|
222
223
|
end
|
223
224
|
end
|
224
225
|
|
data/lib/guh/version.rb
CHANGED
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 = '
|
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: '
|
11
|
-
{name: '
|
12
|
-
{name: '
|
13
|
-
{name: '
|
14
|
-
{name: '
|
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
|
-
|
32
|
-
|
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: '
|
23
|
-
{name: '
|
24
|
-
{name: '
|
25
|
-
{name: '
|
26
|
-
{name: '
|
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
|
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, {'
|
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
|
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.
|
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-
|
12
|
+
date: 2014-11-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|