nature_remo 0.2.4 → 0.5.0

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
  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