homebridge-levoit-humidifiers 1.2.7 → 1.3.0-beta4
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/README.md +6 -3
- package/dist/VeSyncAccessory.d.ts +2 -0
- package/dist/VeSyncAccessory.d.ts.map +1 -1
- package/dist/VeSyncAccessory.js +17 -3
- package/dist/VeSyncAccessory.js.map +1 -1
- package/dist/api/VeSyncFan.d.ts +6 -6
- package/dist/api/VeSyncFan.d.ts.map +1 -1
- package/dist/api/VeSyncFan.js +11 -11
- package/dist/api/VeSyncFan.js.map +1 -1
- package/dist/api/deviceTypes.d.ts +2 -1
- package/dist/api/deviceTypes.d.ts.map +1 -1
- package/dist/api/deviceTypes.js +8 -1
- package/dist/api/deviceTypes.js.map +1 -1
- package/dist/characteristics/MistLevel.d.ts.map +1 -1
- package/dist/characteristics/MistLevel.js +10 -6
- package/dist/characteristics/MistLevel.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,16 +3,19 @@
|
|
|
3
3
|
This is a Homebridge plugin to control Levoit Humidifiers with via the VeSync Platform.
|
|
4
4
|
|
|
5
5
|
| Supported Versions | Tested |
|
|
6
|
-
|
|
6
|
+
|--------------------| -------------------------------- |
|
|
7
7
|
| Classic 300S | ✅ |
|
|
8
|
-
|
|
|
8
|
+
| Classic 200S | ✅ |
|
|
9
|
+
| Dual 200S | ✅ |
|
|
9
10
|
|
|
10
11
|
This plugin was forked from [RaresAil's Levoit Air Purifiers repo](https://github.com/RaresAil/homebridge-levoit-air-purifier) and adds logic for the Levoit humidifers.
|
|
11
12
|
|
|
12
13
|
### Features
|
|
13
14
|
|
|
14
15
|
1. Set Mist Level
|
|
15
|
-
- Levels 1-9 on
|
|
16
|
+
- Levels 1-9 on Classic300s
|
|
17
|
+
- Levels 1-9 on Classic200s
|
|
18
|
+
- Levels 1-2 on Dual200s
|
|
16
19
|
|
|
17
20
|
2. Mode change
|
|
18
21
|
- Auto
|
|
@@ -13,6 +13,8 @@ export default class VeSyncAccessory {
|
|
|
13
13
|
private humidifierService;
|
|
14
14
|
get UUID(): string;
|
|
15
15
|
private get device();
|
|
16
|
+
private get getStep();
|
|
17
|
+
private get getValues();
|
|
16
18
|
constructor(platform: Platform, accessory: VeSyncPlatformAccessory);
|
|
17
19
|
}
|
|
18
20
|
//# sourceMappingURL=VeSyncAccessory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VeSyncAccessory.d.ts","sourceRoot":"","sources":["../src/VeSyncAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAEnC,OAAO,QAAQ,EAAE,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAI7D,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAIxC,oBAAY,iBAAiB,GAAG,QAAQ,CAAC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"VeSyncAccessory.d.ts","sourceRoot":"","sources":["../src/VeSyncAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAEnC,OAAO,QAAQ,EAAE,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAI7D,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAIxC,oBAAY,iBAAiB,GAAG,QAAQ,CAAC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,eAAe;IA8B5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IA9B9B,OAAO,CAAC,qBAAqB,CAAU;IACvC,OAAO,CAAC,iBAAiB,CAAU;IAEnC,IAAW,IAAI,WAEd;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,OAAO,GAIlB;IAED,OAAO,KAAK,SAAS,GASpB;gBAGoB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,uBAAuB;CA8D1D"}
|
package/dist/VeSyncAccessory.js
CHANGED
|
@@ -46,9 +46,8 @@ class VeSyncAccessory {
|
|
|
46
46
|
this.humidifierService
|
|
47
47
|
.getCharacteristic(this.platform.Characteristic.RelativeHumidityHumidifierThreshold)
|
|
48
48
|
.setProps({
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
maxValue: 100
|
|
49
|
+
validValues: this.getValues,
|
|
50
|
+
minStep: this.getStep
|
|
52
51
|
})
|
|
53
52
|
.onGet(MistLevel_1.default.get.bind(this))
|
|
54
53
|
.onSet(MistLevel_1.default.set.bind(this));
|
|
@@ -65,6 +64,21 @@ class VeSyncAccessory {
|
|
|
65
64
|
get device() {
|
|
66
65
|
return this.accessory.context.device;
|
|
67
66
|
}
|
|
67
|
+
get getStep() {
|
|
68
|
+
const levels = this.device.deviceType.mistLevels;
|
|
69
|
+
const percentage = 100 / levels;
|
|
70
|
+
return Math.round(percentage * 100) / 100;
|
|
71
|
+
}
|
|
72
|
+
get getValues() {
|
|
73
|
+
const values = [];
|
|
74
|
+
const percentage = this.getStep;
|
|
75
|
+
let levelStep = 0;
|
|
76
|
+
while (levelStep <= 100) {
|
|
77
|
+
values.push(levelStep);
|
|
78
|
+
levelStep = levelStep + percentage;
|
|
79
|
+
}
|
|
80
|
+
return values;
|
|
81
|
+
}
|
|
68
82
|
}
|
|
69
83
|
exports.default = VeSyncAccessory;
|
|
70
84
|
//# sourceMappingURL=VeSyncAccessory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VeSyncAccessory.js","sourceRoot":"","sources":["../src/VeSyncAccessory.ts"],"names":[],"mappings":";;;;;AAGA,kFAA0D;AAC1D,0EAAkD;AAClD,sEAA8C;AAE9C,4EAAoD;AACpD,gFAAwD;AAQxD,MAAqB,eAAe;
|
|
1
|
+
{"version":3,"file":"VeSyncAccessory.js","sourceRoot":"","sources":["../src/VeSyncAccessory.ts"],"names":[],"mappings":"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"}
|
package/dist/api/VeSyncFan.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export default class VeSyncFan {
|
|
|
9
9
|
private readonly client;
|
|
10
10
|
readonly name: string;
|
|
11
11
|
private _mode;
|
|
12
|
-
private
|
|
12
|
+
private _mistLevel;
|
|
13
13
|
readonly uuid: string;
|
|
14
14
|
private _isOn;
|
|
15
15
|
private _humidityLevel;
|
|
@@ -25,18 +25,18 @@ export default class VeSyncFan {
|
|
|
25
25
|
readonly manufacturer = "Levoit";
|
|
26
26
|
get humidityLevel(): number;
|
|
27
27
|
get screenVisible(): boolean;
|
|
28
|
-
get
|
|
28
|
+
get mistLevel(): number;
|
|
29
29
|
get mode(): Mode;
|
|
30
30
|
get isOn(): boolean;
|
|
31
|
-
constructor(client: VeSync, name: string, _mode: Mode,
|
|
31
|
+
constructor(client: VeSync, name: string, _mode: Mode, _mistLevel: number, uuid: string, _isOn: boolean, _humidityLevel: number, configModule: string, cid: string, region: string, model: string, mac: string);
|
|
32
32
|
setPower(power: boolean): Promise<boolean>;
|
|
33
33
|
changeMode(mode: Mode): Promise<boolean>;
|
|
34
|
-
changeMistLevel(
|
|
34
|
+
changeMistLevel(mistLevel: number): Promise<boolean>;
|
|
35
35
|
updateInfo(): Promise<void>;
|
|
36
|
-
static fromResponse: (client: VeSync) => ({ deviceStatus, deviceName,
|
|
36
|
+
static fromResponse: (client: VeSync) => ({ deviceStatus, deviceName, mistLevel, mode, extension, uuid, configModule, cid, deviceRegion, deviceType, macID }: {
|
|
37
37
|
deviceStatus: any;
|
|
38
38
|
deviceName: any;
|
|
39
|
-
|
|
39
|
+
mistLevel: any;
|
|
40
40
|
mode: any;
|
|
41
41
|
extension: any;
|
|
42
42
|
uuid: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VeSyncFan.d.ts","sourceRoot":"","sources":["../../src/api/VeSyncFan.ts"],"names":[],"mappings":"AACA,OAAoB,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEtD,OAAO,MAAsB,MAAM,UAAU,CAAC;AAE9C,oBAAY,IAAI;IACZ,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;CAChB;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;IA8BtB,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"VeSyncFan.d.ts","sourceRoot":"","sources":["../../src/api/VeSyncFan.ts"],"names":[],"mappings":"AACA,OAAoB,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEtD,OAAO,MAAsB,MAAM,UAAU,CAAC;AAE9C,oBAAY,IAAI;IACZ,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;CAChB;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;IA8BtB,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,UAAU;aACF,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc;aACN,YAAY,EAAE,MAAM;aACpB,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,MAAM;aACd,KAAK,EAAE,MAAM;aACb,GAAG,EAAE,MAAM;IAxC/B,OAAO,CAAC,IAAI,CAA8B;IAC1C,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,cAAc,CAAQ;IAE9B,SAAgB,YAAY,YAAY;IAExC,IAAW,aAAa,WAEvB;IAED,IAAW,aAAa,YAEvB;IAED,IAAW,SAAS,WAEnB;IAED,IAAW,IAAI,SAEd;IAED,IAAW,IAAI,YAEd;gBAGoB,MAAM,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACpB,KAAK,EAAE,IAAI,EACX,UAAU,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM;IAKlB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAa1C,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAaxC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BxC,OAAc,YAAY,WACb,MAAM;;;;;;;;;;;;oBA2BL;CACjB"}
|
package/dist/api/VeSyncFan.js
CHANGED
|
@@ -14,11 +14,11 @@ var Mode;
|
|
|
14
14
|
Mode["Auto"] = "auto";
|
|
15
15
|
})(Mode = exports.Mode || (exports.Mode = {}));
|
|
16
16
|
class VeSyncFan {
|
|
17
|
-
constructor(client, name, _mode,
|
|
17
|
+
constructor(client, name, _mode, _mistLevel, uuid, _isOn, _humidityLevel, configModule, cid, region, model, mac) {
|
|
18
18
|
this.client = client;
|
|
19
19
|
this.name = name;
|
|
20
20
|
this._mode = _mode;
|
|
21
|
-
this.
|
|
21
|
+
this._mistLevel = _mistLevel;
|
|
22
22
|
this.uuid = uuid;
|
|
23
23
|
this._isOn = _isOn;
|
|
24
24
|
this._humidityLevel = _humidityLevel;
|
|
@@ -39,8 +39,8 @@ class VeSyncFan {
|
|
|
39
39
|
get screenVisible() {
|
|
40
40
|
return this._screenVisible;
|
|
41
41
|
}
|
|
42
|
-
get
|
|
43
|
-
return this.
|
|
42
|
+
get mistLevel() {
|
|
43
|
+
return this._mistLevel;
|
|
44
44
|
}
|
|
45
45
|
get mode() {
|
|
46
46
|
return this._mode;
|
|
@@ -67,18 +67,18 @@ class VeSyncFan {
|
|
|
67
67
|
}
|
|
68
68
|
return success;
|
|
69
69
|
}
|
|
70
|
-
async changeMistLevel(
|
|
71
|
-
this.client.log.info("Setting Mist Level to " +
|
|
72
|
-
if (
|
|
70
|
+
async changeMistLevel(mistLevel) {
|
|
71
|
+
this.client.log.info("Setting Mist Level to " + mistLevel);
|
|
72
|
+
if (mistLevel > this.deviceType.mistLevels || mistLevel < 1) {
|
|
73
73
|
return false;
|
|
74
74
|
}
|
|
75
75
|
const success = await this.client.sendCommand(this, VeSync_1.BypassMethod.MIST_LEVEL, {
|
|
76
|
-
level:
|
|
76
|
+
level: mistLevel,
|
|
77
77
|
type: 'mist',
|
|
78
78
|
id: 0
|
|
79
79
|
});
|
|
80
80
|
if (success) {
|
|
81
|
-
this.
|
|
81
|
+
this._mistLevel = mistLevel;
|
|
82
82
|
}
|
|
83
83
|
return success;
|
|
84
84
|
}
|
|
@@ -98,7 +98,7 @@ class VeSyncFan {
|
|
|
98
98
|
this._humidityLevel = result.humidity;
|
|
99
99
|
this._screenVisible = result.display;
|
|
100
100
|
this._isOn = result.enabled;
|
|
101
|
-
this.
|
|
101
|
+
this._mistLevel = result.mist_virtual_level;
|
|
102
102
|
this._mode = result.mode;
|
|
103
103
|
}
|
|
104
104
|
catch (err) {
|
|
@@ -108,5 +108,5 @@ class VeSyncFan {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
exports.default = VeSyncFan;
|
|
111
|
-
VeSyncFan.fromResponse = (client) => ({ deviceStatus, deviceName,
|
|
111
|
+
VeSyncFan.fromResponse = (client) => ({ deviceStatus, deviceName, mistLevel, mode, extension, uuid, configModule, cid, deviceRegion, deviceType, macID }) => new VeSyncFan(client, deviceName, mode, parseInt(mistLevel !== null && mistLevel !== void 0 ? mistLevel : '0', 10), uuid, deviceStatus === 'on', extension, configModule, cid, deviceRegion, deviceType, macID);
|
|
112
112
|
//# sourceMappingURL=VeSyncFan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VeSyncFan.js","sourceRoot":"","sources":["../../src/api/VeSyncFan.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAmC;AACnC,gEAAsD;AAEtD,qCAA8C;AAE9C,IAAY,IAIX;AAJD,WAAY,IAAI;IACZ,yBAAiB,CAAA;IACjB,uBAAe,CAAA;IACf,qBAAa,CAAA;AACjB,CAAC,EAJW,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAIf;AAED,MAAqB,SAAS;IA6B1B,YACqB,MAAc,EACf,IAAY,EACpB,KAAW,EACX,
|
|
1
|
+
{"version":3,"file":"VeSyncFan.js","sourceRoot":"","sources":["../../src/api/VeSyncFan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceTypes.d.ts","sourceRoot":"","sources":["../../src/api/deviceTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,WAAW,
|
|
1
|
+
{"version":3,"file":"deviceTypes.d.ts","sourceRoot":"","sources":["../../src/api/deviceTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,WAAW,EAAE,UAAU,EAqB5B,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
package/dist/api/deviceTypes.js
CHANGED
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DeviceName = void 0;
|
|
4
4
|
var DeviceName;
|
|
5
5
|
(function (DeviceName) {
|
|
6
|
-
DeviceName["Classic300S"] = "
|
|
6
|
+
DeviceName["Classic300S"] = "Classic300S";
|
|
7
|
+
DeviceName["Classic200S"] = "Classic200S";
|
|
7
8
|
DeviceName["Dual200S"] = "Dual200S";
|
|
8
9
|
})(DeviceName = exports.DeviceName || (exports.DeviceName = {}));
|
|
9
10
|
const deviceTypes = [
|
|
@@ -13,6 +14,12 @@ const deviceTypes = [
|
|
|
13
14
|
mistMinLevel: 1,
|
|
14
15
|
mistLevels: 9
|
|
15
16
|
},
|
|
17
|
+
{
|
|
18
|
+
isValid: (input) => input.includes(DeviceName.Classic200S),
|
|
19
|
+
hasAutoMode: true,
|
|
20
|
+
mistMinLevel: 1,
|
|
21
|
+
mistLevels: 9
|
|
22
|
+
},
|
|
16
23
|
{
|
|
17
24
|
isValid: (input) => input.includes(DeviceName.Dual200S),
|
|
18
25
|
hasAutoMode: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceTypes.js","sourceRoot":"","sources":["../../src/api/deviceTypes.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"deviceTypes.js","sourceRoot":"","sources":["../../src/api/deviceTypes.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,yCAA2B,CAAA;IAC3B,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;AACvB,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB;AASD,MAAM,WAAW,GAAiB;IAChC;QACE,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CACzB,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QACxC,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;KACd;IACD;QACE,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CACvB,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QAC1C,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;KACd;IACD;QACE,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC/D,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;KACd;CACF,CAAC;AAEF,kBAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MistLevel.d.ts","sourceRoot":"","sources":["../../src/characteristics/MistLevel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EAGzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"MistLevel.d.ts","sourceRoot":"","sources":["../../src/characteristics/MistLevel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EAGzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAiBvD,QAAA,MAAM,cAAc,EAAE;IACpB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,GAAG,EAAE,wBAAwB,CAAC;CAC/B,GAAG,iBAUH,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const calculateMistLevel = (device) => {
|
|
4
|
-
let
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
let currentMistLevel = device.mistLevel;
|
|
5
|
+
const totalMistLevels = device.deviceType.mistLevels;
|
|
6
|
+
currentMistLevel = currentMistLevel * 100 / totalMistLevels;
|
|
7
|
+
return device.isOn ? currentMistLevel : 0;
|
|
8
|
+
};
|
|
9
|
+
const convertMistLevelFromPerc = (device, percentage) => {
|
|
10
|
+
const totalMistLevels = device.deviceType.mistLevels;
|
|
11
|
+
const mistInt = Math.round(Math.ceil(Number(percentage) / 100 * totalMistLevels));
|
|
12
|
+
return mistInt;
|
|
7
13
|
};
|
|
8
14
|
const characteristic = {
|
|
9
15
|
get: async function () {
|
|
@@ -11,10 +17,8 @@ const characteristic = {
|
|
|
11
17
|
return calculateMistLevel(this.device);
|
|
12
18
|
},
|
|
13
19
|
set: async function (value) {
|
|
14
|
-
const intVal =
|
|
15
|
-
// await this.device.changeMode(Mode.Manual);
|
|
20
|
+
const intVal = convertMistLevelFromPerc(this.device, value);
|
|
16
21
|
await this.device.changeMistLevel(intVal);
|
|
17
|
-
return intVal;
|
|
18
22
|
}
|
|
19
23
|
};
|
|
20
24
|
exports.default = characteristic;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MistLevel.js","sourceRoot":"","sources":["../../src/characteristics/MistLevel.ts"],"names":[],"mappings":";;AAUA,MAAM,kBAAkB,GAAG,CAAC,MAAiB,EAAE,EAAE;IAC/C,IAAI,
|
|
1
|
+
{"version":3,"file":"MistLevel.js","sourceRoot":"","sources":["../../src/characteristics/MistLevel.ts"],"names":[],"mappings":";;AAUA,MAAM,kBAAkB,GAAG,CAAC,MAAiB,EAAE,EAAE;IAC/C,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;IACxC,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;IACrD,gBAAgB,GAAG,gBAAgB,GAAG,GAAG,GAAG,eAAe,CAAC;IAE5D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,MAAiB,EAAE,UAAU,EAAE,EAAE;IACjE,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,GAAI,eAAe,CAAC,CAAC,CAAC;IAEnF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,cAAc,GAGI;IACtB,GAAG,EAAE,KAAK;QACR,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,EAAE,KAAK,WAAW,KAA0B;QAC7C,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"}
|
package/package.json
CHANGED