Skip to content

Commit 6340ded

Browse files
committed
vaillant: restore E7000 system manager (15.e7000) lost in TypeSpec migration
The legacy ebusd-2.1.x tree shipped `en/vaillant/15.e7000.csv` defining the VRC E7000 system manager — sibling to the VRC 700, paired with the HMU01 heat-pump indoor unit. During the TypeSpec migration the E7000 was not ported, even though 15.e7c, 15.e7f, 15.e7f_2 were. The CSV is still present in `archived/`. This restores it with the subset known to respond on Vaillant E7000 SW=0608 HW=7003 (paired with HMU01 SW=0306 HW=8802, a Saunier Duval rebadge). Notably restores `HwcStorageTemp` — the DHW cylinder probe reading, which on this controller is the only place the tank temperature is exposed (the HMU's `Status01.storage` slot returns the sentinel, and T.1.44 / TestCylinderTemp returns the placeholder `04 2c 01 ff ff`). Verified ebusctl read after deployment: e7000 HwcStorageTemp = 45 (°C, follows the expected 50→55 sawtooth) e7000 HwcFlowTemp = 0.0 The earlier HMU passive-snoop attempt (`HwcStorageTemp` on the b5 07 09 00 exchange) was a mis-identification — that field reads 30–70 °C on a minutes-timescale, inconsistent with a 200 L cylinder. Reverted.
1 parent 9c3ed3a commit 6340ded

2 files changed

Lines changed: 81 additions & 0 deletions

File tree

src/main.tsp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import "./vaillant/15.430.tsp";
2727
import "./vaillant/15.470.tsp";
2828
import "./vaillant/15.700.tsp";
2929
import "./vaillant/15.720.tsp";
30+
import "./vaillant/15.e7000.tsp";
3031
import "./vaillant/15.e7c.tsp";
3132
import "./vaillant/15.e7f.tsp";
3233
import "./vaillant/15.f37.tsp";

src/vaillant/15.e7000.tsp

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import "@ebusd/ebus-typespec";
2+
import "./_templates.tsp";
3+
import "./errors_inc.tsp";
4+
using Ebus;
5+
using Ebus.Num;
6+
using Ebus.Dtm;
7+
using Ebus.Str;
8+
namespace Vaillant;
9+
10+
// @zz(0x15)
11+
namespace E7000 {
12+
// ,E7000,VRC E7000 system manager (paired with HMU01 heat-pump indoor unit)
13+
//
14+
// Originally shipped as `archived/en/vaillant/15.e7000.csv` in the legacy
15+
// ebusd-2.1.x CSV tree. Not ported during the TypeSpec migration, even
16+
// though sibling controllers (15.e7c, 15.e7f) were. Reintroduced here to
17+
// restore the DHW cylinder probe readings that were lost in that gap.
18+
//
19+
// Verified against MF=Vaillant;ID=E7000;SW=0608;HW=7003 paired with an
20+
// HMU01 SW=0306 HW=8802 (Saunier Duval rebadge). Only the subset known
21+
// to respond on this firmware is exposed below.
22+
23+
// ##### hot water circuit #####
24+
25+
/** default *r for HWC parameter block (b5 24 02 00 01 00 + 2 ext bytes) */
26+
@base(MF, 0x24, 0x2, 0, 1, 0)
27+
model r_hwc {
28+
@maxLength(4)
29+
ign: IGN;
30+
}
31+
32+
/** default *w for HWC parameter block (b5 24 02 01 01 00 + 2 ext bytes) */
33+
@write
34+
@base(MF, 0x24, 0x2, 1, 1, 0)
35+
model w_hwc {}
36+
37+
/** DHW temperature setpoint. Writable — useful for cheap-hours / solar pre-heat schemes. */
38+
@inherit(r_hwc, w_hwc)
39+
@ext(0x4, 0)
40+
model HwcTempDesired {
41+
value: tempv;
42+
}
43+
44+
/** DHW cylinder/storage actual temperature (Speicheristtemperatur) */
45+
@inherit(r_hwc)
46+
@ext(0x5, 0)
47+
model HwcStorageTemp {
48+
value: tempv;
49+
}
50+
51+
/** DHW flow temperature */
52+
@inherit(r_hwc)
53+
@ext(0x8, 0)
54+
model HwcFlowTemp {
55+
value: tempv;
56+
}
57+
58+
// ##### sensor probes #####
59+
60+
/** default *r for sensor probe block (b5 24 02 00 00 00 + 2 ext bytes) */
61+
@base(MF, 0x24, 0x2, 0, 0, 0)
62+
model r_sensors {
63+
@maxLength(4)
64+
ign: IGN;
65+
}
66+
67+
/** DHW storage temperature, top probe (stratified-tank installs only) */
68+
@inherit(r_sensors)
69+
@ext(0x9d, 0)
70+
model HwcStorageTempTop {
71+
value: tempv;
72+
}
73+
74+
/** DHW storage temperature, bottom probe (stratified-tank installs only) */
75+
@inherit(r_sensors)
76+
@ext(0x9e, 0)
77+
model HwcStorageTempBottom {
78+
value: tempv;
79+
}
80+
}

0 commit comments

Comments
 (0)