hoffmation-base 2.7.0 → 2.7.1
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/models/deviceSettings/index.d.ts +1 -0
- package/lib/models/deviceSettings/index.js +1 -0
- package/lib/models/deviceSettings/victronDeviceSettings.d.ts +10 -0
- package/lib/models/deviceSettings/victronDeviceSettings.js +28 -0
- package/lib/server/devices/IoBrokerBaseDevice.js +1 -1
- package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +3 -12
- package/lib/server/devices/blueIris/blueIrisCoordinator.js +1 -1
- package/lib/server/devices/deviceType.d.ts +2 -1
- package/lib/server/devices/deviceType.js +1 -0
- package/lib/server/devices/devices.js +1 -1
- package/lib/server/devices/espresense/espresenseCoordinator.js +1 -1
- package/lib/server/devices/hmIPDevices/hmIpBewegung.js +1 -1
- package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +1 -1
- package/lib/server/devices/hmIPDevices/hmIpTaster.js +1 -1
- package/lib/server/devices/hmIPDevices/hmIpWippe.js +1 -1
- package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +1 -0
- package/lib/server/devices/jsObject/jsObjectEnergyManager.js +28 -50
- package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +1 -1
- package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +1 -1
- package/lib/server/ioBroker/ioBroker.main.js +1 -1
- package/lib/server/ioBroker/iobrokerConnectionLogging.js +1 -1
- package/lib/server/services/Sonos/OwnSonosDevices.js +1 -1
- package/lib/server/services/Sonos/mp3-server.js +1 -1
- package/lib/server/services/Sonos/polly-service.js +1 -1
- package/lib/server/services/Sonos/sonos-service.js +1 -1
- package/lib/server/services/Telegram/telegram-Commands.js +3 -8
- package/lib/server/services/Telegram/telegram-service.js +1 -1
- package/lib/server/services/ac/daikin-service.js +1 -1
- package/lib/server/services/ac/own-ac-devices.js +1 -1
- package/lib/server/services/calendar/muell-tonne.js +1 -1
- package/lib/server/services/calendar/m/303/274ll-service.js +1 -1
- package/lib/server/services/index.d.ts +1 -1
- package/lib/server/services/index.js +1 -1
- package/lib/server/services/log-service/log-service.js +1 -1
- package/lib/server/services/network/router.js +1 -1
- package/lib/server/services/news-service.js +1 -1
- package/lib/server/services/room-service/room-service.js +3 -3
- package/lib/server/services/tibber-service.js +1 -1
- package/lib/server/services/time-callback-service.js +1 -1
- package/lib/server/services/utils/energy-manager-utils.d.ts +17 -0
- package/lib/server/services/utils/energy-manager-utils.js +55 -0
- package/lib/server/services/utils/index.d.ts +1 -0
- package/lib/server/services/utils/index.js +1 -0
- package/lib/server/services/victron/index.d.ts +2 -0
- package/lib/server/services/victron/index.js +18 -0
- package/lib/server/services/victron/victron-device.d.ts +35 -0
- package/lib/server/services/victron/victron-device.js +142 -0
- package/lib/server/services/{victron-service.d.ts → victron/victron-service.d.ts} +2 -2
- package/lib/server/services/{victron-service.js → victron/victron-service.js} +5 -4
- package/lib/server/services/weather/weather-service.js +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -26,5 +26,6 @@ __exportStar(require("./sceneSettings"), exports);
|
|
|
26
26
|
__exportStar(require("./shutterSettings"), exports);
|
|
27
27
|
__exportStar(require("./sonosDeviceSettings"), exports);
|
|
28
28
|
__exportStar(require("./tvSettings"), exports);
|
|
29
|
+
__exportStar(require("./victronDeviceSettings"), exports);
|
|
29
30
|
__exportStar(require("./windowSettings"), exports);
|
|
30
31
|
__exportStar(require("./wledSettings"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DeviceSettings } from './deviceSettings';
|
|
2
|
+
export declare class VictronDeviceSettings extends DeviceSettings {
|
|
3
|
+
maxBatteryLoadWattage: number;
|
|
4
|
+
hasBattery: boolean;
|
|
5
|
+
hasGrid: boolean;
|
|
6
|
+
hasSolar: boolean;
|
|
7
|
+
batteryCapacityWattage: number;
|
|
8
|
+
fromPartialObject(data: Partial<VictronDeviceSettings>): void;
|
|
9
|
+
protected toJSON(): Partial<VictronDeviceSettings>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VictronDeviceSettings = void 0;
|
|
4
|
+
const deviceSettings_1 = require("./deviceSettings");
|
|
5
|
+
const server_1 = require("../../server");
|
|
6
|
+
class VictronDeviceSettings extends deviceSettings_1.DeviceSettings {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.maxBatteryLoadWattage = 1700;
|
|
10
|
+
this.hasBattery = true;
|
|
11
|
+
this.hasGrid = true;
|
|
12
|
+
this.hasSolar = true;
|
|
13
|
+
this.batteryCapacityWattage = 10000;
|
|
14
|
+
}
|
|
15
|
+
fromPartialObject(data) {
|
|
16
|
+
var _a, _b, _c, _d, _e;
|
|
17
|
+
this.maxBatteryLoadWattage = (_a = data.maxBatteryLoadWattage) !== null && _a !== void 0 ? _a : this.maxBatteryLoadWattage;
|
|
18
|
+
this.hasBattery = (_b = data.hasBattery) !== null && _b !== void 0 ? _b : this.hasBattery;
|
|
19
|
+
this.hasGrid = (_c = data.hasGrid) !== null && _c !== void 0 ? _c : this.hasGrid;
|
|
20
|
+
this.hasSolar = (_d = data.hasSolar) !== null && _d !== void 0 ? _d : this.hasSolar;
|
|
21
|
+
this.batteryCapacityWattage = (_e = data.batteryCapacityWattage) !== null && _e !== void 0 ? _e : this.batteryCapacityWattage;
|
|
22
|
+
super.fromPartialObject(data);
|
|
23
|
+
}
|
|
24
|
+
toJSON() {
|
|
25
|
+
return server_1.Utils.jsonFilter(this);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.VictronDeviceSettings = VictronDeviceSettings;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { iExcessEnergyConsumer } from './iExcessEnergyConsumer';
|
|
2
|
-
import {
|
|
2
|
+
import { iBaseDevice } from './iBaseDevice';
|
|
3
3
|
export declare class PhaseState {
|
|
4
4
|
private readonly _meterValue;
|
|
5
5
|
private readonly _production;
|
|
@@ -13,19 +13,10 @@ export declare class PhaseState {
|
|
|
13
13
|
get injectingWattage(): number;
|
|
14
14
|
get totalConsumptionWattage(): number;
|
|
15
15
|
}
|
|
16
|
-
export interface iEnergyManager extends
|
|
17
|
-
baseConsumption: number;
|
|
18
|
-
currentProduction: number;
|
|
16
|
+
export interface iEnergyManager extends iBaseDevice {
|
|
19
17
|
excessEnergy: number;
|
|
20
|
-
excessEnergyConsumerConsumption: number;
|
|
21
|
-
totalConsumption: number;
|
|
22
|
-
drawingWattage: number;
|
|
23
|
-
selfConsumingWattage: number;
|
|
24
|
-
injectingWattage: number;
|
|
25
|
-
phaseAState: PhaseState;
|
|
26
|
-
phaseBState: PhaseState;
|
|
27
|
-
phaseCState: PhaseState;
|
|
28
18
|
addExcessConsumer(device: iExcessEnergyConsumer): void;
|
|
29
19
|
recalculatePowerSharing(): void;
|
|
30
20
|
cleanup(): void;
|
|
21
|
+
getReport(): string;
|
|
31
22
|
}
|
|
@@ -48,4 +48,5 @@ var DeviceType;
|
|
|
48
48
|
DeviceType[DeviceType["TrackableDevice"] = 4002] = "TrackableDevice";
|
|
49
49
|
DeviceType[DeviceType["SamsungTv"] = 5001] = "SamsungTv";
|
|
50
50
|
DeviceType[DeviceType["Camera"] = 6001] = "Camera";
|
|
51
|
+
DeviceType[DeviceType["Victron"] = 7001] = "Victron";
|
|
51
52
|
})(DeviceType = exports.DeviceType || (exports.DeviceType = {}));
|
|
@@ -234,10 +234,10 @@ class Devices {
|
|
|
234
234
|
Devices.alLDevices[fullName] = Devices.energymanager;
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
|
-
exports.Devices = Devices;
|
|
238
237
|
Devices.IDENTIFIER_HOMEMATIC = 'hm-rpc';
|
|
239
238
|
Devices.IDENTIFIER_JS = 'javascript';
|
|
240
239
|
Devices.IDENTIFIER_ZIGBEE = 'zigbee';
|
|
241
240
|
Devices.IDENTIFIER_WLED = 'wled';
|
|
242
241
|
Devices.alLDevices = {};
|
|
243
242
|
Devices.energymanager = undefined;
|
|
243
|
+
exports.Devices = Devices;
|
|
@@ -117,7 +117,7 @@ class HmIpBewegung extends hmIpDevice_1.HmIPDevice {
|
|
|
117
117
|
}, 270000, this);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
-
exports.HmIpBewegung = HmIpBewegung;
|
|
121
120
|
HmIpBewegung.MOVEMENT_DETECTION = 'MOTION';
|
|
122
121
|
// private static ILLUMINATION_DURING_MOVEMENT: string = 'CURRENT_ILLUMINATION';
|
|
123
122
|
HmIpBewegung.CURRENT_ILLUMINATION = 'ILLUMINATION';
|
|
123
|
+
exports.HmIpBewegung = HmIpBewegung;
|
|
@@ -127,8 +127,8 @@ class HmIpPraezenz extends hmIpDevice_1.HmIPDevice {
|
|
|
127
127
|
this._lastBatteryPersist = now;
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
-
exports.HmIpPraezenz = HmIpPraezenz;
|
|
131
130
|
// TODO: Add iPresenceSensor
|
|
132
131
|
HmIpPraezenz.PRESENCE_DETECTION = 'PRESENCE_DETECTION_STATE';
|
|
133
132
|
// private static ILLUMINATION_DURING_MOVEMENT: string = 'CURRENT_ILLUMINATION';
|
|
134
133
|
HmIpPraezenz.CURRENT_ILLUMINATION = 'ILLUMINATION';
|
|
134
|
+
exports.HmIpPraezenz = HmIpPraezenz;
|
|
@@ -123,10 +123,10 @@ class HmIpTaster extends hmIpDevice_1.HmIPDevice {
|
|
|
123
123
|
this._lastBatteryPersist = now;
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
exports.HmIpTaster = HmIpTaster;
|
|
127
126
|
HmIpTaster.BUTTON_CAPABILLITIES = {
|
|
128
127
|
shortPress: true,
|
|
129
128
|
longPress: true,
|
|
130
129
|
doublePress: false,
|
|
131
130
|
triplePress: false,
|
|
132
131
|
};
|
|
132
|
+
exports.HmIpTaster = HmIpTaster;
|
|
@@ -70,10 +70,10 @@ class HmIpWippe extends hmIpDevice_1.HmIPDevice {
|
|
|
70
70
|
return result.join('\n');
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
exports.HmIpWippe = HmIpWippe;
|
|
74
73
|
HmIpWippe.BUTTON_CAPABILLITIES = {
|
|
75
74
|
shortPress: true,
|
|
76
75
|
longPress: true,
|
|
77
76
|
doublePress: false,
|
|
78
77
|
triplePress: false,
|
|
79
78
|
};
|
|
79
|
+
exports.HmIpWippe = HmIpWippe;
|
|
@@ -169,62 +169,30 @@ class JsObjectEnergyManager extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
|
|
|
169
169
|
this.log(models_1.LogLevel.Info, `Persisting energy Manager Data.`);
|
|
170
170
|
}
|
|
171
171
|
turnOnAdditionalConsumer() {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
if (e.energySettings.priority === -1 || e.on || !e.isAvailableForExcessEnergy()) {
|
|
176
|
-
return false;
|
|
177
|
-
}
|
|
178
|
-
if (((_a = this._lastDeviceChange) === null || _a === void 0 ? void 0 : _a.newState) && e === this._lastDeviceChange.device) {
|
|
179
|
-
e.log(models_1.LogLevel.Debug, `This woould have been a matching energy consumer, but apperantly last turn on failed...`);
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
return true;
|
|
183
|
-
});
|
|
184
|
-
if (potentialDevices.length === 0) {
|
|
185
|
-
if (((_a = this._lastDeviceChange) === null || _a === void 0 ? void 0 : _a.newState) === true) {
|
|
186
|
-
this._lastDeviceChange = undefined;
|
|
187
|
-
}
|
|
172
|
+
const result = services_1.EnergyManagerUtils.turnOnAdditionalConsumer(this._excessEnergyConsumer, this._lastDeviceChange);
|
|
173
|
+
if (result == undefined) {
|
|
174
|
+
this._lastDeviceChange = undefined;
|
|
188
175
|
return;
|
|
189
176
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
this._lastDeviceChange = { newState: true, device: potentialDevices[0] };
|
|
177
|
+
if (result.newState) {
|
|
178
|
+
this.blockDeviceChangeTime = services_1.Utils.nowMS() + result.device.energySettings.powerReactionTime;
|
|
179
|
+
result.device.log(models_1.LogLevel.Info, `Turning on, as we have ${this.excessEnergy}W to spare...`);
|
|
180
|
+
result.device.turnOnForExcessEnergy();
|
|
181
|
+
this._lastDeviceChange = result;
|
|
182
|
+
}
|
|
197
183
|
}
|
|
198
184
|
turnOffAdditionalConsumer() {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
if (e.energySettings.priority === -1 || !e.on) {
|
|
203
|
-
return false;
|
|
204
|
-
}
|
|
205
|
-
if (!e.wasActivatedByExcessEnergy()) {
|
|
206
|
-
e.log(models_1.LogLevel.Info, 'This would have been turned off, but was activated manually....');
|
|
207
|
-
return false;
|
|
208
|
-
}
|
|
209
|
-
if (((_a = this._lastDeviceChange) === null || _a === void 0 ? void 0 : _a.newState) === false && e === this._lastDeviceChange.device) {
|
|
210
|
-
e.log(models_1.LogLevel.Debug, `This woould have been a matching turn off energy consumer, but apperantly last turn off failed...`);
|
|
211
|
-
return false;
|
|
212
|
-
}
|
|
213
|
-
return true;
|
|
214
|
-
});
|
|
215
|
-
if (potentialDevices.length === 0) {
|
|
216
|
-
if (((_a = this._lastDeviceChange) === null || _a === void 0 ? void 0 : _a.newState) === false) {
|
|
217
|
-
this._lastDeviceChange = undefined;
|
|
218
|
-
}
|
|
185
|
+
const result = services_1.EnergyManagerUtils.turnOffAdditionalConsumer(this._excessEnergyConsumer, this._lastDeviceChange);
|
|
186
|
+
if (result == undefined) {
|
|
187
|
+
this._lastDeviceChange = undefined;
|
|
219
188
|
return;
|
|
220
189
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
this._lastDeviceChange = { newState: false, device: potentialDevices[0] };
|
|
190
|
+
if (!result.newState) {
|
|
191
|
+
this.blockDeviceChangeTime = services_1.Utils.nowMS() + result.device.energySettings.powerReactionTime;
|
|
192
|
+
result.device.log(models_1.LogLevel.Info, `Turning off, as we don't have energy to spare...`);
|
|
193
|
+
result.device.turnOffDueToMissingEnergy();
|
|
194
|
+
this._lastDeviceChange = result;
|
|
195
|
+
}
|
|
228
196
|
}
|
|
229
197
|
dispose() {
|
|
230
198
|
if (this._iCalculationInterval) {
|
|
@@ -236,5 +204,15 @@ class JsObjectEnergyManager extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
|
|
|
236
204
|
this._iDatabaseLoggerInterval = null;
|
|
237
205
|
}
|
|
238
206
|
}
|
|
207
|
+
getReport() {
|
|
208
|
+
const response = [];
|
|
209
|
+
response.push(`Production: ${this.currentProduction}W`);
|
|
210
|
+
response.push(`Total Consumption: ${this.totalConsumption}W`);
|
|
211
|
+
response.push(`Excess Consumption: ${this.excessEnergyConsumerConsumption}W`);
|
|
212
|
+
response.push(`Drawing Wattage: ${this.drawingWattage}W`);
|
|
213
|
+
response.push(`Self Consuming Wattage: ${this.selfConsumingWattage}W`);
|
|
214
|
+
response.push(`Injecting Wattage: ${this.injectingWattage}W`);
|
|
215
|
+
return response.join('');
|
|
216
|
+
}
|
|
239
217
|
}
|
|
240
218
|
exports.JsObjectEnergyManager = JsObjectEnergyManager;
|
|
@@ -102,10 +102,10 @@ class ZigbeeAqaraOpple3Switch extends BaseDevices_1.ZigbeeSwitch {
|
|
|
102
102
|
taste.updateState(pressType, val);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
-
exports.ZigbeeAqaraOpple3Switch = ZigbeeAqaraOpple3Switch;
|
|
106
105
|
ZigbeeAqaraOpple3Switch.BUTTON_CAPABILLITIES = {
|
|
107
106
|
shortPress: true,
|
|
108
107
|
longPress: true,
|
|
109
108
|
doublePress: true,
|
|
110
109
|
triplePress: true,
|
|
111
110
|
};
|
|
111
|
+
exports.ZigbeeAqaraOpple3Switch = ZigbeeAqaraOpple3Switch;
|
|
@@ -100,6 +100,6 @@ class ioBrokerMain {
|
|
|
100
100
|
services_1.TimeCallbackService.performCheck();
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
exports.ioBrokerMain = ioBrokerMain;
|
|
104
103
|
ioBrokerMain.SplitKeys = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
|
105
104
|
ioBrokerMain.roomConstructors = {};
|
|
105
|
+
exports.ioBrokerMain = ioBrokerMain;
|
|
@@ -105,7 +105,7 @@ class SonosService {
|
|
|
105
105
|
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Debug, `Sonos ${d.Uuid} für ${d.Name} gefunden`);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
exports.SonosService = SonosService;
|
|
109
108
|
SonosService.all = [];
|
|
110
109
|
SonosService.devicesDict = {};
|
|
111
110
|
SonosService.ownDevices = {};
|
|
111
|
+
exports.SonosService = SonosService;
|
|
@@ -112,16 +112,11 @@ class TelegramCommands {
|
|
|
112
112
|
}, `Retrieves the button assignments for all buttons in home`));
|
|
113
113
|
if (devices_1.Devices.energymanager !== undefined) {
|
|
114
114
|
telegram_service_1.TelegramService.addMessageCallback(new telegramMessageCalback_1.TelegramMessageCallback('EnergyManager', /\/get_energy_values/, async (m) => {
|
|
115
|
-
var _a, _b
|
|
115
|
+
var _a, _b;
|
|
116
116
|
if (m.from === undefined)
|
|
117
117
|
return false;
|
|
118
|
-
const response = ['Current Energy Manager
|
|
119
|
-
response.push(
|
|
120
|
-
response.push(`Total Consumption: ${(_b = devices_1.Devices.energymanager) === null || _b === void 0 ? void 0 : _b.totalConsumption}W`);
|
|
121
|
-
response.push(`Excess Consumption: ${(_c = devices_1.Devices.energymanager) === null || _c === void 0 ? void 0 : _c.excessEnergyConsumerConsumption}W`);
|
|
122
|
-
response.push(`Drawing Wattage: ${(_d = devices_1.Devices.energymanager) === null || _d === void 0 ? void 0 : _d.drawingWattage}W`);
|
|
123
|
-
response.push(`Self Consuming Wattage: ${(_e = devices_1.Devices.energymanager) === null || _e === void 0 ? void 0 : _e.selfConsumingWattage}W`);
|
|
124
|
-
response.push(`Injecting Wattage: ${(_f = devices_1.Devices.energymanager) === null || _f === void 0 ? void 0 : _f.injectingWattage}W`);
|
|
118
|
+
const response = ['Current Energy Manager report:'];
|
|
119
|
+
response.push((_b = (_a = devices_1.Devices.energymanager) === null || _a === void 0 ? void 0 : _a.getReport()) !== null && _b !== void 0 ? _b : 'No Energy Manager found');
|
|
125
120
|
telegram_service_1.TelegramService.sendMessage([m.chat.id], response.join('\n'));
|
|
126
121
|
return true;
|
|
127
122
|
}, `Retrieves the current energy manager values`));
|
|
@@ -153,8 +153,8 @@ class TelegramService {
|
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
exports.TelegramService = TelegramService;
|
|
157
156
|
TelegramService.active = false;
|
|
158
157
|
TelegramService.settings = undefined;
|
|
159
158
|
// private static restartTimeout: NodeJS.Timeout | undefined = undefined;
|
|
160
159
|
TelegramService.callbacks = {};
|
|
160
|
+
exports.TelegramService = TelegramService;
|
|
@@ -106,10 +106,10 @@ class MuellService {
|
|
|
106
106
|
this.brauneTonne.check();
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
-
exports.MuellService = MuellService;
|
|
110
109
|
MuellService.alleTonnen = [];
|
|
111
110
|
MuellService.loadingPending = true;
|
|
112
111
|
MuellService.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
113
112
|
MuellService.lastCheck = new Date(0);
|
|
114
113
|
MuellService._active = false;
|
|
115
114
|
MuellService.defaultSpeaker = undefined;
|
|
115
|
+
exports.MuellService = MuellService;
|
|
@@ -32,5 +32,5 @@ __exportStar(require("./news-service"), exports);
|
|
|
32
32
|
__exportStar(require("./settings-service"), exports);
|
|
33
33
|
__exportStar(require("./ShutterService"), exports);
|
|
34
34
|
__exportStar(require("./tibber-service"), exports);
|
|
35
|
-
__exportStar(require("./victron
|
|
35
|
+
__exportStar(require("./victron/index"), exports);
|
|
36
36
|
__exportStar(require("./time-callback-service"), exports);
|
|
@@ -112,7 +112,6 @@ class ServerLogService {
|
|
|
112
112
|
return true;
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
exports.ServerLogService = ServerLogService;
|
|
116
115
|
ServerLogService.telegramLevel = -1; // Controlled from within Config File
|
|
117
116
|
ServerLogService.storageLevel = 5; // Controlled from within Config File
|
|
118
117
|
ServerLogService.storage = new utils_1.ringStorage(10000);
|
|
@@ -120,3 +119,4 @@ ServerLogService.settings = {
|
|
|
120
119
|
logLevel: 4,
|
|
121
120
|
useTimestamp: false,
|
|
122
121
|
};
|
|
122
|
+
exports.ServerLogService = ServerLogService;
|
|
@@ -39,9 +39,9 @@ class RoomService {
|
|
|
39
39
|
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Schalte alle Lampen in Etage ${floor} auf den Wert ${status}`);
|
|
40
40
|
const rooms = floor > -1 ? this.getAllRoomsOfFloor(floor) : this.Rooms.entries();
|
|
41
41
|
for (const [_name, room] of rooms) {
|
|
42
|
-
(_a = room.LightGroup) === null || _a === void 0 ? void 0 : _a.setAllLampen(status,
|
|
42
|
+
(_a = room.LightGroup) === null || _a === void 0 ? void 0 : _a.setAllLampen(status, undefined, true, timeout);
|
|
43
43
|
(_b = room.LightGroup) === null || _b === void 0 ? void 0 : _b.setAllLED(status);
|
|
44
|
-
(_c = room.LightGroup) === null || _c === void 0 ? void 0 : _c.setAllStecker(status,
|
|
44
|
+
(_c = room.LightGroup) === null || _c === void 0 ? void 0 : _c.setAllStecker(status, undefined, true);
|
|
45
45
|
(_d = room.LightGroup) === null || _d === void 0 ? void 0 : _d.setAllWled(status);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -190,10 +190,10 @@ class RoomService {
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
|
-
exports.RoomService = RoomService;
|
|
194
193
|
RoomService.Rooms = new Map();
|
|
195
194
|
RoomService.awayModeActive = false;
|
|
196
195
|
RoomService.nightAlarmActive = false;
|
|
197
196
|
RoomService.movementHistory = new utils_1.ringStorage(15);
|
|
198
197
|
RoomService._intrusionAlarmActive = false;
|
|
199
198
|
RoomService._intrusionAlarmLevel = 0;
|
|
199
|
+
exports.RoomService = RoomService;
|
|
@@ -178,6 +178,6 @@ Next Sunset: ${TimeCallbackService._nextSunSet.toLocaleString('de-DE')}`);
|
|
|
178
178
|
return (0, sunrise_sunset_js_1.getSunset)(lat !== null && lat !== void 0 ? lat : settings_service_1.SettingsService.latitude, long !== null && long !== void 0 ? long : settings_service_1.SettingsService.longitude, pDay);
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
|
-
exports.TimeCallbackService = TimeCallbackService;
|
|
182
181
|
TimeCallbackService._callbacks = new Map();
|
|
183
182
|
TimeCallbackService._lastCheck = new Date(0);
|
|
183
|
+
exports.TimeCallbackService = TimeCallbackService;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { iExcessEnergyConsumer } from '../../devices';
|
|
2
|
+
export declare class EnergyManagerUtils {
|
|
3
|
+
static turnOnAdditionalConsumer(excessEnergyConsumer: iExcessEnergyConsumer[], lastDeviceChange: {
|
|
4
|
+
newState: boolean;
|
|
5
|
+
device: iExcessEnergyConsumer;
|
|
6
|
+
} | undefined): void | undefined | {
|
|
7
|
+
newState: boolean;
|
|
8
|
+
device: iExcessEnergyConsumer;
|
|
9
|
+
};
|
|
10
|
+
static turnOffAdditionalConsumer(excessEnergyConsumer: iExcessEnergyConsumer[], lastDeviceChange: {
|
|
11
|
+
newState: boolean;
|
|
12
|
+
device: iExcessEnergyConsumer;
|
|
13
|
+
} | undefined): void | undefined | {
|
|
14
|
+
newState: boolean;
|
|
15
|
+
device: iExcessEnergyConsumer;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EnergyManagerUtils = void 0;
|
|
4
|
+
const models_1 = require("../../../models");
|
|
5
|
+
class EnergyManagerUtils {
|
|
6
|
+
static turnOnAdditionalConsumer(excessEnergyConsumer, lastDeviceChange) {
|
|
7
|
+
const potentialDevices = excessEnergyConsumer.filter((e) => {
|
|
8
|
+
if (e.energySettings.priority === -1 || e.on || !e.isAvailableForExcessEnergy()) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
if ((lastDeviceChange === null || lastDeviceChange === void 0 ? void 0 : lastDeviceChange.newState) && e === lastDeviceChange.device) {
|
|
12
|
+
e.log(models_1.LogLevel.Debug, `This woould have been a matching energy consumer, but apperantly last turn on failed...`);
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
return true;
|
|
16
|
+
});
|
|
17
|
+
if (potentialDevices.length === 0) {
|
|
18
|
+
if ((lastDeviceChange === null || lastDeviceChange === void 0 ? void 0 : lastDeviceChange.newState) === true) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
potentialDevices.sort((a, b) => {
|
|
24
|
+
return b.energySettings.priority - a.energySettings.priority;
|
|
25
|
+
});
|
|
26
|
+
return { newState: true, device: potentialDevices[0] };
|
|
27
|
+
}
|
|
28
|
+
static turnOffAdditionalConsumer(excessEnergyConsumer, lastDeviceChange) {
|
|
29
|
+
const potentialDevices = excessEnergyConsumer.filter((e) => {
|
|
30
|
+
if (e.energySettings.priority === -1 || !e.on) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (!e.wasActivatedByExcessEnergy()) {
|
|
34
|
+
e.log(models_1.LogLevel.Info, 'This would have been turned off, but was activated manually....');
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if ((lastDeviceChange === null || lastDeviceChange === void 0 ? void 0 : lastDeviceChange.newState) === false && e === lastDeviceChange.device) {
|
|
38
|
+
e.log(models_1.LogLevel.Debug, `This woould have been a matching turn off energy consumer, but apperantly last turn off failed...`);
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return true;
|
|
42
|
+
});
|
|
43
|
+
if (potentialDevices.length === 0) {
|
|
44
|
+
if ((lastDeviceChange === null || lastDeviceChange === void 0 ? void 0 : lastDeviceChange.newState) === false) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
potentialDevices.sort((a, b) => {
|
|
50
|
+
return a.energySettings.priority - b.energySettings.priority;
|
|
51
|
+
});
|
|
52
|
+
return { newState: false, device: potentialDevices[0] };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.EnergyManagerUtils = EnergyManagerUtils;
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./energy-manager-utils"), exports);
|
|
17
18
|
__exportStar(require("./ringstorage"), exports);
|
|
18
19
|
__exportStar(require("./utils"), exports);
|
|
19
20
|
__exportStar(require("./iDisposeable"), exports);
|