balboa_worldwide_app 1.3.0 → 2.0.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.
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.0"
3
5
  end
metadata CHANGED
@@ -1,71 +1,71 @@
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.0
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-10 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
48
  type: :runtime
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: 0.0.3
54
+ version: '0.1'
55
55
  - !ruby/object:Gem::Dependency
56
- name: ccutrer-serialport
56
+ name: net-telnet-rfc2217
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.0
61
+ version: 0.0.3
62
62
  type: :runtime
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: 1.0.0
68
+ version: 0.0.3
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sd_notify
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '9.0'
89
+ version: '11.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '9.0'
96
+ version: '11.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -108,17 +108,62 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '13.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.23'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.23'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop-performance
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.12'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.12'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-rake
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '0.6'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0.6'
111
153
  description:
112
154
  email: cody@cutrer.com'
113
155
  executables:
156
+ - bwa_client
157
+ - bwa_server
158
+ - bwa_proxy
114
159
  - bwa_mqtt_bridge
115
160
  extensions: []
116
161
  extra_rdoc_files: []
117
162
  files:
118
- - bin/bwa_client
119
- - bin/bwa_mqtt_bridge
120
- - bin/bwa_proxy
121
- - bin/bwa_server
163
+ - exe/bwa_client
164
+ - exe/bwa_mqtt_bridge
165
+ - exe/bwa_proxy
166
+ - exe/bwa_server
122
167
  - lib/balboa_worldwide_app.rb
123
168
  - lib/bwa/client.rb
124
169
  - lib/bwa/crc.rb
@@ -131,7 +176,7 @@ files:
131
176
  - lib/bwa/messages/control_configuration_request.rb
132
177
  - lib/bwa/messages/filter_cycles.rb
133
178
  - lib/bwa/messages/ready.rb
134
- - lib/bwa/messages/set_temperature.rb
179
+ - lib/bwa/messages/set_target_temperature.rb
135
180
  - lib/bwa/messages/set_temperature_scale.rb
136
181
  - lib/bwa/messages/set_time.rb
137
182
  - lib/bwa/messages/status.rb
@@ -142,7 +187,8 @@ files:
142
187
  homepage: https://github.com/ccutrer/bwa
143
188
  licenses:
144
189
  - MIT
145
- metadata: {}
190
+ metadata:
191
+ rubygems_mfa_required: 'true'
146
192
  post_install_message:
147
193
  rdoc_options: []
148
194
  require_paths:
@@ -151,7 +197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
197
  requirements:
152
198
  - - ">="
153
199
  - !ruby/object:Gem::Version
154
- version: '0'
200
+ version: '2.5'
155
201
  required_rubygems_version: !ruby/object:Gem::Requirement
156
202
  requirements:
157
203
  - - ">="
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)