hoffmation-base 3.0.0-alpha.89 → 3.0.0-alpha.90
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/action/batteryLevelChangeAction.js +2 -2
- package/lib/models/iJsonOmitKeys.d.ts +9 -0
- package/lib/models/iJsonOmitKeys.js +2 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/server/devices/IoBrokerBaseDevice.d.ts +4 -2
- package/lib/server/devices/IoBrokerBaseDevice.js +3 -1
- package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +4 -13
- package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +10 -0
- package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +3 -7
- package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +3 -7
- package/lib/server/devices/dachs/dachs.js +2 -5
- package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +2 -7
- package/lib/server/devices/dachs/dachsTemperatureSensor.js +9 -31
- package/lib/server/devices/deviceType.d.ts +1 -0
- package/lib/server/devices/deviceType.js +1 -0
- package/lib/server/devices/devices.js +5 -2
- package/lib/server/devices/groups/Window.d.ts +2 -3
- package/lib/server/devices/groups/Window.js +3 -3
- package/lib/server/devices/groups/windowGroup.js +2 -2
- package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +9 -35
- package/lib/server/devices/hmIPDevices/hmIpGriff.js +27 -171
- package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +5 -13
- package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +30 -66
- package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +4 -14
- package/lib/server/devices/hmIPDevices/hmIpHeizung.js +6 -39
- package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +5 -14
- package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +6 -38
- package/lib/server/devices/hmIPDevices/hmIpRoll.js +2 -2
- package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +4 -14
- package/lib/server/devices/hmIPDevices/hmIpTaster.js +6 -38
- package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +4 -14
- package/lib/server/devices/hmIPDevices/hmIpTherm.js +6 -39
- package/lib/server/devices/models/WindowPosition.d.ts +3 -3
- package/lib/server/devices/models/WindowPosition.js +3 -3
- package/lib/server/devices/sharedFunctions/battery.d.ts +31 -0
- package/lib/server/devices/sharedFunctions/battery.js +65 -0
- package/lib/server/devices/sharedFunctions/handleSensor.d.ts +45 -0
- package/lib/server/devices/sharedFunctions/handleSensor.js +150 -0
- package/lib/server/devices/sharedFunctions/humiditySensor.d.ts +18 -0
- package/lib/server/devices/sharedFunctions/humiditySensor.js +46 -0
- package/lib/server/devices/sharedFunctions/index.d.ts +4 -0
- package/lib/server/devices/sharedFunctions/index.js +4 -0
- package/lib/server/devices/sharedFunctions/temperatureSensor.d.ts +31 -0
- package/lib/server/devices/sharedFunctions/temperatureSensor.js +57 -0
- package/lib/server/devices/shelly/shellyTrv.d.ts +5 -16
- package/lib/server/devices/shelly/shellyTrv.js +7 -41
- package/lib/server/devices/smartGarden/smartGardenDevice.d.ts +4 -16
- package/lib/server/devices/smartGarden/smartGardenDevice.js +7 -42
- package/lib/server/devices/smartGarden/smartGardenSensor.d.ts +3 -13
- package/lib/server/devices/smartGarden/smartGardenSensor.js +14 -57
- package/lib/server/devices/velux/veluxShutter.js +2 -2
- package/lib/server/devices/zigbee/BaseDevices/index.d.ts +1 -0
- package/lib/server/devices/zigbee/BaseDevices/index.js +3 -1
- package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +5 -15
- package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +7 -40
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +4 -15
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +7 -40
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +5 -16
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +7 -41
- package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +2 -2
- package/lib/server/devices/zigbee/BaseDevices/zigbeeWindowHandle.d.ts +36 -0
- package/lib/server/devices/zigbee/BaseDevices/zigbeeWindowHandle.js +82 -0
- package/lib/server/devices/zigbee/index.d.ts +1 -0
- package/lib/server/devices/zigbee/index.js +1 -0
- package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +4 -16
- package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +7 -41
- package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +4 -16
- package/lib/server/devices/zigbee/zigbeeAquaraWater.js +7 -41
- package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +4 -16
- package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +7 -41
- package/lib/server/devices/zigbee/zigbeeSodaHandle.d.ts +34 -0
- package/lib/server/devices/zigbee/zigbeeSodaHandle.js +96 -0
- package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +7 -27
- package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +21 -94
- package/lib/server/services/dbo/postgreSqlPersist.js +1 -1
- package/lib/server/services/utils/utils.js +5 -1
- package/lib/server/services/victron/victron-device.d.ts +8 -15
- package/lib/server/services/victron/victron-device.js +22 -51
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -30,9 +30,12 @@ const models_1 = require("../../../models");
|
|
|
30
30
|
const BaseDevices_1 = require("./BaseDevices");
|
|
31
31
|
const DeviceCapability_1 = require("../DeviceCapability");
|
|
32
32
|
const console = __importStar(require("console"));
|
|
33
|
+
const sharedFunctions_1 = require("../sharedFunctions");
|
|
33
34
|
class ZigbeeAquaraVibra extends BaseDevices_1.ZigbeeDevice {
|
|
34
35
|
constructor(pInfo) {
|
|
35
36
|
super(pInfo, deviceType_1.DeviceType.ZigbeeAquaraVibra);
|
|
37
|
+
/** @inheritDoc */
|
|
38
|
+
this.battery = new sharedFunctions_1.Battery(this);
|
|
36
39
|
/**
|
|
37
40
|
* The sensitivity of the vibration sensor
|
|
38
41
|
*/
|
|
@@ -65,16 +68,12 @@ class ZigbeeAquaraVibra extends BaseDevices_1.ZigbeeDevice {
|
|
|
65
68
|
* Whether the vibration sensor is tilted
|
|
66
69
|
*/
|
|
67
70
|
this.tilt = false;
|
|
68
|
-
this._battery = -99;
|
|
69
|
-
this._lastBatteryPersist = 0;
|
|
70
71
|
this._vibration = false;
|
|
71
72
|
this._vibrationBlockedByHandleTimeStamp = 0;
|
|
72
73
|
this._vibrationBlockedByMotionTimeStamp = 0;
|
|
73
74
|
this._idSensitivity = '';
|
|
74
75
|
this._vibrationBlockedByGriff = false;
|
|
75
76
|
this._vibrationBlockedByMotion = false;
|
|
76
|
-
this._lastBatteryLevel = -1;
|
|
77
|
-
this._batteryLevelCallbacks = [];
|
|
78
77
|
this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.batteryDriven);
|
|
79
78
|
this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.vibrationSensor);
|
|
80
79
|
this._alarmMessage = services_1.Res.vibrationAlarm(this.info.customName);
|
|
@@ -95,12 +94,8 @@ class ZigbeeAquaraVibra extends BaseDevices_1.ZigbeeDevice {
|
|
|
95
94
|
}
|
|
96
95
|
// TODO Set Sensitivity
|
|
97
96
|
/** @inheritDoc */
|
|
98
|
-
get
|
|
99
|
-
return this.
|
|
100
|
-
}
|
|
101
|
-
/** @inheritDoc */
|
|
102
|
-
get battery() {
|
|
103
|
-
return this._battery;
|
|
97
|
+
get batteryLevel() {
|
|
98
|
+
return this.battery.level;
|
|
104
99
|
}
|
|
105
100
|
/** @inheritDoc */
|
|
106
101
|
get vibrationBlockedByHandle() {
|
|
@@ -127,19 +122,13 @@ class ZigbeeAquaraVibra extends BaseDevices_1.ZigbeeDevice {
|
|
|
127
122
|
this._vibrationBlockedByMotion = pVal;
|
|
128
123
|
}
|
|
129
124
|
/** @inheritDoc */
|
|
130
|
-
addBatteryLevelCallback(pCallback) {
|
|
131
|
-
this._batteryLevelCallbacks.push(pCallback);
|
|
132
|
-
}
|
|
133
|
-
/** @inheritDoc */
|
|
134
125
|
update(idSplit, state, initial = false) {
|
|
135
126
|
this.log(models_1.LogLevel.DeepTrace, `Stecker Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
|
|
136
127
|
super.update(idSplit, state, initial, true);
|
|
137
128
|
switch (idSplit[3]) {
|
|
138
129
|
case 'battery':
|
|
139
|
-
this.
|
|
140
|
-
this.
|
|
141
|
-
this.persistBatteryDevice();
|
|
142
|
-
if (this._battery < 20) {
|
|
130
|
+
this.battery.level = state.val;
|
|
131
|
+
if (this.batteryLevel < 20) {
|
|
143
132
|
this.log(models_1.LogLevel.Warn, 'Das Zigbee Gerät hat unter 20% Batterie.');
|
|
144
133
|
}
|
|
145
134
|
break;
|
|
@@ -205,16 +194,6 @@ class ZigbeeAquaraVibra extends BaseDevices_1.ZigbeeDevice {
|
|
|
205
194
|
console.log(`Stecker schalten ergab Fehler: ${err}`);
|
|
206
195
|
});
|
|
207
196
|
}
|
|
208
|
-
/** @inheritDoc */
|
|
209
|
-
persistBatteryDevice() {
|
|
210
|
-
var _a;
|
|
211
|
-
const now = services_1.Utils.nowMS();
|
|
212
|
-
if (this._lastBatteryPersist + 60000 > now) {
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
216
|
-
this._lastBatteryPersist = now;
|
|
217
|
-
}
|
|
218
197
|
alarmCheck() {
|
|
219
198
|
this.log(models_1.LogLevel.Debug, `Alarmcheck für ${this.info.customName} Alarmblock Wert: ${this._vibrationBlockedByGriff}`);
|
|
220
199
|
if (this._vibrationBlockedByGriff) {
|
|
@@ -229,18 +208,5 @@ class ZigbeeAquaraVibra extends BaseDevices_1.ZigbeeDevice {
|
|
|
229
208
|
services_1.SonosService.speakOnAll(message);
|
|
230
209
|
this.log(models_1.LogLevel.Alert, message);
|
|
231
210
|
}
|
|
232
|
-
/**
|
|
233
|
-
* Checks whether the battery level did change and if so fires the callbacks
|
|
234
|
-
*/
|
|
235
|
-
checkForBatteryChange() {
|
|
236
|
-
const newLevel = this.battery;
|
|
237
|
-
if (newLevel == -1 || newLevel == this._lastBatteryLevel) {
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
for (const cb of this._batteryLevelCallbacks) {
|
|
241
|
-
cb(new models_1.BatteryLevelChangeAction(this));
|
|
242
|
-
}
|
|
243
|
-
this._lastBatteryLevel = newLevel;
|
|
244
|
-
}
|
|
245
211
|
}
|
|
246
212
|
exports.ZigbeeAquaraVibra = ZigbeeAquaraVibra;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ZigbeeDevice } from './BaseDevices';
|
|
2
|
-
import { BatteryLevelChangeAction } from '../../../models';
|
|
3
2
|
import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
|
|
4
3
|
import { iBatteryDevice } from '../baseDeviceInterfaces';
|
|
4
|
+
import { Battery } from '../sharedFunctions';
|
|
5
5
|
export declare class ZigbeeAquaraWater extends ZigbeeDevice implements iBatteryDevice {
|
|
6
|
+
/** @inheritDoc */
|
|
7
|
+
readonly battery: Battery;
|
|
6
8
|
/**
|
|
7
9
|
* Whether water is detected
|
|
8
10
|
*/
|
|
@@ -12,10 +14,6 @@ export declare class ZigbeeAquaraWater extends ZigbeeDevice implements iBatteryD
|
|
|
12
14
|
* @default undefined (no alarm active)
|
|
13
15
|
*/
|
|
14
16
|
iAlarmTimeout: NodeJS.Timeout | undefined;
|
|
15
|
-
private _battery;
|
|
16
|
-
private _lastBatteryPersist;
|
|
17
|
-
private _lastBatteryLevel;
|
|
18
|
-
private _batteryLevelCallbacks;
|
|
19
17
|
private _messageAlarmFirst;
|
|
20
18
|
private _messageAlarm;
|
|
21
19
|
private _messageAlarmEnd;
|
|
@@ -23,22 +21,12 @@ export declare class ZigbeeAquaraWater extends ZigbeeDevice implements iBatteryD
|
|
|
23
21
|
private _roomName;
|
|
24
22
|
constructor(pInfo: IoBrokerDeviceInfo);
|
|
25
23
|
/** @inheritDoc */
|
|
26
|
-
get
|
|
27
|
-
/** @inheritDoc */
|
|
28
|
-
get battery(): number;
|
|
29
|
-
/** @inheritDoc */
|
|
30
|
-
addBatteryLevelCallback(pCallback: (action: BatteryLevelChangeAction) => void): void;
|
|
24
|
+
get batteryLevel(): number;
|
|
31
25
|
/** @inheritDoc */
|
|
32
26
|
update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
|
|
33
27
|
stopAlarm(quiet?: boolean, timeout?: number): void;
|
|
34
28
|
/** @inheritDoc */
|
|
35
|
-
persistBatteryDevice(): void;
|
|
36
|
-
/** @inheritDoc */
|
|
37
29
|
dispose(): void;
|
|
38
30
|
private startAlarm;
|
|
39
31
|
private alarm;
|
|
40
|
-
/**
|
|
41
|
-
* Checks whether the battery level did change and if so fires the callbacks
|
|
42
|
-
*/
|
|
43
|
-
private checkForBatteryChange;
|
|
44
32
|
}
|
|
@@ -6,10 +6,13 @@ const services_1 = require("../../services");
|
|
|
6
6
|
const BaseDevices_1 = require("./BaseDevices");
|
|
7
7
|
const models_1 = require("../../../models");
|
|
8
8
|
const DeviceCapability_1 = require("../DeviceCapability");
|
|
9
|
+
const sharedFunctions_1 = require("../sharedFunctions");
|
|
9
10
|
// TODO: Add iWaterSensor
|
|
10
11
|
class ZigbeeAquaraWater extends BaseDevices_1.ZigbeeDevice {
|
|
11
12
|
constructor(pInfo) {
|
|
12
13
|
super(pInfo, deviceType_1.DeviceType.ZigbeeAquaraWater);
|
|
14
|
+
/** @inheritDoc */
|
|
15
|
+
this.battery = new sharedFunctions_1.Battery(this);
|
|
13
16
|
/**
|
|
14
17
|
* Whether water is detected
|
|
15
18
|
*/
|
|
@@ -19,10 +22,6 @@ class ZigbeeAquaraWater extends BaseDevices_1.ZigbeeDevice {
|
|
|
19
22
|
* @default undefined (no alarm active)
|
|
20
23
|
*/
|
|
21
24
|
this.iAlarmTimeout = undefined;
|
|
22
|
-
this._battery = -99;
|
|
23
|
-
this._lastBatteryPersist = 0;
|
|
24
|
-
this._lastBatteryLevel = -1;
|
|
25
|
-
this._batteryLevelCallbacks = [];
|
|
26
25
|
this._messageAlarmFirst = '';
|
|
27
26
|
this._messageAlarm = '';
|
|
28
27
|
this._messageAlarmEnd = '';
|
|
@@ -34,16 +33,8 @@ class ZigbeeAquaraWater extends BaseDevices_1.ZigbeeDevice {
|
|
|
34
33
|
this._messageAlarmEnd = services_1.Res.waterAlarmEnd(this._roomName);
|
|
35
34
|
}
|
|
36
35
|
/** @inheritDoc */
|
|
37
|
-
get
|
|
38
|
-
return this.
|
|
39
|
-
}
|
|
40
|
-
/** @inheritDoc */
|
|
41
|
-
get battery() {
|
|
42
|
-
return this._battery;
|
|
43
|
-
}
|
|
44
|
-
/** @inheritDoc */
|
|
45
|
-
addBatteryLevelCallback(pCallback) {
|
|
46
|
-
this._batteryLevelCallbacks.push(pCallback);
|
|
36
|
+
get batteryLevel() {
|
|
37
|
+
return this.battery.level;
|
|
47
38
|
}
|
|
48
39
|
/** @inheritDoc */
|
|
49
40
|
update(idSplit, state, initial = false) {
|
|
@@ -51,10 +42,8 @@ class ZigbeeAquaraWater extends BaseDevices_1.ZigbeeDevice {
|
|
|
51
42
|
super.update(idSplit, state, initial, true);
|
|
52
43
|
switch (idSplit[3]) {
|
|
53
44
|
case 'battery':
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
56
|
-
this.persistBatteryDevice();
|
|
57
|
-
if (this._battery < 20) {
|
|
45
|
+
this.battery.level = state.val;
|
|
46
|
+
if (this.batteryLevel < 20) {
|
|
58
47
|
this.log(models_1.LogLevel.Warn, 'Das Zigbee Gerät hat unter 20% Batterie.');
|
|
59
48
|
}
|
|
60
49
|
break;
|
|
@@ -90,16 +79,6 @@ class ZigbeeAquaraWater extends BaseDevices_1.ZigbeeDevice {
|
|
|
90
79
|
});
|
|
91
80
|
}
|
|
92
81
|
/** @inheritDoc */
|
|
93
|
-
persistBatteryDevice() {
|
|
94
|
-
var _a;
|
|
95
|
-
const now = services_1.Utils.nowMS();
|
|
96
|
-
if (this._lastBatteryPersist + 60000 > now) {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
100
|
-
this._lastBatteryPersist = now;
|
|
101
|
-
}
|
|
102
|
-
/** @inheritDoc */
|
|
103
82
|
dispose() {
|
|
104
83
|
if (this.iAlarmTimeout) {
|
|
105
84
|
clearInterval(this.iAlarmTimeout);
|
|
@@ -129,18 +108,5 @@ class ZigbeeAquaraWater extends BaseDevices_1.ZigbeeDevice {
|
|
|
129
108
|
services_1.SonosService.speakOnAll(message, 80);
|
|
130
109
|
});
|
|
131
110
|
}
|
|
132
|
-
/**
|
|
133
|
-
* Checks whether the battery level did change and if so fires the callbacks
|
|
134
|
-
*/
|
|
135
|
-
checkForBatteryChange() {
|
|
136
|
-
const newLevel = this.battery;
|
|
137
|
-
if (newLevel == -1 || newLevel == this._lastBatteryLevel) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
for (const cb of this._batteryLevelCallbacks) {
|
|
141
|
-
cb(new models_1.BatteryLevelChangeAction(this));
|
|
142
|
-
}
|
|
143
|
-
this._lastBatteryLevel = newLevel;
|
|
144
|
-
}
|
|
145
111
|
}
|
|
146
112
|
exports.ZigbeeAquaraWater = ZigbeeAquaraWater;
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { ZigbeeDevice } from './BaseDevices';
|
|
2
|
-
import { BatteryLevelChangeAction } from '../../../models';
|
|
3
2
|
import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
|
|
4
3
|
import { iBatteryDevice, iSmokeDetectorDevice } from '../baseDeviceInterfaces';
|
|
4
|
+
import { Battery } from '../sharedFunctions';
|
|
5
5
|
export declare class ZigbeeHeimanSmoke extends ZigbeeDevice implements iBatteryDevice, iSmokeDetectorDevice {
|
|
6
|
+
/** @inheritDoc */
|
|
7
|
+
readonly battery: Battery;
|
|
6
8
|
/**
|
|
7
9
|
* The timeout for the alarm to fire again
|
|
8
10
|
* @default undefined (no alarm active)
|
|
9
11
|
*/
|
|
10
12
|
iAlarmTimeout: NodeJS.Timeout | undefined;
|
|
11
|
-
private _battery;
|
|
12
|
-
private _lastBatteryPersist;
|
|
13
|
-
private _lastBatteryLevel;
|
|
14
|
-
private _batteryLevelCallbacks;
|
|
15
13
|
private _smoke;
|
|
16
14
|
private _messageAlarmFirst;
|
|
17
15
|
private _messageAlarm;
|
|
@@ -23,9 +21,7 @@ export declare class ZigbeeHeimanSmoke extends ZigbeeDevice implements iBatteryD
|
|
|
23
21
|
*/
|
|
24
22
|
constructor(pInfo: IoBrokerDeviceInfo);
|
|
25
23
|
/** @inheritDoc */
|
|
26
|
-
get
|
|
27
|
-
/** @inheritDoc */
|
|
28
|
-
get battery(): number;
|
|
24
|
+
get batteryLevel(): number;
|
|
29
25
|
/** @inheritDoc */
|
|
30
26
|
get smoke(): boolean;
|
|
31
27
|
/**
|
|
@@ -33,19 +29,11 @@ export declare class ZigbeeHeimanSmoke extends ZigbeeDevice implements iBatteryD
|
|
|
33
29
|
*/
|
|
34
30
|
set roomName(val: string);
|
|
35
31
|
/** @inheritDoc */
|
|
36
|
-
addBatteryLevelCallback(pCallback: (action: BatteryLevelChangeAction) => void): void;
|
|
37
|
-
/** @inheritDoc */
|
|
38
32
|
update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
|
|
39
33
|
/** @inheritDoc */
|
|
40
34
|
stopAlarm(quiet?: boolean): void;
|
|
41
|
-
/** @inheritdoc */
|
|
42
|
-
persistBatteryDevice(): void;
|
|
43
35
|
/** @inheritDoc */
|
|
44
36
|
dispose(): void;
|
|
45
37
|
private startAlarm;
|
|
46
38
|
private alarm;
|
|
47
|
-
/**
|
|
48
|
-
* Checks whether the battery level did change and if so fires the callbacks
|
|
49
|
-
*/
|
|
50
|
-
private checkForBatteryChange;
|
|
51
39
|
}
|
|
@@ -6,6 +6,7 @@ const services_1 = require("../../services");
|
|
|
6
6
|
const BaseDevices_1 = require("./BaseDevices");
|
|
7
7
|
const models_1 = require("../../../models");
|
|
8
8
|
const DeviceCapability_1 = require("../DeviceCapability");
|
|
9
|
+
const sharedFunctions_1 = require("../sharedFunctions");
|
|
9
10
|
class ZigbeeHeimanSmoke extends BaseDevices_1.ZigbeeDevice {
|
|
10
11
|
/**
|
|
11
12
|
* Creates an instance of {@link DeviceType.ZigbeeHeimanSmoke}.
|
|
@@ -13,15 +14,13 @@ class ZigbeeHeimanSmoke extends BaseDevices_1.ZigbeeDevice {
|
|
|
13
14
|
*/
|
|
14
15
|
constructor(pInfo) {
|
|
15
16
|
super(pInfo, deviceType_1.DeviceType.ZigbeeHeimanSmoke);
|
|
17
|
+
/** @inheritDoc */
|
|
18
|
+
this.battery = new sharedFunctions_1.Battery(this);
|
|
16
19
|
/**
|
|
17
20
|
* The timeout for the alarm to fire again
|
|
18
21
|
* @default undefined (no alarm active)
|
|
19
22
|
*/
|
|
20
23
|
this.iAlarmTimeout = undefined;
|
|
21
|
-
this._battery = -99;
|
|
22
|
-
this._lastBatteryPersist = 0;
|
|
23
|
-
this._lastBatteryLevel = -1;
|
|
24
|
-
this._batteryLevelCallbacks = [];
|
|
25
24
|
this._smoke = false;
|
|
26
25
|
this._messageAlarmFirst = '';
|
|
27
26
|
this._messageAlarm = '';
|
|
@@ -34,12 +33,8 @@ class ZigbeeHeimanSmoke extends BaseDevices_1.ZigbeeDevice {
|
|
|
34
33
|
this._messageAlarmEnd = services_1.Res.fireAlarmEnd(this._roomName);
|
|
35
34
|
}
|
|
36
35
|
/** @inheritDoc */
|
|
37
|
-
get
|
|
38
|
-
return this.
|
|
39
|
-
}
|
|
40
|
-
/** @inheritDoc */
|
|
41
|
-
get battery() {
|
|
42
|
-
return this._battery;
|
|
36
|
+
get batteryLevel() {
|
|
37
|
+
return this.battery.level;
|
|
43
38
|
}
|
|
44
39
|
/** @inheritDoc */
|
|
45
40
|
get smoke() {
|
|
@@ -58,19 +53,13 @@ class ZigbeeHeimanSmoke extends BaseDevices_1.ZigbeeDevice {
|
|
|
58
53
|
services_1.PollyService.preloadTTS(this._messageAlarmEnd);
|
|
59
54
|
}
|
|
60
55
|
/** @inheritDoc */
|
|
61
|
-
addBatteryLevelCallback(pCallback) {
|
|
62
|
-
this._batteryLevelCallbacks.push(pCallback);
|
|
63
|
-
}
|
|
64
|
-
/** @inheritDoc */
|
|
65
56
|
update(idSplit, state, initial = false) {
|
|
66
57
|
this.log(models_1.LogLevel.DeepTrace, `Smoke Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
|
|
67
58
|
super.update(idSplit, state, initial, true);
|
|
68
59
|
switch (idSplit[3]) {
|
|
69
60
|
case 'battery':
|
|
70
|
-
this.
|
|
71
|
-
this.
|
|
72
|
-
this.persistBatteryDevice();
|
|
73
|
-
if (this._battery < 20) {
|
|
61
|
+
this.battery.level = state.val;
|
|
62
|
+
if (this.batteryLevel < 20) {
|
|
74
63
|
this.log(models_1.LogLevel.Warn, 'Das Zigbee Gerät hat unter 20% Batterie.');
|
|
75
64
|
}
|
|
76
65
|
break;
|
|
@@ -103,16 +92,6 @@ class ZigbeeHeimanSmoke extends BaseDevices_1.ZigbeeDevice {
|
|
|
103
92
|
services_1.SonosService.speakOnAll(message);
|
|
104
93
|
});
|
|
105
94
|
}
|
|
106
|
-
/** @inheritdoc */
|
|
107
|
-
persistBatteryDevice() {
|
|
108
|
-
var _a;
|
|
109
|
-
const now = services_1.Utils.nowMS();
|
|
110
|
-
if (this._lastBatteryPersist + 60000 > now) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
114
|
-
this._lastBatteryPersist = now;
|
|
115
|
-
}
|
|
116
95
|
/** @inheritDoc */
|
|
117
96
|
dispose() {
|
|
118
97
|
if (this.iAlarmTimeout) {
|
|
@@ -143,18 +122,5 @@ class ZigbeeHeimanSmoke extends BaseDevices_1.ZigbeeDevice {
|
|
|
143
122
|
services_1.RoomService.setAllShutterOfFloor(new models_1.FloorSetAllShuttersCommand(models_1.CommandSource.Force, 100, undefined, 'Fire alarm'));
|
|
144
123
|
});
|
|
145
124
|
}
|
|
146
|
-
/**
|
|
147
|
-
* Checks whether the battery level did change and if so fires the callbacks
|
|
148
|
-
*/
|
|
149
|
-
checkForBatteryChange() {
|
|
150
|
-
const newLevel = this.battery;
|
|
151
|
-
if (newLevel == -1 || newLevel == this._lastBatteryLevel) {
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
for (const cb of this._batteryLevelCallbacks) {
|
|
155
|
-
cb(new models_1.BatteryLevelChangeAction(this));
|
|
156
|
-
}
|
|
157
|
-
this._lastBatteryLevel = newLevel;
|
|
158
|
-
}
|
|
159
125
|
}
|
|
160
126
|
exports.ZigbeeHeimanSmoke = ZigbeeHeimanSmoke;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ZigbeeWindowHandle } from './BaseDevices';
|
|
2
|
+
import { iHumiditySensor, iTemperatureSensor } from '../baseDeviceInterfaces';
|
|
3
|
+
import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
|
|
4
|
+
import { HumiditySensor, TemperatureSensor } from '../sharedFunctions';
|
|
5
|
+
import { HumiditySensorChangeAction, TemperatureSensorChangeAction } from '../../../models';
|
|
6
|
+
export declare class ZigbeeSodaHandle extends ZigbeeWindowHandle implements iTemperatureSensor, iHumiditySensor {
|
|
7
|
+
/** @inheritDoc */
|
|
8
|
+
temperatureSensor: TemperatureSensor;
|
|
9
|
+
/** @inheritDoc */
|
|
10
|
+
humiditySensor: HumiditySensor;
|
|
11
|
+
constructor(pInfo: IoBrokerDeviceInfo);
|
|
12
|
+
/** @inheritDoc */
|
|
13
|
+
get roomTemperature(): number;
|
|
14
|
+
/** @inheritDoc */
|
|
15
|
+
set roomTemperature(value: number);
|
|
16
|
+
/** @inheritDoc */
|
|
17
|
+
get humidity(): number;
|
|
18
|
+
/** @inheritDoc */
|
|
19
|
+
get iTemperature(): number;
|
|
20
|
+
/** @inheritDoc */
|
|
21
|
+
get sTemperature(): string;
|
|
22
|
+
/** @inheritDoc */
|
|
23
|
+
update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
|
|
24
|
+
/** @inheritDoc */
|
|
25
|
+
addHumidityCallback(pCallback: (action: HumiditySensorChangeAction) => void): void;
|
|
26
|
+
/** @inheritDoc */
|
|
27
|
+
addTempChangeCallback(pCallback: (action: TemperatureSensorChangeAction) => void): void;
|
|
28
|
+
/** @inheritDoc */
|
|
29
|
+
onTemperaturChange(newTemperatur: number): void;
|
|
30
|
+
/** @inheritDoc */
|
|
31
|
+
dispose(): void;
|
|
32
|
+
private onButtonLeftPressed;
|
|
33
|
+
private onButtonRightPressed;
|
|
34
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZigbeeSodaHandle = void 0;
|
|
4
|
+
const BaseDevices_1 = require("./BaseDevices");
|
|
5
|
+
const deviceType_1 = require("../deviceType");
|
|
6
|
+
const DeviceCapability_1 = require("../DeviceCapability");
|
|
7
|
+
const sharedFunctions_1 = require("../sharedFunctions");
|
|
8
|
+
const models_1 = require("../../../models");
|
|
9
|
+
class ZigbeeSodaHandle extends BaseDevices_1.ZigbeeWindowHandle {
|
|
10
|
+
constructor(pInfo) {
|
|
11
|
+
super(pInfo, deviceType_1.DeviceType.ZigbeeSodaHandle);
|
|
12
|
+
/** @inheritDoc */
|
|
13
|
+
this.temperatureSensor = new sharedFunctions_1.TemperatureSensor(this);
|
|
14
|
+
/** @inheritDoc */
|
|
15
|
+
this.humiditySensor = new sharedFunctions_1.HumiditySensor(this);
|
|
16
|
+
this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.humiditySensor);
|
|
17
|
+
this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.temperatureSensor);
|
|
18
|
+
}
|
|
19
|
+
/** @inheritDoc */
|
|
20
|
+
get roomTemperature() {
|
|
21
|
+
return this.temperatureSensor.roomTemperature;
|
|
22
|
+
}
|
|
23
|
+
/** @inheritDoc */
|
|
24
|
+
set roomTemperature(value) {
|
|
25
|
+
this.temperatureSensor.roomTemperature = value;
|
|
26
|
+
}
|
|
27
|
+
/** @inheritDoc */
|
|
28
|
+
get humidity() {
|
|
29
|
+
return this.humiditySensor.humidity;
|
|
30
|
+
}
|
|
31
|
+
/** @inheritDoc */
|
|
32
|
+
get iTemperature() {
|
|
33
|
+
return this.temperatureSensor.temperature;
|
|
34
|
+
}
|
|
35
|
+
/** @inheritDoc */
|
|
36
|
+
get sTemperature() {
|
|
37
|
+
return `${this.temperatureSensor.temperature}°C`;
|
|
38
|
+
}
|
|
39
|
+
/** @inheritDoc */
|
|
40
|
+
update(idSplit, state, initial = false) {
|
|
41
|
+
super.update(idSplit, state, initial, true);
|
|
42
|
+
switch (idSplit[3]) {
|
|
43
|
+
case 'humidity':
|
|
44
|
+
this.humiditySensor.humidity = state.val;
|
|
45
|
+
break;
|
|
46
|
+
case 'temperature':
|
|
47
|
+
this.temperatureSensor.temperature = state.val;
|
|
48
|
+
break;
|
|
49
|
+
case 'button_left':
|
|
50
|
+
if (!initial && state.val === 'pressed') {
|
|
51
|
+
this.onButtonLeftPressed();
|
|
52
|
+
}
|
|
53
|
+
break;
|
|
54
|
+
case 'button_right':
|
|
55
|
+
if (!initial && state.val === 'pressed') {
|
|
56
|
+
this.onButtonRightPressed();
|
|
57
|
+
}
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** @inheritDoc */
|
|
62
|
+
addHumidityCallback(pCallback) {
|
|
63
|
+
this.humiditySensor.addHumidityCallback(pCallback);
|
|
64
|
+
}
|
|
65
|
+
/** @inheritDoc */
|
|
66
|
+
addTempChangeCallback(pCallback) {
|
|
67
|
+
this.temperatureSensor.addTempChangeCallback(pCallback);
|
|
68
|
+
}
|
|
69
|
+
/** @inheritDoc */
|
|
70
|
+
onTemperaturChange(newTemperatur) {
|
|
71
|
+
this.roomTemperature = newTemperatur;
|
|
72
|
+
}
|
|
73
|
+
/** @inheritDoc */
|
|
74
|
+
dispose() {
|
|
75
|
+
this.temperatureSensor.dispose();
|
|
76
|
+
this.humiditySensor.dispose();
|
|
77
|
+
super.dispose();
|
|
78
|
+
}
|
|
79
|
+
onButtonLeftPressed() {
|
|
80
|
+
this.log(models_1.LogLevel.Info, 'Button left pressed');
|
|
81
|
+
if (!this.window) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const command = new models_1.WindowSetDesiredPositionCommand(models_1.CommandSource.Manual, 0, 'Button on handle was pressed');
|
|
85
|
+
this.window.setDesiredPosition(command);
|
|
86
|
+
}
|
|
87
|
+
onButtonRightPressed() {
|
|
88
|
+
this.log(models_1.LogLevel.Info, 'Button right pressed');
|
|
89
|
+
if (!this.window) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const command = new models_1.WindowSetDesiredPositionCommand(models_1.CommandSource.Manual, 100, 'Button on handle was pressed');
|
|
93
|
+
this.window.setDesiredPosition(command);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.ZigbeeSodaHandle = ZigbeeSodaHandle;
|
|
@@ -2,37 +2,27 @@ import { ZigbeeDevice } from './BaseDevices';
|
|
|
2
2
|
import { iBatteryDevice, iHumiditySensor, iTemperatureSensor } from '../baseDeviceInterfaces';
|
|
3
3
|
import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
|
|
4
4
|
import { BatteryLevelChangeAction, HumiditySensorChangeAction, TemperatureSensorChangeAction } from '../../../models';
|
|
5
|
+
import { Battery, HumiditySensor, TemperatureSensor } from '../sharedFunctions';
|
|
5
6
|
export declare class ZigbeeSonoffTemp extends ZigbeeDevice implements iTemperatureSensor, iHumiditySensor, iBatteryDevice {
|
|
6
7
|
/** @inheritDoc */
|
|
7
|
-
|
|
8
|
-
/** @inheritDoc */
|
|
9
|
-
|
|
10
|
-
private _battery;
|
|
11
|
-
private _lastBatteryPersist;
|
|
12
|
-
private _humidityCallbacks;
|
|
13
|
-
private _temperaturCallbacks;
|
|
14
|
-
private _humidity;
|
|
15
|
-
private _roomTemperature;
|
|
16
|
-
private _temperature;
|
|
17
|
-
private _lastBatteryLevel;
|
|
18
|
-
private _batteryLevelCallbacks;
|
|
19
|
-
constructor(pInfo: IoBrokerDeviceInfo);
|
|
8
|
+
temperatureSensor: TemperatureSensor;
|
|
9
|
+
/** @inheritDoc */
|
|
10
|
+
humiditySensor: HumiditySensor;
|
|
20
11
|
/** @inheritDoc */
|
|
21
|
-
|
|
12
|
+
battery: Battery;
|
|
13
|
+
constructor(pInfo: IoBrokerDeviceInfo);
|
|
22
14
|
/** @inheritDoc */
|
|
23
|
-
get
|
|
15
|
+
get batteryLevel(): number;
|
|
24
16
|
/** @inheritDoc */
|
|
25
17
|
get roomTemperature(): number;
|
|
26
18
|
/** @inheritDoc */
|
|
27
19
|
set roomTemperature(value: number);
|
|
28
20
|
/** @inheritDoc */
|
|
29
21
|
get humidity(): number;
|
|
30
|
-
private set humidity(value);
|
|
31
22
|
/** @inheritDoc */
|
|
32
23
|
get iTemperature(): number;
|
|
33
24
|
/** @inheritDoc */
|
|
34
25
|
get sTemperature(): string;
|
|
35
|
-
private set temperature(value);
|
|
36
26
|
/** @inheritDoc */
|
|
37
27
|
addBatteryLevelCallback(pCallback: (action: BatteryLevelChangeAction) => void): void;
|
|
38
28
|
/** @inheritDoc */
|
|
@@ -44,15 +34,5 @@ export declare class ZigbeeSonoffTemp extends ZigbeeDevice implements iTemperatu
|
|
|
44
34
|
/** @inheritDoc */
|
|
45
35
|
onTemperaturChange(newTemperatur: number): void;
|
|
46
36
|
/** @inheritDoc */
|
|
47
|
-
persistTemperaturSensor(): void;
|
|
48
|
-
/** @inheritDoc */
|
|
49
|
-
persistHumiditySensor(): void;
|
|
50
|
-
/** @inheritDoc */
|
|
51
|
-
persistBatteryDevice(): void;
|
|
52
|
-
/** @inheritDoc */
|
|
53
37
|
dispose(): void;
|
|
54
|
-
/**
|
|
55
|
-
* Checks whether the battery level did change and if so fires the callbacks
|
|
56
|
-
*/
|
|
57
|
-
private checkForBatteryChange;
|
|
58
38
|
}
|