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.
Files changed (57) hide show
  1. package/lib/models/persistence/index.d.ts +0 -1
  2. package/lib/models/persistence/index.js +0 -1
  3. package/lib/server/devices/Heizgruppen.d.ts +0 -1
  4. package/lib/server/devices/Heizgruppen.js +0 -20
  5. package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +2 -1
  6. package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +4 -1
  7. package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +2 -1
  8. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +2 -2
  9. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +6 -2
  10. package/lib/server/devices/hmIPDevices/hmIpGriff.js +18 -3
  11. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +5 -1
  12. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +24 -4
  13. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +3 -1
  14. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +11 -2
  15. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +3 -1
  16. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +12 -4
  17. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +3 -1
  18. package/lib/server/devices/hmIPDevices/hmIpTaster.js +10 -2
  19. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +3 -1
  20. package/lib/server/devices/hmIPDevices/hmIpTherm.js +11 -2
  21. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +3 -1
  22. package/lib/server/devices/hmIPDevices/hmIpTuer.js +6 -0
  23. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +3 -1
  24. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +10 -0
  25. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +12 -4
  26. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +31 -11
  27. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +4 -1
  28. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +21 -6
  29. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +4 -1
  30. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +18 -3
  31. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +3 -1
  32. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +11 -3
  33. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +2 -2
  34. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +3 -1
  35. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +11 -3
  36. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +4 -1
  37. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +18 -3
  38. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +4 -1
  39. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +18 -3
  40. package/lib/server/devices/zigbee/zigbeeOsramDimmer.js +1 -1
  41. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +6 -1
  42. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +27 -3
  43. package/lib/server/ioBroker/connection.d.ts +3 -1
  44. package/lib/server/ioBroker/connection.js +10 -0
  45. package/lib/server/services/Telegram/telegram-Commands.js +0 -6
  46. package/lib/server/services/dbo/iPersist.d.ts +7 -6
  47. package/lib/server/services/dbo/postgreSqlPersist.d.ts +7 -6
  48. package/lib/server/services/dbo/postgreSqlPersist.js +79 -74
  49. package/lib/server/services/time-callback-service.js +2 -2
  50. package/lib/server/services/utils/iDisposeable.d.ts +3 -0
  51. package/lib/server/services/utils/iDisposeable.js +2 -0
  52. package/lib/server/services/utils/index.d.ts +1 -0
  53. package/lib/server/services/utils/index.js +1 -0
  54. package/lib/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +8 -8
  56. package/lib/models/persistence/CurrentIlluminationDataPoint.d.ts +0 -8
  57. 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.available = false;
10
- this.linkQuality = 0;
11
- this.voltage = '';
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.available = state.val;
22
- if (!this.available) {
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.linkQuality = state.val;
28
- if (this.linkQuality < 5) {
29
- this.log(models_1.LogLevel.Debug, `Das Zigbee Gerät hat eine schlechte Verbindung (${this.linkQuality}).`);
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.battery = state.val;
132
- if (this.battery < 20) {
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
- battery: number;
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.battery = -99;
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.battery = state.val;
30
- if (this.battery < 20) {
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.battery = state.val;
94
- if (this.battery < 20) {
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, _b, _c, _d;
34
+ var _a;
35
35
  this._illuminance = value;
36
- (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistCurrentIllumination(new models_1.CurrentIlluminationDataPoint(this.info.room, this.info.devID, value, new Date(), (_d = (_c = (_b = this.room) === null || _b === void 0 ? void 0 : _b.LampenGroup) === null || _c === void 0 ? void 0 : _c.anyLightsOn()) !== null && _d !== void 0 ? _d : false));
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
- battery: number;
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.battery = -99;
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.battery = state.val;
60
- if (this.battery < 20) {
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
- battery: number;
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.battery = -99;
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.battery = state.val;
40
- if (this.battery < 20) {
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
- battery: number;
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.battery = -99;
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.battery = state.val;
39
- if (this.battery < 20) {
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.ZigbeeIlluDimmer);
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
- battery: number;
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.battery = -99;
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.battery = state.val;
58
- if (this.battery < 20) {
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;