hoffmation-base 0.1.29-9 → 0.1.30-4
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/index.js +4 -0
- package/lib/models/dimmerSettings.d.ts +7 -4
- package/lib/models/dimmerSettings.js +8 -4
- package/lib/models/rooms/RoomBase.js +10 -9
- package/lib/server/config/iConfig.d.ts +9 -0
- package/lib/server/devices/hmIPDevices/hmIpTuer.js +2 -1
- package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +5 -1
- package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +14 -10
- package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +2 -1
- package/lib/server/devices/zigbee/zigbeeAquaraWater.js +7 -6
- package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +7 -6
- package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -1
- package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +19 -14
- package/lib/server/devices/zigbee/zigbeeMagnetContact.js +4 -4
- package/lib/server/services/Sonos/sonos-service.js +0 -2
- package/lib/server/services/Translation/iRessources.d.ts +25 -0
- package/lib/server/services/Translation/iRessources.js +2 -0
- package/lib/server/services/Translation/index.d.ts +2 -0
- package/lib/server/services/Translation/index.js +14 -0
- package/lib/server/services/Translation/res.d.ts +83 -0
- package/lib/server/services/Translation/res.js +147 -0
- package/lib/server/services/Translation/resources.json +78 -0
- package/lib/server/services/index.d.ts +1 -0
- package/lib/server/services/index.js +1 -0
- package/lib/server/services/log-service.d.ts +3 -1
- package/lib/server/services/log-service.js +9 -3
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
package/lib/index.js
CHANGED
|
@@ -25,6 +25,10 @@ exports.HoffmationInitializationObject = HoffmationInitializationObject;
|
|
|
25
25
|
class HoffmationBase {
|
|
26
26
|
static async initializeBeforeIoBroker(initObject) {
|
|
27
27
|
server_1.SettingsService.initialize(initObject.config);
|
|
28
|
+
server_1.Res.initialize(initObject.config.translationSettings);
|
|
29
|
+
if (initObject.config.logSettings) {
|
|
30
|
+
server_1.ServerLogService.initialize(initObject.config.logSettings);
|
|
31
|
+
}
|
|
28
32
|
server_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Hoffmation-Base Startup`);
|
|
29
33
|
if (initObject.config.persistence) {
|
|
30
34
|
await server_1.Persist.initialize(initObject.config.persistence);
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { ActuatorSettings } from './actuatorSettings';
|
|
2
|
+
export declare class DimmerSettings extends ActuatorSettings {
|
|
3
|
+
nightBrightness: number;
|
|
4
|
+
dawnBrightness: number;
|
|
5
|
+
duskBrightness: number;
|
|
6
|
+
dayBrightness: number;
|
|
7
|
+
turnOnThreshhold: number;
|
|
5
8
|
}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DimmerSettings = void 0;
|
|
4
|
-
|
|
4
|
+
const actuatorSettings_1 = require("./actuatorSettings");
|
|
5
|
+
class DimmerSettings extends actuatorSettings_1.ActuatorSettings {
|
|
5
6
|
constructor() {
|
|
6
|
-
|
|
7
|
-
this.
|
|
8
|
-
this.
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.nightBrightness = 50;
|
|
9
|
+
this.dawnBrightness = 75;
|
|
10
|
+
this.duskBrightness = 75;
|
|
11
|
+
this.dayBrightness = 100;
|
|
12
|
+
this.turnOnThreshhold = -1;
|
|
9
13
|
}
|
|
10
14
|
}
|
|
11
15
|
exports.DimmerSettings = DimmerSettings;
|
|
@@ -17,6 +17,7 @@ const persist_1 = require("../../server/services/dbo/persist");
|
|
|
17
17
|
const time_callback_service_1 = require("../../server/services/time-callback-service");
|
|
18
18
|
const sonos_service_1 = require("../../server/services/Sonos/sonos-service");
|
|
19
19
|
const sonosGroup_1 = require("../../server/devices/groups/sonosGroup");
|
|
20
|
+
const res_1 = require("../../server/services/Translation/res");
|
|
20
21
|
class RoomBase {
|
|
21
22
|
constructor(roomName, Einstellungen) {
|
|
22
23
|
this.roomName = roomName;
|
|
@@ -88,7 +89,7 @@ class RoomBase {
|
|
|
88
89
|
this.restoreLight();
|
|
89
90
|
}
|
|
90
91
|
static startAwayMode() {
|
|
91
|
-
sonos_service_1.SonosService.speakOnAll(
|
|
92
|
+
sonos_service_1.SonosService.speakOnAll(res_1.Res.alarmArmed(), 40);
|
|
92
93
|
if (this._awayModeTimer) {
|
|
93
94
|
clearTimeout(this._awayModeTimer);
|
|
94
95
|
}
|
|
@@ -99,7 +100,7 @@ class RoomBase {
|
|
|
99
100
|
}, 60000, this);
|
|
100
101
|
}
|
|
101
102
|
static startNightAlarmMode() {
|
|
102
|
-
sonos_service_1.SonosService.speakOnAll(
|
|
103
|
+
sonos_service_1.SonosService.speakOnAll(res_1.Res.alarmNightModeArmed(), 30);
|
|
103
104
|
if (this._nightModeTimer) {
|
|
104
105
|
clearTimeout(this._nightModeTimer);
|
|
105
106
|
}
|
|
@@ -128,11 +129,11 @@ class RoomBase {
|
|
|
128
129
|
static endAlarmModes() {
|
|
129
130
|
if (this.awayModeActive) {
|
|
130
131
|
telegram_service_1.TelegramService.sendMessage(telegram_service_1.TelegramService.subscribedIDs, `Alarmanalage entschärft`);
|
|
131
|
-
sonos_service_1.SonosService.speakOnAll(
|
|
132
|
+
sonos_service_1.SonosService.speakOnAll(res_1.Res.welcomeHome(), 35);
|
|
132
133
|
}
|
|
133
134
|
if (this.nightAlarmActive) {
|
|
134
135
|
telegram_service_1.TelegramService.sendMessage(telegram_service_1.TelegramService.subscribedIDs, `Nachtmodus der Alarmanlage entschärft`);
|
|
135
|
-
sonos_service_1.SonosService.speakOnAll(
|
|
136
|
+
sonos_service_1.SonosService.speakOnAll(res_1.Res.goodMorning(), 30);
|
|
136
137
|
}
|
|
137
138
|
if (this._nightModeTimer) {
|
|
138
139
|
clearTimeout(this._nightModeTimer);
|
|
@@ -240,11 +241,11 @@ class RoomBase {
|
|
|
240
241
|
let newTimeout = 20000;
|
|
241
242
|
const alarmAutomaticEnd = 15;
|
|
242
243
|
if (this._intrusionAlarmLevel === 1) {
|
|
243
|
-
speakMessage =
|
|
244
|
+
speakMessage = res_1.Res.intruderGreeting();
|
|
244
245
|
volume = 40;
|
|
245
246
|
}
|
|
246
247
|
else if (this._intrusionAlarmLevel === 2) {
|
|
247
|
-
speakMessage =
|
|
248
|
+
speakMessage = res_1.Res.intruderShutterUpPleaseLeave();
|
|
248
249
|
utils_1.Utils.guardedNewThread(() => {
|
|
249
250
|
this.setAllRolloOfFloor(-1, 100);
|
|
250
251
|
this.setAllLampsOfFloor(-1, true);
|
|
@@ -252,11 +253,11 @@ class RoomBase {
|
|
|
252
253
|
}
|
|
253
254
|
else if (this._intrusionAlarmLevel === 3) {
|
|
254
255
|
volume = 70;
|
|
255
|
-
speakMessage =
|
|
256
|
+
speakMessage = res_1.Res.intruderLeaveAndOwnerInformed();
|
|
256
257
|
}
|
|
257
258
|
else if (this._intrusionAlarmLevel <= 5) {
|
|
258
259
|
volume = 80;
|
|
259
|
-
speakMessage =
|
|
260
|
+
speakMessage = res_1.Res.intruderAdditionalDefenseWarning();
|
|
260
261
|
}
|
|
261
262
|
else if (this._intrusionAlarmLevel >= alarmAutomaticEnd) {
|
|
262
263
|
this.stopIntrusionAlarm();
|
|
@@ -264,7 +265,7 @@ class RoomBase {
|
|
|
264
265
|
}
|
|
265
266
|
else {
|
|
266
267
|
volume = 90;
|
|
267
|
-
speakMessage =
|
|
268
|
+
speakMessage = res_1.Res.intruderAlarm();
|
|
268
269
|
newTimeout = 10000;
|
|
269
270
|
}
|
|
270
271
|
this._intrusionAlarmTimeout = utils_1.Utils.guardedTimeout(() => {
|
|
@@ -6,6 +6,8 @@ interface iSonosSettings {
|
|
|
6
6
|
export interface iConfig {
|
|
7
7
|
expressPort?: number;
|
|
8
8
|
ioBrokerUrl: string;
|
|
9
|
+
logSettings?: iLogSettings;
|
|
10
|
+
translationSettings: iTranslationSettings;
|
|
9
11
|
mp3Server?: iMp3Settings;
|
|
10
12
|
muell?: iMuellSettings;
|
|
11
13
|
persistence?: iPersistenceSettings;
|
|
@@ -16,6 +18,10 @@ export interface iConfig {
|
|
|
16
18
|
timeSettings: iTimeSettings;
|
|
17
19
|
weather?: iWeatherSettings;
|
|
18
20
|
}
|
|
21
|
+
export interface iLogSettings {
|
|
22
|
+
logLevel: number;
|
|
23
|
+
useTimestamp: boolean;
|
|
24
|
+
}
|
|
19
25
|
export interface iTimePair {
|
|
20
26
|
hours: number;
|
|
21
27
|
minutes: number;
|
|
@@ -54,4 +60,7 @@ export interface iWeatherSettings {
|
|
|
54
60
|
export interface iMuellSettings {
|
|
55
61
|
calendarURL: string;
|
|
56
62
|
}
|
|
63
|
+
export interface iTranslationSettings {
|
|
64
|
+
language: string;
|
|
65
|
+
}
|
|
57
66
|
export {};
|
|
@@ -9,6 +9,7 @@ const MagnetPosition_1 = require("../models/MagnetPosition");
|
|
|
9
9
|
const telegram_service_1 = require("../../services/Telegram/telegram-service");
|
|
10
10
|
const logLevel_1 = require("../../../models/logLevel");
|
|
11
11
|
const sonos_service_1 = require("../../services/Sonos/sonos-service");
|
|
12
|
+
const res_1 = require("../../services/Translation/res");
|
|
12
13
|
class HmIpTuer extends hmIpDevice_1.HmIPDevice {
|
|
13
14
|
constructor(pInfo) {
|
|
14
15
|
super(pInfo, deviceType_1.DeviceType.HmIpTuer);
|
|
@@ -66,7 +67,7 @@ class HmIpTuer extends hmIpDevice_1.HmIPDevice {
|
|
|
66
67
|
return;
|
|
67
68
|
}
|
|
68
69
|
else if (this._iOpen === undefined) {
|
|
69
|
-
const message =
|
|
70
|
+
const message = res_1.Res.wasOpened(this.info.customName);
|
|
70
71
|
//const message: string = `Die Tür mit dem Namen "${this.info.customName}" wurde geöfnet!`
|
|
71
72
|
telegram_service_1.TelegramService.inform(message);
|
|
72
73
|
sonos_service_1.SonosService.speakOnAll(message, 40);
|
|
@@ -23,7 +23,11 @@ export declare class ZigbeeAquaraMotion extends ZigbeeDevice implements iIllumin
|
|
|
23
23
|
get detectionsToday(): number;
|
|
24
24
|
set detectionsToday(pVal: number);
|
|
25
25
|
constructor(pInfo: DeviceInfo);
|
|
26
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Adds a callback for when a motion state has changed.
|
|
28
|
+
* @param pCallback Function that accepts the new state as parameter
|
|
29
|
+
*/
|
|
30
|
+
addMovementCallback(pCallback: (newState: boolean) => void): void;
|
|
27
31
|
updateMovement(newState: boolean): void;
|
|
28
32
|
update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
|
|
29
33
|
private resetFallbackTimeout;
|
|
@@ -25,11 +25,11 @@ class ZigbeeAquaraMotion extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
25
25
|
persist_1.Persist.getCount(this)
|
|
26
26
|
.then((todayCount) => {
|
|
27
27
|
this.detectionsToday = todayCount.counter;
|
|
28
|
-
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `
|
|
28
|
+
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `Preinitialized movement counter for "${this.info.customName}" with ${this.detectionsToday}`);
|
|
29
29
|
this._initialized = true;
|
|
30
30
|
})
|
|
31
31
|
.catch((err) => {
|
|
32
|
-
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Warn, `Failed to initialize
|
|
32
|
+
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Warn, `Failed to initialize movement counter for "${this.info.customName}", err ${err.message}`);
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
// Currently measured brightness in lux
|
|
@@ -53,7 +53,7 @@ class ZigbeeAquaraMotion extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
53
53
|
this.setState(this.occupancyTimeoutID, value, () => {
|
|
54
54
|
this._motionTimeout = value;
|
|
55
55
|
}, (err) => {
|
|
56
|
-
console.log(`Error
|
|
56
|
+
console.log(`Error occurred while setting motion timeout: ${err}`);
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
get detectionsToday() {
|
|
@@ -64,19 +64,23 @@ class ZigbeeAquaraMotion extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
64
64
|
this._detectionsToday = pVal;
|
|
65
65
|
persist_1.Persist.persistTodayCount(this, pVal, oldVal);
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Adds a callback for when a motion state has changed.
|
|
69
|
+
* @param pCallback Function that accepts the new state as parameter
|
|
70
|
+
*/
|
|
67
71
|
addMovementCallback(pCallback) {
|
|
68
72
|
this._movementDetectedCallback.push(pCallback);
|
|
69
73
|
}
|
|
70
74
|
updateMovement(newState) {
|
|
71
75
|
if (!this._initialized && newState) {
|
|
72
|
-
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `
|
|
76
|
+
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Movement recognized for "${this.info.customName}", but database initialization has not finished yet --> delay.`);
|
|
73
77
|
utils_1.Utils.guardedTimeout(() => {
|
|
74
78
|
this.updateMovement(newState);
|
|
75
79
|
}, 1000, this);
|
|
76
80
|
return;
|
|
77
81
|
}
|
|
78
82
|
if (newState === this.movementDetected) {
|
|
79
|
-
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug,
|
|
83
|
+
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `Skip movement for "${this.info.customName}" because state is already ${newState}`);
|
|
80
84
|
if (newState) {
|
|
81
85
|
// Wenn ein Sensor sich nicht von alleine zurücksetzt, hier erzwingen.
|
|
82
86
|
this.resetFallbackTimeout();
|
|
@@ -86,18 +90,18 @@ class ZigbeeAquaraMotion extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
86
90
|
}
|
|
87
91
|
this.resetFallbackTimeout();
|
|
88
92
|
this.movementDetected = newState;
|
|
89
|
-
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `
|
|
93
|
+
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `New movement state for "${this.info.customName}": ${newState}`);
|
|
90
94
|
if (newState) {
|
|
91
95
|
this.startFallbackTimeout();
|
|
92
96
|
this.detectionsToday++;
|
|
93
|
-
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `
|
|
97
|
+
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `This is movement no. ${this.detectionsToday} for "${this.info.customName}"`);
|
|
94
98
|
}
|
|
95
99
|
for (const c of this._movementDetectedCallback) {
|
|
96
100
|
c(newState);
|
|
97
101
|
}
|
|
98
102
|
}
|
|
99
103
|
update(idSplit, state, initial = false) {
|
|
100
|
-
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.DeepTrace, `
|
|
104
|
+
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.DeepTrace, `Motion update for "${this.info.customName}": ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
|
|
101
105
|
super.update(idSplit, state, initial, true);
|
|
102
106
|
switch (idSplit[3]) {
|
|
103
107
|
case 'occupancy':
|
|
@@ -108,13 +112,13 @@ class ZigbeeAquaraMotion extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
108
112
|
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Motion sensor: Update for time since last motion of ${this.info.customName}: ${state.val}`);
|
|
109
113
|
this._timeSinceLastMotion = state.val;
|
|
110
114
|
break;
|
|
111
|
-
case '
|
|
115
|
+
case 'illuminance':
|
|
112
116
|
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Motion sensor: Update for illuminance of ${this.info.customName}: ${state.val}`);
|
|
113
117
|
this.currentIllumination = state.val;
|
|
114
118
|
break;
|
|
115
119
|
case 'occupancy_timeout':
|
|
116
120
|
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Trace, `Motion sensor: Update for motion timeout of ${this.info.customName}: ${state.val}`);
|
|
117
|
-
this.
|
|
121
|
+
this._motionTimeout = state.val;
|
|
118
122
|
break;
|
|
119
123
|
}
|
|
120
124
|
}
|
|
@@ -8,6 +8,7 @@ const polly_service_1 = require("../../services/Sonos/polly-service");
|
|
|
8
8
|
const zigbeeDevice_1 = require("./zigbeeDevice");
|
|
9
9
|
const logLevel_1 = require("../../../models/logLevel");
|
|
10
10
|
const sonos_service_1 = require("../../services/Sonos/sonos-service");
|
|
11
|
+
const res_1 = require("../../services/Translation/res");
|
|
11
12
|
class ZigbeeAquaraVibra extends zigbeeDevice_1.ZigbeeDevice {
|
|
12
13
|
// TODO Set Sensitivity
|
|
13
14
|
constructor(pInfo) {
|
|
@@ -24,7 +25,7 @@ class ZigbeeAquaraVibra extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
24
25
|
this.vibrationBlockedTimeStamp = 0;
|
|
25
26
|
this._idSensitivity = '';
|
|
26
27
|
this._vibrationBlocked = false;
|
|
27
|
-
this._alarmMessage =
|
|
28
|
+
this._alarmMessage = res_1.Res.vibrationAlarm(this.info.customName);
|
|
28
29
|
polly_service_1.PollyService.preloadTTS(this._alarmMessage);
|
|
29
30
|
this._idSensitivity = `${this.info.fullID}.sensitivity`;
|
|
30
31
|
}
|
|
@@ -8,6 +8,7 @@ const polly_service_1 = require("../../services/Sonos/polly-service");
|
|
|
8
8
|
const zigbeeDevice_1 = require("./zigbeeDevice");
|
|
9
9
|
const logLevel_1 = require("../../../models/logLevel");
|
|
10
10
|
const sonos_service_1 = require("../../services/Sonos/sonos-service");
|
|
11
|
+
const res_1 = require("../../services/Translation/res");
|
|
11
12
|
class ZigbeeAquaraWater extends zigbeeDevice_1.ZigbeeDevice {
|
|
12
13
|
constructor(pInfo) {
|
|
13
14
|
super(pInfo, deviceType_1.DeviceType.ZigbeeAquaraWater);
|
|
@@ -17,15 +18,15 @@ class ZigbeeAquaraWater extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
17
18
|
this._messageAlarmFirst = '';
|
|
18
19
|
this._messageAlarm = '';
|
|
19
20
|
this._messageAlarmEnd = '';
|
|
20
|
-
this._messageAlarmFirst =
|
|
21
|
-
this._messageAlarm =
|
|
22
|
-
this._messageAlarmEnd =
|
|
21
|
+
this._messageAlarmFirst = res_1.Res.waterAlarmStart(this.info.customName, this._roomName);
|
|
22
|
+
this._messageAlarm = res_1.Res.waterAlarmRepeat(this.info.customName, this._roomName);
|
|
23
|
+
this._messageAlarmEnd = res_1.Res.waterAlarmEnd(this._roomName);
|
|
23
24
|
}
|
|
24
25
|
set roomName(val) {
|
|
25
26
|
this._roomName = val;
|
|
26
|
-
this._messageAlarmFirst =
|
|
27
|
-
this._messageAlarm =
|
|
28
|
-
this._messageAlarmEnd =
|
|
27
|
+
this._messageAlarmFirst = res_1.Res.waterAlarmStart(this.info.customName, this._roomName);
|
|
28
|
+
this._messageAlarm = res_1.Res.waterAlarmRepeat(this.info.customName, this._roomName);
|
|
29
|
+
this._messageAlarmEnd = res_1.Res.waterAlarmEnd(this._roomName);
|
|
29
30
|
polly_service_1.PollyService.preloadTTS(this._messageAlarmFirst);
|
|
30
31
|
polly_service_1.PollyService.preloadTTS(this._messageAlarm);
|
|
31
32
|
polly_service_1.PollyService.preloadTTS(this._messageAlarmEnd);
|
|
@@ -9,6 +9,7 @@ const polly_service_1 = require("../../services/Sonos/polly-service");
|
|
|
9
9
|
const zigbeeDevice_1 = require("./zigbeeDevice");
|
|
10
10
|
const logLevel_1 = require("../../../models/logLevel");
|
|
11
11
|
const sonos_service_1 = require("../../services/Sonos/sonos-service");
|
|
12
|
+
const res_1 = require("../../services/Translation/res");
|
|
12
13
|
class ZigbeeHeimanSmoke extends zigbeeDevice_1.ZigbeeDevice {
|
|
13
14
|
constructor(pInfo) {
|
|
14
15
|
super(pInfo, deviceType_1.DeviceType.ZigbeeHeimanSmoke);
|
|
@@ -18,15 +19,15 @@ class ZigbeeHeimanSmoke extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
18
19
|
this._messageAlarmFirst = '';
|
|
19
20
|
this._messageAlarm = '';
|
|
20
21
|
this._messageAlarmEnd = '';
|
|
21
|
-
this._messageAlarmFirst =
|
|
22
|
-
this._messageAlarm =
|
|
23
|
-
this._messageAlarmEnd =
|
|
22
|
+
this._messageAlarmFirst = res_1.Res.fireAlarmStart(this._roomName, this.info.customName);
|
|
23
|
+
this._messageAlarm = res_1.Res.fireAlarmRepeat(this._roomName, this.info.customName);
|
|
24
|
+
this._messageAlarmEnd = res_1.Res.fireAlarmEnd(this._roomName);
|
|
24
25
|
}
|
|
25
26
|
set roomName(val) {
|
|
26
27
|
this._roomName = val;
|
|
27
|
-
this._messageAlarmFirst =
|
|
28
|
-
this._messageAlarm =
|
|
29
|
-
this._messageAlarmEnd =
|
|
28
|
+
this._messageAlarmFirst = res_1.Res.fireAlarmStart(this._roomName, this.info.customName);
|
|
29
|
+
this._messageAlarm = res_1.Res.fireAlarmRepeat(this._roomName, this.info.customName);
|
|
30
|
+
this._messageAlarmEnd = res_1.Res.fireAlarmEnd(this._roomName);
|
|
30
31
|
polly_service_1.PollyService.preloadTTS(this._messageAlarmFirst);
|
|
31
32
|
polly_service_1.PollyService.preloadTTS(this._messageAlarm);
|
|
32
33
|
polly_service_1.PollyService.preloadTTS(this._messageAlarmEnd);
|
|
@@ -19,5 +19,5 @@ export declare class ZigbeeIlluDimmer extends ZigbeeDevice implements iLamp {
|
|
|
19
19
|
update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
|
|
20
20
|
setTimeBased(time: TimeOfDay, timeout?: number, force?: boolean): void;
|
|
21
21
|
setLight(pValue: boolean, timeout?: number, force?: boolean, brightness?: number, transitionTime?: number): void;
|
|
22
|
-
toggleLight(time?: TimeOfDay, force?: boolean): boolean;
|
|
22
|
+
toggleLight(time?: TimeOfDay, force?: boolean, calculateTime?: boolean): boolean;
|
|
23
23
|
}
|
|
@@ -47,14 +47,16 @@ class ZigbeeIlluDimmer extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
47
47
|
setTimeBased(time, timeout = -1, force = false) {
|
|
48
48
|
switch (time) {
|
|
49
49
|
case time_callback_service_1.TimeOfDay.Night:
|
|
50
|
-
this.setLight(true, timeout, force,
|
|
50
|
+
this.setLight(true, timeout, force, this.settings.nightBrightness);
|
|
51
51
|
break;
|
|
52
52
|
case time_callback_service_1.TimeOfDay.AfterSunset:
|
|
53
|
+
this.setLight(true, timeout, force, this.settings.dawnBrightness);
|
|
54
|
+
break;
|
|
53
55
|
case time_callback_service_1.TimeOfDay.BeforeSunrise:
|
|
54
|
-
this.setLight(true, timeout, force,
|
|
56
|
+
this.setLight(true, timeout, force, this.settings.duskBrightness);
|
|
55
57
|
break;
|
|
56
58
|
case time_callback_service_1.TimeOfDay.Daylight:
|
|
57
|
-
this.setLight(true, timeout, force,
|
|
59
|
+
this.setLight(true, timeout, force, this.settings.dayBrightness);
|
|
58
60
|
break;
|
|
59
61
|
}
|
|
60
62
|
}
|
|
@@ -82,18 +84,17 @@ class ZigbeeIlluDimmer extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
82
84
|
brightness = 10;
|
|
83
85
|
}
|
|
84
86
|
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Debug, `Dimmer Schalten: "${this.info.customName}" An: ${pValue}\tHelligkeit: ${brightness}%`);
|
|
85
|
-
this.
|
|
86
|
-
if (err) {
|
|
87
|
-
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Error, `Dimmer schalten ergab Fehler: ${err}`);
|
|
88
|
-
}
|
|
89
|
-
});
|
|
87
|
+
this.setState(this.stateID, pValue);
|
|
90
88
|
this.queuedValue = pValue;
|
|
91
89
|
if (brightness > -1) {
|
|
92
|
-
this.
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
}
|
|
90
|
+
if (brightness < this.settings.turnOnThreshhold) {
|
|
91
|
+
this.setState(this.brightnessID, this.settings.turnOnThreshhold, () => {
|
|
92
|
+
this.setState(this.brightnessID, brightness);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.setState(this.brightnessID, brightness);
|
|
97
|
+
}
|
|
97
98
|
}
|
|
98
99
|
if (this.turnOffTimeout !== undefined) {
|
|
99
100
|
clearTimeout(this.turnOffTimeout);
|
|
@@ -114,9 +115,13 @@ class ZigbeeIlluDimmer extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
114
115
|
}
|
|
115
116
|
}, timeout, this);
|
|
116
117
|
}
|
|
117
|
-
toggleLight(time, force = false) {
|
|
118
|
+
toggleLight(time, force = false, calculateTime = false) {
|
|
119
|
+
var _a;
|
|
118
120
|
const newVal = this.queuedValue !== null ? !this.queuedValue : !this.lightOn;
|
|
119
121
|
const timeout = newVal && force ? 30 * 60 * 1000 : -1;
|
|
122
|
+
if (newVal && time === undefined && calculateTime && this.room !== undefined) {
|
|
123
|
+
time = time_callback_service_1.TimeCallbackService.dayType((_a = this.room) === null || _a === void 0 ? void 0 : _a.Einstellungen.lampOffset);
|
|
124
|
+
}
|
|
120
125
|
if (newVal && time !== undefined) {
|
|
121
126
|
this.setTimeBased(time, timeout, force);
|
|
122
127
|
return true;
|
|
@@ -8,6 +8,7 @@ const logLevel_1 = require("../../../models/logLevel");
|
|
|
8
8
|
const sonos_service_1 = require("../../services/Sonos/sonos-service");
|
|
9
9
|
const zigbeeDevice_1 = require("./zigbeeDevice");
|
|
10
10
|
const MagnetPosition_1 = require("../models/MagnetPosition");
|
|
11
|
+
const res_1 = require("../../services/Translation/res");
|
|
11
12
|
class ZigbeeMagnetContact extends zigbeeDevice_1.ZigbeeDevice {
|
|
12
13
|
constructor(pInfo, deviceType) {
|
|
13
14
|
super(pInfo, deviceType);
|
|
@@ -40,9 +41,9 @@ class ZigbeeMagnetContact extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
40
41
|
if (pValue === MagnetPosition_1.MagnetPosition.closed) {
|
|
41
42
|
if (this._iOpen !== undefined) {
|
|
42
43
|
clearInterval(this._iOpen);
|
|
43
|
-
let message =
|
|
44
|
+
let message = res_1.Res.closedAfterMinutes(this.info.customName, this.minutesOpen.toString(10));
|
|
44
45
|
if (this.minutesOpen === 0) {
|
|
45
|
-
message =
|
|
46
|
+
message = res_1.Res.justClosed(this.info.customName);
|
|
46
47
|
}
|
|
47
48
|
// const message: string = `Die Tür mit dem Namen "${this.info.customName}" wurde nach ${this.minutesOpen} Minuten geschlossen!`;
|
|
48
49
|
log_service_1.ServerLogService.writeLog(logLevel_1.LogLevel.Info, message);
|
|
@@ -53,8 +54,7 @@ class ZigbeeMagnetContact extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
53
54
|
return;
|
|
54
55
|
}
|
|
55
56
|
else if (this._iOpen === undefined) {
|
|
56
|
-
const message =
|
|
57
|
-
//const message: string = `Die Tür mit dem Namen "${this.info.customName}" wurde geöfnet!`
|
|
57
|
+
const message = res_1.Res.wasOpened(this.info.customName);
|
|
58
58
|
telegram_service_1.TelegramService.inform(message);
|
|
59
59
|
sonos_service_1.SonosService.speakOnAll(message, 40);
|
|
60
60
|
this._iOpen = utils_1.Utils.guardedInterval(() => {
|
|
@@ -100,8 +100,6 @@ class SonosService {
|
|
|
100
100
|
}
|
|
101
101
|
const specificTimeout = Math.ceil(duration / 1000) + 5;
|
|
102
102
|
const options = {
|
|
103
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
104
|
-
// @ts-ignore
|
|
105
103
|
catchQueueErrors: true,
|
|
106
104
|
trackUri: `${(_b = settings_service_1.SettingsService.settings.mp3Server) === null || _b === void 0 ? void 0 : _b.serverAddress}/file.mp3?fname=${mp3Name}`,
|
|
107
105
|
delayMs: 750,
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface IRessourceObject {
|
|
2
|
+
de?: string;
|
|
3
|
+
en: string;
|
|
4
|
+
}
|
|
5
|
+
export interface IRessources {
|
|
6
|
+
alarmArmed: IRessourceObject;
|
|
7
|
+
alarmNightModeArmed: IRessourceObject;
|
|
8
|
+
closedAfterMinutes: IRessourceObject;
|
|
9
|
+
fireAlarmEnd: IRessourceObject;
|
|
10
|
+
fireAlarmRepeat: IRessourceObject;
|
|
11
|
+
fireAlarmStart: IRessourceObject;
|
|
12
|
+
goodMorning: IRessourceObject;
|
|
13
|
+
intruderAlarm: IRessourceObject;
|
|
14
|
+
intruderAdditionalDefenseWarning: IRessourceObject;
|
|
15
|
+
intruderGreeting: IRessourceObject;
|
|
16
|
+
intruderLeaveAndOwnerInformed: IRessourceObject;
|
|
17
|
+
intruderShutterUpPleaseLeave: IRessourceObject;
|
|
18
|
+
justClosed: IRessourceObject;
|
|
19
|
+
vibrationAlarm: IRessourceObject;
|
|
20
|
+
waterAlarmEnd: IRessourceObject;
|
|
21
|
+
waterAlarmRepeat: IRessourceObject;
|
|
22
|
+
waterAlarmStart: IRessourceObject;
|
|
23
|
+
wasOpened: IRessourceObject;
|
|
24
|
+
welcomeHome: IRessourceObject;
|
|
25
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./iRessources"), exports);
|
|
14
|
+
__exportStar(require("./res"), exports);
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { iTranslationSettings } from '../../config/iConfig';
|
|
2
|
+
export declare class Res {
|
|
3
|
+
private static translations;
|
|
4
|
+
private static selectedLanguage;
|
|
5
|
+
static initialize(config: iTranslationSettings): void;
|
|
6
|
+
/**
|
|
7
|
+
* Retrieves a string like `Alarm system arming."`
|
|
8
|
+
*/
|
|
9
|
+
static alarmArmed(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Retrieves a string like `Alarm system will be armed in night mode. Sweet Dreams!"`
|
|
12
|
+
*/
|
|
13
|
+
static alarmNightModeArmed(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Retrieves a string like `"@P0" closed after @P1 minutes`
|
|
16
|
+
*/
|
|
17
|
+
static closedAfterMinutes(deviceCustomName: string, minutes: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves a string like `No more smoke: Danger in "@P0" resolved.`
|
|
20
|
+
*/
|
|
21
|
+
static fireAlarmEnd(roomName: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Retrieves a string like `Smoke detector "@P0" active. Possible fire in "@P1".`
|
|
24
|
+
*/
|
|
25
|
+
static fireAlarmRepeat(roomName: string, deviceCustomName: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Retrieves a string like `Smoke detector "@P0" triggered. Possible fire in "@P1".`
|
|
28
|
+
*/
|
|
29
|
+
static fireAlarmStart(roomName: string, deviceCustomName: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Retrieves a string like `Good Morning`
|
|
32
|
+
*/
|
|
33
|
+
static goodMorning(): string;
|
|
34
|
+
/**
|
|
35
|
+
* Retrieves a string like "Alarm. Intruder detected"
|
|
36
|
+
*/
|
|
37
|
+
static intruderAlarm(): string;
|
|
38
|
+
/**
|
|
39
|
+
* Retrieves a string like "Additional defense protocol initiated."
|
|
40
|
+
*/
|
|
41
|
+
static intruderAdditionalDefenseWarning(): string;
|
|
42
|
+
/**
|
|
43
|
+
* Retrieves a string like "Hello potential intruder! You're beeing recorded and the alarm protocol is initiated please leave the building immediately!"
|
|
44
|
+
*/
|
|
45
|
+
static intruderGreeting(): string;
|
|
46
|
+
/**
|
|
47
|
+
* Retrieves a string like "Leave now! The owners and additional emergency contacts are informed!"
|
|
48
|
+
*/
|
|
49
|
+
static intruderLeaveAndOwnerInformed(): string;
|
|
50
|
+
/**
|
|
51
|
+
* Retrieves a string like "All shutter are opening, please leave immediatly."
|
|
52
|
+
*/
|
|
53
|
+
static intruderShutterUpPleaseLeave(): string;
|
|
54
|
+
/**
|
|
55
|
+
* Retrieves a string like `"@P0" just closed`
|
|
56
|
+
*/
|
|
57
|
+
static justClosed(deviceCustomName: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Retrieves a string like `Vibration Alert from "@P0". I repeat: Alarm at "@P0"`
|
|
60
|
+
*/
|
|
61
|
+
static vibrationAlarm(deviceCustomName: string): string;
|
|
62
|
+
/**
|
|
63
|
+
* Retrieves a string like `Water alarm end: Flooding in "@P0" over.`
|
|
64
|
+
*/
|
|
65
|
+
static waterAlarmEnd(roomName: string): string;
|
|
66
|
+
/**
|
|
67
|
+
* Retrieves a string like `"@P0" has triggered. Pool party in "@P1".`
|
|
68
|
+
*/
|
|
69
|
+
static waterAlarmRepeat(deviceCustomName: string, roomName: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* Retrieves a string like `"@P0" detects water. Possible pipe burst in "@P1".`
|
|
72
|
+
*/
|
|
73
|
+
static waterAlarmStart(deviceCustomName: string, roomName: string): string;
|
|
74
|
+
/**
|
|
75
|
+
* Retrieves a string like "Vibration Alert from "@P0". I repeat: Alarm at "@P0""
|
|
76
|
+
*/
|
|
77
|
+
static welcomeHome(): string;
|
|
78
|
+
/**
|
|
79
|
+
* Retrieves a string like `"@P0" was opened`
|
|
80
|
+
*/
|
|
81
|
+
static wasOpened(deviceCustomName: string): string;
|
|
82
|
+
private static fill;
|
|
83
|
+
}
|