hoffmation-base 0.1.41-1 → 0.1.41-13

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 (105) hide show
  1. package/lib/index.d.ts +1 -2
  2. package/lib/index.js +5 -4
  3. package/lib/models/deviceSettings/index.d.ts +1 -0
  4. package/lib/models/deviceSettings/index.js +1 -0
  5. package/lib/models/deviceSettings/motionSensorSettings.d.ts +9 -0
  6. package/lib/models/deviceSettings/motionSensorSettings.js +16 -0
  7. package/lib/models/deviceSettings/shutterSettings.d.ts +6 -0
  8. package/lib/models/deviceSettings/shutterSettings.js +6 -0
  9. package/lib/models/rooms/RoomBase.d.ts +7 -17
  10. package/lib/models/rooms/RoomBase.js +27 -32
  11. package/lib/models/rooms/RoomSettings/RoomSettings.js +1 -0
  12. package/lib/models/timeCallback.d.ts +7 -1
  13. package/lib/models/timeCallback.js +16 -10
  14. package/lib/server/devices/Heizgruppen.d.ts +1 -1
  15. package/lib/server/devices/Heizgruppen.js +3 -3
  16. package/lib/server/devices/IoBrokerBaseDevice.d.ts +11 -12
  17. package/lib/server/devices/IoBrokerBaseDevice.js +36 -38
  18. package/lib/server/devices/button.d.ts +1 -1
  19. package/lib/server/devices/button.js +5 -6
  20. package/lib/server/devices/device-cluster.d.ts +5 -4
  21. package/lib/server/devices/device-cluster.js +3 -2
  22. package/lib/server/devices/device-list.d.ts +4 -4
  23. package/lib/server/devices/device-list.js +5 -5
  24. package/lib/server/devices/deviceType.d.ts +1 -0
  25. package/lib/server/devices/deviceType.js +1 -0
  26. package/lib/server/devices/deviceUpdater.js +4 -4
  27. package/lib/server/devices/devices.d.ts +6 -7
  28. package/lib/server/devices/devices.js +78 -108
  29. package/lib/server/devices/groups/Fenster.d.ts +6 -6
  30. package/lib/server/devices/groups/Fenster.js +22 -24
  31. package/lib/server/devices/groups/fensterGroup.d.ts +2 -1
  32. package/lib/server/devices/groups/fensterGroup.js +42 -36
  33. package/lib/server/devices/groups/heatGroup.d.ts +2 -2
  34. package/lib/server/devices/groups/heatGroup.js +8 -8
  35. package/lib/server/devices/groups/lampenGroup.d.ts +3 -4
  36. package/lib/server/devices/groups/lampenGroup.js +12 -12
  37. package/lib/server/devices/groups/praesenzGroup.d.ts +6 -7
  38. package/lib/server/devices/groups/praesenzGroup.js +45 -40
  39. package/lib/server/devices/groups/tasterGroup.d.ts +1 -1
  40. package/lib/server/devices/groups/tasterGroup.js +3 -3
  41. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +12 -8
  42. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +31 -26
  43. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +8 -8
  44. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +40 -43
  45. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +1 -2
  46. package/lib/server/devices/hmIPDevices/hmIpLampe.js +11 -13
  47. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +5 -5
  48. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +17 -17
  49. package/lib/server/devices/iBaseDevice.d.ts +11 -0
  50. package/lib/server/devices/iBaseDevice.js +2 -0
  51. package/lib/server/devices/iButtonSwitch.d.ts +2 -2
  52. package/lib/server/devices/iEnergyManager.d.ts +18 -2
  53. package/lib/server/devices/iEnergyManager.js +28 -0
  54. package/lib/server/devices/iExcessEnergyConsumer.d.ts +3 -3
  55. package/lib/server/devices/iHeater.d.ts +3 -3
  56. package/lib/server/devices/iHumiditySensor.d.ts +2 -2
  57. package/lib/server/devices/iLamp.d.ts +3 -5
  58. package/lib/server/devices/iMotionSensor.d.ts +13 -0
  59. package/lib/server/devices/iMotionSensor.js +2 -0
  60. package/lib/server/devices/iShutter.d.ts +3 -3
  61. package/lib/server/devices/iTemperaturSensor.d.ts +2 -2
  62. package/lib/server/devices/iVibrationSensor.d.ts +9 -0
  63. package/lib/server/devices/iVibrationSensor.js +2 -0
  64. package/lib/server/devices/index.d.ts +3 -0
  65. package/lib/server/devices/index.js +3 -0
  66. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +36 -24
  67. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +79 -39
  68. package/lib/server/devices/zigbee/index.d.ts +1 -0
  69. package/lib/server/devices/zigbee/index.js +1 -0
  70. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +4 -4
  71. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +15 -16
  72. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +11 -5
  73. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +48 -32
  74. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -2
  75. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +23 -25
  76. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +2 -2
  77. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +7 -8
  78. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -2
  79. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +18 -20
  80. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +0 -2
  81. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +26 -24
  82. package/lib/server/devices/zigbee/zigbeeMotionSensor.d.ts +8 -6
  83. package/lib/server/devices/zigbee/zigbeeMotionSensor.js +22 -21
  84. package/lib/server/devices/zigbee/zigbeeShutter.d.ts +13 -11
  85. package/lib/server/devices/zigbee/zigbeeShutter.js +43 -34
  86. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +9 -0
  87. package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +26 -0
  88. package/lib/server/services/ShutterService.d.ts +1 -2
  89. package/lib/server/services/ShutterService.js +6 -5
  90. package/lib/server/services/Telegram/telegram-service.d.ts +1 -1
  91. package/lib/server/services/Telegram/telegram-service.js +13 -11
  92. package/lib/server/services/api/api-service.d.ts +5 -5
  93. package/lib/server/services/api/api-service.js +5 -5
  94. package/lib/server/services/calendar/m/303/274ll-service.d.ts +4 -4
  95. package/lib/server/services/calendar/m/303/274ll-service.js +18 -14
  96. package/lib/server/services/dbo/postgreSqlPersist.d.ts +9 -9
  97. package/lib/server/services/dbo/postgreSqlPersist.js +13 -13
  98. package/lib/server/services/room-service/room-service.d.ts +5 -6
  99. package/lib/server/services/room-service/room-service.js +29 -30
  100. package/lib/server/services/time-callback-service.d.ts +9 -15
  101. package/lib/server/services/time-callback-service.js +39 -45
  102. package/lib/server/services/utils/utils.d.ts +2 -0
  103. package/lib/server/services/utils/utils.js +6 -10
  104. package/lib/tsconfig.tsbuildinfo +1 -1
  105. package/package.json +14 -14
@@ -2,14 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZigbeeAquaraVibra = void 0;
4
4
  const deviceType_1 = require("../deviceType");
5
- const utils_1 = require("../../services/utils/utils");
6
- const polly_service_1 = require("../../services/Sonos/polly-service");
5
+ const services_1 = require("../../services");
6
+ const models_1 = require("../../../models");
7
7
  const zigbeeDevice_1 = require("./zigbeeDevice");
8
- const logLevel_1 = require("../../../models/logLevel");
9
- const sonos_service_1 = require("../../services/Sonos/sonos-service");
10
- const res_1 = require("../../services/Translation/res");
11
8
  class ZigbeeAquaraVibra extends zigbeeDevice_1.ZigbeeDevice {
12
- // TODO Set Sensitivity
13
9
  constructor(pInfo) {
14
10
  super(pInfo, deviceType_1.DeviceType.ZigbeeAquaraVibra);
15
11
  this.sensitivity = '';
@@ -21,63 +17,79 @@ class ZigbeeAquaraVibra extends zigbeeDevice_1.ZigbeeDevice {
21
17
  this.tiltAngleZ = 0;
22
18
  this.tilt = false;
23
19
  this.vibration = false;
24
- this.vibrationBlockedTimeStamp = 0;
20
+ this.vibrationBlockedByGriffTimeStamp = 0;
21
+ this.vibrationBlockedByMotionTimeStamp = 0;
25
22
  this._idSensitivity = '';
26
- this._vibrationBlocked = false;
27
- this._alarmMessage = res_1.Res.vibrationAlarm(this.info.customName);
28
- polly_service_1.PollyService.preloadTTS(this._alarmMessage);
23
+ // TODO Set Sensitivity
24
+ this._vibrationBlockedByGriff = false;
25
+ this._vibrationBlockedByMotion = false;
26
+ this._alarmMessage = services_1.Res.vibrationAlarm(this.info.customName);
27
+ services_1.PollyService.preloadTTS(this._alarmMessage);
29
28
  this._idSensitivity = `${this.info.fullID}.sensitivity`;
30
29
  }
31
- set vibrationBlocked(pVal) {
32
- this.log(logLevel_1.LogLevel.Debug, `${pVal ? 'Dea' : 'A'}ktiviere Vibrationsalarm für ${this.info.customName}`);
30
+ get vibrationBlockedByGriff() {
31
+ return this._vibrationBlockedByGriff;
32
+ }
33
+ set vibrationBlockedByGriff(pVal) {
34
+ this.log(models_1.LogLevel.Debug, `${pVal ? 'Dea' : 'A'}ktiviere Vibrationsalarm für ${this.info.customName} in Bezug auf den Fenstergriff`);
33
35
  if (pVal) {
34
- this.vibrationBlockedTimeStamp = new Date().getTime();
36
+ this.vibrationBlockedByGriffTimeStamp = new Date().getTime();
35
37
  }
36
- this._vibrationBlocked = pVal;
38
+ this._vibrationBlockedByGriff = pVal;
39
+ }
40
+ get vibrationBlockedByMotion() {
41
+ return this._vibrationBlockedByMotion;
42
+ }
43
+ set vibrationBlockedByMotion(pVal) {
44
+ this.log(models_1.LogLevel.Debug, `${pVal ? 'Dea' : 'A'}ktiviere Vibrationsalarm für ${this.info.customName} in Bezug auf Bewegung`);
45
+ if (pVal) {
46
+ this.vibrationBlockedByMotionTimeStamp = services_1.Utils.nowMS();
47
+ }
48
+ this._vibrationBlockedByMotion = pVal;
37
49
  }
38
50
  update(idSplit, state, initial = false) {
39
- this.log(logLevel_1.LogLevel.DeepTrace, `Stecker Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
51
+ this.log(models_1.LogLevel.DeepTrace, `Stecker Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
40
52
  super.update(idSplit, state, initial, true);
41
53
  switch (idSplit[3]) {
42
54
  case 'sensitivity':
43
- this.log(initial ? logLevel_1.LogLevel.DeepTrace : logLevel_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Sensitivity: ${state.val}`);
55
+ this.log(initial ? models_1.LogLevel.DeepTrace : models_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Sensitivity: ${state.val}`);
44
56
  this.tiltAngleZ = state.val;
45
57
  break;
46
58
  case 'tilt_angle_z':
47
- this.log(initial ? logLevel_1.LogLevel.DeepTrace : logLevel_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Winkel Z: ${state.val}`);
59
+ this.log(initial ? models_1.LogLevel.DeepTrace : models_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Winkel Z: ${state.val}`);
48
60
  this.tiltAngleZ = state.val;
49
61
  break;
50
62
  case 'tilt_angle_y':
51
- this.log(initial ? logLevel_1.LogLevel.DeepTrace : logLevel_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Winkel Y: ${state.val}`);
63
+ this.log(initial ? models_1.LogLevel.DeepTrace : models_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Winkel Y: ${state.val}`);
52
64
  this.tiltAngleY = state.val;
53
65
  break;
54
66
  case 'tilt_angle_x':
55
- this.log(initial ? logLevel_1.LogLevel.DeepTrace : logLevel_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Winkel X: ${state.val}`);
67
+ this.log(initial ? models_1.LogLevel.DeepTrace : models_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Winkel X: ${state.val}`);
56
68
  this.tiltAngleX = state.val;
57
69
  break;
58
70
  case 'vibration':
59
- this.log(initial ? logLevel_1.LogLevel.DeepTrace : logLevel_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Vibration erkannt: ${state.val}`);
71
+ this.log(initial ? models_1.LogLevel.DeepTrace : models_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Vibration erkannt: ${state.val}`);
60
72
  this.vibration = state.val;
61
73
  if (this.vibration) {
62
- utils_1.Utils.guardedTimeout(() => {
74
+ services_1.Utils.guardedTimeout(() => {
63
75
  this.alarmCheck();
64
76
  }, 8500, this);
65
77
  }
66
78
  break;
67
79
  case 'tilt_angle_y_abs':
68
- this.log(initial ? logLevel_1.LogLevel.DeepTrace : logLevel_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf absoluten Winkel Y: ${state.val}`);
80
+ this.log(initial ? models_1.LogLevel.DeepTrace : models_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf absoluten Winkel Y: ${state.val}`);
69
81
  this.tiltAngleYAbs = state.val;
70
82
  break;
71
83
  case 'tilt_angle_X_abs':
72
- this.log(initial ? logLevel_1.LogLevel.DeepTrace : logLevel_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf absoluten Winkel X: ${state.val}`);
84
+ this.log(initial ? models_1.LogLevel.DeepTrace : models_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf absoluten Winkel X: ${state.val}`);
73
85
  this.tiltAngleXAbs = state.val;
74
86
  break;
75
87
  case 'tilt_angle':
76
- this.log(initial ? logLevel_1.LogLevel.DeepTrace : logLevel_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Winkel: ${state.val}`);
88
+ this.log(initial ? models_1.LogLevel.DeepTrace : models_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Winkel: ${state.val}`);
77
89
  this.tiltAngle = state.val;
78
90
  break;
79
91
  case 'tilt':
80
- this.log(initial ? logLevel_1.LogLevel.DeepTrace : logLevel_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Winkel: ${state.val}`);
92
+ this.log(initial ? models_1.LogLevel.DeepTrace : models_1.LogLevel.Trace, `Vibrationssensor Update für ${this.info.customName} auf Winkel: ${state.val}`);
81
93
  this.tilt = state.val;
82
94
  break;
83
95
  }
@@ -93,23 +105,27 @@ class ZigbeeAquaraVibra extends zigbeeDevice_1.ZigbeeDevice {
93
105
  break;
94
106
  }
95
107
  if (this._idSensitivity === '') {
96
- this.log(logLevel_1.LogLevel.Error, `Keine Switch ID bekannt.`);
108
+ this.log(models_1.LogLevel.Error, `Keine Switch ID bekannt.`);
97
109
  return;
98
110
  }
99
- this.log(logLevel_1.LogLevel.Debug, `Vibration Sensitivität schalten Wert: ${result}`);
111
+ this.log(models_1.LogLevel.Debug, `Vibration Sensitivität schalten Wert: ${result}`);
100
112
  this.setState(this._idSensitivity, result, undefined, (err) => {
101
113
  console.log(`Stecker schalten ergab Fehler: ${err}`);
102
114
  });
103
115
  }
104
116
  alarmCheck() {
105
- this.log(logLevel_1.LogLevel.Debug, `Alarmcheck für ${this.info.customName} Alarmblock Wert: ${this._vibrationBlocked}`);
106
- if (this._vibrationBlocked) {
107
- this.log(logLevel_1.LogLevel.Debug, `Fenster offen, ignoriere Vibrationsalarm bei ${this.info.customName}`);
117
+ this.log(models_1.LogLevel.Debug, `Alarmcheck für ${this.info.customName} Alarmblock Wert: ${this._vibrationBlockedByGriff}`);
118
+ if (this._vibrationBlockedByGriff) {
119
+ this.log(models_1.LogLevel.Debug, `Fenster offen, ignoriere Vibrationsalarm bei ${this.info.customName}`);
120
+ return;
121
+ }
122
+ if (this._vibrationBlockedByMotion) {
123
+ this.log(models_1.LogLevel.Debug, `Deaktivierende Bewegung, ignoriere Vibrationsalarm bei ${this.info.customName}`);
108
124
  return;
109
125
  }
110
126
  const message = this._alarmMessage;
111
- sonos_service_1.SonosService.speakOnAll(message);
112
- this.log(logLevel_1.LogLevel.Alert, message);
127
+ services_1.SonosService.speakOnAll(message);
128
+ this.log(models_1.LogLevel.Alert, message);
113
129
  }
114
130
  }
115
131
  exports.ZigbeeAquaraVibra = ZigbeeAquaraVibra;
@@ -1,9 +1,8 @@
1
1
  /// <reference types="iobroker" />
2
- import { DimmerSettings } from '../../../models/deviceSettings/dimmerSettings';
2
+ import { DimmerSettings, TimeOfDay } from '../../../models';
3
3
  import { DeviceInfo } from '../DeviceInfo';
4
4
  import { iLamp } from '../iLamp';
5
5
  import { ZigbeeDevice } from './zigbeeDevice';
6
- import { TimeOfDay } from '../../services/time-callback-service';
7
6
  export declare class ZigbeeIlluDimmer extends ZigbeeDevice implements iLamp {
8
7
  lightOn: boolean;
9
8
  queuedValue: boolean | null;
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZigbeeIlluDimmer = void 0;
4
- const dimmerSettings_1 = require("../../../models/deviceSettings/dimmerSettings");
4
+ const models_1 = require("../../../models");
5
5
  const deviceType_1 = require("../deviceType");
6
- const utils_1 = require("../../services/utils/utils");
6
+ const services_1 = require("../../services");
7
7
  const zigbeeDevice_1 = require("./zigbeeDevice");
8
- const logLevel_1 = require("../../../models/logLevel");
9
- const time_callback_service_1 = require("../../services/time-callback-service");
10
8
  class ZigbeeIlluDimmer extends zigbeeDevice_1.ZigbeeDevice {
11
9
  constructor(pInfo) {
12
10
  super(pInfo, deviceType_1.DeviceType.ZigbeeIlluDimmer);
@@ -14,7 +12,7 @@ class ZigbeeIlluDimmer extends zigbeeDevice_1.ZigbeeDevice {
14
12
  this.queuedValue = null;
15
13
  this.brightness = 0;
16
14
  this.transitionTime = 0;
17
- this.settings = new dimmerSettings_1.DimmerSettings();
15
+ this.settings = new models_1.DimmerSettings();
18
16
  this.stateID = 'state';
19
17
  this.brightnessID = 'brightness';
20
18
  this.transitionID = 'transition_time';
@@ -26,35 +24,35 @@ class ZigbeeIlluDimmer extends zigbeeDevice_1.ZigbeeDevice {
26
24
  }
27
25
  update(idSplit, state, initial = false) {
28
26
  this.queuedValue = null;
29
- this.log(logLevel_1.LogLevel.DeepTrace, `Dimmer Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
27
+ this.log(models_1.LogLevel.DeepTrace, `Dimmer Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
30
28
  super.update(idSplit, state, initial, true);
31
29
  switch (idSplit[3]) {
32
30
  case 'state':
33
- this.log(logLevel_1.LogLevel.Trace, `Dimmer Update für ${this.info.customName} auf ${state.val}`);
31
+ this.log(models_1.LogLevel.Trace, `Dimmer Update für ${this.info.customName} auf ${state.val}`);
34
32
  this.lightOn = state.val;
35
33
  break;
36
34
  case 'brightness':
37
- this.log(logLevel_1.LogLevel.Trace, `Dimmer Helligkeit Update für ${this.info.customName} auf ${state.val}`);
35
+ this.log(models_1.LogLevel.Trace, `Dimmer Helligkeit Update für ${this.info.customName} auf ${state.val}`);
38
36
  this.brightness = state.val;
39
37
  break;
40
38
  case 'transition_time':
41
- this.log(logLevel_1.LogLevel.Trace, `Dimmer Transition Time Update für ${this.info.customName} auf ${state.val}`);
39
+ this.log(models_1.LogLevel.Trace, `Dimmer Transition Time Update für ${this.info.customName} auf ${state.val}`);
42
40
  this.transitionTime = state.val;
43
41
  break;
44
42
  }
45
43
  }
46
44
  setTimeBased(time, timeout = -1, force = false) {
47
45
  switch (time) {
48
- case time_callback_service_1.TimeOfDay.Night:
46
+ case models_1.TimeOfDay.Night:
49
47
  this.setLight(true, timeout, force, this.settings.nightBrightness);
50
48
  break;
51
- case time_callback_service_1.TimeOfDay.AfterSunset:
49
+ case models_1.TimeOfDay.AfterSunset:
52
50
  this.setLight(true, timeout, force, this.settings.dawnBrightness);
53
51
  break;
54
- case time_callback_service_1.TimeOfDay.BeforeSunrise:
52
+ case models_1.TimeOfDay.BeforeSunrise:
55
53
  this.setLight(true, timeout, force, this.settings.duskBrightness);
56
54
  break;
57
- case time_callback_service_1.TimeOfDay.Daylight:
55
+ case models_1.TimeOfDay.Daylight:
58
56
  this.setLight(true, timeout, force, this.settings.dayBrightness);
59
57
  break;
60
58
  }
@@ -66,35 +64,35 @@ class ZigbeeIlluDimmer extends zigbeeDevice_1.ZigbeeDevice {
66
64
  */
67
65
  setLight(pValue, timeout = -1, force = false, brightness = -1, transitionTime = -1) {
68
66
  if (this.stateID === '') {
69
- this.log(logLevel_1.LogLevel.Error, `Keine State ID bekannt.`);
67
+ this.log(models_1.LogLevel.Error, `Keine State ID bekannt.`);
70
68
  return;
71
69
  }
72
70
  if (!this.ioConn) {
73
- this.log(logLevel_1.LogLevel.Error, `Keine Connection bekannt.`);
71
+ this.log(models_1.LogLevel.Error, `Keine Connection bekannt.`);
74
72
  return;
75
73
  }
76
74
  if (transitionTime > -1) {
77
75
  this.ioConn.setState(this.transitionID, transitionTime, (err) => {
78
76
  if (err) {
79
- this.log(logLevel_1.LogLevel.Error, `Dimmer TransitionTime schalten ergab Fehler: ${err}`);
77
+ this.log(models_1.LogLevel.Error, `Dimmer TransitionTime schalten ergab Fehler: ${err}`);
80
78
  }
81
79
  });
82
80
  }
83
- if (!force && utils_1.Utils.nowMS() < this.turnOffTime) {
84
- this.log(logLevel_1.LogLevel.Debug, `Skip automatic command to ${pValue} as it is locked until ${new Date(this.turnOffTime).toLocaleTimeString()}`);
81
+ if (!force && services_1.Utils.nowMS() < this.turnOffTime) {
82
+ this.log(models_1.LogLevel.Debug, `Skip automatic command to ${pValue} as it is locked until ${new Date(this.turnOffTime).toLocaleTimeString()}`);
85
83
  return;
86
84
  }
87
85
  if (pValue && brightness === -1 && this.brightness < 10) {
88
86
  brightness = 10;
89
87
  }
90
- this.log(logLevel_1.LogLevel.Debug, `Dimmer Schalten An: ${pValue} \t Helligkeit: ${brightness}%`);
88
+ this.log(models_1.LogLevel.Debug, `Dimmer Schalten An: ${pValue} \t Helligkeit: ${brightness}%`);
91
89
  this.setState(this.stateID, pValue);
92
90
  this.queuedValue = pValue;
93
91
  if (brightness > -1) {
94
92
  if (brightness < this.settings.turnOnThreshhold) {
95
93
  this.setState(this.brightnessID, this.settings.turnOnThreshhold, () => {
96
- utils_1.Utils.guardedTimeout(() => {
97
- this.log(logLevel_1.LogLevel.Info, `Delayed reduced brightness on ${this.info.customName}`);
94
+ services_1.Utils.guardedTimeout(() => {
95
+ this.log(models_1.LogLevel.Info, `Delayed reduced brightness on ${this.info.customName}`);
98
96
  this.setState(this.brightnessID, brightness);
99
97
  }, 1000, this);
100
98
  });
@@ -110,9 +108,9 @@ class ZigbeeIlluDimmer extends zigbeeDevice_1.ZigbeeDevice {
110
108
  if (timeout < 0 || !pValue) {
111
109
  return;
112
110
  }
113
- this.turnOffTime = utils_1.Utils.nowMS() + timeout;
114
- this._turnOffTimeout = utils_1.Utils.guardedTimeout(() => {
115
- this.log(logLevel_1.LogLevel.Debug, `Delayed Turnoff initiated`);
111
+ this.turnOffTime = services_1.Utils.nowMS() + timeout;
112
+ this._turnOffTimeout = services_1.Utils.guardedTimeout(() => {
113
+ this.log(models_1.LogLevel.Debug, `Delayed Turnoff initiated`);
116
114
  this._turnOffTimeout = undefined;
117
115
  if (!this.room) {
118
116
  this.setLight(false, -1, true);
@@ -127,7 +125,7 @@ class ZigbeeIlluDimmer extends zigbeeDevice_1.ZigbeeDevice {
127
125
  const newVal = this.queuedValue !== null ? !this.queuedValue : !this.lightOn;
128
126
  const timeout = newVal && force ? 30 * 60 * 1000 : -1;
129
127
  if (newVal && time === undefined && calculateTime && this.room !== undefined) {
130
- time = time_callback_service_1.TimeCallbackService.dayType((_a = this.room) === null || _a === void 0 ? void 0 : _a.settings.lampOffset);
128
+ time = services_1.TimeCallbackService.dayType((_a = this.room) === null || _a === void 0 ? void 0 : _a.settings.lampOffset);
131
129
  }
132
130
  if (newVal && time !== undefined) {
133
131
  this.setTimeBased(time, timeout, force);
@@ -1,11 +1,11 @@
1
1
  /// <reference types="iobroker" />
2
2
  import { DeviceInfo } from '../DeviceInfo';
3
3
  import { ZigbeeIlluActuator } from './zigbeeIlluActuator';
4
+ import { TimeOfDay } from '../../../models';
4
5
  import { iLamp } from '../iLamp';
5
- import { TimeOfDay } from '../../services';
6
6
  export declare class ZigbeeIlluLampe extends ZigbeeIlluActuator implements iLamp {
7
- get lightOn(): boolean;
8
7
  constructor(pInfo: DeviceInfo);
8
+ get lightOn(): boolean;
9
9
  update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
10
10
  /** @inheritdoc */
11
11
  setLight(pValue: boolean, timeout?: number, force?: boolean): void;
@@ -5,14 +5,13 @@ const deviceType_1 = require("../deviceType");
5
5
  const zigbeeIlluActuator_1 = require("./zigbeeIlluActuator");
6
6
  const models_1 = require("../../../models");
7
7
  const services_1 = require("../../services");
8
- const services_2 = require("../../services");
9
8
  class ZigbeeIlluLampe extends zigbeeIlluActuator_1.ZigbeeIlluActuator {
10
- get lightOn() {
11
- return super.actuatorOn;
12
- }
13
9
  constructor(pInfo) {
14
10
  super(pInfo, deviceType_1.DeviceType.ZigbeeIlluLampe);
15
11
  }
12
+ get lightOn() {
13
+ return super.actuatorOn;
14
+ }
16
15
  update(idSplit, state, initial = false) {
17
16
  super.update(idSplit, state, initial, true);
18
17
  switch (idSplit[3]) {
@@ -26,7 +25,7 @@ class ZigbeeIlluLampe extends zigbeeIlluActuator_1.ZigbeeIlluActuator {
26
25
  this.log(models_1.LogLevel.Debug, `Lampenaktor schalten Wert: ${pValue}`);
27
26
  if (this.settings.isStromStoss) {
28
27
  timeout = 3000;
29
- services_2.Utils.guardedTimeout(() => {
28
+ services_1.Utils.guardedTimeout(() => {
30
29
  var _a;
31
30
  if (this.room && ((_a = this.room.PraesenzGroup) === null || _a === void 0 ? void 0 : _a.anyPresent())) {
32
31
  this.setLight(true, -1, true);
@@ -50,9 +49,9 @@ class ZigbeeIlluLampe extends zigbeeIlluActuator_1.ZigbeeIlluActuator {
50
49
  return newVal;
51
50
  }
52
51
  setTimeBased(time, timeout = -1, force = false) {
53
- if ((time === services_1.TimeOfDay.Night && this.settings.nightOn) ||
54
- (time === services_1.TimeOfDay.BeforeSunrise && this.settings.dawnOn) ||
55
- (time === services_1.TimeOfDay.AfterSunset && this.settings.duskOn)) {
52
+ if ((time === models_1.TimeOfDay.Night && this.settings.nightOn) ||
53
+ (time === models_1.TimeOfDay.BeforeSunrise && this.settings.dawnOn) ||
54
+ (time === models_1.TimeOfDay.AfterSunset && this.settings.duskOn)) {
56
55
  this.setLight(true, timeout, force);
57
56
  }
58
57
  }
@@ -1,8 +1,7 @@
1
1
  /// <reference types="iobroker" />
2
2
  import { DeviceInfo } from '../DeviceInfo';
3
- import { LedSettings } from '../../../models/deviceSettings/ledSettings';
3
+ import { LedSettings, TimeOfDay } from '../../../models';
4
4
  import { ZigbeeDevice } from './zigbeeDevice';
5
- import { TimeOfDay } from '../../services/time-callback-service';
6
5
  export declare class ZigbeeIlluLedRGBCCT extends ZigbeeDevice {
7
6
  static DEFAULT_COLOR_WARM: string;
8
7
  on: boolean;
@@ -2,10 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZigbeeIlluLedRGBCCT = void 0;
4
4
  const deviceType_1 = require("../deviceType");
5
- const ledSettings_1 = require("../../../models/deviceSettings/ledSettings");
5
+ const models_1 = require("../../../models");
6
6
  const zigbeeDevice_1 = require("./zigbeeDevice");
7
- const logLevel_1 = require("../../../models/logLevel");
8
- const time_callback_service_1 = require("../../services/time-callback-service");
9
7
  class ZigbeeIlluLedRGBCCT extends zigbeeDevice_1.ZigbeeDevice {
10
8
  // private effectID: string = '';
11
9
  constructor(pInfo) {
@@ -14,7 +12,7 @@ class ZigbeeIlluLedRGBCCT extends zigbeeDevice_1.ZigbeeDevice {
14
12
  this.brightness = 0;
15
13
  this.color = '#fcba32';
16
14
  this.colortemp = 500;
17
- this.settings = new ledSettings_1.LedSettings();
15
+ this.settings = new models_1.LedSettings();
18
16
  this.stateID = 'state';
19
17
  this.brightnessID = 'brightness';
20
18
  this.colorID = '';
@@ -26,45 +24,45 @@ class ZigbeeIlluLedRGBCCT extends zigbeeDevice_1.ZigbeeDevice {
26
24
  // this.effectID = `${this.info.fullID}.effect`;
27
25
  }
28
26
  update(idSplit, state, initial = false) {
29
- this.log(logLevel_1.LogLevel.DeepTrace, `LED Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
27
+ this.log(models_1.LogLevel.DeepTrace, `LED Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
30
28
  super.update(idSplit, state, initial, true);
31
29
  switch (idSplit[3]) {
32
30
  case 'state':
33
- this.log(logLevel_1.LogLevel.Trace, `LED Update für ${this.info.customName} auf ${state.val}`);
31
+ this.log(models_1.LogLevel.Trace, `LED Update für ${this.info.customName} auf ${state.val}`);
34
32
  this.on = state.val;
35
33
  break;
36
34
  case 'brightness':
37
- this.log(logLevel_1.LogLevel.Trace, `LED Helligkeit Update für ${this.info.customName} auf ${state.val}`);
35
+ this.log(models_1.LogLevel.Trace, `LED Helligkeit Update für ${this.info.customName} auf ${state.val}`);
38
36
  this.brightness = state.val;
39
37
  break;
40
38
  case 'color':
41
- this.log(logLevel_1.LogLevel.Trace, `LED Color Update für ${this.info.customName} auf ${state.val}`);
39
+ this.log(models_1.LogLevel.Trace, `LED Color Update für ${this.info.customName} auf ${state.val}`);
42
40
  this.color = state.val;
43
41
  break;
44
42
  case 'colortemp':
45
- this.log(logLevel_1.LogLevel.Trace, `LED Color Update für ${this.info.customName} auf ${state.val}`);
43
+ this.log(models_1.LogLevel.Trace, `LED Color Update für ${this.info.customName} auf ${state.val}`);
46
44
  this.colortemp = state.val;
47
45
  break;
48
46
  }
49
47
  }
50
48
  setTimeBased(time) {
51
49
  switch (time) {
52
- case time_callback_service_1.TimeOfDay.Night:
50
+ case models_1.TimeOfDay.Night:
53
51
  if (this.settings.nightOn) {
54
52
  this.setLight(true, this.settings.nightBrightness, this.settings.nightColor, this.settings.nightColorTemp);
55
53
  }
56
54
  break;
57
- case time_callback_service_1.TimeOfDay.AfterSunset:
55
+ case models_1.TimeOfDay.AfterSunset:
58
56
  if (this.settings.duskOn) {
59
57
  this.setLight(true, this.settings.duskBrightness, this.settings.duskColor, this.settings.duskColorTemp);
60
58
  }
61
59
  break;
62
- case time_callback_service_1.TimeOfDay.BeforeSunrise:
60
+ case models_1.TimeOfDay.BeforeSunrise:
63
61
  if (this.settings.dawnOn) {
64
62
  this.setLight(true, this.settings.dawnBrightness, this.settings.dawnColor, this.settings.dawnColorTemp);
65
63
  }
66
64
  break;
67
- case time_callback_service_1.TimeOfDay.Daylight:
65
+ case models_1.TimeOfDay.Daylight:
68
66
  if (this.settings.dayOn) {
69
67
  this.setLight(true, this.settings.dayBrightness, this.settings.dayColor, this.settings.dayColorTemp);
70
68
  }
@@ -73,40 +71,40 @@ class ZigbeeIlluLedRGBCCT extends zigbeeDevice_1.ZigbeeDevice {
73
71
  }
74
72
  setLight(pValue, brightness = -1, color = '', colortemp = -1) {
75
73
  if (this.stateID === '') {
76
- this.log(logLevel_1.LogLevel.Error, `Keine State ID bekannt.`);
74
+ this.log(models_1.LogLevel.Error, `Keine State ID bekannt.`);
77
75
  return;
78
76
  }
79
77
  if (!this.ioConn) {
80
- this.log(logLevel_1.LogLevel.Error, `Keine Connection bekannt.`);
78
+ this.log(models_1.LogLevel.Error, `Keine Connection bekannt.`);
81
79
  return;
82
80
  }
83
81
  if (pValue && brightness === -1 && this.brightness < 10) {
84
82
  brightness = 10;
85
83
  }
86
- this.log(logLevel_1.LogLevel.Debug, `LED Schalten An: ${pValue}\tHelligkeit: ${brightness}%\tFarbe: "${color}"\tColorTemperatur: ${colortemp}`);
84
+ this.log(models_1.LogLevel.Debug, `LED Schalten An: ${pValue}\tHelligkeit: ${brightness}%\tFarbe: "${color}"\tColorTemperatur: ${colortemp}`);
87
85
  if (color !== '') {
88
86
  this.ioConn.setState(this.colorID, color, (err) => {
89
87
  if (err) {
90
- this.log(logLevel_1.LogLevel.Error, `LED Farbe schalten ergab Fehler: ${err}`);
88
+ this.log(models_1.LogLevel.Error, `LED Farbe schalten ergab Fehler: ${err}`);
91
89
  }
92
90
  });
93
91
  }
94
92
  if (colortemp > -1) {
95
93
  this.ioConn.setState(this.colorTempID, colortemp, (err) => {
96
94
  if (err) {
97
- this.log(logLevel_1.LogLevel.Error, `LED Farbwärme schalten ergab Fehler: ${err}`);
95
+ this.log(models_1.LogLevel.Error, `LED Farbwärme schalten ergab Fehler: ${err}`);
98
96
  }
99
97
  });
100
98
  }
101
99
  this.ioConn.setState(this.stateID, pValue, (err) => {
102
100
  if (err) {
103
- this.log(logLevel_1.LogLevel.Error, `LED schalten ergab Fehler: ${err}`);
101
+ this.log(models_1.LogLevel.Error, `LED schalten ergab Fehler: ${err}`);
104
102
  }
105
103
  });
106
104
  if (brightness > -1) {
107
105
  this.ioConn.setState(this.brightnessID, brightness, (err) => {
108
106
  if (err) {
109
- this.log(logLevel_1.LogLevel.Error, `LED Helligkeit schalten ergab Fehler: ${err}`);
107
+ this.log(models_1.LogLevel.Error, `LED Helligkeit schalten ergab Fehler: ${err}`);
110
108
  }
111
109
  });
112
110
  }
@@ -5,8 +5,6 @@ export declare class ZigbeeIlluShutter extends ZigbeeShutter {
5
5
  private _movementStateId;
6
6
  private _movementState;
7
7
  private _movementStartMs;
8
- private _msTilTop;
9
- private _msTilBot;
10
8
  private _movementStartPos;
11
9
  private _iMovementTimeout;
12
10
  constructor(pInfo: DeviceInfo);
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZigbeeIlluShutter = void 0;
4
4
  const zigbeeShutter_1 = require("./zigbeeShutter");
5
5
  const deviceType_1 = require("../deviceType");
6
- const logLevel_1 = require("../../../models/logLevel");
7
- const utils_1 = require("../../services/utils/utils");
6
+ const models_1 = require("../../../models");
7
+ const services_1 = require("../../services");
8
8
  var MovementState;
9
9
  (function (MovementState) {
10
10
  MovementState[MovementState["Down"] = 30] = "Down";
@@ -16,8 +16,6 @@ class ZigbeeIlluShutter extends zigbeeShutter_1.ZigbeeShutter {
16
16
  super(pInfo, deviceType_1.DeviceType.ZigbeeIlluShutter);
17
17
  this._movementState = MovementState.Stop;
18
18
  this._movementStartMs = -1;
19
- this._msTilTop = -1;
20
- this._msTilBot = -1;
21
19
  this._movementStartPos = -1;
22
20
  this._movementStateId = `${this.info.fullID}.position`;
23
21
  // this.presenceStateID = `${this.info.fullID}.1.${HmIpPraezenz.PRESENCE_DETECTION}`;
@@ -25,7 +23,7 @@ class ZigbeeIlluShutter extends zigbeeShutter_1.ZigbeeShutter {
25
23
  update(idSplit, state, initial = false) {
26
24
  switch (idSplit[3]) {
27
25
  case 'position':
28
- this.log(logLevel_1.LogLevel.Trace, `Shutter Update for ${this.info.customName} to "${state.val}"`);
26
+ this.log(models_1.LogLevel.Trace, `Shutter Update for ${this.info.customName} to "${state.val}"`);
29
27
  this.processNewMovementState(state.val);
30
28
  break;
31
29
  }
@@ -33,12 +31,12 @@ class ZigbeeIlluShutter extends zigbeeShutter_1.ZigbeeShutter {
33
31
  }
34
32
  moveToPosition(targetPosition) {
35
33
  if (this._movementState !== MovementState.Stop) {
36
- this.log(logLevel_1.LogLevel.Info, `Delaying movement command for ${this.info.customName} as it is moving to prevent actuator damage`);
34
+ this.log(models_1.LogLevel.Info, `Delaying movement command for ${this.info.customName} as it is moving to prevent actuator damage`);
37
35
  this.changeMovementState(MovementState.Stop);
38
36
  if (this._iMovementTimeout !== undefined) {
39
37
  clearTimeout(this._iMovementTimeout);
40
38
  }
41
- this._iMovementTimeout = utils_1.Utils.guardedTimeout(() => {
39
+ this._iMovementTimeout = services_1.Utils.guardedTimeout(() => {
42
40
  this._iMovementTimeout = undefined;
43
41
  this.moveToPosition(targetPosition);
44
42
  }, 2000, this);
@@ -47,28 +45,34 @@ class ZigbeeIlluShutter extends zigbeeShutter_1.ZigbeeShutter {
47
45
  this._movementStartPos = this._currentLevel;
48
46
  if (targetPosition === 100) {
49
47
  this.changeMovementState(MovementState.Up);
48
+ this.initializeMovementFinishTimeout(this.getAverageUp(), 100);
50
49
  return;
51
50
  }
52
51
  if (targetPosition === 0) {
53
52
  this.changeMovementState(MovementState.Down);
53
+ this.initializeMovementFinishTimeout(this.getAverageUp(), 0);
54
+ services_1.Utils.guardedTimeout(() => {
55
+ this.changeMovementState(MovementState.Stop);
56
+ }, this.getAverageDown() + 1000, this);
54
57
  return;
55
58
  }
56
59
  if (!this.isCalibrated()) {
57
- this.log(logLevel_1.LogLevel.Alert, `Can't move to position "${targetPosition}" as it is not calibrated (Move it completly up, down, up first)`);
60
+ this.log(models_1.LogLevel.Alert, `Can't move to position "${targetPosition}" as it is not calibrated (Move it completly up, down, up first)`);
58
61
  return;
59
62
  }
60
63
  const distance = Math.abs(this._currentLevel - targetPosition);
61
64
  const direction = this._currentLevel > targetPosition ? MovementState.Down : MovementState.Up;
62
- const duration = Math.round(distance / 100) * (this._currentLevel > targetPosition ? this._msTilBot : this._msTilTop);
65
+ const duration = Math.round(distance / 100) * (this._currentLevel > targetPosition ? this.getAverageDown() : this.getAverageUp());
63
66
  this.changeMovementState(direction);
64
- utils_1.Utils.guardedTimeout(() => {
67
+ this.initializeMovementFinishTimeout(duration, targetPosition);
68
+ services_1.Utils.guardedTimeout(() => {
65
69
  this.changeMovementState(MovementState.Stop);
66
70
  }, duration, this);
67
71
  }
68
72
  changeMovementState(direction) {
69
- this.log(logLevel_1.LogLevel.Debug, `Set new MovementState to "${MovementState[direction]}"`);
73
+ this.log(models_1.LogLevel.Debug, `Set new MovementState to "${MovementState[direction]}"`);
70
74
  if (direction !== MovementState.Stop) {
71
- this._movementStartMs = utils_1.Utils.nowMS();
75
+ this._movementStartMs = services_1.Utils.nowMS();
72
76
  }
73
77
  this.setState(this._movementStateId, direction, () => {
74
78
  this._movementState = direction;
@@ -76,43 +80,41 @@ class ZigbeeIlluShutter extends zigbeeShutter_1.ZigbeeShutter {
76
80
  }
77
81
  processNewMovementState(val) {
78
82
  const newState = val <= 30 ? MovementState.Down : val >= 70 ? MovementState.Up : MovementState.Stop;
79
- this.log(logLevel_1.LogLevel.Trace, `New Movementstate "${MovementState[val]}"`);
83
+ this.log(models_1.LogLevel.Trace, `New Movementstate "${MovementState[val]}"`);
80
84
  if (newState !== MovementState.Stop) {
81
85
  this._movementState = newState;
82
86
  return;
83
87
  }
84
- const timePassed = utils_1.Utils.nowMS() - this._movementStartMs;
88
+ const timePassed = services_1.Utils.nowMS() - this._movementStartMs;
85
89
  const oldState = this._movementState;
86
90
  if (this._movementStartPos === 0 && oldState === MovementState.Up && this._setLevel === 100) {
87
- this._msTilTop = timePassed;
88
- this.log(logLevel_1.LogLevel.Debug, `New Time-Until-Top measurement for ${this.info.customName}: ${timePassed}ms`);
91
+ this.log(models_1.LogLevel.Debug, `New Time-Until-Top measurement for ${this.info.customName}: ${timePassed}ms`);
89
92
  this.currentLevel = this._setLevel;
90
93
  this._shutterCalibrationData.counterUp++;
91
94
  this._shutterCalibrationData.averageUp +=
92
- (this._msTilTop - this._shutterCalibrationData.averageUp) / this._shutterCalibrationData.counterUp;
95
+ (timePassed - this._shutterCalibrationData.averageUp) / this._shutterCalibrationData.counterUp;
93
96
  this.persistCalibrationData();
94
- this.log(logLevel_1.LogLevel.Trace, `New Measurment for shutter up (${this._msTilTop}ms), new Average: ${this._shutterCalibrationData.averageUp}`);
97
+ this.log(models_1.LogLevel.Trace, `New Measurment for shutter up (${this.getAverageUp()}ms), new Average: ${this._shutterCalibrationData.averageUp}`);
95
98
  return;
96
99
  }
97
100
  if (this._movementStartPos === 100 && oldState === MovementState.Down && this._setLevel === 0) {
98
- this.log(logLevel_1.LogLevel.Debug, `New Time-Until-Bottom measurement for ${this.info.customName}: ${timePassed}ms`);
99
- this._msTilBot = timePassed;
101
+ this.log(models_1.LogLevel.Debug, `New Time-Until-Bottom measurement for ${this.info.customName}: ${timePassed}ms`);
100
102
  this.currentLevel = this._setLevel;
101
103
  this._shutterCalibrationData.counterDown++;
102
104
  this._shutterCalibrationData.averageDown +=
103
- (this._msTilBot - this._shutterCalibrationData.averageDown) / this._shutterCalibrationData.counterDown;
105
+ (timePassed - this._shutterCalibrationData.averageDown) / this._shutterCalibrationData.counterDown;
104
106
  this.persistCalibrationData();
105
- this.log(logLevel_1.LogLevel.Trace, `New Measurment for shutter down (${this._msTilBot}ms), new Average: ${this._shutterCalibrationData.averageDown}`);
107
+ this.log(models_1.LogLevel.Trace, `New Measurment for shutter down (${this.getAverageDown()}ms), new Average: ${this._shutterCalibrationData.averageDown}`);
106
108
  return;
107
109
  }
108
110
  if (!this.isCalibrated()) {
109
111
  return;
110
112
  }
111
113
  if (oldState === MovementState.Down) {
112
- this.currentLevel = Math.min(this._currentLevel - Math.round((timePassed * 100) / this._msTilBot), 0);
114
+ this.currentLevel = Math.min(this._currentLevel - Math.round((timePassed * 100) / this.getAverageDown()), 0);
113
115
  }
114
116
  else if (oldState === MovementState.Up) {
115
- this.currentLevel = Math.max(this._currentLevel + Math.round((timePassed * 100) / this._msTilBot), 100);
117
+ this.currentLevel = Math.max(this._currentLevel + Math.round((timePassed * 100) / this.getAverageUp()), 100);
116
118
  }
117
119
  }
118
120
  }