waterfurnace_aurora 0.5.2 → 0.5.3
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 +8 -1
- data/lib/aurora/abc_client.rb +12 -2
- data/lib/aurora/compressor.rb +11 -6
- data/lib/aurora/humidifier.rb +15 -0
- data/lib/aurora/registers.rb +12 -12
- data/lib/aurora/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a372b51d3240840ae96269020f73728fb049f3e6c0438613c9659d4158d21aa6
|
4
|
+
data.tar.gz: 249e26d5764a0ab670a60b5de7ed6da0796344fd71896c6c33d353fc4a7d95ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5c5ef5a5e1d6ec3d393913ca1b717a5a53a5f17c51f2c9b8ea0f6aeb627cdc873fa25e22511a779d7b9c0e9a60fdc21bc63dbb1fb0d8f6baa41c3dada85cb91
|
7
|
+
data.tar.gz: ee787175c344db12fe11f0dab4131505e5692ca360adeee78bcd0931bd4b28660de9c0d09817c5f30632808b374a3695f8a8cbf9f1e965bf410648f411ffa958
|
data/exe/aurora_mqtt_bridge
CHANGED
@@ -91,7 +91,8 @@ class MQTTBridge
|
|
91
91
|
@compressor => @abc.compressor,
|
92
92
|
@blower => @abc.blower,
|
93
93
|
@pump => @abc.pump,
|
94
|
-
@dhw => @abc.dhw
|
94
|
+
@dhw => @abc.dhw,
|
95
|
+
@humidifier => @abc.humidifier }.compact
|
95
96
|
@abc.zones.each_with_index do |z, idx|
|
96
97
|
homie_zone = @homie["zone#{idx + 1}"]
|
97
98
|
components[homie_zone] = z
|
@@ -220,6 +221,12 @@ class MQTTBridge
|
|
220
221
|
end
|
221
222
|
end
|
222
223
|
|
224
|
+
if @abc.humidifier
|
225
|
+
@humidifier = @homie.node("humidifier", "Humidifier", "Humidifier") do |node|
|
226
|
+
node.property("running", "Humidifier is running", :boolean, @abc.humidifier.running?)
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
223
230
|
@faults = @homie.node("faults", "Fault History", "ABC") do |node|
|
224
231
|
node.property("clear-history", "Reset fault counts", :enum, retained: false, format: "clear") do |_|
|
225
232
|
@mutex.synchronize { @abc.clear_fault_history }
|
data/lib/aurora/abc_client.rb
CHANGED
@@ -6,6 +6,7 @@ require "uri"
|
|
6
6
|
require "aurora/blower"
|
7
7
|
require "aurora/compressor"
|
8
8
|
require "aurora/dhw"
|
9
|
+
require "aurora/humidifier"
|
9
10
|
require "aurora/iz2_zone"
|
10
11
|
require "aurora/pump"
|
11
12
|
require "aurora/thermostat"
|
@@ -48,6 +49,7 @@ module Aurora
|
|
48
49
|
:blower,
|
49
50
|
:pump,
|
50
51
|
:dhw,
|
52
|
+
:humidifier,
|
51
53
|
:faults,
|
52
54
|
:current_mode,
|
53
55
|
:entering_air_temperature,
|
@@ -65,7 +67,7 @@ module Aurora
|
|
65
67
|
@modbus_slave = self.class.open_modbus_slave(uri)
|
66
68
|
@modbus_slave.read_retry_timeout = 15
|
67
69
|
@modbus_slave.read_retries = 2
|
68
|
-
raw_registers = @modbus_slave.holding_registers[88..91, 105...110, 404, 412..413, 1114]
|
70
|
+
raw_registers = @modbus_slave.holding_registers[33, 88..91, 105...110, 404, 412..413, 1114]
|
69
71
|
registers = Aurora.transform_registers(raw_registers.dup)
|
70
72
|
@program = registers[88]
|
71
73
|
@serial_number = registers[105]
|
@@ -78,7 +80,13 @@ module Aurora
|
|
78
80
|
[Thermostat.new(self)]
|
79
81
|
end
|
80
82
|
|
81
|
-
@
|
83
|
+
@abc_dipswitches = registers[33]
|
84
|
+
@compressor = if @program == "ABCVSP"
|
85
|
+
Compressor::VSDrive.new(self)
|
86
|
+
else
|
87
|
+
Compressor::GenericCompressor.new(self,
|
88
|
+
@abc_dipswitches[:compressor])
|
89
|
+
end
|
82
90
|
@blower = case raw_registers[404]
|
83
91
|
when 1, 2 then Blower::ECM.new(self, registers[404])
|
84
92
|
when 3 then Blower::FiveSpeed.new(self, registers[404])
|
@@ -92,6 +100,7 @@ module Aurora
|
|
92
100
|
registers[413])
|
93
101
|
end
|
94
102
|
@dhw = DHW.new(self) if (-999..999).include?(registers[1114])
|
103
|
+
@humidifier = Humidifier.new(self) if @abc_dipswitches[:accessory_relay] == :humidifier
|
95
104
|
|
96
105
|
@faults = []
|
97
106
|
end
|
@@ -192,6 +201,7 @@ module Aurora
|
|
192
201
|
blower.refresh(registers)
|
193
202
|
pump.refresh(registers)
|
194
203
|
dhw&.refresh(registers)
|
204
|
+
humidifier&.refresh(registers)
|
195
205
|
end
|
196
206
|
|
197
207
|
def cooling_airflow_adjustment=(value)
|
data/lib/aurora/compressor.rb
CHANGED
@@ -7,12 +7,17 @@ module Aurora
|
|
7
7
|
class GenericCompressor < Component
|
8
8
|
attr_reader :speed, :watts
|
9
9
|
|
10
|
+
def initialize(abc, stages)
|
11
|
+
super(abc)
|
12
|
+
@stages = stages
|
13
|
+
end
|
14
|
+
|
10
15
|
def type
|
11
|
-
"Compressor"
|
16
|
+
"#{@stages == 2 ? 'Dual' : 'Single'} Stage Compressor"
|
12
17
|
end
|
13
18
|
|
14
19
|
def speed_range
|
15
|
-
0
|
20
|
+
0..@stages
|
16
21
|
end
|
17
22
|
|
18
23
|
def registers_to_read
|
@@ -39,12 +44,12 @@ module Aurora
|
|
39
44
|
class VSDrive < GenericCompressor
|
40
45
|
attr_reader :ambient_temperature, :iz2_desired_speed
|
41
46
|
|
42
|
-
def
|
43
|
-
|
47
|
+
def initialize(abc)
|
48
|
+
super(abc, 12)
|
44
49
|
end
|
45
50
|
|
46
|
-
def
|
47
|
-
|
51
|
+
def type
|
52
|
+
"Variable Speed Drive"
|
48
53
|
end
|
49
54
|
|
50
55
|
def registers_to_read
|
@@ -0,0 +1,15 @@
|
|
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
|
data/lib/aurora/registers.rb
CHANGED
@@ -194,24 +194,24 @@ module Aurora
|
|
194
194
|
name ? "#{value} #{name}" : value.to_s
|
195
195
|
end
|
196
196
|
|
197
|
-
|
198
|
-
0 =>
|
199
|
-
1 =>
|
200
|
-
2 =>
|
201
|
-
3 =>
|
197
|
+
ACCESSORY_RELAY_SETTINGS = {
|
198
|
+
0 => :compressor,
|
199
|
+
1 => :slow_opening_water_valve,
|
200
|
+
2 => :humidifier,
|
201
|
+
3 => :blower
|
202
202
|
}.freeze
|
203
203
|
|
204
204
|
def dipswitch_settings(value)
|
205
205
|
return :manual if value == 0x7fff
|
206
206
|
|
207
207
|
{
|
208
|
-
fp1: value & 0x01 == 0x01 ?
|
209
|
-
fp2: value & 0x02 == 0x02 ?
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
208
|
+
fp1: value & 0x01 == 0x01 ? 30 : 15,
|
209
|
+
fp2: value & 0x02 == 0x02 ? 30 : :off,
|
210
|
+
reversing_valve: value & 0x04 == 0x04 ? :o : :b, # cycle to cool on O, or !B
|
211
|
+
accessory_relay: ACCESSORY_RELAY_SETTINGS[(value >> 3) & 0x3],
|
212
|
+
compressor: value & 0x20 == 0x20 ? 1 : 2, # single or dual stage compressor
|
213
|
+
lockout: value & 0x40 == 0x40 ? :continuous : :pulse,
|
214
|
+
dehumidifier_reheat: value & 0x80 == 0x80 ? :dehumidifier : :reheat
|
215
215
|
}
|
216
216
|
end
|
217
217
|
|
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.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Cutrer
|
@@ -139,6 +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/humidifier.rb
|
142
143
|
- lib/aurora/iz2_zone.rb
|
143
144
|
- lib/aurora/mock_abc.rb
|
144
145
|
- lib/aurora/modbus/server.rb
|