waterfurnace_aurora 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|