ledenet_api 0.1.8 → 0.1.9
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/README.md +9 -2
- data/lib/ledenet/device_discovery.rb +11 -5
- data/lib/ledenet/version.rb +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d5893787aba1976347d33316a6d873779732c6b
|
4
|
+
data.tar.gz: 8f2a3d6d7572646fd0fdbef5d8e36897ffdac4b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28b67ca59bcfa3a42fef42f3b10d55cdd075c745d743b65fc251c24dc5c92aea9e15f3b4ea774f72cb70fa56ffa9e019f2471b59d001e4fd0516b80e589d033c
|
7
|
+
data.tar.gz: 879814ec02173f453df70b69bd3262609b45c04f4e3d3cfbcbb25ca83095774c923302068403721ef7d3f7c9266bde95093552c6e295cd80b50eb5465be89dfe
|
data/README.md
CHANGED
@@ -34,6 +34,13 @@ devices.first.ip
|
|
34
34
|
=> "10.133.8.113"
|
35
35
|
```
|
36
36
|
|
37
|
+
By deafult, `discover_devices` waits for up to 5 seconds for a single device to respond, and returns immediately after finding one. To change this behavior:
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
irb(main):005:0> LEDENET.discover_devices(expected_devices: 2, timeout: 1)
|
41
|
+
=> [#<LEDENET::Device:0x007fff328f4330 @ip="10.133.8.113", @hw_addr="XXXXXXXXXXXX", @model="HF-LPB100-ZJ200">]
|
42
|
+
```
|
43
|
+
|
37
44
|
### API
|
38
45
|
|
39
46
|
To construct an API class, use the following:
|
@@ -56,7 +63,7 @@ api = LEDENET::Api.new('10.133.8.113', reuse_connection: true, max_retries: 0)
|
|
56
63
|
|
57
64
|
### Status
|
58
65
|
|
59
|
-
To check if the controller is
|
66
|
+
To check if the controller is currently on:
|
60
67
|
|
61
68
|
```ruby
|
62
69
|
api.on?
|
@@ -84,7 +91,7 @@ api.current_color
|
|
84
91
|
To set the color:
|
85
92
|
|
86
93
|
```ruby
|
87
|
-
|
94
|
+
api.update_color(255, 0, 255)
|
88
95
|
=> true
|
89
96
|
```
|
90
97
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'socket'
|
2
2
|
require 'timeout'
|
3
|
+
require 'set'
|
3
4
|
|
4
5
|
module LEDENET
|
5
6
|
class Device
|
@@ -16,7 +17,8 @@ module LEDENET
|
|
16
17
|
|
17
18
|
DEFAULT_OPTIONS = {
|
18
19
|
expected_devices: 1,
|
19
|
-
timeout: 5
|
20
|
+
timeout: 5,
|
21
|
+
expected_models: []
|
20
22
|
}
|
21
23
|
|
22
24
|
# The WiFi controllers these things appear to use support a discovery protocol
|
@@ -35,14 +37,18 @@ module LEDENET
|
|
35
37
|
send_socket.send('HF-A11ASSISTHREAD', 0, send_addr[0], send_addr[1])
|
36
38
|
|
37
39
|
discovered_devices = []
|
40
|
+
discovered_models = Set.new
|
41
|
+
expected_models = Set.new(options[:expected_models])
|
38
42
|
|
39
43
|
begin
|
40
44
|
Timeout::timeout(options[:timeout]) do
|
41
|
-
while
|
45
|
+
while discovered_devices.count < options[:expected_devices] or
|
46
|
+
!expected_models.subset?(discovered_models)
|
42
47
|
data = send_socket.recv(1024)
|
43
|
-
discovered_devices.push(LEDENET::Device.new(data))
|
44
48
|
|
45
|
-
|
49
|
+
device = LEDENET::Device.new(data)
|
50
|
+
discovered_devices.push(device)
|
51
|
+
discovered_models.add(device.model)
|
46
52
|
end
|
47
53
|
end
|
48
54
|
rescue Timeout::Error
|
@@ -53,4 +59,4 @@ module LEDENET
|
|
53
59
|
|
54
60
|
discovered_devices
|
55
61
|
end
|
56
|
-
end
|
62
|
+
end
|
data/lib/ledenet/version.rb
CHANGED
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ledenet_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christopher Mullins
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.10'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.10'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
description:
|
@@ -59,7 +59,7 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- .gitignore
|
62
|
+
- ".gitignore"
|
63
63
|
- Gemfile
|
64
64
|
- Gemfile.lock
|
65
65
|
- LICENSE.txt
|
@@ -80,17 +80,17 @@ require_paths:
|
|
80
80
|
- lib
|
81
81
|
required_ruby_version: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ">="
|
84
84
|
- !ruby/object:Gem::Version
|
85
85
|
version: '0'
|
86
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
requirements: []
|
92
92
|
rubyforge_project:
|
93
|
-
rubygems_version: 2.
|
93
|
+
rubygems_version: 2.5.1
|
94
94
|
signing_key:
|
95
95
|
specification_version: 4
|
96
96
|
summary: An API for the LEDENET Magic UFO LED WiFi Controller
|