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.
- package/lib/index.d.ts +1 -2
- package/lib/index.js +5 -4
- package/lib/models/deviceSettings/index.d.ts +1 -0
- package/lib/models/deviceSettings/index.js +1 -0
- package/lib/models/deviceSettings/motionSensorSettings.d.ts +9 -0
- package/lib/models/deviceSettings/motionSensorSettings.js +16 -0
- package/lib/models/deviceSettings/shutterSettings.d.ts +6 -0
- package/lib/models/deviceSettings/shutterSettings.js +6 -0
- package/lib/models/rooms/RoomBase.d.ts +7 -17
- package/lib/models/rooms/RoomBase.js +27 -32
- package/lib/models/rooms/RoomSettings/RoomSettings.js +1 -0
- package/lib/models/timeCallback.d.ts +7 -1
- package/lib/models/timeCallback.js +16 -10
- package/lib/server/devices/Heizgruppen.d.ts +1 -1
- package/lib/server/devices/Heizgruppen.js +3 -3
- package/lib/server/devices/IoBrokerBaseDevice.d.ts +11 -12
- package/lib/server/devices/IoBrokerBaseDevice.js +36 -38
- package/lib/server/devices/button.d.ts +1 -1
- package/lib/server/devices/button.js +5 -6
- package/lib/server/devices/device-cluster.d.ts +5 -4
- package/lib/server/devices/device-cluster.js +3 -2
- package/lib/server/devices/device-list.d.ts +4 -4
- package/lib/server/devices/device-list.js +5 -5
- package/lib/server/devices/deviceType.d.ts +1 -0
- package/lib/server/devices/deviceType.js +1 -0
- package/lib/server/devices/deviceUpdater.js +4 -4
- package/lib/server/devices/devices.d.ts +6 -7
- package/lib/server/devices/devices.js +78 -108
- package/lib/server/devices/groups/Fenster.d.ts +6 -6
- package/lib/server/devices/groups/Fenster.js +22 -24
- package/lib/server/devices/groups/fensterGroup.d.ts +2 -1
- package/lib/server/devices/groups/fensterGroup.js +42 -36
- package/lib/server/devices/groups/heatGroup.d.ts +2 -2
- package/lib/server/devices/groups/heatGroup.js +8 -8
- package/lib/server/devices/groups/lampenGroup.d.ts +3 -4
- package/lib/server/devices/groups/lampenGroup.js +12 -12
- package/lib/server/devices/groups/praesenzGroup.d.ts +6 -7
- package/lib/server/devices/groups/praesenzGroup.js +45 -40
- package/lib/server/devices/groups/tasterGroup.d.ts +1 -1
- package/lib/server/devices/groups/tasterGroup.js +3 -3
- package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +12 -8
- package/lib/server/devices/hmIPDevices/hmIpBewegung.js +31 -26
- package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +8 -8
- package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +40 -43
- package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +1 -2
- package/lib/server/devices/hmIPDevices/hmIpLampe.js +11 -13
- package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +5 -5
- package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +17 -17
- package/lib/server/devices/iBaseDevice.d.ts +11 -0
- package/lib/server/devices/iBaseDevice.js +2 -0
- package/lib/server/devices/iButtonSwitch.d.ts +2 -2
- package/lib/server/devices/iEnergyManager.d.ts +18 -2
- package/lib/server/devices/iEnergyManager.js +28 -0
- package/lib/server/devices/iExcessEnergyConsumer.d.ts +3 -3
- package/lib/server/devices/iHeater.d.ts +3 -3
- package/lib/server/devices/iHumiditySensor.d.ts +2 -2
- package/lib/server/devices/iLamp.d.ts +3 -5
- package/lib/server/devices/iMotionSensor.d.ts +13 -0
- package/lib/server/devices/iMotionSensor.js +2 -0
- package/lib/server/devices/iShutter.d.ts +3 -3
- package/lib/server/devices/iTemperaturSensor.d.ts +2 -2
- package/lib/server/devices/iVibrationSensor.d.ts +9 -0
- package/lib/server/devices/iVibrationSensor.js +2 -0
- package/lib/server/devices/index.d.ts +3 -0
- package/lib/server/devices/index.js +3 -0
- package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +36 -24
- package/lib/server/devices/jsObject/jsObjectEnergyManager.js +79 -39
- package/lib/server/devices/zigbee/index.d.ts +1 -0
- package/lib/server/devices/zigbee/index.js +1 -0
- package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +4 -4
- package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +15 -16
- package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +11 -5
- package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +48 -32
- package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -2
- package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +23 -25
- package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +2 -2
- package/lib/server/devices/zigbee/zigbeeIlluLampe.js +7 -8
- package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -2
- package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +18 -20
- package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +0 -2
- package/lib/server/devices/zigbee/zigbeeIlluShutter.js +26 -24
- package/lib/server/devices/zigbee/zigbeeMotionSensor.d.ts +8 -6
- package/lib/server/devices/zigbee/zigbeeMotionSensor.js +22 -21
- package/lib/server/devices/zigbee/zigbeeShutter.d.ts +13 -11
- package/lib/server/devices/zigbee/zigbeeShutter.js +43 -34
- package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +9 -0
- package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +26 -0
- package/lib/server/services/ShutterService.d.ts +1 -2
- package/lib/server/services/ShutterService.js +6 -5
- package/lib/server/services/Telegram/telegram-service.d.ts +1 -1
- package/lib/server/services/Telegram/telegram-service.js +13 -11
- package/lib/server/services/api/api-service.d.ts +5 -5
- package/lib/server/services/api/api-service.js +5 -5
- package/lib/server/services/calendar/m/303/274ll-service.d.ts +4 -4
- package/lib/server/services/calendar/m/303/274ll-service.js +18 -14
- package/lib/server/services/dbo/postgreSqlPersist.d.ts +9 -9
- package/lib/server/services/dbo/postgreSqlPersist.js +13 -13
- package/lib/server/services/room-service/room-service.d.ts +5 -6
- package/lib/server/services/room-service/room-service.js +29 -30
- package/lib/server/services/time-callback-service.d.ts +9 -15
- package/lib/server/services/time-callback-service.js +39 -45
- package/lib/server/services/utils/utils.d.ts +2 -0
- package/lib/server/services/utils/utils.js +6 -10
- package/lib/tsconfig.tsbuildinfo +1 -1
- 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
|
|
6
|
-
const
|
|
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.
|
|
20
|
+
this.vibrationBlockedByGriffTimeStamp = 0;
|
|
21
|
+
this.vibrationBlockedByMotionTimeStamp = 0;
|
|
25
22
|
this._idSensitivity = '';
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
|
|
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
|
-
|
|
32
|
-
|
|
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.
|
|
36
|
+
this.vibrationBlockedByGriffTimeStamp = new Date().getTime();
|
|
35
37
|
}
|
|
36
|
-
this.
|
|
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(
|
|
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 ?
|
|
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 ?
|
|
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 ?
|
|
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 ?
|
|
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 ?
|
|
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
|
-
|
|
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 ?
|
|
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 ?
|
|
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 ?
|
|
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 ?
|
|
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(
|
|
108
|
+
this.log(models_1.LogLevel.Error, `Keine Switch ID bekannt.`);
|
|
97
109
|
return;
|
|
98
110
|
}
|
|
99
|
-
this.log(
|
|
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(
|
|
106
|
-
if (this.
|
|
107
|
-
this.log(
|
|
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
|
-
|
|
112
|
-
this.log(
|
|
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
|
|
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
|
|
4
|
+
const models_1 = require("../../../models");
|
|
5
5
|
const deviceType_1 = require("../deviceType");
|
|
6
|
-
const
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
46
|
+
case models_1.TimeOfDay.Night:
|
|
49
47
|
this.setLight(true, timeout, force, this.settings.nightBrightness);
|
|
50
48
|
break;
|
|
51
|
-
case
|
|
49
|
+
case models_1.TimeOfDay.AfterSunset:
|
|
52
50
|
this.setLight(true, timeout, force, this.settings.dawnBrightness);
|
|
53
51
|
break;
|
|
54
|
-
case
|
|
52
|
+
case models_1.TimeOfDay.BeforeSunrise:
|
|
55
53
|
this.setLight(true, timeout, force, this.settings.duskBrightness);
|
|
56
54
|
break;
|
|
57
|
-
case
|
|
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(
|
|
67
|
+
this.log(models_1.LogLevel.Error, `Keine State ID bekannt.`);
|
|
70
68
|
return;
|
|
71
69
|
}
|
|
72
70
|
if (!this.ioConn) {
|
|
73
|
-
this.log(
|
|
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(
|
|
77
|
+
this.log(models_1.LogLevel.Error, `Dimmer TransitionTime schalten ergab Fehler: ${err}`);
|
|
80
78
|
}
|
|
81
79
|
});
|
|
82
80
|
}
|
|
83
|
-
if (!force &&
|
|
84
|
-
this.log(
|
|
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(
|
|
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
|
-
|
|
97
|
-
this.log(
|
|
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 =
|
|
114
|
-
this._turnOffTimeout =
|
|
115
|
-
this.log(
|
|
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 =
|
|
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
|
-
|
|
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 ===
|
|
54
|
-
(time ===
|
|
55
|
-
(time ===
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
74
|
+
this.log(models_1.LogLevel.Error, `Keine State ID bekannt.`);
|
|
77
75
|
return;
|
|
78
76
|
}
|
|
79
77
|
if (!this.ioConn) {
|
|
80
|
-
this.log(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
7
|
-
const
|
|
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(
|
|
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(
|
|
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 =
|
|
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(
|
|
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.
|
|
65
|
+
const duration = Math.round(distance / 100) * (this._currentLevel > targetPosition ? this.getAverageDown() : this.getAverageUp());
|
|
63
66
|
this.changeMovementState(direction);
|
|
64
|
-
|
|
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(
|
|
73
|
+
this.log(models_1.LogLevel.Debug, `Set new MovementState to "${MovementState[direction]}"`);
|
|
70
74
|
if (direction !== MovementState.Stop) {
|
|
71
|
-
this._movementStartMs =
|
|
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(
|
|
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 =
|
|
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.
|
|
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
|
-
(
|
|
95
|
+
(timePassed - this._shutterCalibrationData.averageUp) / this._shutterCalibrationData.counterUp;
|
|
93
96
|
this.persistCalibrationData();
|
|
94
|
-
this.log(
|
|
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(
|
|
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
|
-
(
|
|
105
|
+
(timePassed - this._shutterCalibrationData.averageDown) / this._shutterCalibrationData.counterDown;
|
|
104
106
|
this.persistCalibrationData();
|
|
105
|
-
this.log(
|
|
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.
|
|
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.
|
|
117
|
+
this.currentLevel = Math.max(this._currentLevel + Math.round((timePassed * 100) / this.getAverageUp()), 100);
|
|
116
118
|
}
|
|
117
119
|
}
|
|
118
120
|
}
|