nature_remo 0.2.4 → 0.5.0

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
  SHA256:
3
- metadata.gz: 4a2498fa3a0977e7536cbb2e0b871a01fa5e3d9232a2656788fd2eeb2ba1a212
4
- data.tar.gz: d57445310f1c6fa51ab8099dfecb1e50d7223d573bbd09e26e23c8bad6fb9b8f
3
+ metadata.gz: 6c47c9b93e12c6532fdc59cdefa80fe2d606ba3d92230f0351af61fcc273186f
4
+ data.tar.gz: ac04c05eebed919e016623e3d8663444319c062bc939dce255488ddba27c9dbf
5
5
  SHA512:
6
- metadata.gz: 365f29ea209b8fc46d515042b6a7eb615b910f063d296b30d218e0854e3baecf73f5d79c1f3fa6a2c4e74bd875f1f9c0770d83830f11427ef4042e73bb9ac840
7
- data.tar.gz: 9eed5762c6cd38633888b9fee0374dda6ddceda3da0db14b6f8c7f60791e85facf0cffd146a31e6f10baf991b7c543697869bc381bce5c6ef51c37868866b6fa
6
+ metadata.gz: f912d9d6000ed4328803b9be5729261f27aa19e4b66e8aab35bbb9240559de2357947bdb8c7620833d55cc142c26535f14d5ac132d97a40805a6a755a9e24878
7
+ data.tar.gz: 87cc8c7e90b8c9311b0b92cd7038abd25f7ac276f8f5cc07098dfc747a540abf620e5e0fc9630f46ae614f3620e7b9ff545451b8a0da0859a94f413e7ee31a25
@@ -2,4 +2,4 @@ sudo: false
2
2
  language: ruby
3
3
  rvm:
4
4
  - 2.5.0
5
- before_install: gem install bundler -v 1.16.1
5
+ before_install: gem install bundler -v 2.0.2
@@ -0,0 +1,5 @@
1
+ ## v0.4.0
2
+ - make it possible to get **illumination** value
3
+
4
+ ## v0.3.0
5
+ - Add multiple sending for #send_signal method
@@ -0,0 +1,43 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ nature_remo (0.4.0)
5
+ faraday (~> 0.17.0)
6
+ launchy (~> 2.4.3)
7
+ thor (~> 0.20.3)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ addressable (2.7.0)
13
+ public_suffix (>= 2.0.2, < 5.0)
14
+ crack (0.4.3)
15
+ safe_yaml (~> 1.0.0)
16
+ faraday (0.17.0)
17
+ multipart-post (>= 1.2, < 3)
18
+ hashdiff (1.0.0)
19
+ launchy (2.4.3)
20
+ addressable (~> 2.3)
21
+ minitest (5.13.0)
22
+ multipart-post (2.1.1)
23
+ public_suffix (4.0.1)
24
+ rake (13.0.1)
25
+ safe_yaml (1.0.5)
26
+ thor (0.20.3)
27
+ webmock (3.7.6)
28
+ addressable (>= 2.3.6)
29
+ crack (>= 0.3.2)
30
+ hashdiff (>= 0.4.0, < 2.0.0)
31
+
32
+ PLATFORMS
33
+ ruby
34
+
35
+ DEPENDENCIES
36
+ bundler (~> 2.0.2)
37
+ minitest (~> 5.13.0)
38
+ nature_remo!
39
+ rake (~> 13.0.1)
40
+ webmock (~> 3.7.6)
41
+
42
+ BUNDLED WITH
43
+ 2.0.2
data/README.md CHANGED
@@ -30,6 +30,9 @@ client = NatureRemo::Client.new()
30
30
  # show username
31
31
  client.users
32
32
 
33
+ # get temperature
34
+ client.get_temp
35
+
33
36
  # show nature_remo device lists
34
37
  client.devices
35
38
 
@@ -38,6 +41,12 @@ client.appliances
38
41
 
39
42
  # send signal
40
43
  client.send_signal(<signal id>)
44
+
45
+ # send a signal at intervals
46
+ # [OPTIONAL]
47
+ # interval: How long do you want to wait to send next signal?(millisec)
48
+ # times: How many times do you want to send signals?
49
+ client.send_signal(<signal id>, interval: 500, times: 10)
41
50
  ```
42
51
 
43
52
  ## CLI Usage
@@ -48,7 +57,8 @@ client.send_signal()
48
57
  natureremo devices # find all devices
49
58
  natureremo help [COMMAND] # Describe available commands or one specific command
50
59
  natureremo me # print nickname
51
- natureremo temp # Get temperture and humidity
60
+ natureremo temp # Get temperature and humidity
61
+ natureremo illu # Get illumination
52
62
 
53
63
  ### Example
54
64
 
@@ -74,7 +84,13 @@ Send signal
74
84
 
75
85
  #### Control air conditioner
76
86
 
77
- $ natureremo aircon [temperture] [mode] [options]
87
+ $ natureremo aircon [temperature] [mode] [options]
88
+
89
+ $ natureremo aircon_off
90
+ $ natureremo aircon_on
91
+
92
+ $ natureremo aircon_change_temperature +1
93
+ $ natureremo aircon_change_temperature -1
78
94
 
79
95
  <!-- ## Development -->
80
96
 
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'thor'
2
3
  require 'json'
3
4
 
@@ -54,21 +55,81 @@ module NatureRemo
54
55
  end
55
56
  end
56
57
 
57
- desc 'temp', 'Get temperture and humidity'
58
+ desc 'aircon_off', 'Turn off air conditioner'
59
+ def aircon_off()
60
+ aircon_id = []
61
+ appliances_body.each_with_index do |a, i|
62
+ aircon_id << get_appliance_id(i) if a['type'] == 'AC'
63
+ end
64
+
65
+ if aircon_id.length == 1
66
+ client.aircon_off aircon_id.first
67
+ else
68
+ puts 'This method supports only one air conditioner'
69
+ end
70
+ end
71
+
72
+ desc 'aircon_on', 'Turn on air conditioner'
73
+ def aircon_on()
74
+ aircon_id = []
75
+ appliances_body.each_with_index do |a, i|
76
+ aircon_id << get_appliance_id(i) if a['type'] == 'AC'
77
+ end
78
+
79
+ if aircon_id.length == 1
80
+ client.aircon_on aircon_id.first
81
+ else
82
+ puts 'This method supports only one air conditioner'
83
+ end
84
+ end
85
+
86
+ desc 'aircon_change_temperature', 'Change the temperature of the air conditioner'
87
+ def aircon_change_temperature(difference)
88
+ diff = difference.to_i
89
+ return if diff == 0
90
+
91
+ aircon_id = []
92
+ appliance = nil
93
+ appliances_body.each_with_index do |a, i|
94
+ appliance = a
95
+ aircon_id << get_appliance_id(i) if a['type'] == 'AC'
96
+ end
97
+
98
+ if aircon_id.length == 1
99
+ current_temperature = appliance["settings"]["temp"].to_i
100
+ if current_temperature != 0
101
+ client.aircon_setting aircon_id.first, current_temperature + diff
102
+
103
+ puts "Temperature set to #{current_temperature + diff}"
104
+ else
105
+ puts 'Could not retrieve the air conditioner currently set temperature'
106
+ end
107
+ else
108
+ puts 'This method supports only one air conditioner'
109
+ end
110
+ end
111
+
112
+ desc 'temp', 'Get temperature and humidity'
58
113
  def temp
59
114
  value = client.events
60
- puts "Temperture: #{value['te']['val']}℃"
115
+ puts "Temperature: #{value['te']['val']}℃"
61
116
  puts "Humidity: #{value['hu']['val']}%"
62
117
  end
63
118
 
119
+ desc 'illu', 'Get illumination'
120
+ def illu
121
+ value = client.events
122
+ puts "Illumination: #{value['il']['val']}"
123
+ end
124
+
64
125
  private
65
126
 
66
127
  def client
67
- client ||= NatureRemo::Client.new
128
+ @client ||= NatureRemo::Client.new
68
129
  end
69
130
 
70
131
  def appliances_body
71
- appliances ||= JSON.parse(client.appliances.body)
132
+ @appliances ||= JSON.parse(client.appliances.body)
72
133
  end
73
134
 
74
135
  def get_appliance_id(num)
@@ -34,10 +34,33 @@ module NatureRemo
34
34
  end
35
35
  end
36
36
 
37
- def send_signal(signal)
37
+ def send_signal(signal, interval: 0, times: 1)
38
+ results = []
39
+ times.times do |time|
40
+ sleep(interval.to_f / 1000) if time != 0
41
+ results << @client.post do |req|
42
+ req.url "/1/signals/#{signal}/send"
43
+ req.body = { name: signal.to_s }
44
+ end
45
+ end
46
+ results
47
+ end
48
+
49
+ def aircon_on(appliance)
50
+ @client.post do |req|
51
+ req.url "/1/appliances/#{appliance}/aircon_settings"
52
+ req.body = {
53
+ button: ""
54
+ }
55
+ end
56
+ end
57
+
58
+ def aircon_off(appliance)
38
59
  @client.post do |req|
39
- req.url "/1/signals/#{signal}/send"
40
- req.body = { name: signal.to_s }
60
+ req.url "/1/appliances/#{appliance}/aircon_settings"
61
+ req.body = {
62
+ button: "power-off"
63
+ }
41
64
  end
42
65
  end
43
66
 
@@ -57,11 +80,15 @@ module NatureRemo
57
80
  end
58
81
 
59
82
  def get_temp
60
- events['te']['val'].to_i
83
+ events['te']['val'].to_f
61
84
  end
62
85
 
63
86
  def get_humi
64
- events['hu']['val'].to_i
87
+ events['hu']['val'].to_f
88
+ end
89
+
90
+ def get_illu
91
+ events['il']['val'].to_f
65
92
  end
66
93
 
67
94
  def get_token
@@ -1,3 +1,3 @@
1
1
  module NatureRemo
2
- VERSION = '0.2.4'.freeze
2
+ VERSION = '0.5.0'.freeze
3
3
  end
@@ -29,11 +29,11 @@ Gem::Specification.new do |spec|
29
29
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
30
30
  spec.require_paths = ['lib']
31
31
 
32
- spec.add_development_dependency 'bundler', '~> 1.16'
33
- spec.add_development_dependency 'minitest', '~> 5.0'
34
- spec.add_development_dependency 'rake', '~> 10.0'
35
- spec.add_development_dependency 'webmock', '~> 3.4.2'
36
- spec.add_runtime_dependency 'faraday', '~> 0.14.0'
32
+ spec.add_development_dependency 'bundler', '~> 2.0.2'
33
+ spec.add_development_dependency 'minitest', '~> 5.13.0'
34
+ spec.add_development_dependency 'rake', '~> 13.0.1'
35
+ spec.add_development_dependency 'webmock', '~> 3.7.6'
36
+ spec.add_runtime_dependency 'faraday', '~> 0.17.0'
37
37
  spec.add_runtime_dependency 'launchy', '~> 2.4.3'
38
- spec.add_runtime_dependency 'thor', '~> 0.20.0'
38
+ spec.add_runtime_dependency 'thor', '~> 0.20.3'
39
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nature_remo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ichi-t
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-23 00:00:00.000000000 Z
11
+ date: 2020-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,70 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: 2.0.2
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
- version: '1.16'
26
+ version: 2.0.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '5.0'
33
+ version: 5.13.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
- version: '5.0'
40
+ version: 5.13.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: 13.0.1
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
- version: '10.0'
54
+ version: 13.0.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: webmock
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 3.4.2
61
+ version: 3.7.6
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 3.4.2
68
+ version: 3.7.6
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: faraday
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.14.0
75
+ version: 0.17.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.14.0
82
+ version: 0.17.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: launchy
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.20.0
103
+ version: 0.20.3
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.20.0
110
+ version: 0.20.3
111
111
  description:
112
112
  email:
113
113
  - taisuke_ichimura@icloud.com
@@ -119,8 +119,10 @@ files:
119
119
  - ".github/ISSUE_TEMPLATE/feature_request.md"
120
120
  - ".gitignore"
121
121
  - ".travis.yml"
122
+ - CHANGELOG.md
122
123
  - CODE_OF_CONDUCT.md
123
124
  - Gemfile
125
+ - Gemfile.lock
124
126
  - LICENSE.txt
125
127
  - README.md
126
128
  - Rakefile
@@ -149,8 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
151
  - !ruby/object:Gem::Version
150
152
  version: '0'
151
153
  requirements: []
152
- rubyforge_project:
153
- rubygems_version: 2.7.6
154
+ rubygems_version: 3.1.2
154
155
  signing_key:
155
156
  specification_version: 4
156
157
  summary: Nature Remo API client written by Ruby