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.
Files changed (80) hide show
  1. package/lib/models/action/batteryLevelChangeAction.js +2 -2
  2. package/lib/models/iJsonOmitKeys.d.ts +9 -0
  3. package/lib/models/iJsonOmitKeys.js +2 -0
  4. package/lib/models/index.d.ts +1 -0
  5. package/lib/server/devices/IoBrokerBaseDevice.d.ts +4 -2
  6. package/lib/server/devices/IoBrokerBaseDevice.js +3 -1
  7. package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +4 -13
  8. package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +10 -0
  9. package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +3 -7
  10. package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +3 -7
  11. package/lib/server/devices/dachs/dachs.js +2 -5
  12. package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +2 -7
  13. package/lib/server/devices/dachs/dachsTemperatureSensor.js +9 -31
  14. package/lib/server/devices/deviceType.d.ts +1 -0
  15. package/lib/server/devices/deviceType.js +1 -0
  16. package/lib/server/devices/devices.js +5 -2
  17. package/lib/server/devices/groups/Window.d.ts +2 -3
  18. package/lib/server/devices/groups/Window.js +3 -3
  19. package/lib/server/devices/groups/windowGroup.js +2 -2
  20. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +9 -35
  21. package/lib/server/devices/hmIPDevices/hmIpGriff.js +27 -171
  22. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +5 -13
  23. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +30 -66
  24. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +4 -14
  25. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +6 -39
  26. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +5 -14
  27. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +6 -38
  28. package/lib/server/devices/hmIPDevices/hmIpRoll.js +2 -2
  29. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +4 -14
  30. package/lib/server/devices/hmIPDevices/hmIpTaster.js +6 -38
  31. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +4 -14
  32. package/lib/server/devices/hmIPDevices/hmIpTherm.js +6 -39
  33. package/lib/server/devices/models/WindowPosition.d.ts +3 -3
  34. package/lib/server/devices/models/WindowPosition.js +3 -3
  35. package/lib/server/devices/sharedFunctions/battery.d.ts +31 -0
  36. package/lib/server/devices/sharedFunctions/battery.js +65 -0
  37. package/lib/server/devices/sharedFunctions/handleSensor.d.ts +45 -0
  38. package/lib/server/devices/sharedFunctions/handleSensor.js +150 -0
  39. package/lib/server/devices/sharedFunctions/humiditySensor.d.ts +18 -0
  40. package/lib/server/devices/sharedFunctions/humiditySensor.js +46 -0
  41. package/lib/server/devices/sharedFunctions/index.d.ts +4 -0
  42. package/lib/server/devices/sharedFunctions/index.js +4 -0
  43. package/lib/server/devices/sharedFunctions/temperatureSensor.d.ts +31 -0
  44. package/lib/server/devices/sharedFunctions/temperatureSensor.js +57 -0
  45. package/lib/server/devices/shelly/shellyTrv.d.ts +5 -16
  46. package/lib/server/devices/shelly/shellyTrv.js +7 -41
  47. package/lib/server/devices/smartGarden/smartGardenDevice.d.ts +4 -16
  48. package/lib/server/devices/smartGarden/smartGardenDevice.js +7 -42
  49. package/lib/server/devices/smartGarden/smartGardenSensor.d.ts +3 -13
  50. package/lib/server/devices/smartGarden/smartGardenSensor.js +14 -57
  51. package/lib/server/devices/velux/veluxShutter.js +2 -2
  52. package/lib/server/devices/zigbee/BaseDevices/index.d.ts +1 -0
  53. package/lib/server/devices/zigbee/BaseDevices/index.js +3 -1
  54. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +5 -15
  55. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +7 -40
  56. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +4 -15
  57. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +7 -40
  58. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +5 -16
  59. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +7 -41
  60. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +2 -2
  61. package/lib/server/devices/zigbee/BaseDevices/zigbeeWindowHandle.d.ts +36 -0
  62. package/lib/server/devices/zigbee/BaseDevices/zigbeeWindowHandle.js +82 -0
  63. package/lib/server/devices/zigbee/index.d.ts +1 -0
  64. package/lib/server/devices/zigbee/index.js +1 -0
  65. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +4 -16
  66. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +7 -41
  67. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +4 -16
  68. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +7 -41
  69. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +4 -16
  70. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +7 -41
  71. package/lib/server/devices/zigbee/zigbeeSodaHandle.d.ts +34 -0
  72. package/lib/server/devices/zigbee/zigbeeSodaHandle.js +96 -0
  73. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +7 -27
  74. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +21 -94
  75. package/lib/server/services/dbo/postgreSqlPersist.js +1 -1
  76. package/lib/server/services/utils/utils.js +5 -1
  77. package/lib/server/services/victron/victron-device.d.ts +8 -15
  78. package/lib/server/services/victron/victron-device.js +22 -51
  79. package/lib/tsconfig.tsbuildinfo +1 -1
  80. 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 lastBatteryPersist() {
99
- return this._lastBatteryPersist;
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._battery = state.val;
140
- this.checkForBatteryChange();
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 lastBatteryPersist(): number;
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 lastBatteryPersist() {
38
- return this._lastBatteryPersist;
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._battery = state.val;
55
- this.checkForBatteryChange();
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 lastBatteryPersist(): number;
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 lastBatteryPersist() {
38
- return this._lastBatteryPersist;
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._battery = state.val;
71
- this.checkForBatteryChange();
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
- readonly persistTemperatureSensorInterval: NodeJS.Timeout;
8
- /** @inheritDoc */
9
- readonly persistHumiditySensorInterval: NodeJS.Timeout;
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
- get lastBatteryPersist(): number;
12
+ battery: Battery;
13
+ constructor(pInfo: IoBrokerDeviceInfo);
22
14
  /** @inheritDoc */
23
- get battery(): number;
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
  }