waterfurnace_aurora 0.1.1 → 0.2.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: d968e612fad4716e6bebfa9190d31fd40124ae5f5d793d61defe131929aee135
4
- data.tar.gz: c8309747cbbb06b7649620a0c065015de5ac53237e460bb8ff9138669e6315f3
3
+ metadata.gz: 64e8260cab984391d973114e5e09a98cc4331c166d13f1797bab6e0f292d2953
4
+ data.tar.gz: b0a430cbf5310a30c839e9ca19807081aa316cffa80ce3c230fcffe5af928ab0
5
5
  SHA512:
6
- metadata.gz: 01c73b395a6f32e9d30db37a6d9bedcb82a0f2059163dd511e356c0bccd68ed2037ef6a7fcc880a4e030a6f355af835ceab67f9aa77fbb69258800c86c985730
7
- data.tar.gz: d8dd44d7963e4d79dd81f8329435fe2fbb51e4e4b8e98008a6e014da8d9a97ef4910c776bd34e7d821af244555f62e60d625b8d14101c4501d39edfd30fea4fa
6
+ metadata.gz: cce5f85f7b11c6910b294511faa7ea13b0319e58523cd8e42832f03983870296659286aa071db9761cd5c33df3a107d2ae9d6d5b33e430a96daf07b9366111eb
7
+ data.tar.gz: 5f8affbb114893a9a67accd843b70f1a328b54d9c1485b455740e056b5f1d465f86e20a86e1d13b6c3cd7e2a9ddeabef5d6d72771c811cb5101b57bdfd881379
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'aurora'
4
- require 'mqtt'
4
+ require 'homie-mqtt'
5
5
  require 'ccutrer-serialport'
6
6
  require 'uri'
7
7
 
8
8
  uri = URI.parse(ARGV[0])
9
- mqtt_uri = URI.parse(ARGV[1])
9
+ mqtt_uri = ARGV[1]
10
10
 
11
11
  args = if uri.scheme == "telnet" || uri.scheme == "rfc2217"
12
12
  require 'net/telnet/rfc2217'
@@ -22,106 +22,87 @@ slave = ModBus::RTUClient.new(*args).with_slave(1)
22
22
  abc = Aurora::ABCClient.new(slave)
23
23
 
24
24
  class MQTTBridge
25
- def initialize(abc, mqtt_uri)
26
- @base_topic = "homie/aurora"
25
+ def initialize(abc, homie)
27
26
  @abc = abc
28
- @mqtt = MQTT::Client.new(mqtt_uri)
29
- @mqtt.set_will("#{@base_topic}/$state", "lost", true, 1)
30
- @mqtt.connect
31
- @attributes = {}
27
+ @homie = homie
32
28
  @mutex = Mutex.new
33
29
 
34
- publish_basic_attributes
35
-
36
- abc_thread = Thread.new do
37
- loop do
38
- begin
39
- @mutex.synchronize do
40
- @abc.refresh
41
- publish_attribute("abc/compressor-speed", @abc.compressor_speed)
42
- publish_attribute("abc/current-mode", @abc.current_mode)
43
- publish_attribute("abc/dhw-water-temperature", @abc.dhw_water_temperature)
44
- publish_attribute("abc/entering-air-temperature", @abc.entering_air_temperature)
45
- publish_attribute("abc/entering-water-temperature", @abc.entering_water_temperature)
46
- publish_attribute("abc/fan-speed", @abc.fan_speed)
47
- publish_attribute("abc/leaving-air-temperature", @abc.leaving_air_temperature)
48
- publish_attribute("abc/leaving-water-temperature", @abc.leaving_water_temperature)
49
- publish_attribute("abc/outdoor-temperature", @abc.outdoor_temperature)
50
- publish_attribute("abc/relative-humidity", @abc.relative_humidity)
51
- publish_attribute("abc/waterflow", @abc.waterflow)
52
- publish_attribute("abc/fp1", @abc.fp1)
53
- publish_attribute("abc/fp2", @abc.fp2)
54
-
55
- @abc.iz2_zones.each do |z|
56
- i = z.zone_number
57
- publish_attribute("zone#{i}/target-mode", z.target_mode)
58
- publish_attribute("zone#{i}/current-mode", z.current_mode)
59
- publish_attribute("zone#{i}/target-fan-mode", z.target_fan_mode)
60
- publish_attribute("zone#{i}/current-fan-mode", z.current_fan_mode)
61
- publish_attribute("zone#{i}/fan-intermittent-on", z.fan_intermittent_on)
62
- publish_attribute("zone#{i}/fan-intermittent-off", z.fan_intermittent_off)
63
- publish_attribute("zone#{i}/priority", z.priority)
64
- publish_attribute("zone#{i}/size", z.size)
65
- publish_attribute("zone#{i}/normalized-size", z.normalized_size)
66
- publish_attribute("zone#{i}/ambient-temperature", z.ambient_temperature)
67
- publish_attribute("zone#{i}/heating-target-temperature", z.heating_target_temperature)
68
- publish_attribute("zone#{i}/cooling-target-temperature", z.cooling_target_temperature)
30
+ @homie.instance_variable_set(:@block, ->(topic, value) do
31
+ @mutex.synchronize do
32
+ case topic
33
+ when /\$modbus$/
34
+ query = value.split(',').map do |addr|
35
+ if addr == 'known'
36
+ Aurora::REGISTER_NAMES.keys
37
+ elsif addr =~ /^(\d+)\.\.(\d+)$/
38
+ Regexp.last_match(1).to_i..Regexp.last_match(2).to_i
39
+ else
40
+ addr.to_i
69
41
  end
70
42
  end
71
- rescue => e
72
- puts "got garbage: #{e}; #{e.backtrace}"
73
- exit 1
43
+ queries = Aurora.normalize_ranges(query)
44
+ registers = {}
45
+ queries.each do |query|
46
+ registers.merge!(@abc.modbus_slave.read_multiple_holding_registers(*query))
47
+ end
48
+ result = Aurora.print_registers(registers)
49
+ @homie.mqtt.publish("#{@home.topic}/$modbus/response", result, retain: false, qos: 1)
50
+ when %r{\$modbus/(\d+)$}
51
+ register = Regexp.last_match(1).to_i
52
+ value = case value
53
+ when /\d+/
54
+ value.to_i
55
+ when /0x(\d+)/
56
+ Regexp.last_match(1).to_i(16)
57
+ end
58
+ @abc.modbus_slave.holding_registers[register] = value if value
74
59
  end
75
- sleep(5)
76
60
  end
77
- end
61
+ rescue StandardError => e
62
+ puts "failed processing message: #{e}\n#{e.backtrace}"
63
+ end)
78
64
 
79
- @mqtt.get do |topic, value|
80
- puts "got #{value.inspect} at #{topic}"
81
- zone = topic =~ %r{zone([1-6])/} && @abc.iz2_zones[$1.to_i - 1]
65
+ publish_basic_attributes
82
66
 
67
+ loop do
83
68
  begin
84
69
  @mutex.synchronize do
85
- case topic
86
- when %r{zone([1-6])/target-mode/set$}
87
- publish_attribute("zone#{$1}/target-mode", zone.target_mode = value.to_sym)
88
- when %r{zone([1-6])/target-fan-mode/set$}
89
- publish_attribute("zone#{$1}/target-fan-mode", zone.target_fan_mode = value.to_sym)
90
- when %r{zone([1-6])/fan-intermittent-(on|off)/set$}
91
- publish_attribute("zone#{$1}/fan-intermittent-#{$2}", zone.send("fan_intermittent_#{$2}=", value.to_i))
92
- when %r{zone([1-6])/(heating|cooling)-target-temperature}
93
- publish_attribute("zone#{$1}/#{$2}-target-temperature", zone.send("#{$2}_target_temperature=", value.to_f))
94
- when /\$modbus$/
95
- query = value.split(',').map do |addr|
96
- if addr == "known"
97
- Aurora::REGISTER_NAMES.keys
98
- elsif addr =~ /^(\d+)\.\.(\d+)$/
99
- $1.to_i..$2.to_i
100
- else
101
- addr.to_i
102
- end
103
- end
104
- queries = Aurora.normalize_ranges(query)
105
- registers = {}
106
- queries.each do |query|
107
- registers.merge!(@abc.modbus_slave.read_multiple_holding_registers(*query))
108
- end
109
- result = Aurora.print_registers(registers)
110
- @mqtt.publish("#{@base_topic}/$modbus/response", result, false, 1)
111
- when %r{\$modbus/(\d+)$}
112
- register = $1.to_i
113
- value = case value
114
- when /\d+/
115
- value.to_i
116
- when /0x(\d+)/
117
- $1.to_i(16)
118
- end
119
- @abc.modbus_slave.holding_registers[register] = value if value
70
+ @abc.refresh
71
+ @homie_abc["compressor-speed"].value = @abc.compressor_speed
72
+ @homie_abc["current-mode"].value = @abc.current_mode
73
+ @homie_abc["dhw-water-temperature"].value = @abc.dhw_water_temperature
74
+ @homie_abc["entering-air-temperature"].value = @abc.entering_air_temperature
75
+ @homie_abc["entering-water-temperature"].value = @abc.entering_water_temperature
76
+ @homie_abc["fan-speed"].value = @abc.fan_speed
77
+ @homie_abc["leaving-air-temperature"].value = @abc.leaving_air_temperature
78
+ @homie_abc["leaving-water-temperature"].value = @abc.leaving_water_temperature
79
+ @homie_abc["outdoor-temperature"].value = @abc.outdoor_temperature
80
+ @homie_abc["relative-humidity"].value = @abc.relative_humidity
81
+ @homie_abc["waterflow"].value = @abc.waterflow
82
+ @homie_abc["fp1"].value = @abc.fp1
83
+ @homie_abc["fp2"].value = @abc.fp2
84
+
85
+ @abc.iz2_zones.each do |z|
86
+ homie_zone = @homie["zone#{z.zone_number}"]
87
+ homie_zone["target-mode"].value = z.target_mode
88
+ homie_zone["current-mode"].value = z.current_mode
89
+ homie_zone["target-fan-mode"].value = z.target_fan_mode
90
+ homie_zone["current-fan-mode"].value = z.current_fan_mode
91
+ homie_zone["fan-intermittent-on"].value = z.fan_intermittent_on
92
+ homie_zone["fan-intermittent-off"].value = z.fan_intermittent_off
93
+ homie_zone["priority"].value = z.priority
94
+ homie_zone["size"].value = z.size
95
+ homie_zone["normalized-size"].value = z.normalized_size
96
+ homie_zone["ambient-temperature"].value = z.ambient_temperature
97
+ homie_zone["heating-target-temperature"].value = z.heating_target_temperature
98
+ homie_zone["cooling-target-temperature"].value = z.cooling_target_temperature
120
99
  end
121
100
  end
122
101
  rescue => e
123
- puts "failed processing message: #{e}\n#{e.backtrace}"
102
+ puts "got garbage: #{e}; #{e.backtrace}"
103
+ exit 1
124
104
  end
105
+ sleep(5)
125
106
  end
126
107
  end
127
108
 
@@ -141,149 +122,58 @@ class MQTTBridge
141
122
  end
142
123
 
143
124
  def publish_basic_attributes
144
- publish("$homie", "4.0.0")
145
- publish("$name", "Aurora MQTT Bridge")
146
- publish("$state", "init")
147
- nodes = ["abc"]
148
-
149
- publish("abc/$name", "Aurora Basic Control")
150
- publish("abc/$datatype", "ABC")
151
- publish("abc/$properties", "compressor-speed,current-mode,dhw-water-temperature,entering-air-temperature,entering-water-temperature,fan-speed,leaving-air-temperature,leaving-water-temperature,outdoor-temperature,relative-humidity,waterflow,fp1,fp2")
152
-
153
- publish("abc/compressor-speed/$name", "Compressor Speed")
154
- publish("abc/compressor-speed/$datatype", "integer")
155
- publish("abc/compressor-speed/$format", "0:12")
156
-
157
- publish("abc/current-mode/$name", "Current Heating/Cooling Mode")
158
- publish("abc/current-mode/$datatype", "enum")
159
- publish("abc/current-mode/$format", "lockout,standby,blower,h1,h2,c1,c2,eh1,eh2")
160
-
161
- publish("abc/dhw-water-temperature/$name", "DHW Water Temperature")
162
- publish("abc/dhw-water-temperature/$datatype", "float")
163
- publish("abc/dhw-water-temperature/$unit", "ºF")
164
-
165
- publish("abc/entering-air-temperature/$name", "Entering Air Temperature")
166
- publish("abc/entering-air-temperature/$datatype", "float")
167
- publish("abc/entering-air-temperature/$unit", "ºF")
168
-
169
- publish("abc/entering-water-temperature/$name", "Entering Water Temperature")
170
- publish("abc/entering-water-temperature/$datatype", "float")
171
- publish("abc/entering-water-temperature/$unit", "ºF")
172
-
173
- publish("abc/fan-speed/$name", "Fan Speed")
174
- publish("abc/fan-speed/$datatype", "integer")
175
- publish("abc/fan-speed/$format", "0:11")
176
-
177
- publish("abc/leaving-air-temperature/$name", "Leaving Air Temperature")
178
- publish("abc/leaving-air-temperature/$datatype", "float")
179
- publish("abc/leaving-air-temperature/$unit", "ºF")
180
-
181
- publish("abc/leaving-water-temperature/$name", "Leaving Water Temperature")
182
- publish("abc/leaving-water-temperature/$datatype", "float")
183
- publish("abc/leaving-water-temperature/$unit", "ºF")
184
-
185
- publish("abc/outdoor-temperature/$name", "Outdoor Temperature")
186
- publish("abc/outdoor-temperature/$datatype", "float")
187
- publish("abc/outdoor-temperature/$unit", "ºF")
188
-
189
- publish("abc/relative-humidity/$name", "Relative Humidity")
190
- publish("abc/relative-humidity/$datatype", "integer")
191
- publish("abc/relative-humidity/$unit", "%")
192
- publish("abc/relative-humidity/$format", "0:100")
193
-
194
- publish("abc/waterflow/$name", "Waterflow")
195
- publish("abc/waterflow/$datatype", "float")
196
- publish("abc/waterflow/$unit", "gpm")
197
-
198
- publish("abc/fp1/$name", "FP1 Sensor")
199
- publish("abc/fp1/$datatype", "float")
200
- publish("abc/fp1/$unit", "ºF")
201
-
202
- publish("abc/fp2/$name", "FP1 Sensor")
203
- publish("abc/fp2/$datatype", "float")
204
- publish("abc/fp2/$unit", "ºF")
205
-
206
- (1..@abc.iz2_zones.length).each do |i|
207
- nodes << "zone#{i}"
208
- publish("zone#{i}/$name", "Zone #{i}")
209
- publish("zone#{i}/$datatype", "IntelliZone 2 Zone")
210
- publish("zone#{i}/$properties", "target-mode,current-mode,target-fan-mode,current-fan-mode,fan-intermittent-on,fan-intermittent-off,priority,size,normalized-size,ambient-temperature,heating-target-temperature,cooling-target-temperature")
125
+ @homie_abc = @homie.node("abc", "Aurora Basic Control", "ABC") do |node|
126
+ node.property("compressor-speed", "Compressor Speed", :integer, @abc.compressor_speed, format: 0..1)
127
+ node.property("current-mode", "Current Heating/Cooling Mode", :enum, @abc.current_mode, format: %w[lockout standby blower h1 h2 c1 c2 eh1 eh2])
128
+ node.property("dhw-water-temperature", "DHW Water Temperature", :float, @abc.dhw_water_temperature, unit: "ºF")
129
+ node.property("entering-air-temperature", "Entering Air Temperature", :float, @abc.entering_air_temperature, unit: "ºF")
130
+ node.property("entering-water-temperature", "Entering Water Temperature", :float, @abc.entering_water_temperature, unit: "ºF")
131
+ node.property("fan-speed", "Fan Speed", :integer, @abc.fan_speed, format: 0..11)
132
+ node.property("leaving-air-temperature", "Leaving Air Temperature", :float, @abc.leaving_air_temperature, unit: "ºF")
133
+ node.property("leaving-water-temperature", "Leaving Water Temperature", :float, @abc.leaving_water_temperature, unit: "ºF")
134
+ node.property("outdoor-temperature", "Outdoor Temperature", :float, @abc.outdoor_temperature, unit: "ºF")
135
+ node.property("relative-humidity", "Relative Humidity", :integer, @abc.relative_humidity, unit: "%", format: 0..100)
136
+ node.property("waterflow", "Waterflow", :float, unit: "gpm")
137
+ node.property("fp1", "FP1 Sensor", :float, @abc.fp1, unit: "ºF")
138
+ node.property("fp2", "FP2 Sensor", :float, @abc.fp2, unit: "ºF")
139
+ end
211
140
 
212
- publish("zone#{i}/target-mode/$name", "Target Heating/Cooling Mode")
213
- publish("zone#{i}/target-mode/$datatype", "enum")
214
- if i == 1
215
- publish("zone#{i}/target-mode/$format", "off,auto,cool,heat,eheat")
216
- else
217
- publish("zone#{i}/target-mode/$format", "off,auto,cool,heat")
141
+ @abc.iz2_zones.each_with_index do |zone|
142
+ @homie.node("zone#{zone.zone_number}", "Zone #{zone.zone_number}", "IntelliZone 2 Zone") do |node|
143
+ allowed_modes = %w[off auto cool heat]
144
+ allowed_modes << "eheat" if zone.zone_number == 1
145
+ node.property("target-mode", "Target Heating/Cooling Mode", :enum, zone.target_mode, format: allowed_modes) do |value, property|
146
+ @mutex.synchronize { property.value = zone.target_mode = value.to_sym }
147
+ end
148
+ node.property("current-mode", "Current Heating/Cooling Mode Requested", :enum, zone.current_mode, format: %w[standby h1 h2 h3 c1 c2])
149
+ node.property("target-fan-mode", "Target Fan Mode", :enum, zone.target_fan_mode, format: %w[auto continuous intermittent]) do |value, property|
150
+ @mutex.synchronize { property.value = zone.target_fan_mode = value.to_sym }
151
+ end
152
+ node.property("current-fan-mode", "Current Fan Status", :boolean, zone.current_fan_mode)
153
+ node.property("fan-intermittent-on", "Fan Intermittent Mode On Duration", :enum, zone.fan_intermittent_on, unit: "M", format: %w[0 5 10 15 20]) do |value, property|
154
+ @mutex.synchronize { property.value = zone.fan_intermittent_on = value.to_i }
155
+ end
156
+ node.property("fan-intermittent-off", "Fan Intermittent Mode Off Duration", :enum, zone.fan_intermittent_on, unit: "M", format: %w[0 5 10 15 20 25 30 35 40]) do |value, property|
157
+ @mutex.synchronize { property.value = zone.fan_intermittent_on = value.to_i }
158
+ end
159
+ node.property("priority", "Zone Priority", :enum, zone.priority, format: %w[economy comfort])
160
+ node.property("size", "Size", :enum, zone.size, format: %w[0 25 45 70])
161
+ node.property("normalized-size", "Normalized Size", :integer, zone.normalized_size, unit: "%", format: 0..100)
162
+ node.property("ambient-temperature", "Ambient Temperature", :float, zone.ambient_temperature, unit: "ºF")
163
+ node.property("heating-target-temperature", "Heating Target Temperature", :integer, zone.heating_target_temperature, unit: "ºF", format: 40..90) do |value, property|
164
+ @mutex.synchronize { property.value = zone.heating_target_temperature = value }
165
+ end
166
+ node.property("cooling-target-temperature", "Cooling Target Temperature", :integer, zone.cooling_target_temperature, unit: "ºF", format: 54..99) do |value, property|
167
+ @mutex.synchronize { property.value = zone.cooling_target_temperature = value }
168
+ end
218
169
  end
219
- publish("zone#{i}/target-mode/$settable", "true")
220
- subscribe("zone#{i}/target-mode/set")
221
-
222
- publish("zone#{i}/current-mode/$name", "Current Heating/Cooling Mode Requested")
223
- publish("zone#{i}/current-mode/$datatype", "enum")
224
- publish("zone#{i}/current-mode/$format", "standby,h1,h2,h3,c1,c2")
225
-
226
- publish("zone#{i}/target-fan-mode/$name", "Target Fan Mode")
227
- publish("zone#{i}/target-fan-mode/$datatype", "enum")
228
- publish("zone#{i}/target-fan-mode/$format", "auto,continuous,intermittent")
229
- publish("zone#{i}/target-fan-mode/$settable", "true")
230
- subscribe("zone#{i}/target-fan-mode/set")
231
-
232
- publish("zone#{i}/current-fan-mode/$name", "Current Fan Status")
233
- publish("zone#{i}/current-fan-mode/$datatype", "boolean")
234
-
235
- publish("zone#{i}/fan-intermittent-on/$name", "Fan Intermittent Mode On Duration")
236
- publish("zone#{i}/fan-intermittent-on/$datatype", "enum")
237
- publish("zone#{i}/fan-intermittent-on/$format", "0,5,10,15,20")
238
- publish("zone#{i}/fan-intermittent-on/$unit", "M")
239
- publish("zone#{i}/fan-intermittent-on/$settable", "true")
240
- subscribe("zone#{i}/fan-intermittent-on/set")
241
-
242
- publish("zone#{i}/fan-intermittent-off/$name", "Fan Intermittent Mode Off Duration")
243
- publish("zone#{i}/fan-intermittent-off/$datatype", "enum")
244
- publish("zone#{i}/fan-intermittent-off/$format", "0,5,10,15,20,25,30,35,40")
245
- publish("zone#{i}/fan-intermittent-off/$unit", "M")
246
- publish("zone#{i}/fan-intermittent-off/$settable", "true")
247
- subscribe("zone#{i}/fan-intermittent-off/set")
248
-
249
- publish("zone#{i}/priority/$name", "Zone Priority")
250
- publish("zone#{i}/priority/$datatype", "enum")
251
- publish("zone#{i}/priority/$format", "economy,comfort")
252
-
253
- publish("zone#{i}/size/$name", "Size")
254
- publish("zone#{i}/size/$datatype", "enum")
255
- publish("zone#{i}/size/$format", "0,25,45,70")
256
-
257
- publish("zone#{i}/normalized-size/$name", "Normalized Size")
258
- publish("zone#{i}/normalized-size/$datatype", "integer")
259
- publish("zone#{i}/normalized-size/$format", "0:100")
260
- publish("zone#{i}/normalized-size/$unit", "%")
261
-
262
- publish("zone#{i}/ambient-temperature/$name", "Ambient Temperature")
263
- publish("zone#{i}/ambient-temperature/$datatype", "float")
264
- publish("zone#{i}/ambient-temperature/$unit", "ºF")
265
-
266
- publish("zone#{i}/heating-target-temperature/$name", "Heating Target Temperature")
267
- publish("zone#{i}/heating-target-temperature/$datatype", "integer")
268
- publish("zone#{i}/heating-target-temperature/$unit", "ºF")
269
- publish("zone#{i}/heating-target-temperature/$format", "40:90")
270
- publish("zone#{i}/heating-target-temperature/$settable", "true")
271
- subscribe("zone#{i}/heating-target-temperature/set")
272
-
273
- publish("zone#{i}/cooling-target-temperature/$name", "Cooling Target Temperature")
274
- publish("zone#{i}/cooling-target-temperature/$datatype", "integer")
275
- publish("zone#{i}/cooling-target-temperature/$unit", "ºF")
276
- publish("zone#{i}/cooling-target-temperature/$format", "54:99")
277
- publish("zone#{i}/cooling-target-temperature/$settable", "true")
278
- subscribe("zone#{i}/cooling-target-temperature/set")
279
170
  end
280
- publish("$nodes", nodes.join(','))
281
171
 
282
172
  # direct access to modbus registers for debugging purposes
283
- subscribe("$modbus")
284
- subscribe("$modbus/+")
285
- publish("$state", 'ready')
173
+ @homie.mqtt.subscribe("#{@homie.topic}/$modbus")
174
+ @homie.mqtt.subscribe("#{@homie.topic}/$modbus/+")
175
+ @homie.publish
286
176
  end
287
177
  end
288
178
 
289
- MQTTBridge.new(abc, mqtt_uri)
179
+ MQTTBridge.new(abc, MQTT::Homie::Device.new("aurora", "Aurora MQTT Bridge", mqtt: mqtt_uri))
@@ -1,3 +1,3 @@
1
1
  module Aurora
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: waterfurnace_aurora
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
@@ -11,19 +11,19 @@ cert_chain: []
11
11
  date: 2021-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: mqtt
14
+ name: homie-mqtt
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.0
19
+ version: 1.4.1
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.5.0
26
+ version: 1.4.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: net-telnet-rfc2217
29
29
  requirement: !ruby/object:Gem::Requirement