hoffmation-base 1.1.46 → 1.2.0
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/persistence/index.d.ts +0 -1
- package/lib/models/persistence/index.js +0 -1
- package/lib/server/devices/Heizgruppen.d.ts +0 -1
- package/lib/server/devices/Heizgruppen.js +0 -20
- package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +2 -1
- package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +4 -1
- package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +2 -1
- package/lib/server/devices/hmIPDevices/hmIpBewegung.js +2 -2
- package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +6 -2
- package/lib/server/devices/hmIPDevices/hmIpGriff.js +18 -3
- package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +5 -1
- package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +24 -4
- package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +3 -1
- package/lib/server/devices/hmIPDevices/hmIpHeizung.js +11 -2
- package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +3 -1
- package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +12 -4
- package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +3 -1
- package/lib/server/devices/hmIPDevices/hmIpTaster.js +10 -2
- package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +3 -1
- package/lib/server/devices/hmIPDevices/hmIpTherm.js +11 -2
- package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +3 -1
- package/lib/server/devices/hmIPDevices/hmIpTuer.js +6 -0
- package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +3 -1
- package/lib/server/devices/jsObject/jsObjectEnergyManager.js +10 -0
- package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +12 -4
- package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +31 -11
- package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +4 -1
- package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +21 -6
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +4 -1
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +18 -3
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +3 -1
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +11 -3
- package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +2 -2
- package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +3 -1
- package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +11 -3
- package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +4 -1
- package/lib/server/devices/zigbee/zigbeeAquaraWater.js +18 -3
- package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +4 -1
- package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +18 -3
- package/lib/server/devices/zigbee/zigbeeOsramDimmer.js +1 -1
- package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +6 -1
- package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +27 -3
- package/lib/server/ioBroker/connection.d.ts +3 -1
- package/lib/server/ioBroker/connection.js +10 -0
- package/lib/server/services/Telegram/telegram-Commands.js +0 -6
- package/lib/server/services/dbo/iPersist.d.ts +7 -6
- package/lib/server/services/dbo/postgreSqlPersist.d.ts +7 -6
- package/lib/server/services/dbo/postgreSqlPersist.js +79 -74
- package/lib/server/services/time-callback-service.js +2 -2
- package/lib/server/services/utils/iDisposeable.d.ts +3 -0
- package/lib/server/services/utils/iDisposeable.js +2 -0
- package/lib/server/services/utils/index.d.ts +1 -0
- package/lib/server/services/utils/index.js +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/lib/models/persistence/CurrentIlluminationDataPoint.d.ts +0 -8
- package/lib/models/persistence/CurrentIlluminationDataPoint.js +0 -13
|
@@ -3,35 +3,48 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ZigbeeDevice = void 0;
|
|
4
4
|
const models_1 = require("../../../../models");
|
|
5
5
|
const IoBrokerBaseDevice_1 = require("../../IoBrokerBaseDevice");
|
|
6
|
+
const services_1 = require("../../../services");
|
|
6
7
|
class ZigbeeDevice extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
|
|
7
8
|
constructor(pInfo, pType) {
|
|
8
9
|
super(pInfo, pType);
|
|
9
|
-
this.
|
|
10
|
-
this.
|
|
11
|
-
this.
|
|
10
|
+
this._available = false;
|
|
11
|
+
this._linkQuality = 0;
|
|
12
|
+
this.persistZigbeeInterval = services_1.Utils.guardedInterval(() => {
|
|
13
|
+
this.persistZigbeeDevice();
|
|
14
|
+
}, 15 * 60 * 1000, this, false);
|
|
15
|
+
this._lastUpdate = new Date(0);
|
|
12
16
|
this.stateMap = new Map();
|
|
13
17
|
}
|
|
18
|
+
get available() {
|
|
19
|
+
return this._available;
|
|
20
|
+
}
|
|
21
|
+
get linkQuality() {
|
|
22
|
+
return this._linkQuality;
|
|
23
|
+
}
|
|
24
|
+
get lastUpdate() {
|
|
25
|
+
return this._lastUpdate;
|
|
26
|
+
}
|
|
14
27
|
update(idSplit, state, initial = false, pOverride = false) {
|
|
15
28
|
this.log(models_1.LogLevel.DeepTrace, `Zigbee: ${initial ? 'Initiales ' : ''}Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
|
|
16
29
|
if (!pOverride) {
|
|
17
30
|
this.log(models_1.LogLevel.Warn, `Keine Update Überschreibung:\n\tID: ${idSplit.join('.')}\n\tData: ${JSON.stringify(state)}`);
|
|
18
31
|
}
|
|
32
|
+
if (!initial) {
|
|
33
|
+
this._lastUpdate = new Date();
|
|
34
|
+
}
|
|
19
35
|
switch (idSplit[3]) {
|
|
20
36
|
case 'available':
|
|
21
|
-
this.
|
|
22
|
-
if (!this.
|
|
37
|
+
this._available = state.val;
|
|
38
|
+
if (!this._available) {
|
|
23
39
|
this.log(models_1.LogLevel.Debug, `Das Zigbee Gerät ist nicht erreichbar.`);
|
|
24
40
|
}
|
|
25
41
|
break;
|
|
26
42
|
case 'link_quality':
|
|
27
|
-
this.
|
|
28
|
-
if (this.
|
|
29
|
-
this.log(models_1.LogLevel.Debug, `Das Zigbee Gerät hat eine schlechte Verbindung (${this.
|
|
43
|
+
this._linkQuality = state.val;
|
|
44
|
+
if (this._linkQuality < 5) {
|
|
45
|
+
this.log(models_1.LogLevel.Debug, `Das Zigbee Gerät hat eine schlechte Verbindung (${this._linkQuality}).`);
|
|
30
46
|
}
|
|
31
47
|
break;
|
|
32
|
-
case 'voltage':
|
|
33
|
-
this.voltage = state.val.toString();
|
|
34
|
-
break;
|
|
35
48
|
}
|
|
36
49
|
this.stateMap.set(idSplit[3], state);
|
|
37
50
|
const individualCallbacks = this.individualStateCallbacks.get(idSplit[3]);
|
|
@@ -41,5 +54,12 @@ class ZigbeeDevice extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
|
|
|
41
54
|
}
|
|
42
55
|
}
|
|
43
56
|
}
|
|
57
|
+
dispose() {
|
|
58
|
+
clearInterval(this.persistZigbeeInterval);
|
|
59
|
+
}
|
|
60
|
+
persistZigbeeDevice() {
|
|
61
|
+
var _a;
|
|
62
|
+
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistZigbeeDevice(this);
|
|
63
|
+
}
|
|
44
64
|
}
|
|
45
65
|
exports.ZigbeeDevice = ZigbeeDevice;
|
|
@@ -7,9 +7,10 @@ import { DeviceType } from '../../deviceType';
|
|
|
7
7
|
import { IoBrokerDeviceInfo } from '../../IoBrokerDeviceInfo';
|
|
8
8
|
import { PIDController } from '../../../../liquid-pid';
|
|
9
9
|
export declare class ZigbeeHeater extends ZigbeeDevice implements iHeater, iBatteryDevice {
|
|
10
|
+
protected _battery: number;
|
|
10
11
|
readonly persistHeaterInterval: NodeJS.Timeout;
|
|
11
12
|
settings: HeaterSettings;
|
|
12
|
-
battery: number;
|
|
13
|
+
get battery(): number;
|
|
13
14
|
protected _automaticPoints: {
|
|
14
15
|
[name: string]: TemperatureSettings;
|
|
15
16
|
};
|
|
@@ -44,4 +45,6 @@ export declare class ZigbeeHeater extends ZigbeeDevice implements iHeater, iBatt
|
|
|
44
45
|
update(idSplit: string[], state: ioBroker.State, initial?: boolean, pOverride?: boolean): void;
|
|
45
46
|
protected getNextPidLevel(): number;
|
|
46
47
|
private checkSeasonTurnOff;
|
|
48
|
+
persistBatteryDevice(): void;
|
|
49
|
+
dispose(): void;
|
|
47
50
|
}
|
|
@@ -10,11 +10,11 @@ const liquid_pid_1 = require("../../../../liquid-pid");
|
|
|
10
10
|
class ZigbeeHeater extends zigbeeDevice_1.ZigbeeDevice {
|
|
11
11
|
constructor(pInfo, pType) {
|
|
12
12
|
super(pInfo, pType);
|
|
13
|
+
this._battery = -99;
|
|
13
14
|
this.persistHeaterInterval = services_1.Utils.guardedInterval(() => {
|
|
14
15
|
this.persistHeater();
|
|
15
16
|
}, 5 * 60 * 1000, this, false);
|
|
16
17
|
this.settings = new models_1.HeaterSettings();
|
|
17
|
-
this.battery = -99;
|
|
18
18
|
this._automaticPoints = {};
|
|
19
19
|
this._initialSeasonCheckDone = false;
|
|
20
20
|
this._level = 0;
|
|
@@ -41,6 +41,9 @@ class ZigbeeHeater extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
41
41
|
this.checkSeasonTurnOff();
|
|
42
42
|
}, 0, 2, 0));
|
|
43
43
|
}
|
|
44
|
+
get battery() {
|
|
45
|
+
return this._battery;
|
|
46
|
+
}
|
|
44
47
|
get seasonTurnOff() {
|
|
45
48
|
return this._seasonTurnOff;
|
|
46
49
|
}
|
|
@@ -85,12 +88,10 @@ class ZigbeeHeater extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
85
88
|
this._roomTemperature = val;
|
|
86
89
|
}
|
|
87
90
|
checkAutomaticChange() {
|
|
88
|
-
var _a, _b;
|
|
89
91
|
if (!this._initialSeasonCheckDone) {
|
|
90
92
|
this.checkSeasonTurnOff();
|
|
91
93
|
}
|
|
92
94
|
if (!this.settings.automaticMode || this.seasonTurnOff) {
|
|
93
|
-
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.addTemperaturDataPoint(this);
|
|
94
95
|
return;
|
|
95
96
|
}
|
|
96
97
|
const setting = models_1.TemperatureSettings.getActiveSetting(this._automaticPoints, new Date());
|
|
@@ -103,7 +104,6 @@ class ZigbeeHeater extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
103
104
|
this.log(models_1.LogLevel.Debug, `Automatische Temperaturanpassung für ${this.info.customName} auf ${setting.temperature}°C`);
|
|
104
105
|
this.desiredTemperature = setting.temperature;
|
|
105
106
|
}
|
|
106
|
-
(_b = services_1.Utils.dbo) === null || _b === void 0 ? void 0 : _b.addTemperaturDataPoint(this);
|
|
107
107
|
}
|
|
108
108
|
deleteAutomaticPoint(name) {
|
|
109
109
|
if (this._automaticPoints[name] !== undefined)
|
|
@@ -128,8 +128,9 @@ class ZigbeeHeater extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
128
128
|
update(idSplit, state, initial = false, pOverride = false) {
|
|
129
129
|
switch (idSplit[3]) {
|
|
130
130
|
case 'battery':
|
|
131
|
-
this.
|
|
132
|
-
|
|
131
|
+
this._battery = state.val;
|
|
132
|
+
this.persistBatteryDevice();
|
|
133
|
+
if (this._battery < 20) {
|
|
133
134
|
this.log(models_1.LogLevel.Warn, `Das Zigbee Gerät hat unter 20% Batterie.`);
|
|
134
135
|
}
|
|
135
136
|
break;
|
|
@@ -153,5 +154,19 @@ class ZigbeeHeater extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
153
154
|
}
|
|
154
155
|
this._initialSeasonCheckDone = true;
|
|
155
156
|
}
|
|
157
|
+
persistBatteryDevice() {
|
|
158
|
+
var _a;
|
|
159
|
+
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
160
|
+
}
|
|
161
|
+
dispose() {
|
|
162
|
+
if (this.persistHeaterInterval) {
|
|
163
|
+
clearInterval(this.persistHeaterInterval);
|
|
164
|
+
}
|
|
165
|
+
if (this._iAutomaticInterval) {
|
|
166
|
+
clearInterval(this._iAutomaticInterval);
|
|
167
|
+
this._iAutomaticInterval = undefined;
|
|
168
|
+
}
|
|
169
|
+
super.dispose();
|
|
170
|
+
}
|
|
156
171
|
}
|
|
157
172
|
exports.ZigbeeHeater = ZigbeeHeater;
|
|
@@ -5,7 +5,8 @@ import { MagnetPosition } from '../../models';
|
|
|
5
5
|
import { IoBrokerDeviceInfo } from '../../IoBrokerDeviceInfo';
|
|
6
6
|
import { iBatteryDevice } from '../../baseDeviceInterfaces';
|
|
7
7
|
export declare class ZigbeeMagnetContact extends ZigbeeDevice implements iBatteryDevice {
|
|
8
|
-
|
|
8
|
+
protected _battery: number;
|
|
9
|
+
get battery(): number;
|
|
9
10
|
position: MagnetPosition;
|
|
10
11
|
telegramOnOpen: boolean;
|
|
11
12
|
speakOnOpen: boolean;
|
|
@@ -18,4 +19,6 @@ export declare class ZigbeeMagnetContact extends ZigbeeDevice implements iBatter
|
|
|
18
19
|
addClosedCallback(pCallback: (pValue: boolean) => void): void;
|
|
19
20
|
update(idSplit: string[], state: ioBroker.State, initial?: boolean, pOverrride?: boolean): void;
|
|
20
21
|
protected updatePosition(pValue: MagnetPosition): void;
|
|
22
|
+
dispose(): void;
|
|
23
|
+
persistBatteryDevice(): void;
|
|
21
24
|
}
|
|
@@ -8,7 +8,7 @@ const models_2 = require("../../models");
|
|
|
8
8
|
class ZigbeeMagnetContact extends zigbeeDevice_1.ZigbeeDevice {
|
|
9
9
|
constructor(pInfo, deviceType) {
|
|
10
10
|
super(pInfo, deviceType);
|
|
11
|
-
this.
|
|
11
|
+
this._battery = -99;
|
|
12
12
|
this.position = models_2.MagnetPosition.closed;
|
|
13
13
|
this.telegramOnOpen = false;
|
|
14
14
|
this.speakOnOpen = false;
|
|
@@ -16,6 +16,9 @@ class ZigbeeMagnetContact extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
16
16
|
this._openCallback = [];
|
|
17
17
|
this.minutesOpen = 0;
|
|
18
18
|
}
|
|
19
|
+
get battery() {
|
|
20
|
+
return this._battery;
|
|
21
|
+
}
|
|
19
22
|
addOpenCallback(pCallback) {
|
|
20
23
|
this._openCallback.push(pCallback);
|
|
21
24
|
}
|
|
@@ -26,8 +29,9 @@ class ZigbeeMagnetContact extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
26
29
|
super.update(idSplit, state, initial, pOverrride);
|
|
27
30
|
switch (idSplit[3]) {
|
|
28
31
|
case 'battery':
|
|
29
|
-
this.
|
|
30
|
-
|
|
32
|
+
this._battery = state.val;
|
|
33
|
+
this.persistBatteryDevice();
|
|
34
|
+
if (this._battery < 20) {
|
|
31
35
|
this.log(models_1.LogLevel.Warn, `Das Zigbee Gerät hat unter 20% Batterie.`);
|
|
32
36
|
}
|
|
33
37
|
break;
|
|
@@ -90,5 +94,16 @@ class ZigbeeMagnetContact extends zigbeeDevice_1.ZigbeeDevice {
|
|
|
90
94
|
}, 60000, this);
|
|
91
95
|
}
|
|
92
96
|
}
|
|
97
|
+
dispose() {
|
|
98
|
+
if (this._iOpenTimeout) {
|
|
99
|
+
clearInterval(this._iOpenTimeout);
|
|
100
|
+
this._iOpenTimeout = undefined;
|
|
101
|
+
}
|
|
102
|
+
super.dispose();
|
|
103
|
+
}
|
|
104
|
+
persistBatteryDevice() {
|
|
105
|
+
var _a;
|
|
106
|
+
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
107
|
+
}
|
|
93
108
|
}
|
|
94
109
|
exports.ZigbeeMagnetContact = ZigbeeMagnetContact;
|
|
@@ -6,9 +6,10 @@ import { MotionSensorSettings } from '../../../../models';
|
|
|
6
6
|
import { iBatteryDevice, iMotionSensor } from '../../baseDeviceInterfaces';
|
|
7
7
|
import { IoBrokerDeviceInfo } from '../../IoBrokerDeviceInfo';
|
|
8
8
|
export declare class ZigbeeMotionSensor extends ZigbeeDevice implements iMotionSensor, iBatteryDevice {
|
|
9
|
+
private _battery;
|
|
9
10
|
settings: MotionSensorSettings;
|
|
10
11
|
movementDetected: boolean;
|
|
11
|
-
battery: number;
|
|
12
|
+
get battery(): number;
|
|
12
13
|
protected _initialized: boolean;
|
|
13
14
|
protected _movementDetectedCallback: Array<(pValue: boolean) => void>;
|
|
14
15
|
protected _needsMovementResetFallback: boolean;
|
|
@@ -29,4 +30,5 @@ export declare class ZigbeeMotionSensor extends ZigbeeDevice implements iMotionS
|
|
|
29
30
|
update(idSplit: string[], state: ioBroker.State, initial?: boolean, pOverride?: boolean): void;
|
|
30
31
|
private resetFallbackTimeout;
|
|
31
32
|
private startFallbackTimeout;
|
|
33
|
+
persistBatteryDevice(): void;
|
|
32
34
|
}
|
|
@@ -9,9 +9,9 @@ class ZigbeeMotionSensor extends index_1.ZigbeeDevice {
|
|
|
9
9
|
constructor(pInfo, type) {
|
|
10
10
|
var _a;
|
|
11
11
|
super(pInfo, type);
|
|
12
|
+
this._battery = -99;
|
|
12
13
|
this.settings = new models_1.MotionSensorSettings();
|
|
13
14
|
this.movementDetected = false;
|
|
14
|
-
this.battery = -99;
|
|
15
15
|
this._initialized = false;
|
|
16
16
|
this._movementDetectedCallback = [];
|
|
17
17
|
this._needsMovementResetFallback = true;
|
|
@@ -34,6 +34,9 @@ class ZigbeeMotionSensor extends index_1.ZigbeeDevice {
|
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
+
get battery() {
|
|
38
|
+
return this._battery;
|
|
39
|
+
}
|
|
37
40
|
// Time since last motion in seconds
|
|
38
41
|
get timeSinceLastMotion() {
|
|
39
42
|
return this._timeSinceLastMotion;
|
|
@@ -90,8 +93,9 @@ class ZigbeeMotionSensor extends index_1.ZigbeeDevice {
|
|
|
90
93
|
super.update(idSplit, state, initial, pOverride);
|
|
91
94
|
switch (idSplit[3]) {
|
|
92
95
|
case 'battery':
|
|
93
|
-
this.
|
|
94
|
-
|
|
96
|
+
this._battery = state.val;
|
|
97
|
+
this.persistBatteryDevice();
|
|
98
|
+
if (this._battery < 20) {
|
|
95
99
|
this.log(models_1.LogLevel.Warn, `Das Zigbee Gerät hat unter 20% Batterie.`);
|
|
96
100
|
}
|
|
97
101
|
break;
|
|
@@ -121,5 +125,9 @@ class ZigbeeMotionSensor extends index_1.ZigbeeDevice {
|
|
|
121
125
|
this.updateMovement(false);
|
|
122
126
|
}, 270000, this);
|
|
123
127
|
}
|
|
128
|
+
persistBatteryDevice() {
|
|
129
|
+
var _a;
|
|
130
|
+
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
131
|
+
}
|
|
124
132
|
}
|
|
125
133
|
exports.ZigbeeMotionSensor = ZigbeeMotionSensor;
|
|
@@ -31,9 +31,9 @@ class ZigbeeAquaraMotion extends BaseDevices_1.ZigbeeMotionSensor {
|
|
|
31
31
|
return this._illuminance;
|
|
32
32
|
}
|
|
33
33
|
set currentIllumination(value) {
|
|
34
|
-
var _a
|
|
34
|
+
var _a;
|
|
35
35
|
this._illuminance = value;
|
|
36
|
-
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.
|
|
36
|
+
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistIlluminationSensor(this);
|
|
37
37
|
}
|
|
38
38
|
update(idSplit, state, initial = false) {
|
|
39
39
|
this.log(models_1.LogLevel.DeepTrace, `Motion update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
|
|
@@ -3,7 +3,8 @@ import { iBatteryDevice, iVibrationSensor } from '../baseDeviceInterfaces';
|
|
|
3
3
|
import { ZigbeeDevice } from './BaseDevices';
|
|
4
4
|
import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
|
|
5
5
|
export declare class ZigbeeAquaraVibra extends ZigbeeDevice implements iVibrationSensor, iBatteryDevice {
|
|
6
|
-
|
|
6
|
+
private _battery;
|
|
7
|
+
get battery(): number;
|
|
7
8
|
sensitivity: string;
|
|
8
9
|
tiltAngle: number;
|
|
9
10
|
tiltAngleX: number;
|
|
@@ -27,4 +28,5 @@ export declare class ZigbeeAquaraVibra extends ZigbeeDevice implements iVibratio
|
|
|
27
28
|
update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
|
|
28
29
|
setSensitivity(pVal: number): void;
|
|
29
30
|
alarmCheck(): void;
|
|
31
|
+
persistBatteryDevice(): void;
|
|
30
32
|
}
|
|
@@ -9,7 +9,7 @@ const DeviceCapability_1 = require("../DeviceCapability");
|
|
|
9
9
|
class ZigbeeAquaraVibra extends BaseDevices_1.ZigbeeDevice {
|
|
10
10
|
constructor(pInfo) {
|
|
11
11
|
super(pInfo, deviceType_1.DeviceType.ZigbeeAquaraVibra);
|
|
12
|
-
this.
|
|
12
|
+
this._battery = -99;
|
|
13
13
|
this.sensitivity = '';
|
|
14
14
|
this.tiltAngle = 0;
|
|
15
15
|
this.tiltAngleX = 0;
|
|
@@ -31,6 +31,9 @@ class ZigbeeAquaraVibra extends BaseDevices_1.ZigbeeDevice {
|
|
|
31
31
|
services_1.PollyService.preloadTTS(this._alarmMessage);
|
|
32
32
|
this._idSensitivity = `${this.info.fullID}.sensitivity`;
|
|
33
33
|
}
|
|
34
|
+
get battery() {
|
|
35
|
+
return this._battery;
|
|
36
|
+
}
|
|
34
37
|
get vibrationBlockedByGriff() {
|
|
35
38
|
return this._vibrationBlockedByGriff;
|
|
36
39
|
}
|
|
@@ -56,8 +59,9 @@ class ZigbeeAquaraVibra extends BaseDevices_1.ZigbeeDevice {
|
|
|
56
59
|
super.update(idSplit, state, initial, true);
|
|
57
60
|
switch (idSplit[3]) {
|
|
58
61
|
case 'battery':
|
|
59
|
-
this.
|
|
60
|
-
|
|
62
|
+
this._battery = state.val;
|
|
63
|
+
this.persistBatteryDevice();
|
|
64
|
+
if (this._battery < 20) {
|
|
61
65
|
this.log(models_1.LogLevel.Warn, `Das Zigbee Gerät hat unter 20% Batterie.`);
|
|
62
66
|
}
|
|
63
67
|
break;
|
|
@@ -137,5 +141,9 @@ class ZigbeeAquaraVibra extends BaseDevices_1.ZigbeeDevice {
|
|
|
137
141
|
services_1.SonosService.speakOnAll(message);
|
|
138
142
|
this.log(models_1.LogLevel.Alert, message);
|
|
139
143
|
}
|
|
144
|
+
persistBatteryDevice() {
|
|
145
|
+
var _a;
|
|
146
|
+
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
147
|
+
}
|
|
140
148
|
}
|
|
141
149
|
exports.ZigbeeAquaraVibra = ZigbeeAquaraVibra;
|
|
@@ -4,7 +4,8 @@ import { ZigbeeDevice } from './BaseDevices';
|
|
|
4
4
|
import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
|
|
5
5
|
import { iBatteryDevice } from '../baseDeviceInterfaces';
|
|
6
6
|
export declare class ZigbeeAquaraWater extends ZigbeeDevice implements iBatteryDevice {
|
|
7
|
-
|
|
7
|
+
private _battery;
|
|
8
|
+
get battery(): number;
|
|
8
9
|
water: boolean;
|
|
9
10
|
iAlarmTimeout: NodeJS.Timeout | undefined;
|
|
10
11
|
private _messageAlarmFirst;
|
|
@@ -18,4 +19,6 @@ export declare class ZigbeeAquaraWater extends ZigbeeDevice implements iBatteryD
|
|
|
18
19
|
stopAlarm(quiet?: boolean, timeout?: number): void;
|
|
19
20
|
private startAlarm;
|
|
20
21
|
private alarm;
|
|
22
|
+
persistBatteryDevice(): void;
|
|
23
|
+
dispose(): void;
|
|
21
24
|
}
|
|
@@ -9,7 +9,7 @@ const DeviceCapability_1 = require("../DeviceCapability");
|
|
|
9
9
|
class ZigbeeAquaraWater extends BaseDevices_1.ZigbeeDevice {
|
|
10
10
|
constructor(pInfo) {
|
|
11
11
|
super(pInfo, deviceType_1.DeviceType.ZigbeeAquaraWater);
|
|
12
|
-
this.
|
|
12
|
+
this._battery = -99;
|
|
13
13
|
this.water = false;
|
|
14
14
|
this.iAlarmTimeout = undefined;
|
|
15
15
|
this._messageAlarmFirst = '';
|
|
@@ -22,6 +22,9 @@ class ZigbeeAquaraWater extends BaseDevices_1.ZigbeeDevice {
|
|
|
22
22
|
this._messageAlarm = services_1.Res.waterAlarmRepeat(this.info.customName, this._roomName);
|
|
23
23
|
this._messageAlarmEnd = services_1.Res.waterAlarmEnd(this._roomName);
|
|
24
24
|
}
|
|
25
|
+
get battery() {
|
|
26
|
+
return this._battery;
|
|
27
|
+
}
|
|
25
28
|
set roomName(val) {
|
|
26
29
|
this._roomName = val;
|
|
27
30
|
this._messageAlarmFirst = services_1.Res.waterAlarmStart(this.info.customName, this._roomName);
|
|
@@ -36,8 +39,9 @@ class ZigbeeAquaraWater extends BaseDevices_1.ZigbeeDevice {
|
|
|
36
39
|
super.update(idSplit, state, initial, true);
|
|
37
40
|
switch (idSplit[3]) {
|
|
38
41
|
case 'battery':
|
|
39
|
-
this.
|
|
40
|
-
|
|
42
|
+
this._battery = state.val;
|
|
43
|
+
this.persistBatteryDevice();
|
|
44
|
+
if (this._battery < 20) {
|
|
41
45
|
this.log(models_1.LogLevel.Warn, `Das Zigbee Gerät hat unter 20% Batterie.`);
|
|
42
46
|
}
|
|
43
47
|
break;
|
|
@@ -94,5 +98,16 @@ class ZigbeeAquaraWater extends BaseDevices_1.ZigbeeDevice {
|
|
|
94
98
|
services_1.SonosService.speakOnAll(message, 80);
|
|
95
99
|
});
|
|
96
100
|
}
|
|
101
|
+
persistBatteryDevice() {
|
|
102
|
+
var _a;
|
|
103
|
+
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
104
|
+
}
|
|
105
|
+
dispose() {
|
|
106
|
+
if (this.iAlarmTimeout) {
|
|
107
|
+
clearInterval(this.iAlarmTimeout);
|
|
108
|
+
this.iAlarmTimeout = undefined;
|
|
109
|
+
}
|
|
110
|
+
super.dispose();
|
|
111
|
+
}
|
|
97
112
|
}
|
|
98
113
|
exports.ZigbeeAquaraWater = ZigbeeAquaraWater;
|
|
@@ -4,7 +4,8 @@ import { ZigbeeDevice } from './BaseDevices';
|
|
|
4
4
|
import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
|
|
5
5
|
import { iBatteryDevice } from '../baseDeviceInterfaces';
|
|
6
6
|
export declare class ZigbeeHeimanSmoke extends ZigbeeDevice implements iBatteryDevice {
|
|
7
|
-
|
|
7
|
+
private _battery;
|
|
8
|
+
get battery(): number;
|
|
8
9
|
smoke: boolean;
|
|
9
10
|
iAlarmTimeout: NodeJS.Timeout | undefined;
|
|
10
11
|
private _messageAlarmFirst;
|
|
@@ -17,4 +18,6 @@ export declare class ZigbeeHeimanSmoke extends ZigbeeDevice implements iBatteryD
|
|
|
17
18
|
stopAlarm(quiet?: boolean): void;
|
|
18
19
|
private startAlarm;
|
|
19
20
|
private alarm;
|
|
21
|
+
persistBatteryDevice(): void;
|
|
22
|
+
dispose(): void;
|
|
20
23
|
}
|
|
@@ -9,7 +9,7 @@ const DeviceCapability_1 = require("../DeviceCapability");
|
|
|
9
9
|
class ZigbeeHeimanSmoke extends BaseDevices_1.ZigbeeDevice {
|
|
10
10
|
constructor(pInfo) {
|
|
11
11
|
super(pInfo, deviceType_1.DeviceType.ZigbeeHeimanSmoke);
|
|
12
|
-
this.
|
|
12
|
+
this._battery = -99;
|
|
13
13
|
this.smoke = false;
|
|
14
14
|
this.iAlarmTimeout = undefined;
|
|
15
15
|
this._messageAlarmFirst = '';
|
|
@@ -21,6 +21,9 @@ class ZigbeeHeimanSmoke extends BaseDevices_1.ZigbeeDevice {
|
|
|
21
21
|
this._messageAlarm = services_1.Res.fireAlarmRepeat(this._roomName, this.info.customName);
|
|
22
22
|
this._messageAlarmEnd = services_1.Res.fireAlarmEnd(this._roomName);
|
|
23
23
|
}
|
|
24
|
+
get battery() {
|
|
25
|
+
return this._battery;
|
|
26
|
+
}
|
|
24
27
|
set roomName(val) {
|
|
25
28
|
this._roomName = val;
|
|
26
29
|
this._messageAlarmFirst = services_1.Res.fireAlarmStart(this._roomName, this.info.customName);
|
|
@@ -35,8 +38,9 @@ class ZigbeeHeimanSmoke extends BaseDevices_1.ZigbeeDevice {
|
|
|
35
38
|
super.update(idSplit, state, initial, true);
|
|
36
39
|
switch (idSplit[3]) {
|
|
37
40
|
case 'battery':
|
|
38
|
-
this.
|
|
39
|
-
|
|
41
|
+
this._battery = state.val;
|
|
42
|
+
this.persistBatteryDevice();
|
|
43
|
+
if (this._battery < 20) {
|
|
40
44
|
this.log(models_1.LogLevel.Warn, `Das Zigbee Gerät hat unter 20% Batterie.`);
|
|
41
45
|
}
|
|
42
46
|
break;
|
|
@@ -90,5 +94,16 @@ class ZigbeeHeimanSmoke extends BaseDevices_1.ZigbeeDevice {
|
|
|
90
94
|
services_1.RoomService.setAllRolloOfFloor(-1, 100);
|
|
91
95
|
});
|
|
92
96
|
}
|
|
97
|
+
persistBatteryDevice() {
|
|
98
|
+
var _a;
|
|
99
|
+
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
100
|
+
}
|
|
101
|
+
dispose() {
|
|
102
|
+
if (this.iAlarmTimeout) {
|
|
103
|
+
clearInterval(this.iAlarmTimeout);
|
|
104
|
+
this.iAlarmTimeout = undefined;
|
|
105
|
+
}
|
|
106
|
+
super.dispose();
|
|
107
|
+
}
|
|
93
108
|
}
|
|
94
109
|
exports.ZigbeeHeimanSmoke = ZigbeeHeimanSmoke;
|
|
@@ -5,7 +5,7 @@ const BaseDevices_1 = require("./BaseDevices");
|
|
|
5
5
|
const deviceType_1 = require("../deviceType");
|
|
6
6
|
class ZigbeeOsramDimmer extends BaseDevices_1.ZigbeeDimmer {
|
|
7
7
|
constructor(pInfo) {
|
|
8
|
-
super(pInfo, deviceType_1.DeviceType.
|
|
8
|
+
super(pInfo, deviceType_1.DeviceType.ZigbeeOsramDimmer);
|
|
9
9
|
this._stateNameBrightness = 'brightness';
|
|
10
10
|
this._stateNameState = 'state';
|
|
11
11
|
this._stateNameTransitionTime = 'transition_time';
|
|
@@ -4,8 +4,10 @@ import { ZigbeeDevice } from './BaseDevices';
|
|
|
4
4
|
import { iBatteryDevice, iHumiditySensor, iTemperatureSensor } from '../baseDeviceInterfaces';
|
|
5
5
|
import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
|
|
6
6
|
export declare class ZigbeeSonoffTemp extends ZigbeeDevice implements iTemperatureSensor, iHumiditySensor, iBatteryDevice {
|
|
7
|
+
private _battery;
|
|
7
8
|
readonly persistTemperatureSensorInterval: NodeJS.Timeout;
|
|
8
|
-
|
|
9
|
+
readonly persistHumiditySensorInterval: NodeJS.Timeout;
|
|
10
|
+
get battery(): number;
|
|
9
11
|
private _humidityCallbacks;
|
|
10
12
|
private _temperaturCallbacks;
|
|
11
13
|
constructor(pInfo: IoBrokerDeviceInfo);
|
|
@@ -24,4 +26,7 @@ export declare class ZigbeeSonoffTemp extends ZigbeeDevice implements iTemperatu
|
|
|
24
26
|
addTempChangeCallback(pCallback: (pValue: number) => void): void;
|
|
25
27
|
onTemperaturChange(newTemperatur: number): void;
|
|
26
28
|
persistTemperaturSensor(): void;
|
|
29
|
+
persistHumiditySensor(): void;
|
|
30
|
+
persistBatteryDevice(): void;
|
|
31
|
+
dispose(): void;
|
|
27
32
|
}
|
|
@@ -10,10 +10,13 @@ const services_1 = require("../../services");
|
|
|
10
10
|
class ZigbeeSonoffTemp extends BaseDevices_1.ZigbeeDevice {
|
|
11
11
|
constructor(pInfo) {
|
|
12
12
|
super(pInfo, deviceType_1.DeviceType.ZigbeeSonoffTemp);
|
|
13
|
+
this._battery = -99;
|
|
13
14
|
this.persistTemperatureSensorInterval = services_1.Utils.guardedInterval(() => {
|
|
14
15
|
this.persistTemperaturSensor();
|
|
15
16
|
}, 5 * 60 * 1000, this, false);
|
|
16
|
-
this.
|
|
17
|
+
this.persistHumiditySensorInterval = services_1.Utils.guardedInterval(() => {
|
|
18
|
+
this.persistHumiditySensor();
|
|
19
|
+
}, 5 * 60 * 1000, this, false);
|
|
17
20
|
this._humidityCallbacks = [];
|
|
18
21
|
this._temperaturCallbacks = [];
|
|
19
22
|
this._humidity = baseDeviceInterfaces_1.UNDEFINED_TEMP_VALUE;
|
|
@@ -23,6 +26,9 @@ class ZigbeeSonoffTemp extends BaseDevices_1.ZigbeeDevice {
|
|
|
23
26
|
this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.humiditySensor);
|
|
24
27
|
this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.batteryDriven);
|
|
25
28
|
}
|
|
29
|
+
get battery() {
|
|
30
|
+
return this._battery;
|
|
31
|
+
}
|
|
26
32
|
get roomTemperature() {
|
|
27
33
|
return this._roomTemperature;
|
|
28
34
|
}
|
|
@@ -54,8 +60,9 @@ class ZigbeeSonoffTemp extends BaseDevices_1.ZigbeeDevice {
|
|
|
54
60
|
super.update(idSplit, state, initial, true);
|
|
55
61
|
switch (idSplit[3]) {
|
|
56
62
|
case 'battery':
|
|
57
|
-
this.
|
|
58
|
-
|
|
63
|
+
this._battery = state.val;
|
|
64
|
+
this.persistBatteryDevice();
|
|
65
|
+
if (this._battery < 20) {
|
|
59
66
|
this.log(models_1.LogLevel.Warn, `Das Zigbee Gerät hat unter 20% Batterie.`);
|
|
60
67
|
}
|
|
61
68
|
break;
|
|
@@ -86,5 +93,22 @@ class ZigbeeSonoffTemp extends BaseDevices_1.ZigbeeDevice {
|
|
|
86
93
|
var _a;
|
|
87
94
|
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistTemperatureSensor(this);
|
|
88
95
|
}
|
|
96
|
+
persistHumiditySensor() {
|
|
97
|
+
var _a;
|
|
98
|
+
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistHumiditySensor(this);
|
|
99
|
+
}
|
|
100
|
+
persistBatteryDevice() {
|
|
101
|
+
var _a;
|
|
102
|
+
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
103
|
+
}
|
|
104
|
+
dispose() {
|
|
105
|
+
if (this.persistTemperatureSensorInterval) {
|
|
106
|
+
clearInterval(this.persistTemperatureSensorInterval);
|
|
107
|
+
}
|
|
108
|
+
if (this.persistHumiditySensorInterval) {
|
|
109
|
+
clearInterval(this.persistHumiditySensorInterval);
|
|
110
|
+
}
|
|
111
|
+
super.dispose();
|
|
112
|
+
}
|
|
89
113
|
}
|
|
90
114
|
exports.ZigbeeSonoffTemp = ZigbeeSonoffTemp;
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
/// <reference types="node" />
|
|
4
4
|
/// <reference types="node" />
|
|
5
5
|
import { IncomingMessage } from 'http';
|
|
6
|
+
import { iDisposable } from '../services';
|
|
6
7
|
import { ConnectionCallbacks } from '../../models';
|
|
7
8
|
import { SocketIOConnectOpts } from './socketIOConnectOptions';
|
|
8
|
-
export declare class IOBrokerConnection {
|
|
9
|
+
export declare class IOBrokerConnection implements iDisposable {
|
|
9
10
|
private _authInfo;
|
|
10
11
|
private _authRunning;
|
|
11
12
|
private _cmdData;
|
|
@@ -156,4 +157,5 @@ export declare class IOBrokerConnection {
|
|
|
156
157
|
private _fillChildren;
|
|
157
158
|
private _queueCmdIfRequired;
|
|
158
159
|
private _detectViews;
|
|
160
|
+
dispose(): void;
|
|
159
161
|
}
|
|
@@ -1345,5 +1345,15 @@ class IOBrokerConnection {
|
|
|
1345
1345
|
callback(err);
|
|
1346
1346
|
});
|
|
1347
1347
|
}
|
|
1348
|
+
dispose() {
|
|
1349
|
+
if (this._connectInterval) {
|
|
1350
|
+
clearInterval(this._connectInterval);
|
|
1351
|
+
this._connectInterval = undefined;
|
|
1352
|
+
}
|
|
1353
|
+
if (this._countInterval) {
|
|
1354
|
+
clearInterval(this._countInterval);
|
|
1355
|
+
this._countInterval = undefined;
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1348
1358
|
}
|
|
1349
1359
|
exports.IOBrokerConnection = IOBrokerConnection;
|
|
@@ -78,12 +78,6 @@ class TelegramCommands {
|
|
|
78
78
|
telegram_service_1.TelegramService.sendMessage([m.chat.id], devices_1.Heizgruppen.getProblems());
|
|
79
79
|
return true;
|
|
80
80
|
}, 'Zeigt Differenzen zwischen Heizungen und den jeweiligen Heizgruppen auf'));
|
|
81
|
-
telegram_service_1.TelegramService.addMessageCallback(new telegramMessageCalback_1.TelegramMessageCallback('HeizungCheckOne', /\/check_1_temperatur.*/, async (m) => {
|
|
82
|
-
if (m.from === undefined)
|
|
83
|
-
return false;
|
|
84
|
-
telegram_service_1.TelegramService.sendMessage([m.chat.id], await devices_1.Heizgruppen.getSpecificInfo(m.text));
|
|
85
|
-
return true;
|
|
86
|
-
}, `Gibt den Verlauf der in \\"\\" übergebenen Heizgruppe aus.`, /\/check_1_temperatur/));
|
|
87
81
|
telegram_service_1.TelegramService.addMessageCallback(new telegramMessageCalback_1.TelegramMessageCallback('AllRolloDown', /\/all_rollo_down/, async (m) => {
|
|
88
82
|
if (m.from === undefined)
|
|
89
83
|
return false;
|