hoffmation-base 3.2.21 → 3.2.24
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.
- package/lib/devices/dachs/dachs.js +8 -1
- package/lib/devices/sharedFunctions/temperatureSensor.js +15 -1
- package/lib/interfaces/deviceSettings/iDachsDeviceSettings.d.ts +4 -0
- package/lib/settingsObjects/deviceSettings/dachsSettings.d.ts +2 -0
- package/lib/settingsObjects/deviceSettings/dachsSettings.js +6 -3
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -141,12 +141,15 @@ class Dachs extends RoomBaseDevice_1.RoomBaseDevice {
|
|
|
141
141
|
}
|
|
142
142
|
/** @inheritDoc */
|
|
143
143
|
setActuator(c) {
|
|
144
|
+
var _a;
|
|
144
145
|
sharedFunctions_1.LampUtils.setActuator(this, c);
|
|
145
146
|
if (!c.on ||
|
|
146
147
|
!this.warmWaterPump ||
|
|
147
148
|
(this.queuedValue === false && !this._dachsOn) ||
|
|
149
|
+
this.settings.disableDachsOwnWW ||
|
|
150
|
+
((_a = this.warmWaterDachsAlternativeActuator) === null || _a === void 0 ? void 0 : _a.actuatorOn) ||
|
|
148
151
|
this.heatStorageTempSensor.temperatureSensor.temperature < this.warmWaterSensor.temperatureSensor.temperature ||
|
|
149
|
-
this.warmWaterSensor.temperatureSensor.temperature >
|
|
152
|
+
this.warmWaterSensor.temperatureSensor.temperature > this.settings.warmWaterDesiredMaxTemp) {
|
|
150
153
|
return;
|
|
151
154
|
}
|
|
152
155
|
const startPumpCommand = new command_1.ActuatorSetStateCommand(c, true, 'Dachs is starting/on');
|
|
@@ -348,6 +351,10 @@ class Dachs extends RoomBaseDevice_1.RoomBaseDevice {
|
|
|
348
351
|
// It is winter and heat storage is kinda cold --> Start
|
|
349
352
|
return true;
|
|
350
353
|
}
|
|
354
|
+
else if (this.heatStorageTempSensor.temperatureSensor.temperature > this.settings.heatStorageMaxStartTemp) {
|
|
355
|
+
// Heat Storage is already quite full, don't start
|
|
356
|
+
return false;
|
|
357
|
+
}
|
|
351
358
|
if ((dayType === enums_1.TimeOfDay.Daylight || dayType === enums_1.TimeOfDay.BeforeSunrise) &&
|
|
352
359
|
batteryLevel > this.settings.batteryLevelTurnOnThreshold) {
|
|
353
360
|
// It is daytime (maybe solar power) and it is no critical battery level
|
|
@@ -45,7 +45,21 @@ class TemperatureSensor {
|
|
|
45
45
|
this.lastSeen = utils_1.Utils.nowMS();
|
|
46
46
|
let correctedValue = val;
|
|
47
47
|
if (this.outdoorTemperatureCorrectionCoefficient !== 0 && weather_1.WeatherService.currentTemp !== interfaces_1.UNDEFINED_TEMP_VALUE) {
|
|
48
|
-
|
|
48
|
+
const tempDiff = 21 - weather_1.WeatherService.currentTemp;
|
|
49
|
+
// Use degressive correction: full coefficient up to 10K diff (=11°C outdoor), then reduce
|
|
50
|
+
// This prevents over-correction at very low outdoor temperatures
|
|
51
|
+
const maxLinearDiff = 10;
|
|
52
|
+
if (tempDiff <= maxLinearDiff) {
|
|
53
|
+
correctedValue = val + this.outdoorTemperatureCorrectionCoefficient * tempDiff;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Reduce coefficient for the portion beyond maxLinearDiff
|
|
57
|
+
// e.g. at 25K diff (=-4°C): first 10K at full coeff, remaining 15K at reduced coeff
|
|
58
|
+
const linearPart = maxLinearDiff * this.outdoorTemperatureCorrectionCoefficient;
|
|
59
|
+
const excessDiff = tempDiff - maxLinearDiff;
|
|
60
|
+
const reducedPart = excessDiff * this.outdoorTemperatureCorrectionCoefficient * 0.3;
|
|
61
|
+
correctedValue = val + linearPart + reducedPart;
|
|
62
|
+
}
|
|
49
63
|
}
|
|
50
64
|
this._temperature = correctedValue;
|
|
51
65
|
for (const cb of this._temperaturCallbacks) {
|
|
@@ -65,6 +65,10 @@ export interface iDachsDeviceSettings extends iActuatorSettings {
|
|
|
65
65
|
* Defines the desired minimum temperature for heat storage during winter.
|
|
66
66
|
*/
|
|
67
67
|
winterMinimumHeatStorageTemp: number;
|
|
68
|
+
/**
|
|
69
|
+
* Defines the maximum temperature for heat storage at start requests.
|
|
70
|
+
*/
|
|
71
|
+
heatStorageMaxStartTemp: number;
|
|
68
72
|
/**
|
|
69
73
|
* Defines the desired minimum temperature for heat storage during winter.
|
|
70
74
|
*/
|
|
@@ -26,6 +26,8 @@ export declare class DachsDeviceSettings extends ActuatorSettings implements iDa
|
|
|
26
26
|
/** @inheritDoc */
|
|
27
27
|
warmWaterDesiredMaxTemp: number;
|
|
28
28
|
/** @inheritDoc */
|
|
29
|
+
heatStorageMaxStartTemp: number;
|
|
30
|
+
/** @inheritDoc */
|
|
29
31
|
winterMinimumHeatStorageTemp: number;
|
|
30
32
|
/** @inheritDoc */
|
|
31
33
|
winterMinimumPreNightHeatStorageTemp: number;
|
|
@@ -31,12 +31,14 @@ class DachsDeviceSettings extends actuatorSettings_1.ActuatorSettings {
|
|
|
31
31
|
/** @inheritDoc */
|
|
32
32
|
this.warmWaterDesiredMaxTemp = 75;
|
|
33
33
|
/** @inheritDoc */
|
|
34
|
+
this.heatStorageMaxStartTemp = 70;
|
|
35
|
+
/** @inheritDoc */
|
|
34
36
|
this.winterMinimumHeatStorageTemp = 55;
|
|
35
37
|
/** @inheritDoc */
|
|
36
38
|
this.winterMinimumPreNightHeatStorageTemp = 65;
|
|
37
39
|
}
|
|
38
40
|
fromPartialObject(data) {
|
|
39
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
41
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
40
42
|
this.disableHeatingRod = (_a = data.disableHeatingRod) !== null && _a !== void 0 ? _a : this.disableHeatingRod;
|
|
41
43
|
this.disableDachsOwnWW = (_b = data.disableDachsOwnWW) !== null && _b !== void 0 ? _b : this.disableDachsOwnWW;
|
|
42
44
|
this.disableDachsTemporarily = (_c = data.disableDachsTemporarily) !== null && _c !== void 0 ? _c : this.disableDachsTemporarily;
|
|
@@ -52,9 +54,10 @@ class DachsDeviceSettings extends actuatorSettings_1.ActuatorSettings {
|
|
|
52
54
|
this.batteryLevelAllowStartThreshold = (_k = data.batteryLevelAllowStartThreshold) !== null && _k !== void 0 ? _k : this.batteryLevelAllowStartThreshold;
|
|
53
55
|
this.warmWaterDesiredMinTemp = (_l = data.warmWaterDesiredMinTemp) !== null && _l !== void 0 ? _l : this.warmWaterDesiredMinTemp;
|
|
54
56
|
this.warmWaterDesiredMaxTemp = (_m = data.warmWaterDesiredMaxTemp) !== null && _m !== void 0 ? _m : this.warmWaterDesiredMaxTemp;
|
|
55
|
-
this.
|
|
57
|
+
this.heatStorageMaxStartTemp = (_o = data.heatStorageMaxStartTemp) !== null && _o !== void 0 ? _o : this.heatStorageMaxStartTemp;
|
|
58
|
+
this.winterMinimumHeatStorageTemp = (_p = data.winterMinimumHeatStorageTemp) !== null && _p !== void 0 ? _p : this.winterMinimumHeatStorageTemp;
|
|
56
59
|
this.winterMinimumPreNightHeatStorageTemp =
|
|
57
|
-
(
|
|
60
|
+
(_q = data.winterMinimumPreNightHeatStorageTemp) !== null && _q !== void 0 ? _q : this.winterMinimumPreNightHeatStorageTemp;
|
|
58
61
|
super.fromPartialObject(data);
|
|
59
62
|
}
|
|
60
63
|
toJSON() {
|