waterfurnace_aurora 0.3.11 → 0.3.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/aurora_monitor +4 -1
- data/lib/aurora/abc_client.rb +53 -4
- data/lib/aurora/registers.rb +48 -8
- data/lib/aurora/thermostat.rb +1 -1
- data/lib/aurora/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fdebb583f3d84e8f1c050e21ac205d29bba5d29d91cb14de2c106a5de26917cd
|
4
|
+
data.tar.gz: 64f7a0b749c050e0041e34d6682f1428320b8bc3762532c62b825f43ff4c40b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ec3c74f737e3d38fd593831246e1153ab2ec5eef39a488aaac43c2c22bf5df92e9e613157e1b101c6af2008d451f3513b3e47a6badae0a01b966d4ed87bc3ee
|
7
|
+
data.tar.gz: 3973f340af41d8645de59291245d599a9d7993691249ad9d0b4b7b7582a11ee5d5f95d8c11493ba1be8d9f7611e755e33e6778114bb14a5197eacb9bac16f119
|
data/exe/aurora_monitor
CHANGED
@@ -77,7 +77,10 @@ server.request_callback = lambda { |uid, func, req|
|
|
77
77
|
puts Aurora.print_registers(registers)
|
78
78
|
elsif func == 16
|
79
79
|
registers = Range.new(req[:addr], req[:addr] + req[:quant] - 1).zip(req[:val]).to_h
|
80
|
-
|
80
|
+
if ignore_awl_heartbeat && [{ 460 => 102, 461 => 0, 462 => 5 },
|
81
|
+
{ 460 => 102, 461 => 0, 462 => 1 }].include?(registers)
|
82
|
+
next
|
83
|
+
end
|
81
84
|
|
82
85
|
puts "#{Time.now} ===== write multiple registers to #{uid}:"
|
83
86
|
puts Aurora.print_registers(registers)
|
data/lib/aurora/abc_client.rb
CHANGED
@@ -35,11 +35,11 @@ module Aurora
|
|
35
35
|
registers = registers_array.each_with_index.map { |r, i| [i + 105, r] }.to_h
|
36
36
|
@serial_number = Aurora.transform_registers(registers)[105]
|
37
37
|
|
38
|
-
@zones = if
|
39
|
-
[Thermostat.new(self)]
|
40
|
-
else
|
38
|
+
@zones = if iz2?
|
41
39
|
iz2_zone_count = @modbus_slave.holding_registers[483]
|
42
40
|
(0...iz2_zone_count).map { |i| IZ2Zone.new(self, i + 1) }
|
41
|
+
else
|
42
|
+
[Thermostat.new(self)]
|
43
43
|
end
|
44
44
|
@faults = []
|
45
45
|
end
|
@@ -78,7 +78,8 @@ module Aurora
|
|
78
78
|
registers_to_read << base3
|
79
79
|
end
|
80
80
|
else
|
81
|
-
registers_to_read <<
|
81
|
+
registers_to_read << 502
|
82
|
+
registers_to_read << (745..746)
|
82
83
|
end
|
83
84
|
|
84
85
|
@faults = @modbus_slave.holding_registers[601..699]
|
@@ -141,6 +142,54 @@ module Aurora
|
|
141
142
|
@modbus_slave.holding_registers[347] = value
|
142
143
|
end
|
143
144
|
|
145
|
+
def cooling_airflow_adjustment=(value)
|
146
|
+
value = 0x10000 + value if value.negative?
|
147
|
+
@modbus_slave.holding_registers[346] = value
|
148
|
+
end
|
149
|
+
|
150
|
+
def dhw_enabled=(value)
|
151
|
+
@modbus_slave.holding_registers[400] = value ? 1 : 0
|
152
|
+
end
|
153
|
+
|
154
|
+
def dhw_setpoint=(value)
|
155
|
+
@modbus_slave.holding_registers[401] = value
|
156
|
+
end
|
157
|
+
|
158
|
+
def loop_pressure_trip=(value)
|
159
|
+
@modbus_slave.holding_registers[419] = (value * 10).to_i
|
160
|
+
end
|
161
|
+
|
162
|
+
def vs_pump_control=(value)
|
163
|
+
raise ArgumentError unless (value = VS_PUMP_CONTROL.invert[value])
|
164
|
+
|
165
|
+
@modbus_slave.holding_registers[323] = value
|
166
|
+
end
|
167
|
+
|
168
|
+
def vs_pump_min=(value)
|
169
|
+
@modbus_slave.holding_registers[321] = value
|
170
|
+
end
|
171
|
+
|
172
|
+
def vs_pump_max=(value)
|
173
|
+
@modbus_slave.holding_registers[322] = value
|
174
|
+
end
|
175
|
+
|
176
|
+
# config aurora system
|
177
|
+
{ thermostat: 800, axb: 806, iz2: 812, aoc: 815, moc: 818, eev2: 824 }.each do |(component, register)|
|
178
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
179
|
+
def #{component}?
|
180
|
+
@modbus_slave.holding_registers[#{register}] != 3
|
181
|
+
end
|
182
|
+
|
183
|
+
def add_#{component}
|
184
|
+
@modbus_slave.holding_registers[#{register}] = 2
|
185
|
+
end
|
186
|
+
|
187
|
+
def remove_#{component}
|
188
|
+
@modbus_slave.holding_registers[#{register}] = 3
|
189
|
+
end
|
190
|
+
RUBY
|
191
|
+
end
|
192
|
+
|
144
193
|
def inspect
|
145
194
|
"#<Aurora::ABCClient #{(instance_variables - [:@modbus_slave]).map do |iv|
|
146
195
|
"#{iv}=#{instance_variable_get(iv).inspect}"
|
data/lib/aurora/registers.rb
CHANGED
@@ -139,6 +139,18 @@ module Aurora
|
|
139
139
|
}
|
140
140
|
end
|
141
141
|
|
142
|
+
COMPONENT_STATUS = {
|
143
|
+
1 => :active,
|
144
|
+
2 => :added,
|
145
|
+
3 => :removed
|
146
|
+
}.freeze
|
147
|
+
|
148
|
+
VS_PUMP_CONTROL = {
|
149
|
+
0x7fff => :off,
|
150
|
+
40 => :min,
|
151
|
+
100 => :max
|
152
|
+
}.freeze
|
153
|
+
|
142
154
|
SYSTEM_OUTPUTS = {
|
143
155
|
0x01 => :cc, # compressor stage 1
|
144
156
|
0x02 => :cc2, # compressor stage 2
|
@@ -328,9 +340,10 @@ module Aurora
|
|
328
340
|
# intermittent off time allowed: 5, 10, 15, 20, 25, 30, 35, 40
|
329
341
|
|
330
342
|
REGISTER_CONVERTERS = {
|
331
|
-
TO_HUNDREDTHS => [2, 3, 807, 813, 816, 817, 819, 820, 825, 828],
|
343
|
+
TO_HUNDREDTHS => [2, 3, 801, 807, 813, 816, 817, 819, 820, 825, 828],
|
332
344
|
method(:dipswitch_settings) => [4, 33],
|
333
|
-
TO_TENTHS => [19, 20, 401, 567, 740, 745, 746, 747, 900,
|
345
|
+
TO_TENTHS => [19, 20, 401, 419, 501, 502, 567, 740, 745, 746, 747, 900,
|
346
|
+
1105, 1106, 1107, 1108, 1110, 1111, 1114, 1117, 1134, 1136,
|
334
347
|
12_619, 12_620,
|
335
348
|
21_203, 21_204,
|
336
349
|
21_212, 21_213,
|
@@ -352,7 +365,10 @@ module Aurora
|
|
352
365
|
->(v) { from_bitmask(v, VS_ALARM1) } => [217],
|
353
366
|
->(v) { from_bitmask(v, VS_ALARM2) } => [218],
|
354
367
|
->(v) { from_bitmask(v, VS_EEV2) } => [280],
|
368
|
+
->(v) { VS_PUMP_CONTROL[v] } => [323],
|
355
369
|
NEGATABLE => [346, 1146],
|
370
|
+
->(v) { !v.zero? } => [400],
|
371
|
+
->(v) { COMPONENT_STATUS[v] } => [800, 806, 812, 815, 818, 824, 827],
|
356
372
|
->(v) { from_bitmask(v, AXB_INPUTS) } => [1103],
|
357
373
|
->(v) { from_bitmask(v, AXB_OUTPUTS) } => [1104],
|
358
374
|
->(v) { TO_TENTHS.call(NEGATABLE.call(v)) } => [1136],
|
@@ -375,7 +391,7 @@ module Aurora
|
|
375
391
|
REGISTER_FORMATS = {
|
376
392
|
"%ds" => [1, 6, 9, 15, 84, 85],
|
377
393
|
"%dV" => [16, 112],
|
378
|
-
"%0.1fºF" => [19, 20, 401, 567, 740, 745, 746, 747, 900, 1110, 1111, 1114, 1134, 1136,
|
394
|
+
"%0.1fºF" => [19, 20, 401, 501, 502, 567, 740, 745, 746, 747, 900, 1110, 1111, 1114, 1134, 1136,
|
379
395
|
12_619, 12_620,
|
380
396
|
21_203, 21_204,
|
381
397
|
21_212, 21_213,
|
@@ -387,6 +403,7 @@ module Aurora
|
|
387
403
|
31_007, 31_010, 31_013, 31_016, 31_019, 31_022],
|
388
404
|
"E%d" => [25, 26],
|
389
405
|
"%d%%" => [282, 321, 322, 346, 565, 741],
|
406
|
+
"%0.1f psi" => [419],
|
390
407
|
"%0.1fA" => [1105, 1106, 1107, 1108],
|
391
408
|
"%0.1fgpm" => [1117],
|
392
409
|
"%dW" => [1147, 1149, 1151, 1153, 1165],
|
@@ -532,6 +549,7 @@ module Aurora
|
|
532
549
|
30 => "System Outputs",
|
533
550
|
31 => "Status",
|
534
551
|
33 => "DIP Switch Status",
|
552
|
+
36 => "ABC Board Rev",
|
535
553
|
50 => "ECM Speed Low (== 5)",
|
536
554
|
51 => "ECM Speed Med (== 5)",
|
537
555
|
52 => "ECM Speed High (== 5)",
|
@@ -562,6 +580,7 @@ module Aurora
|
|
562
580
|
284 => "Saturated Suction Temperature", ## ?? data format
|
563
581
|
321 => "VS Pump Min",
|
564
582
|
322 => "VS Pump Max",
|
583
|
+
323 => "VS Pump Control",
|
565
584
|
340 => "Blower Only Speed",
|
566
585
|
341 => "Lo Compressor ECM Speed",
|
567
586
|
342 => "Hi Compressor ECM Speed",
|
@@ -569,9 +588,17 @@ module Aurora
|
|
569
588
|
346 => "Cooling Airflow Adjustment",
|
570
589
|
347 => "Aux Heat ECM Speed",
|
571
590
|
362 => "Active Dehumidify", # any value is true
|
591
|
+
460 => "IZ2??",
|
592
|
+
461 => "IZ2??",
|
593
|
+
462 => "IZ2 Status", # 5 when online; 1 when in setup mode
|
594
|
+
400 => "DHW Enabled",
|
572
595
|
401 => "DHW Setpoint",
|
596
|
+
# 403 => "DHW Status", just a guess, based on AID Tool querying this register while showing DHW settings
|
573
597
|
414 => "On Peak/SmartGrid 2", # 0x0001 only
|
598
|
+
419 => "Loop Pressure Trip",
|
574
599
|
483 => "Number of IZ2 Zones",
|
600
|
+
501 => "Set Point", # only read by AID tool? this is _not_ heating/cooling set point
|
601
|
+
502 => "Ambient Temperature",
|
575
602
|
564 => "IZ2 Compressor Speed Desired",
|
576
603
|
565 => "IZ2 Blower % Desired",
|
577
604
|
567 => "Entering Air",
|
@@ -579,15 +606,28 @@ module Aurora
|
|
579
606
|
741 => "Relative Humidity",
|
580
607
|
745 => "Heating Set Point",
|
581
608
|
746 => "Cooling Set Point",
|
582
|
-
747 => "Ambient Temperature",
|
609
|
+
747 => "Ambient Temperature", # from communicating thermostat? but set to 0 when mode is off?
|
610
|
+
800 => "Thermostat Installed",
|
611
|
+
801 => "Thermostat Version",
|
612
|
+
802 => "Thermostat Revision",
|
613
|
+
806 => "AXB Installed",
|
583
614
|
807 => "AXB Version",
|
615
|
+
808 => "AXB Revision",
|
616
|
+
812 => "IZ2 Installed",
|
584
617
|
813 => "IZ2 Version",
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
618
|
+
814 => "IZ2 Revision",
|
619
|
+
815 => "AOC Installed",
|
620
|
+
816 => "AOC Version",
|
621
|
+
817 => "AOC Revision",
|
622
|
+
818 => "MOC Installed",
|
623
|
+
819 => "MOC Version",
|
624
|
+
820 => "MOC Revision",
|
625
|
+
824 => "EEV2 Installed",
|
589
626
|
825 => "EEV2 Version",
|
627
|
+
826 => "EEV2 Revision",
|
628
|
+
827 => "AWL Installed",
|
590
629
|
828 => "AWL Version",
|
630
|
+
829 => "AWL Revision",
|
591
631
|
900 => "Leaving Air",
|
592
632
|
1103 => "AXB Inputs",
|
593
633
|
1104 => "AXB Outputs",
|
data/lib/aurora/thermostat.rb
CHANGED
data/lib/aurora/version.rb
CHANGED