waterfurnace_aurora 0.5.3 → 0.6.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/exe/aurora_mqtt_bridge +40 -7
- data/lib/aurora/abc_client.rb +23 -25
- data/lib/aurora/dhw.rb +3 -1
- data/lib/aurora/humidistat.rb +92 -0
- data/lib/aurora/pump.rb +3 -1
- data/lib/aurora/registers.rb +21 -18
- data/lib/aurora/version.rb +1 -1
- metadata +2 -2
- data/lib/aurora/humidifier.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77762dc2957715e4f0a1dc4f608158b5f17a4801624f50d8af01ba26c8dc7410
|
4
|
+
data.tar.gz: 338fd829fb1bb364900242d2a4cdacada3e08a3b87214377f81f04b0c5f9eb66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a16b1f69d3b5720bdc323ae27b7de9908573e6a959857dce575273129fcfa5a42e7754ea87a072d28afbc47aa5e8ec9e46b40682fcc9a88dca30c36ec2aa207
|
7
|
+
data.tar.gz: 0d221ae7e69561ab79dd0f9591751492c4282dc4fd33a658cc8bf99ee6973587616f199c6228e7ca2506eb99fb7a622bc77a33d0272cea942ff99177dae22c90
|
data/exe/aurora_mqtt_bridge
CHANGED
@@ -92,7 +92,7 @@ class MQTTBridge
|
|
92
92
|
@blower => @abc.blower,
|
93
93
|
@pump => @abc.pump,
|
94
94
|
@dhw => @abc.dhw,
|
95
|
-
@
|
95
|
+
@humidistat => @abc.humidistat }.compact
|
96
96
|
@abc.zones.each_with_index do |z, idx|
|
97
97
|
homie_zone = @homie["zone#{idx + 1}"]
|
98
98
|
components[homie_zone] = z
|
@@ -105,6 +105,8 @@ class MQTTBridge
|
|
105
105
|
end
|
106
106
|
|
107
107
|
@abc.faults.each_with_index do |fault_count, i|
|
108
|
+
next if fault_count == 0xffff
|
109
|
+
|
108
110
|
@faults["e#{i + 1}"].value = fault_count
|
109
111
|
end
|
110
112
|
end
|
@@ -118,8 +120,10 @@ class MQTTBridge
|
|
118
120
|
|
119
121
|
def publish_basic_attributes
|
120
122
|
@homie_abc = @homie.node("abc", "Aurora Basic Control", "ABC") do |node|
|
123
|
+
allowed_modes = %w[lockout standby blower heating cooling eh1 eh2 emergency waiting]
|
124
|
+
allowed_modes << "dehumidify" if @abc.compressor.is_a?(Aurora::Compressor::VSDrive)
|
121
125
|
node.property("current-mode", "Current Heating/Cooling Mode", :enum, @abc.current_mode,
|
122
|
-
format:
|
126
|
+
format: allowed_modes)
|
123
127
|
node.property("entering-air-temperature", "Entering Air Temperature", :float, @abc.entering_air_temperature,
|
124
128
|
unit: "ºF")
|
125
129
|
node.property("entering-water-temperature", "Entering Water Temperature", :float,
|
@@ -131,8 +135,7 @@ class MQTTBridge
|
|
131
135
|
unless @abc.outdoor_temperature.zero? # TODO: figure out the config if this actually exists
|
132
136
|
node.property("outdoor-temperature", "Outdoor Temperature", :float, @abc.outdoor_temperature, unit: "ºF")
|
133
137
|
end
|
134
|
-
|
135
|
-
format: 0..100)
|
138
|
+
|
136
139
|
node.property("fp1", "FP1 Sensor", :float, @abc.fp1, unit: "ºF")
|
137
140
|
node.property("fp2", "FP2 Sensor", :float, @abc.fp2, unit: "ºF")
|
138
141
|
%i[aux_heat total].each do |component|
|
@@ -190,6 +193,7 @@ class MQTTBridge
|
|
190
193
|
|
191
194
|
next unless @abc.pump.is_a?(Aurora::Pump::VSPump)
|
192
195
|
|
196
|
+
node.property("running", "Pump is running", :boolean, @abc.pump.running)
|
193
197
|
node.property("speed", "Speed", :integer, @abc.pump.speed, format: 0..100, unit: "%") do |value, property|
|
194
198
|
@mutex.synchronize { property.value = @abc.pump.speed = value }
|
195
199
|
end
|
@@ -212,6 +216,7 @@ class MQTTBridge
|
|
212
216
|
node.property("enabled", "Enabled", :boolean, @abc.dhw.enabled) do |value, property|
|
213
217
|
@mutex.synchronize { property.value = @abc.dhw.enabled = value }
|
214
218
|
end
|
219
|
+
node.property("running", "DHW Pump is running", :boolean, @abc.dhw.running?)
|
215
220
|
node.property("water-temperature", "Water Temperature", :float,
|
216
221
|
@abc.dhw.water_temperature, unit: "ºF")
|
217
222
|
node.property("set-point", "Set Point", :float, @abc.dhw.set_point, format: 100..140,
|
@@ -221,10 +226,36 @@ class MQTTBridge
|
|
221
226
|
end
|
222
227
|
end
|
223
228
|
|
224
|
-
|
225
|
-
|
226
|
-
|
229
|
+
@humidistat = @homie.node("humidistat", "Humidistat", "Humidistat") do |node|
|
230
|
+
node.property("relative-humidity", "Relative Humidity", :integer, @abc.humidistat.relative_humidity,
|
231
|
+
unit: "%", format: 0..100)
|
232
|
+
if @abc.humidistat.humidifier?
|
233
|
+
node.property("humidifier-running", "Humidifier is running", :boolean, @abc.humidistat.humidifier_running?)
|
234
|
+
node.property("humidifier-mode", "Humidifier Mode", :enum, @abc.humidistat.humidifier_mode,
|
235
|
+
format: %i[auto manual]) do |value, property|
|
236
|
+
@mutex.synchronize { property.value = @abc.humidistat.humidifier_mode = value.to_sym }
|
237
|
+
end
|
238
|
+
node.property("humidification-target", "Humidification target relative humidity", :integer,
|
239
|
+
@abc.humidistat.humidification_target, unit: "%", format: 15..50) do |value, property|
|
240
|
+
@mutex.synchronize { property.value = @abc.humidistat.humidification_target = value }
|
241
|
+
end
|
227
242
|
end
|
243
|
+
|
244
|
+
# VSDrive can perform active dehumidification, even without a dedicated dehumidifier
|
245
|
+
if @abc.humidistat.dehumidifier? || @abc.compressor.is_a?(Aurora::Compressor::VSDrive)
|
246
|
+
node.property("dehumidifier-mode", "Dehumidifier Mode", :enum, @abc.humidistat.dehumidifier_mode,
|
247
|
+
format: %i[auto manual]) do |value, property|
|
248
|
+
@mutex.synchronize { property.value = @abc.humidistat.dehumidifier_mode = value.to_sym }
|
249
|
+
end
|
250
|
+
node.property("dehumidification-target", "Dehumidification target relative humidity", :integer,
|
251
|
+
@abc.humidistat.dehumidification_target, unit: "%", format: 35..65) do |value, property|
|
252
|
+
@mutex.synchronize { property.value = @abc.humidistat.dehumidification_target = value }
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
next unless @abc.humidistat.dehumidifier?
|
257
|
+
|
258
|
+
node.property("dehumidifier-running", "Dehumidifier is running", :boolean, @abc.humidistat.dehumidifier_running?)
|
228
259
|
end
|
229
260
|
|
230
261
|
@faults = @homie.node("faults", "Fault History", "ABC") do |node|
|
@@ -232,6 +263,8 @@ class MQTTBridge
|
|
232
263
|
@mutex.synchronize { @abc.clear_fault_history }
|
233
264
|
end
|
234
265
|
@abc.faults.each_with_index do |count, i|
|
266
|
+
next if count == 0xffff
|
267
|
+
|
235
268
|
name = Aurora::FAULTS[i + 1]
|
236
269
|
node.property("e#{i + 1}", name || "E#{i + 1}", :integer, count)
|
237
270
|
end
|
data/lib/aurora/abc_client.rb
CHANGED
@@ -6,7 +6,7 @@ require "uri"
|
|
6
6
|
require "aurora/blower"
|
7
7
|
require "aurora/compressor"
|
8
8
|
require "aurora/dhw"
|
9
|
-
require "aurora/
|
9
|
+
require "aurora/humidistat"
|
10
10
|
require "aurora/iz2_zone"
|
11
11
|
require "aurora/pump"
|
12
12
|
require "aurora/thermostat"
|
@@ -49,11 +49,10 @@ module Aurora
|
|
49
49
|
:blower,
|
50
50
|
:pump,
|
51
51
|
:dhw,
|
52
|
-
:
|
52
|
+
:humidistat,
|
53
53
|
:faults,
|
54
54
|
:current_mode,
|
55
55
|
:entering_air_temperature,
|
56
|
-
:relative_humidity,
|
57
56
|
:leaving_air_temperature,
|
58
57
|
:leaving_water_temperature,
|
59
58
|
:entering_water_temperature,
|
@@ -67,7 +66,7 @@ module Aurora
|
|
67
66
|
@modbus_slave = self.class.open_modbus_slave(uri)
|
68
67
|
@modbus_slave.read_retry_timeout = 15
|
69
68
|
@modbus_slave.read_retries = 2
|
70
|
-
raw_registers = @modbus_slave.holding_registers[33, 88..91, 105...110, 404, 412..413, 1114]
|
69
|
+
raw_registers = @modbus_slave.holding_registers[33, 88..91, 105...110, 404, 412..413, 1103, 1114]
|
71
70
|
registers = Aurora.transform_registers(raw_registers.dup)
|
72
71
|
@program = registers[88]
|
73
72
|
@serial_number = registers[105]
|
@@ -81,6 +80,7 @@ module Aurora
|
|
81
80
|
end
|
82
81
|
|
83
82
|
@abc_dipswitches = registers[33]
|
83
|
+
@axb_dipswitches = registers[1103]
|
84
84
|
@compressor = if @program == "ABCVSP"
|
85
85
|
Compressor::VSDrive.new(self)
|
86
86
|
else
|
@@ -100,9 +100,23 @@ module Aurora
|
|
100
100
|
registers[413])
|
101
101
|
end
|
102
102
|
@dhw = DHW.new(self) if (-999..999).include?(registers[1114])
|
103
|
-
@
|
103
|
+
@humidistat = Humidistat.new(self,
|
104
|
+
@abc_dipswitches[:accessory_relay] == :humidifier,
|
105
|
+
@axb_dipswitches[:accessory_relay2] == :dehumidifier)
|
104
106
|
|
105
107
|
@faults = []
|
108
|
+
|
109
|
+
@registers_to_read = [6, 19..20, 25, 30, 344, 740..741, 900, 1104, 1110..1111, 1114, 1150..1153, 1165,
|
110
|
+
31_003]
|
111
|
+
zones.each do |z|
|
112
|
+
@registers_to_read.concat(z.registers_to_read)
|
113
|
+
end
|
114
|
+
@components = [compressor, blower, pump, dhw, humidistat].compact
|
115
|
+
@components.each do |component|
|
116
|
+
@registers_to_read.concat(component.registers_to_read)
|
117
|
+
end
|
118
|
+
# need dehumidify mode to calculate final current mode
|
119
|
+
@registers_to_read.concat([362]) if compressor.is_a?(Compressor::VSDrive)
|
106
120
|
end
|
107
121
|
|
108
122
|
def query_registers(query)
|
@@ -140,29 +154,15 @@ module Aurora
|
|
140
154
|
end
|
141
155
|
|
142
156
|
def refresh
|
143
|
-
registers_to_read = [6, 19..20, 25, 30, 344, 740..741, 900, 1110..1111, 1114, 1150..1153, 1165,
|
144
|
-
31_003]
|
145
|
-
zones.each do |z|
|
146
|
-
registers_to_read.concat(z.registers_to_read)
|
147
|
-
end
|
148
|
-
registers_to_read.concat(compressor.registers_to_read)
|
149
|
-
registers_to_read.concat(blower.registers_to_read)
|
150
|
-
registers_to_read.concat(pump.registers_to_read)
|
151
|
-
registers_to_read.concat(dhw.registers_to_read) if dhw
|
152
|
-
# need dehumidify mode to calculate final current mode;
|
153
|
-
# apparently non-VSD doesn't have this register at all?
|
154
|
-
registers_to_read.concat([362]) if compressor.is_a?(Compressor::VSDrive)
|
155
|
-
|
156
157
|
faults = @modbus_slave.read_multiple_holding_registers(601..699)
|
157
158
|
@faults = Aurora.transform_registers(faults).values
|
158
159
|
|
159
|
-
registers = @modbus_slave.holding_registers[
|
160
|
+
registers = @modbus_slave.holding_registers[*@registers_to_read]
|
160
161
|
Aurora.transform_registers(registers)
|
161
162
|
|
162
163
|
outputs = registers[30]
|
163
164
|
|
164
165
|
@entering_air_temperature = registers[740]
|
165
|
-
@relative_humidity = registers[741]
|
166
166
|
@leaving_air_temperature = registers[900]
|
167
167
|
@leaving_water_temperature = registers[1110]
|
168
168
|
@entering_water_temperature = registers[1111]
|
@@ -197,11 +197,9 @@ module Aurora
|
|
197
197
|
zones.each do |z|
|
198
198
|
z.refresh(registers)
|
199
199
|
end
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
dhw&.refresh(registers)
|
204
|
-
humidifier&.refresh(registers)
|
200
|
+
@components.each do |component|
|
201
|
+
component.refresh(registers)
|
202
|
+
end
|
205
203
|
end
|
206
204
|
|
207
205
|
def cooling_airflow_adjustment=(value)
|
data/lib/aurora/dhw.rb
CHANGED
@@ -4,7 +4,8 @@ require "aurora/component"
|
|
4
4
|
|
5
5
|
module Aurora
|
6
6
|
class DHW < Component
|
7
|
-
attr_reader :enabled, :set_point, :water_temperature
|
7
|
+
attr_reader :enabled, :running, :set_point, :water_temperature
|
8
|
+
alias running? running
|
8
9
|
|
9
10
|
def registers_to_read
|
10
11
|
[400..401, 1114]
|
@@ -12,6 +13,7 @@ module Aurora
|
|
12
13
|
|
13
14
|
def refresh(registers)
|
14
15
|
@enabled = registers[400]
|
16
|
+
@running = registers[1104].include?(:dhw)
|
15
17
|
@set_point = registers[401]
|
16
18
|
@water_temperature = registers[1114]
|
17
19
|
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "aurora/component"
|
4
|
+
|
5
|
+
module Aurora
|
6
|
+
class Humidistat < Component
|
7
|
+
attr_reader :humidifier_running, :humidifier_mode, :humidification_target,
|
8
|
+
:dehumidifier_running, :dehumidifier_mode, :dehumidification_target,
|
9
|
+
:relative_humidity
|
10
|
+
alias humidifier_running? humidifier_running
|
11
|
+
alias dehumidifer_running? dehumidifier_running
|
12
|
+
|
13
|
+
def initialize(abc, has_humidifier, has_dehumidifier)
|
14
|
+
super(abc)
|
15
|
+
@humidifier = has_humidifier
|
16
|
+
@dehumidifier = has_dehumidifier
|
17
|
+
end
|
18
|
+
|
19
|
+
def humidifier?
|
20
|
+
@humidifier
|
21
|
+
end
|
22
|
+
|
23
|
+
def dehumidifier?
|
24
|
+
@dehumidifier
|
25
|
+
end
|
26
|
+
|
27
|
+
def registers_to_read
|
28
|
+
result = [741]
|
29
|
+
if humidifier? || dehumidifier? || abc.compressor.is_a?(Compressor::VSDrive)
|
30
|
+
result.concat(abc.iz2? ? [21_114, 31_109..31_110] : [12_309..12_310])
|
31
|
+
end
|
32
|
+
result
|
33
|
+
end
|
34
|
+
|
35
|
+
def refresh(registers)
|
36
|
+
@relative_humidity = registers[741]
|
37
|
+
|
38
|
+
outputs = registers[30]
|
39
|
+
@humidifier_running = humidifier? && outputs.include?(:accessory)
|
40
|
+
|
41
|
+
outputs = registers[1104]
|
42
|
+
@dehumidifer_running = dehumidifier? && outputs.include?(:accessory2)
|
43
|
+
|
44
|
+
base = abc.iz2? ? 31_109 : 12_309
|
45
|
+
@humidifier_settings = registers[abc.iz2? ? 21_114 : 12_309]
|
46
|
+
@humidifier_mode = @humidifier_settings&.include?(:auto_humidification) ? :auto : :manual
|
47
|
+
@dehumidifier_mode = @humidifier_settings&.include?(:auto_dehumidification) ? :auto : :manual
|
48
|
+
|
49
|
+
@humidification_target = registers[base + 1]&.[](:humidification_target)
|
50
|
+
@dehumidification_target = registers[base + 1]&.[](:dehumidification_target)
|
51
|
+
end
|
52
|
+
|
53
|
+
def humidifier_mode=(mode)
|
54
|
+
set_humidistat_mode(mode, dehumidifier_mode)
|
55
|
+
end
|
56
|
+
|
57
|
+
def dehumidifier_mode=(mode)
|
58
|
+
set_humidistat_mode(humidifier_mode, mode)
|
59
|
+
end
|
60
|
+
|
61
|
+
def set_humidistat_mode(humidifier_mode, dehumidifier_mode)
|
62
|
+
allowed = %i[auto manual]
|
63
|
+
raise ArgumentError unless allowed.include?(humidifier_mode) && allowed.include?(dehumidifier_mode)
|
64
|
+
|
65
|
+
# start with the prior value of the register, since I'm not sure what
|
66
|
+
# else is stuffed in there
|
67
|
+
raw_value = @humidifier_settings &= ~0xc000
|
68
|
+
raw_value |= 0x4000 if humidifier_mode == :auto
|
69
|
+
raw_value |= 0x8000 if dehumidifier_mode == :auto
|
70
|
+
holding_registers[abc.iz2? ? 21_114 : 12_309] = raw_value
|
71
|
+
@humidifier_mode = humidifier_mode
|
72
|
+
@dehumidifier_mode = dehumidifier_mode
|
73
|
+
end
|
74
|
+
|
75
|
+
def humidification_target=(value)
|
76
|
+
set_humidistat_targets(value, dehumidification_target)
|
77
|
+
end
|
78
|
+
|
79
|
+
def dehumidification_target=(value)
|
80
|
+
set_humidistat_targets(humidification_target, value)
|
81
|
+
end
|
82
|
+
|
83
|
+
def set_humidistat_targets(humidification_target, dehumidification_target)
|
84
|
+
raise ArgumentError unless (15..50).include?(humidification_target)
|
85
|
+
raise ArgumentError unless (35..65).include?(dehumidification_target)
|
86
|
+
|
87
|
+
holding_registers[iz2? ? 21_115 : 12_310] = (humidification_target << 8) + dehumidification_target
|
88
|
+
@humidification_target = humidification_target
|
89
|
+
@dehumidification_target = dehumidification_target
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
data/lib/aurora/pump.rb
CHANGED
@@ -5,7 +5,8 @@ require "aurora/component"
|
|
5
5
|
module Aurora
|
6
6
|
module Pump
|
7
7
|
class GenericPump < Component
|
8
|
-
attr_reader :type, :watts, :waterflow
|
8
|
+
attr_reader :type, :watts, :waterflow, :running
|
9
|
+
alias running? running
|
9
10
|
|
10
11
|
def initialize(abc, type)
|
11
12
|
super(abc)
|
@@ -21,6 +22,7 @@ module Aurora
|
|
21
22
|
def refresh(registers)
|
22
23
|
@waterflow = registers[1117]
|
23
24
|
@watts = registers[1164] if abc.energy_monitoring?
|
25
|
+
@running = registers[1104].include?(:loop_pump)
|
24
26
|
end
|
25
27
|
end
|
26
28
|
|
data/lib/aurora/registers.rb
CHANGED
@@ -302,23 +302,23 @@ module Aurora
|
|
302
302
|
|
303
303
|
def axb_inputs(value)
|
304
304
|
result = {}
|
305
|
-
result[
|
306
|
-
result[
|
307
|
-
result[
|
308
|
-
result[
|
305
|
+
result[:smart_grid] = value & 0x001 == 0x001
|
306
|
+
result[:ha1] = value & 0x002 == 0x002
|
307
|
+
result[:ha2] = value & 0x004 == 0x004
|
308
|
+
result[:pump_slave] = value & 0x008 == 0x008
|
309
309
|
|
310
310
|
result[:mb_address] = value & 0x010 == 0x010 ? 3 : 4
|
311
311
|
result[:sw1_2] = value & 0x020 == 0x020 # future use # rubocop:disable Naming/VariableNumber
|
312
312
|
result[:sw1_3] = value & 0x040 == 0x040 # future use # rubocop:disable Naming/VariableNumber
|
313
|
-
result[:
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
313
|
+
result[:accessory_relay2] = if value & 0x080 == 0x080 && value & 0x100 == 0x100
|
314
|
+
:blower
|
315
|
+
elsif value & 0x100 == 0x100
|
316
|
+
:low_capacity_compressor
|
317
|
+
elsif value & 0x080 == 0x080
|
318
|
+
:high_capacity_compressor
|
319
|
+
else
|
320
|
+
:dehumidifier
|
321
|
+
end
|
322
322
|
leftover = value & ~0x1ff
|
323
323
|
result[:unknown] = format("0x%04x", leftover) unless leftover.zero?
|
324
324
|
result
|
@@ -523,7 +523,6 @@ module Aurora
|
|
523
523
|
->(v) { PUMP_TYPE[v] } => [413],
|
524
524
|
->(v) { PHASE_TYPE[v] } => [416],
|
525
525
|
method(:iz2_fan_desired) => [565],
|
526
|
-
->(v) { v == 0xffff ? 0 : v } => 601..699,
|
527
526
|
->(registers, idx) { to_string(registers, idx, 8) } => [710],
|
528
527
|
->(v) { COMPONENT_STATUS[v] } => [800, 803, 806, 812, 815, 818, 824, 827],
|
529
528
|
method(:axb_inputs) => [1103],
|
@@ -534,8 +533,8 @@ module Aurora
|
|
534
533
|
method(:thermostat_configuration2) => [12_006],
|
535
534
|
->(v) { HEATING_MODE[v] } => [12_606, 21_202, 21_211, 21_220, 21_229, 21_238, 21_247],
|
536
535
|
->(v) { FAN_MODE[v] } => [12_621, 21_205, 21_214, 21_223, 21_232, 21_241, 21_250],
|
537
|
-
->(v) { from_bitmask(v, HUMIDIFIER_SETTINGS) } => [31_109],
|
538
|
-
->(v) { { humidification_target: v >> 8, dehumidification_target: v & 0xff } } => [31_110],
|
536
|
+
->(v) { from_bitmask(v, HUMIDIFIER_SETTINGS) } => [12_309, 21_114, 31_109],
|
537
|
+
->(v) { { humidification_target: v >> 8, dehumidification_target: v & 0xff } } => [12_310, 21_115, 31_110],
|
539
538
|
method(:iz2_demand) => [31_005],
|
540
539
|
method(:zone_configuration1) => [12_005, 31_008, 31_011, 31_014, 31_017, 31_020, 31_023],
|
541
540
|
method(:zone_configuration2) => [31_009, 31_012, 31_015, 31_018, 31_021, 31_024],
|
@@ -889,16 +888,20 @@ module Aurora
|
|
889
888
|
3906 => "VS Drive SuperHeat Temperature",
|
890
889
|
12_005 => "Fan Configuration",
|
891
890
|
12_006 => "Heating Mode",
|
891
|
+
12_309 => "De/Humidifier Mode",
|
892
|
+
12_310 => "De/Humidifier Setpoints",
|
892
893
|
12_606 => "Heating Mode (write)",
|
893
894
|
12_619 => "Heating Setpoint (write)",
|
894
895
|
12_620 => "Cooling Setpoint (write)",
|
895
896
|
12_621 => "Fan Mode (write)",
|
896
897
|
12_622 => "Intermittent Fan On Time (write)",
|
897
898
|
12_623 => "Intermittent Fan Off Time (write)",
|
899
|
+
21_114 => "IZ2 De/Humidifier Mode (write)",
|
900
|
+
21_115 => "IZ2 De/Humidifier Setpoints (write)",
|
898
901
|
31_003 => "Outdoor Temp",
|
899
902
|
31_005 => "IZ2 Demand",
|
900
|
-
31_109 => "Humidifier Mode",
|
901
|
-
31_110 => "Manual De/Humidification
|
903
|
+
31_109 => "De/Humidifier Mode",
|
904
|
+
31_110 => "Manual De/Humidification Setpoints",
|
902
905
|
31_400 => "Dealer Name",
|
903
906
|
31_413 => "Dealer Phone",
|
904
907
|
31_421 => "Dealer Address 1",
|
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.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Cutrer
|
@@ -139,7 +139,7 @@ files:
|
|
139
139
|
- lib/aurora/compressor.rb
|
140
140
|
- lib/aurora/core_ext/string.rb
|
141
141
|
- lib/aurora/dhw.rb
|
142
|
-
- lib/aurora/
|
142
|
+
- lib/aurora/humidistat.rb
|
143
143
|
- lib/aurora/iz2_zone.rb
|
144
144
|
- lib/aurora/mock_abc.rb
|
145
145
|
- lib/aurora/modbus/server.rb
|
data/lib/aurora/humidifier.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "aurora/component"
|
4
|
-
|
5
|
-
module Aurora
|
6
|
-
class Humidifier < Component
|
7
|
-
attr_reader :running
|
8
|
-
alias running? running
|
9
|
-
|
10
|
-
def refresh(registers)
|
11
|
-
outputs = registers[30]
|
12
|
-
@running = outputs.include?(:accessory)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|