waterfurnace_aurora 0.3.9 → 0.3.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/aurora_fetch +11 -5
- data/exe/aurora_monitor +4 -1
- data/exe/aurora_mqtt_bridge +11 -0
- data/exe/grab_awl_assets.sh +21 -0
- data/exe/web_aid_tool +161 -0
- data/lib/aurora/abc_client.rb +115 -9
- data/lib/aurora/registers.rb +248 -73
- data/lib/aurora/thermostat.rb +1 -1
- data/lib/aurora/version.rb +1 -1
- metadata +12 -9
- data/exe/registers.yml +0 -3066
data/lib/aurora/registers.rb
CHANGED
@@ -3,6 +3,11 @@
|
|
3
3
|
module Aurora
|
4
4
|
module_function
|
5
5
|
|
6
|
+
# take an array of ranges, and breaks it up into queryable chunks
|
7
|
+
# the ABC limits to 100 registers per read operation
|
8
|
+
# there also seem to be issues that some ranges can't be read at
|
9
|
+
# the same time as other ranges. possibly correspond to different
|
10
|
+
# components?
|
6
11
|
def normalize_ranges(ranges)
|
7
12
|
registers = ranges.map { |r| Array(r) }.flatten.sort.uniq
|
8
13
|
result = []
|
@@ -11,7 +16,10 @@ module Aurora
|
|
11
16
|
count = 0
|
12
17
|
registers.each_with_index do |r, i|
|
13
18
|
run_start ||= r
|
14
|
-
next unless i + 1 == registers.length ||
|
19
|
+
next unless i + 1 == registers.length ||
|
20
|
+
r + 1 != registers[i + 1] ||
|
21
|
+
(r - run_start) == 100 ||
|
22
|
+
REGISTER_BREAKPOINTS.include?(r + 1)
|
15
23
|
|
16
24
|
if r == run_start
|
17
25
|
result << r
|
@@ -23,7 +31,7 @@ module Aurora
|
|
23
31
|
else
|
24
32
|
range = run_start..r
|
25
33
|
if count + range.count > 100
|
26
|
-
totals << result
|
34
|
+
totals << result unless result.empty?
|
27
35
|
result = []
|
28
36
|
count = 0
|
29
37
|
end
|
@@ -51,65 +59,102 @@ module Aurora
|
|
51
59
|
result
|
52
60
|
end
|
53
61
|
|
62
|
+
def to_int32(registers, idx)
|
63
|
+
(registers[idx] << 16) + registers[idx + 1]
|
64
|
+
end
|
65
|
+
|
54
66
|
def to_string(registers, idx, length)
|
55
67
|
(idx...(idx + length)).map do |i|
|
68
|
+
raise ArgumentError, "Missing register #{i} for string starting at #{idx}" unless registers[i]
|
69
|
+
|
56
70
|
(registers[i] >> 8).chr + (registers[i] & 0xff).chr
|
57
71
|
end.join.sub(/[ \0]+$/, "")
|
58
72
|
end
|
59
73
|
|
60
74
|
FAULTS = {
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
75
|
+
# ABC/AXB Basic Faults
|
76
|
+
1 => "Input Error", # Tstat input error. Autoreset upon condition removal.
|
77
|
+
2 => "High Pressure", # HP switch has tripped (>600 psi)
|
78
|
+
3 => "Low Pressure", # Low Pressure Switch has tripped (<40 psi for 30 continous sec.)
|
79
|
+
4 => "Freeze Detect FP2", # Freeze protection sensor has tripped (<15 or 30 degF for 30 continuous sec.)
|
80
|
+
5 => "Freeze Detect FP1", # Freeze protection sensor has tripped (<15 or 30 degF for 30 continuous sec.)
|
81
|
+
7 => "Condensate Overflow", # Condensate switch has shown continuity for 30 continuous sec.
|
82
|
+
8 => "Over/Under Voltage", # Instantaneous Voltage is out of range. **Controls shut down until resolved.
|
68
83
|
9 => "AirF/RPM",
|
69
|
-
10 => "
|
70
|
-
11 => "FP1/2
|
71
|
-
12 => "RefPerfrm
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
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
|
-
|
84
|
+
10 => "Compressor Monitor", # Open Crkt, Run, Start or welded cont
|
85
|
+
11 => "FP1/2 Sensor Error",
|
86
|
+
12 => "RefPerfrm Error",
|
87
|
+
# Miscellaneous
|
88
|
+
13 => "Non-Critical AXB Sensor Error", # Any Other Sensor Error
|
89
|
+
14 => "Critical AXB Sensor Error", # Sensor Err for EEV or HW
|
90
|
+
15 => "Hot Water Limit", # HW over limit or logic lockout. HW pump deactivated.
|
91
|
+
16 => "VS Pump Error", # Alert is read from PWM feedback.
|
92
|
+
17 => "Communicating Thermostat Error",
|
93
|
+
18 => "Non-Critical Communications Error", # Any non-critical com error
|
94
|
+
19 => "Critical Communications Error", # Any critical com error. Auto reset upon condition removal
|
95
|
+
21 => "Low Loop Pressure", # Loop pressure is below 3 psi for more than 3 minutes
|
96
|
+
22 => "Communicating ECM Error",
|
97
|
+
23 => "HA Alarm 1", # Closed contact input is present on Dig 2 input - Text is configurable.
|
98
|
+
24 => "HA Alarm 2", # Closed contact input is present on Dig 3 input - Text is configurable.
|
99
|
+
25 => "AxbEev Error",
|
100
|
+
# VS Drive
|
101
|
+
41 => "High Drive Temp", # Drive Temp has reached critical High Temp (>239 ̊F/115 ̊C)
|
102
|
+
42 => "High Discharge Temp", # Discharge temperature has reached critical high temp (> 280 ̊F/138 ̊C)
|
103
|
+
43 => "Low Suction Pressure", # Suction Pressure is critically low (< 28 psig)
|
104
|
+
44 => "Low Condensing Pressure", # Condensing pressure is critically low (< 119 psig)
|
105
|
+
45 => "High Condensing Pressure", # Condensing pressure is critically high (> 654 psig)
|
106
|
+
46 => "Output Power Limit", # Supply Voltage is <208V or Max Pwr is reached due to high pressure
|
107
|
+
47 => "EEV ID Comm Error", # Com with EEV is interupted EEV has gone independent mode
|
108
|
+
48 => "EEV OD Comm Error", # Com with EEV is interupted EEV has gone independent mode
|
109
|
+
49 => "Cabinet Temperature Sensor", # Ambient Temperature (Tamb) is <-76 or > 212 F and out of range or invalid
|
110
|
+
51 => "Discharge Temp Sensor", # Discharge Sensor (Sd) is > 280 F or invalid (-76 to 392 F)
|
111
|
+
52 => "Suction Presure Sensor", # Suction Pressure (P0) is invalid (0 to 232 psi)
|
112
|
+
53 => "Condensing Pressure Sensor", # Low condensing pressure (PD) or invalid (0 to 870 psi) Retry 10x.
|
113
|
+
54 => "Low Supply Voltage", # Supply Voltage is <180 V (190V to reset) or powered off/on too quickly (<30 sec.).
|
114
|
+
55 => "Out of Envelope", # Comp Operating out of envelope (P0) more than 90 sec. Retry 10x.
|
115
|
+
56 => "Drive Over Currnet", # Over current tripped by phase loss, earth fault, short circuit, low water flow, low air flow, or major drive fault. # rubocop:disable Layout/LineLength
|
116
|
+
57 => "Drive Over/Under Voltage", # DC Link Voltage to compressor is >450vdc or at minimum voltage (<185vdc).
|
117
|
+
58 => "High Drive Temp", # Drive Temp has reached critical High Temp >239 F
|
118
|
+
59 => "Internal Drive Error", # The MOC has encountered an internal fault or an internal error. Probably fatal.
|
119
|
+
61 => "Multiple Safe Mode", # More than one SafeMode condition is present requiring lockout
|
120
|
+
# EEV2
|
121
|
+
71 => "Loss of Charge", # High superheat and high EEV opening % for a long time will trigger a loss of charge fault
|
122
|
+
72 => "Suction Temperature Sensor", # Suction Temperature Sensor is invalid (-76 to 392 F)
|
123
|
+
73 => "Leaving Air Temperature Sensor", # Leaving Air Temperature Sensor is invalid (-76 to 392 F)
|
124
|
+
74 => "Maximum Operating Pressure", # Suction pressure has exceeded that maximum operating level for 90 sec.
|
125
|
+
99 => "System Reset"
|
126
|
+
}.freeze
|
127
|
+
|
128
|
+
SMARTGRID_ACTION = {
|
129
|
+
0 => :none,
|
130
|
+
1 => :unoccupied_set_points,
|
131
|
+
2 => :load_shed,
|
132
|
+
3 => :capacity_limiting,
|
133
|
+
4 => :off_time
|
134
|
+
}.freeze
|
135
|
+
|
136
|
+
HA_ALARM = {
|
137
|
+
0 => :none,
|
138
|
+
1 => :general,
|
139
|
+
2 => :security,
|
140
|
+
3 => :sump,
|
141
|
+
4 => :carbon_monoxide,
|
142
|
+
5 => :dirty_filter
|
111
143
|
}.freeze
|
112
144
|
|
145
|
+
VS_FAULTS = {
|
146
|
+
"Under-Voltage Warning" => (71..77),
|
147
|
+
"RPM Sensor Signal Fault" => (78..82),
|
148
|
+
"Under-Voltage Stop" => (83..87),
|
149
|
+
"Rotor Locked" => (88..92),
|
150
|
+
"Standby" => (93..)
|
151
|
+
}.freeze
|
152
|
+
|
153
|
+
def vs_fault(value)
|
154
|
+
name = VS_FAULTS.find { |(_, range)| range.include?(value) }&.first
|
155
|
+
name ? "#{value} #{name}" : value.to_s
|
156
|
+
end
|
157
|
+
|
113
158
|
AR_SETTINGS = {
|
114
159
|
0 => "Cycle with Compressor",
|
115
160
|
1 => "Cycle with Thermostat Humidification Call",
|
@@ -131,6 +176,12 @@ module Aurora
|
|
131
176
|
}
|
132
177
|
end
|
133
178
|
|
179
|
+
COMPONENT_STATUS = {
|
180
|
+
1 => :active,
|
181
|
+
2 => :added,
|
182
|
+
3 => :removed
|
183
|
+
}.freeze
|
184
|
+
|
134
185
|
SYSTEM_OUTPUTS = {
|
135
186
|
0x01 => :cc, # compressor stage 1
|
136
187
|
0x02 => :cc2, # compressor stage 2
|
@@ -143,6 +194,13 @@ module Aurora
|
|
143
194
|
0x800 => :alarm
|
144
195
|
}.freeze
|
145
196
|
|
197
|
+
# 5-speed ECM shows
|
198
|
+
# Aux if eh1 is on
|
199
|
+
# High if cc2 is on
|
200
|
+
# Med if cc1 is on
|
201
|
+
# Low if blower is on
|
202
|
+
# Off
|
203
|
+
|
146
204
|
SYSTEM_INPUTS = {
|
147
205
|
0x01 => "Y1",
|
148
206
|
0x02 => "Y2",
|
@@ -259,6 +317,27 @@ module Aurora
|
|
259
317
|
0x7 => :unknown7
|
260
318
|
}.freeze
|
261
319
|
|
320
|
+
def manual_operation(value)
|
321
|
+
return :off if value == 0x7fff
|
322
|
+
|
323
|
+
result = {
|
324
|
+
mode: value & 0x100 == 0x100 ? :cooling : :heating
|
325
|
+
}
|
326
|
+
result[:aux_heat] = true if value & 0x200 == 0x200
|
327
|
+
result[:compressor_speed] = value & 0xf
|
328
|
+
result[:blower_speed] = value & 0xf0
|
329
|
+
result[:blower_speed] = :with_compressor if value & 0xf0 == 0xf0
|
330
|
+
leftover = value & ~0x03ff
|
331
|
+
result[:unknown] = format("0x%04x", leftover) unless leftover.zero?
|
332
|
+
result
|
333
|
+
end
|
334
|
+
|
335
|
+
def vs_manual_control(value)
|
336
|
+
return :off if value == 0x7fff
|
337
|
+
|
338
|
+
value
|
339
|
+
end
|
340
|
+
|
262
341
|
def iz2_demand(value)
|
263
342
|
{
|
264
343
|
fan_demand: value >> 8,
|
@@ -266,6 +345,18 @@ module Aurora
|
|
266
345
|
}
|
267
346
|
end
|
268
347
|
|
348
|
+
def iz2_fan_desired(value)
|
349
|
+
case value
|
350
|
+
when 1 then 25
|
351
|
+
when 2 then 40
|
352
|
+
when 3 then 55
|
353
|
+
when 4 then 70
|
354
|
+
when 5 then 85
|
355
|
+
when 6 then 100
|
356
|
+
else value
|
357
|
+
end
|
358
|
+
end
|
359
|
+
|
269
360
|
def zone_configuration1(value)
|
270
361
|
fan = if value & 0x80 == 0x80
|
271
362
|
:continuous
|
@@ -320,9 +411,11 @@ module Aurora
|
|
320
411
|
# intermittent off time allowed: 5, 10, 15, 20, 25, 30, 35, 40
|
321
412
|
|
322
413
|
REGISTER_CONVERTERS = {
|
323
|
-
TO_HUNDREDTHS => [2, 3, 807, 813, 816, 817, 819, 820, 825, 828],
|
414
|
+
TO_HUNDREDTHS => [2, 3, 801, 807, 813, 816, 817, 819, 820, 825, 828],
|
324
415
|
method(:dipswitch_settings) => [4, 33],
|
325
|
-
TO_TENTHS => [19, 20, 401, 567, 740, 745, 746, 747, 900,
|
416
|
+
TO_TENTHS => [19, 20, 401, 419, 501, 502, 567, 740, 745, 746, 747, 900,
|
417
|
+
1105, 1106, 1107, 1108, 1110, 1111, 1114, 1117, 1134, 1136,
|
418
|
+
3327, 3522,
|
326
419
|
12_619, 12_620,
|
327
420
|
21_203, 21_204,
|
328
421
|
21_212, 21_213,
|
@@ -336,18 +429,28 @@ module Aurora
|
|
336
429
|
->(v) { from_bitmask(v, SYSTEM_OUTPUTS) } => [27, 30],
|
337
430
|
->(v) { from_bitmask(v, SYSTEM_INPUTS) } => [28],
|
338
431
|
method(:status) => [31],
|
432
|
+
->(v) { !v.zero? } => [45, 362, 400],
|
339
433
|
->(registers, idx) { to_string(registers, idx, 4) } => [88],
|
340
434
|
->(registers, idx) { to_string(registers, idx, 12) } => [92],
|
341
435
|
->(registers, idx) { to_string(registers, idx, 5) } => [105],
|
342
|
-
->(v) { from_bitmask(v, VS_DRIVE_DERATE) } => [214],
|
343
|
-
->(v) { from_bitmask(v, VS_SAFE_MODE) } => [216],
|
344
|
-
->(v) { from_bitmask(v, VS_ALARM1) } => [217],
|
345
|
-
->(v) { from_bitmask(v, VS_ALARM2) } => [218],
|
346
|
-
->(v) { from_bitmask(v, VS_EEV2) } => [280],
|
436
|
+
->(v) { from_bitmask(v, VS_DRIVE_DERATE) } => [214, 3223],
|
437
|
+
->(v) { from_bitmask(v, VS_SAFE_MODE) } => [216, 3225],
|
438
|
+
->(v) { from_bitmask(v, VS_ALARM1) } => [217, 3226],
|
439
|
+
->(v) { from_bitmask(v, VS_ALARM2) } => [218, 3227],
|
440
|
+
->(v) { from_bitmask(v, VS_EEV2) } => [280, 3804],
|
441
|
+
method(:vs_manual_control) => [323],
|
347
442
|
NEGATABLE => [346, 1146],
|
443
|
+
->(v) { v.zero? ? :closed : :open } => [405, 408, 410],
|
444
|
+
->(v) { SMARTGRID_ACTION[v] } => [406],
|
445
|
+
->(v) { HA_ALARM[v] } => [409, 411],
|
446
|
+
method(:iz2_fan_desired) => [565],
|
447
|
+
->(registers, idx) { to_string(registers, idx, 8) } => [710],
|
448
|
+
->(v) { COMPONENT_STATUS[v] } => [800, 806, 812, 815, 818, 824, 827],
|
348
449
|
->(v) { from_bitmask(v, AXB_INPUTS) } => [1103],
|
349
450
|
->(v) { from_bitmask(v, AXB_OUTPUTS) } => [1104],
|
350
451
|
->(v) { TO_TENTHS.call(NEGATABLE.call(v)) } => [1136],
|
452
|
+
method(:manual_operation) => [3002],
|
453
|
+
method(:to_int32) => [3422, 3424],
|
351
454
|
->(v) { HEATING_MODE[v] } => [12_606, 21_202, 21_211, 21_220, 21_229, 21_238, 21_247],
|
352
455
|
->(v) { FAN_MODE[v] } => [12_621, 21_205, 21_214, 21_223, 21_232, 21_241, 21_250],
|
353
456
|
->(v) { from_bitmask(v, HUMIDIFIER_SETTINGS) } => [31_109],
|
@@ -366,8 +469,9 @@ module Aurora
|
|
366
469
|
|
367
470
|
REGISTER_FORMATS = {
|
368
471
|
"%ds" => [1, 6, 9, 15, 84, 85],
|
369
|
-
"%dV" => [16, 112],
|
370
|
-
"%0.1fºF" => [19, 20, 401, 567, 740, 745, 746, 747, 900, 1110, 1111, 1114, 1134, 1136,
|
472
|
+
"%dV" => [16, 112, 3331, 3424, 3523],
|
473
|
+
"%0.1fºF" => [19, 20, 401, 501, 502, 567, 740, 745, 746, 747, 900, 1110, 1111, 1114, 1134, 1136,
|
474
|
+
3327, 3522,
|
371
475
|
12_619, 12_620,
|
372
476
|
21_203, 21_204,
|
373
477
|
21_212, 21_213,
|
@@ -378,19 +482,25 @@ module Aurora
|
|
378
482
|
31_003,
|
379
483
|
31_007, 31_010, 31_013, 31_016, 31_019, 31_022],
|
380
484
|
"E%d" => [25, 26],
|
381
|
-
"%d%%" => [282, 321, 322, 346, 565, 741],
|
485
|
+
"%d%%" => [282, 321, 322, 346, 565, 741, 3332, 3524],
|
486
|
+
"%0.1f psi" => [419],
|
382
487
|
"%0.1fA" => [1105, 1106, 1107, 1108],
|
383
488
|
"%0.1fgpm" => [1117],
|
384
|
-
"%dW" => [1147, 1149, 1151, 1153, 1165],
|
489
|
+
"%dW" => [1147, 1149, 1151, 1153, 1165, 3422],
|
385
490
|
"%dBtuh" => [1157]
|
386
491
|
}.freeze
|
387
492
|
|
388
493
|
def ignore(range)
|
494
|
+
range = (range..range) if range.is_a?(Integer)
|
389
495
|
range.zip(Array.new(range.count)).to_h
|
390
496
|
end
|
391
497
|
|
392
498
|
def faults(range)
|
393
|
-
range.map
|
499
|
+
range.map do |i|
|
500
|
+
name = FAULTS[i % 100]
|
501
|
+
name = " (#{name})" if name
|
502
|
+
[i, "E#{i % 100}#{name}"]
|
503
|
+
end.to_h
|
394
504
|
end
|
395
505
|
|
396
506
|
def zone_registers
|
@@ -494,26 +604,36 @@ module Aurora
|
|
494
604
|
61_000..61_009
|
495
605
|
].freeze
|
496
606
|
|
607
|
+
# see normalize_ranges
|
608
|
+
REGISTER_BREAKPOINTS = [
|
609
|
+
12_100,
|
610
|
+
12_500
|
611
|
+
].freeze
|
612
|
+
|
497
613
|
REGISTER_NAMES = {
|
614
|
+
0 => "Test Mode Flag", # 0x100 for enabled; this might have other flags
|
498
615
|
1 => "Random Start Delay",
|
499
616
|
2 => "ABC Program Version",
|
500
617
|
3 => "??? Version?",
|
501
618
|
4 => "DIP Switch Override",
|
502
619
|
6 => "Compressor Anti-Short Cycle Delay",
|
503
|
-
8 => "
|
620
|
+
8 => "ABC Program Revision",
|
504
621
|
9 => "Compressor Minimum Run Time",
|
505
622
|
15 => "Blower Off Delay",
|
506
623
|
16 => "Line Voltage",
|
507
624
|
19 => "FP1",
|
508
625
|
20 => "FP2",
|
509
626
|
21 => "Condensate", # >= 270 normal, otherwise fault
|
510
|
-
25 => "Last Fault Number",
|
627
|
+
25 => "Last Fault Number", # high bit set if locked out
|
511
628
|
26 => "Last Lockout",
|
512
629
|
27 => "System Outputs (At Last Lockout)",
|
513
630
|
28 => "System Inputs (At Last Lockout)",
|
514
631
|
30 => "System Outputs",
|
515
632
|
31 => "Status",
|
516
633
|
33 => "DIP Switch Status",
|
634
|
+
36 => "ABC Board Rev",
|
635
|
+
45 => "Test Mode (write)", # 1 to enable
|
636
|
+
47 => "Clear Fault History", # 0x5555 to clear
|
517
637
|
50 => "ECM Speed Low (== 5)",
|
518
638
|
51 => "ECM Speed Med (== 5)",
|
519
639
|
52 => "ECM Speed High (== 5)",
|
@@ -544,6 +664,8 @@ module Aurora
|
|
544
664
|
284 => "Saturated Suction Temperature", ## ?? data format
|
545
665
|
321 => "VS Pump Min",
|
546
666
|
322 => "VS Pump Max",
|
667
|
+
323 => "VS Pump Speed Manual Control",
|
668
|
+
326 => "VS Pump Fault",
|
547
669
|
340 => "Blower Only Speed",
|
548
670
|
341 => "Lo Compressor ECM Speed",
|
549
671
|
342 => "Hi Compressor ECM Speed",
|
@@ -551,25 +673,57 @@ module Aurora
|
|
551
673
|
346 => "Cooling Airflow Adjustment",
|
552
674
|
347 => "Aux Heat ECM Speed",
|
553
675
|
362 => "Active Dehumidify", # any value is true
|
676
|
+
460 => "IZ2??",
|
677
|
+
461 => "IZ2??",
|
678
|
+
462 => "IZ2 Status", # 5 when online; 1 when in setup mode
|
679
|
+
400 => "DHW Enabled",
|
554
680
|
401 => "DHW Setpoint",
|
555
|
-
|
681
|
+
# 403 => "DHW Status", just a guess, based on AID Tool querying this register while showing DHW settings
|
682
|
+
405 => "SmartGrid Trigger",
|
683
|
+
406 => "SmartGrid Action", # 0/1 for 1/2; see 414
|
684
|
+
407 => "Off Time Length",
|
685
|
+
408 => "HA Alarm 1 Trigger",
|
686
|
+
409 => "HA Alarm 1 Action",
|
687
|
+
410 => "HA Alaram 2 Trigger",
|
688
|
+
411 => "HA Alarm 2 Action",
|
689
|
+
414 => "On Peak/SmartGrid", # 0x0001 only
|
690
|
+
419 => "Loop Pressure Trip",
|
556
691
|
483 => "Number of IZ2 Zones",
|
692
|
+
501 => "Set Point", # only read by AID tool? this is _not_ heating/cooling set point
|
693
|
+
502 => "Ambient Temperature",
|
557
694
|
564 => "IZ2 Compressor Speed Desired",
|
558
695
|
565 => "IZ2 Blower % Desired",
|
559
696
|
567 => "Entering Air",
|
697
|
+
710 => "Fault Description",
|
560
698
|
740 => "Entering Air",
|
561
699
|
741 => "Relative Humidity",
|
562
700
|
745 => "Heating Set Point",
|
563
701
|
746 => "Cooling Set Point",
|
564
|
-
747 => "Ambient Temperature",
|
702
|
+
747 => "Ambient Temperature", # from communicating thermostat? but set to 0 when mode is off?
|
703
|
+
800 => "Thermostat Installed",
|
704
|
+
801 => "Thermostat Version",
|
705
|
+
802 => "Thermostat Revision",
|
706
|
+
806 => "AXB Installed",
|
565
707
|
807 => "AXB Version",
|
708
|
+
808 => "AXB Revision",
|
709
|
+
809 => "AHB Installed",
|
710
|
+
810 => "AHB Version",
|
711
|
+
811 => "AHB Revision",
|
712
|
+
812 => "IZ2 Installed",
|
566
713
|
813 => "IZ2 Version",
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
714
|
+
814 => "IZ2 Revision",
|
715
|
+
815 => "AOC Installed",
|
716
|
+
816 => "AOC Version",
|
717
|
+
817 => "AOC Revision",
|
718
|
+
818 => "MOC Installed",
|
719
|
+
819 => "MOC Version",
|
720
|
+
820 => "MOC Revision",
|
721
|
+
824 => "EEV2 Installed",
|
571
722
|
825 => "EEV2 Version",
|
723
|
+
826 => "EEV2 Revision",
|
724
|
+
827 => "AWL Installed",
|
572
725
|
828 => "AWL Version",
|
726
|
+
829 => "AWL Revision",
|
573
727
|
900 => "Leaving Air",
|
574
728
|
1103 => "AXB Inputs",
|
575
729
|
1104 => "AXB Outputs",
|
@@ -594,9 +748,27 @@ module Aurora
|
|
594
748
|
12_619 => "Heating Setpoint (write)",
|
595
749
|
12_620 => "Cooling Setpoint (write)",
|
596
750
|
12_621 => "Fan Mode (write)",
|
597
|
-
3000 => "Compressor Speed
|
598
|
-
3001 => "Compressor Speed
|
751
|
+
3000 => "Compressor Speed Desired",
|
752
|
+
3001 => "Compressor Speed Actual",
|
753
|
+
3002 => "Manual Operation",
|
599
754
|
3027 => "Compressor Speed",
|
755
|
+
3220 => "VS Drive Details (General 1)",
|
756
|
+
3221 => "VS Drive Details (General 2)",
|
757
|
+
3222 => "VS Drive Details (Derate 1)",
|
758
|
+
3223 => "VS Drive Details (Derate 2)",
|
759
|
+
3224 => "VS Drive Details (Safemode 1)",
|
760
|
+
3225 => "VS Drive Details (Safemode 2)",
|
761
|
+
3226 => "VS Drive Details (Alarm 1)",
|
762
|
+
3227 => "VS Drive Details (Alarm 2)",
|
763
|
+
3327 => "VS Drive Temperature",
|
764
|
+
3331 => "VS Drive Line Voltage",
|
765
|
+
3332 => "VS Drive Thermo Power",
|
766
|
+
3422 => "VS Drive Compressor Power",
|
767
|
+
3424 => "VS Drive Supply Voltage",
|
768
|
+
3522 => "VS Drive Inverter Temperature",
|
769
|
+
3523 => "VS Drive UDC Voltage",
|
770
|
+
3524 => "VS Drive Fan Speed",
|
771
|
+
3804 => "VS Drive Details (EEV2 Ctl)",
|
600
772
|
3904 => "Leaving Air Temperature?",
|
601
773
|
31_003 => "Outdoor Temp",
|
602
774
|
31_005 => "IZ2 Demand",
|
@@ -612,7 +784,10 @@ module Aurora
|
|
612
784
|
.merge(ignore(93..104))
|
613
785
|
.merge(ignore(106..109))
|
614
786
|
.merge(faults(601..699))
|
787
|
+
.merge(ignore(711..717))
|
615
788
|
.merge(zone_registers)
|
789
|
+
.merge(ignore(3423))
|
790
|
+
.merge(ignore(3425))
|
616
791
|
.merge(ignore(31_401..31_412))
|
617
792
|
.merge(ignore(31_414..31_420))
|
618
793
|
.merge(ignore(31_422..31_433))
|