waterfurnace_aurora 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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