waterfurnace_aurora 0.8.0 → 1.0.0
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 +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
|