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 +4 -4
- data/bin/aurora_mqtt_bridge +115 -225
- data/lib/aurora/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64e8260cab984391d973114e5e09a98cc4331c166d13f1797bab6e0f292d2953
|
4
|
+
data.tar.gz: b0a430cbf5310a30c839e9ca19807081aa316cffa80ce3c230fcffe5af928ab0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cce5f85f7b11c6910b294511faa7ea13b0319e58523cd8e42832f03983870296659286aa071db9761cd5c33df3a107d2ae9d6d5b33e430a96daf07b9366111eb
|
7
|
+
data.tar.gz: 5f8affbb114893a9a67accd843b70f1a328b54d9c1485b455740e056b5f1d465f86e20a86e1d13b6c3cd7e2a9ddeabef5d6d72771c811cb5101b57bdfd881379
|
data/bin/aurora_mqtt_bridge
CHANGED
@@ -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 =
|
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,
|
26
|
-
@base_topic = "homie/aurora"
|
25
|
+
def initialize(abc, homie)
|
27
26
|
@abc = abc
|
28
|
-
@
|
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
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
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
|
-
|
72
|
-
|
73
|
-
|
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
|
-
|
61
|
+
rescue StandardError => e
|
62
|
+
puts "failed processing message: #{e}\n#{e.backtrace}"
|
63
|
+
end)
|
78
64
|
|
79
|
-
|
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
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
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 "
|
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
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
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
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
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("
|
284
|
-
subscribe("
|
285
|
-
publish
|
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))
|
data/lib/aurora/version.rb
CHANGED
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.
|
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:
|
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:
|
26
|
+
version: 1.4.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: net-telnet-rfc2217
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|