waterfurnace_aurora 0.8.0 → 1.0.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 +49 -6
- data/lib/aurora/abc_client.rb +6 -9
- data/lib/aurora/aux_heat.rb +21 -0
- data/lib/aurora/blower.rb +1 -1
- data/lib/aurora/component.rb +4 -0
- data/lib/aurora/compressor.rb +6 -2
- data/lib/aurora/registers.rb +1 -1
- data/lib/aurora/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a92e9aadd14ee0154443cea52907f793880242ce22a44f3df7912065074c3c8
|
4
|
+
data.tar.gz: 553a945493652a50f92f49e4e0620db8e03305c3ff0ab65823f20c15db2ac89d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fee6734f5e5752aec571c2c93a81e79be950af8c8f4a3ab3259f7d6b1d5e2540d4fd616be06d911a382c710b23ed43c1b1ecf23db23444022c24216faff52cb
|
7
|
+
data.tar.gz: c2e5a9f54f7bd0f6b869ffff94b4cd0a0bf9de65ea29d8342fe690f582893a9fe0a7b0f0ce94ba4c0ecf6595156d21a12e7e8203023aaadc923a56c0951f817f
|
data/exe/aurora_mqtt_bridge
CHANGED
@@ -93,6 +93,7 @@ class MQTTBridge
|
|
93
93
|
@abc.refresh
|
94
94
|
|
95
95
|
components = { @homie_abc => @abc,
|
96
|
+
@aux_heat => @abc.aux_heat,
|
96
97
|
@compressor => @abc.compressor,
|
97
98
|
@blower => @abc.blower,
|
98
99
|
@pump => @abc.pump,
|
@@ -131,7 +132,7 @@ class MQTTBridge
|
|
131
132
|
}
|
132
133
|
|
133
134
|
@homie_abc = @homie.node("abc", "Heat Pump", "ABC") do |node|
|
134
|
-
allowed_modes = %w[lockout standby blower heating cooling
|
135
|
+
allowed_modes = %w[lockout standby blower heating cooling waiting]
|
135
136
|
allowed_modes << "dehumidify" if @abc.compressor.is_a?(Aurora::Compressor::VSDrive)
|
136
137
|
node.property("current-mode",
|
137
138
|
"Current Heating/Cooling Mode",
|
@@ -208,12 +209,11 @@ class MQTTBridge
|
|
208
209
|
hass: { sensor: { device_class: :temperature,
|
209
210
|
state_class: :measurement,
|
210
211
|
entity_category: :diagnostic } })
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
component.sub("_watts", " Power Usage").tr("_", " ").titleize,
|
212
|
+
if @abc.energy_monitoring?
|
213
|
+
node.property("watts",
|
214
|
+
"Total Power Usage",
|
215
215
|
:integer,
|
216
|
-
@abc.
|
216
|
+
@abc.watts,
|
217
217
|
unit: "W",
|
218
218
|
hass: { sensor: { device_class: :power,
|
219
219
|
state_class: :measurement } })
|
@@ -247,6 +247,30 @@ class MQTTBridge
|
|
247
247
|
hass: { sensor: { device_class: :temperature,
|
248
248
|
state_class: :measurement,
|
249
249
|
entity_category: :diagnostic } })
|
250
|
+
node.property("drive-temperature",
|
251
|
+
"Drive Temperature",
|
252
|
+
:float,
|
253
|
+
@abc.compressor.drive_temperature,
|
254
|
+
unit: "°F",
|
255
|
+
hass: { sensor: { device_class: :temperature,
|
256
|
+
state_class: :measurement,
|
257
|
+
entity_category: :diagnostic } })
|
258
|
+
node.property("inverter-temperature",
|
259
|
+
"Inverter Temperature",
|
260
|
+
:float,
|
261
|
+
@abc.compressor.inverter_temperature,
|
262
|
+
unit: "°F",
|
263
|
+
hass: { sensor: { device_class: :temperature,
|
264
|
+
state_class: :measurement,
|
265
|
+
entity_category: :diagnostic } })
|
266
|
+
node.property("fan-speed",
|
267
|
+
"Fan Speed",
|
268
|
+
:integer,
|
269
|
+
@abc.compressor.fan_speed,
|
270
|
+
unit: "%",
|
271
|
+
format: 0..100,
|
272
|
+
hass: { sensor: { state_class: :measurement,
|
273
|
+
entity_category: :diagnostic } })
|
250
274
|
|
251
275
|
next unless @abc.iz2?
|
252
276
|
|
@@ -259,6 +283,25 @@ class MQTTBridge
|
|
259
283
|
entity_category: :diagnostic } })
|
260
284
|
end
|
261
285
|
|
286
|
+
@aux_heat = @homie.node("aux-heat", "Aux Heater", "Aux Heater") do |node|
|
287
|
+
node.property("stage",
|
288
|
+
"Current Stage",
|
289
|
+
:integer,
|
290
|
+
@abc.aux_heat.stage,
|
291
|
+
format: 0..2,
|
292
|
+
hass: { sensor: { state_class: :measurement } })
|
293
|
+
|
294
|
+
if @abc.energy_monitoring?
|
295
|
+
node.property("watts",
|
296
|
+
"Power Usage",
|
297
|
+
:integer,
|
298
|
+
@abc.aux_heat.watts,
|
299
|
+
unit: "W",
|
300
|
+
hass: { sensor: { device_class: :power,
|
301
|
+
state_class: :measurement } })
|
302
|
+
end
|
303
|
+
end
|
304
|
+
|
262
305
|
@blower = @homie.node("blower", "Blower", @abc.blower.type) do |node|
|
263
306
|
node.property("running",
|
264
307
|
"Running",
|
data/lib/aurora/abc_client.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require "yaml"
|
4
4
|
require "uri"
|
5
5
|
|
6
|
+
require "aurora/aux_heat"
|
6
7
|
require "aurora/blower"
|
7
8
|
require "aurora/compressor"
|
8
9
|
require "aurora/dhw"
|
@@ -90,6 +91,7 @@ module Aurora
|
|
90
91
|
:model,
|
91
92
|
:serial_number,
|
92
93
|
:zones,
|
94
|
+
:aux_heat,
|
93
95
|
:compressor,
|
94
96
|
:blower,
|
95
97
|
:pump,
|
@@ -105,8 +107,7 @@ module Aurora
|
|
105
107
|
:fp1,
|
106
108
|
:fp2,
|
107
109
|
:line_voltage,
|
108
|
-
:
|
109
|
-
:total_watts
|
110
|
+
:watts
|
110
111
|
|
111
112
|
def initialize(uri)
|
112
113
|
@modbus_slave = self.class.open_modbus_slave(uri)
|
@@ -129,6 +130,7 @@ module Aurora
|
|
129
130
|
|
130
131
|
@abc_dipswitches = registers[33]
|
131
132
|
@axb_dipswitches = registers[1103]
|
133
|
+
@aux_heat = AuxHeat.new(self)
|
132
134
|
@compressor = if @program == "ABCVSP"
|
133
135
|
Compressor::VSDrive.new(self)
|
134
136
|
else
|
@@ -160,7 +162,7 @@ module Aurora
|
|
160
162
|
zones.each do |z|
|
161
163
|
@registers_to_read.concat(z.registers_to_read)
|
162
164
|
end
|
163
|
-
@components = [compressor, blower, pump, dhw, humidistat].compact
|
165
|
+
@components = [aux_heat, compressor, blower, pump, dhw, humidistat].compact
|
164
166
|
@components.each do |component|
|
165
167
|
@registers_to_read.concat(component.registers_to_read)
|
166
168
|
end
|
@@ -193,8 +195,7 @@ module Aurora
|
|
193
195
|
@derated = (41..46).cover?(@error)
|
194
196
|
@safe_mode = [47, 48, 49, 72, 74].include?(@error)
|
195
197
|
@line_voltage = registers[112]
|
196
|
-
@
|
197
|
-
@total_watts = registers[1153]
|
198
|
+
@watts = registers[1153]
|
198
199
|
|
199
200
|
@current_mode = if outputs.include?(:lockout)
|
200
201
|
:lockout
|
@@ -202,10 +203,6 @@ module Aurora
|
|
202
203
|
:dehumidify
|
203
204
|
elsif outputs.include?(:cc2) || outputs.include?(:cc)
|
204
205
|
outputs.include?(:rv) ? :cooling : :heating
|
205
|
-
elsif outputs.include?(:eh2)
|
206
|
-
outputs.include?(:rv) ? :eh2 : :emergency
|
207
|
-
elsif outputs.include?(:eh1)
|
208
|
-
outputs.include?(:rv) ? :eh1 : :emergency
|
209
206
|
elsif outputs.include?(:blower)
|
210
207
|
:blower
|
211
208
|
elsif registers[6]
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "aurora/component"
|
4
|
+
|
5
|
+
module Aurora
|
6
|
+
class AuxHeat < Component
|
7
|
+
attr_reader :stage, :watts
|
8
|
+
|
9
|
+
def refresh(registers)
|
10
|
+
outputs = registers[30]
|
11
|
+
@stage = if outputs.include?(:eh2)
|
12
|
+
2
|
13
|
+
elsif outputs.include?(:eh1)
|
14
|
+
1
|
15
|
+
else
|
16
|
+
0
|
17
|
+
end
|
18
|
+
@watts = registers[1151] if abc.energy_monitoring?
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/aurora/blower.rb
CHANGED
data/lib/aurora/component.rb
CHANGED
data/lib/aurora/compressor.rb
CHANGED
@@ -42,7 +42,7 @@ module Aurora
|
|
42
42
|
end
|
43
43
|
|
44
44
|
class VSDrive < GenericCompressor
|
45
|
-
attr_reader :ambient_temperature, :iz2_desired_speed
|
45
|
+
attr_reader :drive_temperature, :inverter_temperature, :ambient_temperature, :iz2_desired_speed, :fan_speed
|
46
46
|
|
47
47
|
def initialize(abc)
|
48
48
|
super(abc, 12)
|
@@ -53,7 +53,7 @@ module Aurora
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def registers_to_read
|
56
|
-
result = super + [209, 3001, 3326]
|
56
|
+
result = super + [209, 3001, 3326..3327, 3522, 3524]
|
57
57
|
result << 564 if abc.iz2?
|
58
58
|
result
|
59
59
|
end
|
@@ -63,6 +63,10 @@ module Aurora
|
|
63
63
|
|
64
64
|
@speed = registers[3001]
|
65
65
|
@ambient_temperature = registers[3326]
|
66
|
+
@drive_temperature = registers[3327]
|
67
|
+
@inverter_temperature = registers[3522]
|
68
|
+
@fan_speed = registers[3524]
|
69
|
+
|
66
70
|
@iz2_desired_speed = registers[564] if abc.iz2?
|
67
71
|
end
|
68
72
|
end
|
data/lib/aurora/registers.rb
CHANGED
@@ -867,11 +867,11 @@ module Aurora
|
|
867
867
|
3225 => "VS Drive Details (Safemode 2)",
|
868
868
|
3226 => "VS Drive Details (Alarm 1)",
|
869
869
|
3227 => "VS Drive Details (Alarm 2)",
|
870
|
-
3327 => "VS Drive Temperature",
|
871
870
|
3322 => "VS Drive Discharge Pressure",
|
872
871
|
3323 => "VS Drive Suction Pressure",
|
873
872
|
3325 => "VS Drive Discharge Temperature",
|
874
873
|
3326 => "VS Drive Compressor Ambient Temperature",
|
874
|
+
3327 => "VS Drive Temperature",
|
875
875
|
3330 => "VS Drive Entering Water Temperature",
|
876
876
|
3331 => "VS Drive Line Voltage",
|
877
877
|
3332 => "VS Drive Thermo Power",
|
data/lib/aurora/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: waterfurnace_aurora
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Cutrer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01-
|
11
|
+
date: 2022-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ccutrer-serialport
|
@@ -166,6 +166,7 @@ files:
|
|
166
166
|
- exe/web_aid_tool
|
167
167
|
- lib/aurora.rb
|
168
168
|
- lib/aurora/abc_client.rb
|
169
|
+
- lib/aurora/aux_heat.rb
|
169
170
|
- lib/aurora/blower.rb
|
170
171
|
- lib/aurora/component.rb
|
171
172
|
- lib/aurora/compressor.rb
|