balboa_worldwide_app 1.1.1 → 1.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a309cfe60e168cb56a8a95ebdc80c6107428f4a700fc279889f6e27443a6c6f3
4
- data.tar.gz: 9fcb57e4ea84ea69936eac347256df08af2bb0550efba9933487f7234160b8a7
3
+ metadata.gz: 6b84555384635c30873c0b10743bd87990e7fc3b6a85fc05f21ce3759d59ddbe
4
+ data.tar.gz: ef7e20ab1436da76d5024a9a5641e8301795246ee8afcfbfa3a6535f787f2ddb
5
5
  SHA512:
6
- metadata.gz: 97e1def1e19e8beb851d8a2db516720d3732fc05d36d8ac61b1f2c77c1c62db2b9b5f9aebf9516a2a881ba15f29c0740d94cd7dedcae9d207ca31717e562587c
7
- data.tar.gz: 236c323cc0fe8e108eb4099ae19a86f9389f5a5b6aa92d0bb89f77ff5f244cbcf9130c6d24631e460ac445fe604e1ac86f470499e886ac29f5b8dd21e1dd58d2
6
+ metadata.gz: 5cfe6592a743e415736015aadac86d71c6ba30d0fb1c562d4797103677daf725a2cfce22fd52c955d73c942bec9ea990f67a452a11244f1754a667ab9eed7c55
7
+ data.tar.gz: 00117540563ef4eebb1b577ab4f24a6414d7595b2312f220e84ae391715d472a333f5e92da150e0dce18bf9ae265c06d153f59da6dfe5abe834c3ee5648cebee
data/bin/bwa_mqtt_bridge CHANGED
@@ -126,7 +126,7 @@ class MQTTBridge
126
126
  next @bwa.toggle_blower if value == 'toggle'
127
127
  @bwa.set_blower(value.to_i)
128
128
  when "spa/settemperature/set"
129
- @bwa.set_temperature(value.to_i)
129
+ @bwa.set_temperature(value.to_f)
130
130
  end
131
131
  end
132
132
  end
@@ -186,10 +186,10 @@ class MQTTBridge
186
186
  subscribe("spa/temperaturerange/set")
187
187
 
188
188
  publish("spa/currenttemperature/$name", "Current temperature")
189
- publish("spa/currenttemperature/$datatype", "integer")
189
+ publish("spa/currenttemperature/$datatype", "float")
190
190
 
191
191
  publish("spa/settemperature/$name", "Set Temperature")
192
- publish("spa/settemperature/$datatype", "integer")
192
+ publish("spa/settemperature/$datatype", "float")
193
193
  publish("spa/settemperature/$settable", "true")
194
194
  subscribe("spa/settemperature/set")
195
195
 
data/lib/bwa/client.rb CHANGED
@@ -14,8 +14,8 @@ module BWA
14
14
  @io = Net::Telnet::RFC2217.new("Host" => uri.host, "Port" => uri.port || 23, "baud" => 115200)
15
15
  @queue = []
16
16
  else
17
- require 'serialport'
18
- @io = SerialPort.open(uri.path, "baud" => 115200)
17
+ require 'ccutrer-serialport'
18
+ @io = CCutrer::SerialPort.new(uri.path, baud: 115200)
19
19
  @queue = []
20
20
  end
21
21
  @buffer = ""
@@ -27,9 +27,10 @@ module BWA
27
27
  message, bytes_read = Message.parse(@buffer)
28
28
  # discard how much we read
29
29
  @buffer = @buffer[bytes_read..-1] if bytes_read
30
+ method = @io.respond_to?(:readpartial) ? :readpartial : :read
30
31
  unless message
31
32
  begin
32
- @buffer.concat(@io.readpartial(64 * 1024))
33
+ @buffer.concat(@io.__send__(method, 64 * 1024))
33
34
  rescue EOFError
34
35
  @io.wait_readable
35
36
  retry
@@ -144,7 +145,7 @@ module BWA
144
145
  # low range is 50-80 for F, 10-26 for C (by 0.5)
145
146
  def set_temperature(desired)
146
147
  desired *= 2 if last_status && last_status.temperature_scale == :celsius || desired < 50
147
- send_message("\x0a\xbf\x20#{desired.chr}")
148
+ send_message("\x0a\xbf\x20#{desired.round.chr}")
148
149
  end
149
150
 
150
151
  def set_time(hour, minute, twenty_four_hour_time = false)
data/lib/bwa/message.rb CHANGED
@@ -56,7 +56,12 @@ module BWA
56
56
  "\xbf\x07".force_encoding(Encoding::ASCII_8BIT)].include?(message_type)
57
57
 
58
58
  if klass
59
- raise InvalidMessage.new("Unrecognized data length (#{length}) for message #{klass}", data) unless length - 5 == klass::MESSAGE_LENGTH
59
+ valid_length = if klass::MESSAGE_LENGTH.respond_to?(:include?)
60
+ klass::MESSAGE_LENGTH.include?(length - 5)
61
+ else
62
+ length - 5 == klass::MESSAGE_LENGTH
63
+ end
64
+ raise InvalidMessage.new("Unrecognized data length (#{length}) for message #{klass}", data) unless valid_length
60
65
  else
61
66
  klass = Unrecognized
62
67
  end
@@ -1,7 +1,7 @@
1
1
  module BWA
2
2
  module Messages
3
3
  class SetTemperature < Message
4
- MESSAGE_TYPE = "\x0a\xbf\x20".force_encoding(Encoding::ASCII_8BIT)
4
+ MESSAGE_TYPE = "\xbf\x20".force_encoding(Encoding::ASCII_8BIT)
5
5
  MESSAGE_LENGTH = 1
6
6
 
7
7
  attr_accessor :temperature
@@ -1,7 +1,7 @@
1
1
  module BWA
2
2
  module Messages
3
3
  class SetTime < Message
4
- MESSAGE_TYPE = "\x0a\xbf\x21".force_encoding(Encoding::ASCII_8BIT)
4
+ MESSAGE_TYPE = "\xbf\x21".force_encoding(Encoding::ASCII_8BIT)
5
5
  MESSAGE_LENGTH = 2
6
6
 
7
7
  attr_accessor :hour, :minute, :twenty_four_hour_time
@@ -18,7 +18,8 @@ module BWA
18
18
  :current_temperature, :set_temperature
19
19
 
20
20
  MESSAGE_TYPE = "\xaf\x13".force_encoding(Encoding::ASCII_8BIT)
21
- MESSAGE_LENGTH = 24
21
+ # additional features have been added in later versions
22
+ MESSAGE_LENGTH = 24..32
22
23
 
23
24
  def initialize
24
25
  @src = 0xff
@@ -80,8 +81,8 @@ module BWA
80
81
  self.current_temperature = nil if self.current_temperature == 0xff
81
82
  self.set_temperature = data[20].ord
82
83
  if temperature_scale == :celsius
83
- self.current_temperature /= 2.0
84
- self.set_temperature /= 2.0
84
+ self.current_temperature /= 2.0 if self.current_temperature
85
+ self.set_temperature /= 2.0 if self.set_temperature
85
86
  end
86
87
  end
87
88
 
@@ -171,4 +172,4 @@ module BWA
171
172
  end
172
173
  end
173
174
  end
174
- end
175
+ end
data/lib/bwa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module BWA
2
- VERSION = '1.1.1'
2
+ VERSION = '1.2.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: balboa_worldwide_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-24 00:00:00.000000000 Z
11
+ date: 2021-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: digest-crc
@@ -53,19 +53,19 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.0.3
55
55
  - !ruby/object:Gem::Dependency
56
- name: serialport
56
+ name: ccutrer-serialport
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.3.1
61
+ version: 1.0.0
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.3.1
68
+ version: 1.0.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: byebug
71
71
  requirement: !ruby/object:Gem::Requirement