balboa_worldwide_app 1.3.0 → 2.0.3

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.
data/lib/bwa/server.rb CHANGED
@@ -1,6 +1,8 @@
1
- require 'socket'
2
- require 'bwa/logger'
3
- require 'bwa/message'
1
+ # frozen_string_literal: true
2
+
3
+ require "socket"
4
+ require "bwa/logger"
5
+ require "bwa/message"
4
6
 
5
7
  module BWA
6
8
  class Server
@@ -12,18 +14,15 @@ module BWA
12
14
  def run
13
15
  loop do
14
16
  socket = @listen_socket.accept
15
- #Thread.new do
16
- run_client(socket)
17
- #end
18
- break
17
+ run_client(socket)
19
18
  end
20
19
  end
21
20
 
22
21
  def send_message(socket, message)
23
22
  length = message.length + 2
24
- full_message = "#{length.chr}#{message}".force_encoding(Encoding::ASCII_8BIT)
23
+ full_message = (+"#{length.chr}#{message}").force_encoding(Encoding::ASCII_8BIT)
25
24
  checksum = CRC.checksum(full_message)
26
- socket.send("\x7e#{full_message}#{checksum.chr}\x7e".force_encoding(Encoding::ASCII_8BIT), 0)
25
+ socket.send((+"\x7e#{full_message}#{checksum.chr}\x7e").force_encoding(Encoding::ASCII_8BIT), 0)
27
26
  end
28
27
 
29
28
  def run_client(socket)
@@ -31,9 +30,10 @@ module BWA
31
30
 
32
31
  send_status(socket)
33
32
  loop do
34
- if IO.select([socket], nil, nil, 1)
33
+ if socket.wait_readable(1)
35
34
  data = socket.recv(128)
36
35
  break if data.empty?
36
+
37
37
  begin
38
38
  message = Message.parse(data)
39
39
  BWA.logger.info BWA.raw2str(message.raw_data)
@@ -44,10 +44,10 @@ module BWA
44
44
  send_configuration(socket)
45
45
  when Messages::ControlConfigurationRequest
46
46
  message.type == 1 ? send_control_configuration(socket) : send_control_configuration2(socket)
47
- when Messages::SetTemperature
47
+ when Messages::SetTargetTemperature
48
48
  temperature = message.temperature
49
49
  temperature /= 2.0 if @status.temperature_scale == :celsius
50
- @status.set_temperature = temperature
50
+ @status.target_temperature = temperature
51
51
  when Messages::SetTemperatureScale
52
52
  @status.temperature_scale = message.scale
53
53
  when Messages::ToggleItem
@@ -80,11 +80,13 @@ module BWA
80
80
  end
81
81
 
82
82
  def send_configuration(socket)
83
- send_message(socket, "\x0a\xbf\x94\x02\x02\x80\x00\x15\x27\x10\xab\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x27\xff\xff\x10\xab\xd2")
83
+ send_message(socket,
84
+ "\x0a\xbf\x94\x02\x02\x80\x00\x15\x27\x10\xab\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x27\xff\xff\x10\xab\xd2") # rubocop:disable Layout/LineLength
84
85
  end
85
86
 
86
87
  def send_control_configuration(socket)
87
- send_message(socket, "\x0a\xbf\x24\x64\xdc\x11\x00\x42\x46\x42\x50\x32\x30\x20\x20\x01\x3d\x12\x38\x2e\x01\x0a\x04\x00")
88
+ send_message(socket,
89
+ "\x0a\xbf\x24\x64\xdc\x11\x00\x42\x46\x42\x50\x32\x30\x20\x20\x01\x3d\x12\x38\x2e\x01\x0a\x04\x00")
88
90
  end
89
91
 
90
92
  def send_control_configuration2(socket)
data/lib/bwa/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BWA
2
- VERSION = '1.3.0'
4
+ VERSION = "2.0.3"
3
5
  end
metadata CHANGED
@@ -1,71 +1,77 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: balboa_worldwide_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-10 00:00:00.000000000 Z
11
+ date: 2021-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: digest-crc
14
+ name: ccutrer-serialport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.4'
19
+ version: 1.0.0
20
20
  type: :runtime
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: '0.4'
26
+ version: 1.0.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: mqtt
28
+ name: digest-crc
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.5.0
33
+ version: '0.4'
34
34
  type: :runtime
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: 0.5.0
40
+ version: '0.4'
41
41
  - !ruby/object:Gem::Dependency
42
- name: net-telnet-rfc2217
42
+ name: mqtt-homeassistant
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.0.3
47
+ version: '0.1'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 0.1.3
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
55
  - - "~>"
53
56
  - !ruby/object:Gem::Version
54
- version: 0.0.3
57
+ version: '0.1'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.1.3
55
61
  - !ruby/object:Gem::Dependency
56
- name: ccutrer-serialport
62
+ name: net-telnet-rfc2217
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: 1.0.0
67
+ version: 0.0.3
62
68
  type: :runtime
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: 1.0.0
74
+ version: 0.0.3
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: sd_notify
71
77
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +92,14 @@ dependencies:
86
92
  requirements:
87
93
  - - "~>"
88
94
  - !ruby/object:Gem::Version
89
- version: '9.0'
95
+ version: '11.0'
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - "~>"
95
101
  - !ruby/object:Gem::Version
96
- version: '9.0'
102
+ version: '11.0'
97
103
  - !ruby/object:Gem::Dependency
98
104
  name: rake
99
105
  requirement: !ruby/object:Gem::Requirement
@@ -108,17 +114,62 @@ dependencies:
108
114
  - - "~>"
109
115
  - !ruby/object:Gem::Version
110
116
  version: '13.0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rubocop
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.23'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '1.23'
131
+ - !ruby/object:Gem::Dependency
132
+ name: rubocop-performance
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '1.12'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '1.12'
145
+ - !ruby/object:Gem::Dependency
146
+ name: rubocop-rake
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '0.6'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '0.6'
111
159
  description:
112
160
  email: cody@cutrer.com'
113
161
  executables:
162
+ - bwa_client
163
+ - bwa_server
164
+ - bwa_proxy
114
165
  - bwa_mqtt_bridge
115
166
  extensions: []
116
167
  extra_rdoc_files: []
117
168
  files:
118
- - bin/bwa_client
119
- - bin/bwa_mqtt_bridge
120
- - bin/bwa_proxy
121
- - bin/bwa_server
169
+ - exe/bwa_client
170
+ - exe/bwa_mqtt_bridge
171
+ - exe/bwa_proxy
172
+ - exe/bwa_server
122
173
  - lib/balboa_worldwide_app.rb
123
174
  - lib/bwa/client.rb
124
175
  - lib/bwa/crc.rb
@@ -131,7 +182,7 @@ files:
131
182
  - lib/bwa/messages/control_configuration_request.rb
132
183
  - lib/bwa/messages/filter_cycles.rb
133
184
  - lib/bwa/messages/ready.rb
134
- - lib/bwa/messages/set_temperature.rb
185
+ - lib/bwa/messages/set_target_temperature.rb
135
186
  - lib/bwa/messages/set_temperature_scale.rb
136
187
  - lib/bwa/messages/set_time.rb
137
188
  - lib/bwa/messages/status.rb
@@ -142,7 +193,8 @@ files:
142
193
  homepage: https://github.com/ccutrer/bwa
143
194
  licenses:
144
195
  - MIT
145
- metadata: {}
196
+ metadata:
197
+ rubygems_mfa_required: 'true'
146
198
  post_install_message:
147
199
  rdoc_options: []
148
200
  require_paths:
@@ -151,7 +203,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
203
  requirements:
152
204
  - - ">="
153
205
  - !ruby/object:Gem::Version
154
- version: '0'
206
+ version: '2.5'
155
207
  required_rubygems_version: !ruby/object:Gem::Requirement
156
208
  requirements:
157
209
  - - ">="
data/bin/bwa_client DELETED
@@ -1,43 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'bwa/client'
4
- require 'bwa/discovery'
5
-
6
- def watch(spa)
7
- loop do
8
- begin
9
- message = spa.poll
10
- next if message.is_a?(BWA::Messages::Ready)
11
- puts message.raw_data.unpack("H*").first.scan(/[0-9a-f]{2}/).join(' ')
12
- puts message.inspect
13
- if block_given?
14
- break if yield
15
- end
16
- rescue BWA::InvalidMessage => e
17
- puts e.message
18
- puts e.raw_data.unpack("H*").first.scan(/[0-9a-f]{2}/).join(' ')
19
- break
20
- end
21
- end
22
- end
23
-
24
- if ARGV.empty?
25
- spas = BWA::Discovery.discover
26
- if spas.empty?
27
- $stderr.puts "Could not find spa!"
28
- exit 1
29
- end
30
- spa_ip = 'tcp://' + spas.first.first + '/'
31
- else
32
- spa_ip = ARGV[0]
33
- end
34
-
35
- spa = BWA::Client.new(spa_ip)
36
-
37
- spa.request_configuration
38
- spa.request_control_info
39
- watch(spa) do
40
- spa.last_status
41
- end
42
-
43
- watch(spa)