homebridge-levoit-humidifiers 1.3.1 → 1.5.0-beta11

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 (60) hide show
  1. package/README.md +51 -25
  2. package/dist/VeSyncAccessory.d.ts +4 -0
  3. package/dist/VeSyncAccessory.d.ts.map +1 -1
  4. package/dist/VeSyncAccessory.js +75 -15
  5. package/dist/VeSyncAccessory.js.map +1 -1
  6. package/dist/api/VeSync.d.ts +1 -1
  7. package/dist/api/VeSync.d.ts.map +1 -1
  8. package/dist/api/VeSync.js +16 -11
  9. package/dist/api/VeSync.js.map +1 -1
  10. package/dist/api/VeSyncFan.d.ts +18 -6
  11. package/dist/api/VeSyncFan.d.ts.map +1 -1
  12. package/dist/api/VeSyncFan.js +64 -9
  13. package/dist/api/VeSyncFan.js.map +1 -1
  14. package/dist/api/deviceTypes.d.ts +4 -1
  15. package/dist/api/deviceTypes.d.ts.map +1 -1
  16. package/dist/api/deviceTypes.js +24 -5
  17. package/dist/api/deviceTypes.js.map +1 -1
  18. package/dist/characteristics/Active.js +1 -1
  19. package/dist/characteristics/Active.js.map +1 -1
  20. package/dist/characteristics/CurrentState.d.ts.map +1 -1
  21. package/dist/characteristics/CurrentState.js +7 -1
  22. package/dist/characteristics/CurrentState.js.map +1 -1
  23. package/dist/characteristics/DisplayState.d.ts +8 -0
  24. package/dist/characteristics/DisplayState.d.ts.map +1 -0
  25. package/dist/characteristics/DisplayState.js +14 -0
  26. package/dist/characteristics/DisplayState.js.map +1 -0
  27. package/dist/characteristics/LightBrightness.d.ts +8 -0
  28. package/dist/characteristics/LightBrightness.d.ts.map +1 -0
  29. package/dist/characteristics/LightBrightness.js +17 -0
  30. package/dist/characteristics/LightBrightness.js.map +1 -0
  31. package/dist/characteristics/LightState.d.ts +8 -0
  32. package/dist/characteristics/LightState.d.ts.map +1 -0
  33. package/dist/characteristics/LightState.js +19 -0
  34. package/dist/characteristics/LightState.js.map +1 -0
  35. package/dist/characteristics/MistLevel.d.ts.map +1 -1
  36. package/dist/characteristics/MistLevel.js +3 -1
  37. package/dist/characteristics/MistLevel.js.map +1 -1
  38. package/dist/characteristics/SleepState.d.ts +8 -0
  39. package/dist/characteristics/SleepState.d.ts.map +1 -0
  40. package/dist/characteristics/SleepState.js +25 -0
  41. package/dist/characteristics/SleepState.js.map +1 -0
  42. package/dist/characteristics/TargetHumidity.d.ts +8 -0
  43. package/dist/characteristics/TargetHumidity.d.ts.map +1 -0
  44. package/dist/characteristics/TargetHumidity.js +30 -0
  45. package/dist/characteristics/TargetHumidity.js.map +1 -0
  46. package/dist/characteristics/TargetState.d.ts +1 -2
  47. package/dist/characteristics/TargetState.d.ts.map +1 -1
  48. package/dist/characteristics/TargetState.js +2 -25
  49. package/dist/characteristics/TargetState.js.map +1 -1
  50. package/images/auto.png +0 -0
  51. package/images/display.png +0 -0
  52. package/images/light.png +0 -0
  53. package/images/logs.png +0 -0
  54. package/images/manual.png +0 -0
  55. package/images/services.png +0 -0
  56. package/images/services2.png +0 -0
  57. package/images/sleep.png +0 -0
  58. package/package.json +2 -2
  59. package/images/humidity.png +0 -0
  60. package/images/off.png +0 -0
package/README.md CHANGED
@@ -2,34 +2,58 @@
2
2
 
3
3
  This is a Homebridge plugin to control Levoit Humidifiers via the VeSync Platform.
4
4
 
5
- | Supported Versions | Tested |
6
- |----------------------| -------------------------------- |
7
- | Classic 300S | ✅ |
8
- | Classic 200S | ✅ |
9
- | Dual 200S | ✅ |
10
- | Dual 200S (EU model) | ✅ |
11
- | Dual 200S (UK model) | ✅ |
12
-
13
- 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.
5
+ | Supported Versions | Auto Mode | Cool Mode | Sleep Mode | Night Light | Display Toggle | Humidity Sensor | Warm Mode |
6
+ |----------------------|-----------|-----------|------------|-------------|----------------|-----------------|-------------|
7
+ | Classic 300S | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
8
+ | Classic 200S | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
9
+ | Dual 200S | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
10
+ | Dual 200S (EU model) | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
11
+ | Dual 200S (UK model) | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
12
+ | LV600S | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Coming Soon |
13
+
14
+ This plugin was forked
15
+ from [RaresAil's Levoit Air Purifiers repo](https://github.com/RaresAil/homebridge-levoit-air-purifier) and adds logic
16
+ for the Levoit Humidifers.
14
17
 
15
18
  ### Features
16
19
 
17
- 1. Set Mist Level
18
- - Levels 1-9 on Classic300s and Classic200s
19
- - Levels 1-2 on Dual200s, Dual200S EU, and Dual200S UK
20
+ 1. Target Humidity
21
+ - Sets humidifier to Auto and sets the Target Humidity to the desired level.
22
+ - Can also change Target Humidity in Sleep Mode.
20
23
 
21
- 2. Mode change
22
- - Auto
23
- - Manual
24
+ 2. Mist Level
25
+ - Sets humidifier to Manual and sets the Mist Level to the desired level.
26
+ - When set to Level 0, turns the device off.
27
+ - Levels 1-9 on Classic300s, Classic200s, and LV600S
28
+ - Levels 1-2 on Dual200s, Dual200S EU, and Dual200S UK
24
29
 
25
- <a href="url"><img src="https://github.com/pschroeder89/homebridge-levoit-humidifiers/blob/main/images/auto.png?raw=true" width=25% height=25%></a>
26
- <a href="url"><img src="https://github.com/pschroeder89/homebridge-levoit-humidifiers/blob/main/images/humidity.png?raw=true" width=25% height=25%></a>
27
- <a href="url"><img src="https://github.com/pschroeder89/homebridge-levoit-humidifiers/blob/main/images/off.png?raw=true" width=25% height=25%></a>
30
+ 3. Sleep Mode
31
+ - This switches the device between Sleep Mode (On) and Auto Mode (Off)
32
+ - Sleep Mode Target Humidity is controlled by the Target Humidity slider, too.
33
+
34
+ 4. Night Light
35
+ - Supported on LV600S and Classic300s
36
+ - 4 brightness levels
37
+
38
+ 5. Display Toggle
39
+ - Toggles the display on/off
28
40
 
29
- The read data is cached for 5 seconds to not trigger the rate limiter for the API.
30
- Each request is delayed by 500ms to not trigger the rate limiter if a huge number of requests are sent.
41
+ 6. Humidity Sensor
42
+ - Sensor that displays current Humidity %
31
43
 
32
- The timers are not included because you can accomplish similar results by using Home App's Automation or the Shortcuts app
44
+ ### TODOs
45
+
46
+ * Add LV600S Warm Mode
47
+
48
+ ### Details
49
+
50
+ <a href="url"><img src="https://github.com/pschroeder89/homebridge-levoit-humidifiers/blob/main/images/services2.png?raw=true" width=25% height=25%></a>
51
+ <a href="url"><img src="https://github.com/pschroeder89/homebridge-levoit-humidifiers/blob/main/images/auto.png?raw=true" width=25% height=25%></a>
52
+ <a href="url"><img src="https://github.com/pschroeder89/homebridge-levoit-humidifiers/blob/main/images/manual.png?raw=true" width=25% height=25%></a>
53
+ <a href="url"><img src="https://github.com/pschroeder89/homebridge-levoit-humidifiers/blob/main/images/display.png?raw=true" width=25% height=25%></a>
54
+ <a href="url"><img src="https://github.com/pschroeder89/homebridge-levoit-humidifiers/blob/main/images/light.png?raw=true" width=25% height=25%></a>
55
+ <a href="url"><img src="https://github.com/pschroeder89/homebridge-levoit-humidifiers/blob/main/images/sleep.png?raw=true" width=25% height=25%></a>
56
+ <a href="url"><img src="https://github.com/pschroeder89/homebridge-levoit-humidifiers/blob/main/images/services.png?raw=true" width=25% height=25%></a>
33
57
 
34
58
  ### Configuration
35
59
 
@@ -38,9 +62,11 @@ The timers are not included because you can accomplish similar results by using
38
62
  - Setup the platform plugin as a child bridge for better performance
39
63
  - Save and restart Homebridge.
40
64
 
41
- This plugin requires your VeSync credentials as it communicates with the VeSync devices via VeSync's own API. Your credentials are only stored in the Homebridge config and not sent to any server except VeSync's.
65
+ This plugin requires your VeSync credentials as it communicates with the VeSync devices via VeSync's own API. Your
66
+ credentials are only stored in the Homebridge config and not sent to any server except VeSync's.
42
67
 
43
- You can also do this directly via the homebridge config by adding your credentials to the config file under platforms. Replace the values of `username` and `password` by your credentials.
68
+ You can also do this directly via the homebridge config by adding your credentials to the config file under platforms.
69
+ Replace the values of `username` and `password` by your credentials.
44
70
 
45
71
  ```json
46
72
  {
@@ -75,13 +101,13 @@ In the config file, add `enableDebugMode: true`
75
101
 
76
102
  ### Local Development
77
103
 
78
- To setup the local project clone the files and inside the root directory of the project run:
104
+ To setup the local project, clone this repo and run the following from the root directory:
79
105
 
80
106
  ```
81
107
  yarn install
82
108
  ```
83
109
 
84
- After that to start the local server use
110
+ To run locally, make sure to install Homebridge locally, and then run:
85
111
 
86
112
  ```
87
113
  yarn watch
@@ -11,6 +11,10 @@ export default class VeSyncAccessory {
11
11
  private readonly accessory;
12
12
  private humiditySensorService;
13
13
  private humidifierService;
14
+ private nightLight;
15
+ private sleepSwitch;
16
+ private displaySwitch;
17
+ private mistService;
14
18
  get UUID(): string;
15
19
  private get device();
16
20
  private get getValues();
@@ -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;IAuB5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAvB9B,OAAO,CAAC,qBAAqB,CAAU;IACvC,OAAO,CAAC,iBAAiB,CAAU;IAEnC,IAAW,IAAI,WAEd;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,SAAS,GASpB;gBAEoB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,uBAAuB;CAgE1D"}
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;AASxC,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;IA4B5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IA5B9B,OAAO,CAAC,qBAAqB,CAAU;IACvC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,WAAW,CAAU;IAE7B,IAAW,IAAI,WAEd;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,SAAS,GASpB;gBAGoB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,uBAAuB;CAiI1D"}
@@ -8,6 +8,11 @@ const Humidity_1 = __importDefault(require("./characteristics/Humidity"));
8
8
  const Active_1 = __importDefault(require("./characteristics/Active"));
9
9
  const MistLevel_1 = __importDefault(require("./characteristics/MistLevel"));
10
10
  const TargetState_1 = __importDefault(require("./characteristics/TargetState"));
11
+ const SleepState_1 = __importDefault(require("./characteristics/SleepState"));
12
+ const LightBrightness_1 = __importDefault(require("./characteristics/LightBrightness"));
13
+ const DisplayState_1 = __importDefault(require("./characteristics/DisplayState"));
14
+ const TargetHumidity_1 = __importDefault(require("./characteristics/TargetHumidity"));
15
+ const LightState_1 = __importDefault(require("./characteristics/LightState"));
11
16
  class VeSyncAccessory {
12
17
  constructor(platform, accessory) {
13
18
  this.platform = platform;
@@ -19,13 +24,17 @@ class VeSyncAccessory {
19
24
  .setCharacteristic(this.platform.Characteristic.Model, model)
20
25
  .setCharacteristic(this.platform.Characteristic.SerialNumber, mac);
21
26
  this.humidifierService =
22
- this.accessory.getService(this.platform.Service.HumidifierDehumidifier) ||
23
- this.accessory.addService(this.platform.Service.HumidifierDehumidifier);
27
+ this.accessory.getService("Target Humidity") ||
28
+ this.accessory.addService(this.platform.Service.HumidifierDehumidifier, "Target Humidity", "Target Humidity");
29
+ this.mistService =
30
+ this.accessory.getService("Mist Level") ||
31
+ this.accessory.addService(this.platform.Service.Fan, "Mist Level", "Mist Level");
32
+ this.displaySwitch =
33
+ this.accessory.getService("Display") ||
34
+ this.accessory.addService(this.platform.Service.Switch, "Display", "Display");
24
35
  this.humiditySensorService =
25
- this.accessory.getService(this.platform.Service.HumiditySensor) ||
26
- this.accessory.addService(this.platform.Service.HumiditySensor);
27
- this.humidifierService.setPrimaryService(true);
28
- this.humidifierService.addLinkedService(this.humiditySensorService);
36
+ this.accessory.getService("Humidity Sensor") ||
37
+ this.accessory.addService(this.platform.Service.HumiditySensor, "Humidity Sensor", "Humidity Sensor");
29
38
  this.humidifierService
30
39
  .getCharacteristic(this.platform.Characteristic.Active)
31
40
  .onGet(Active_1.default.get.bind(this))
@@ -33,14 +42,13 @@ class VeSyncAccessory {
33
42
  this.humidifierService
34
43
  .getCharacteristic(this.platform.Characteristic.TargetHumidifierDehumidifierState)
35
44
  .setProps({
36
- validValues: [0, 1],
45
+ validValues: [1],
37
46
  })
38
- .onGet(TargetState_1.default.get.bind(this))
39
- .onSet(TargetState_1.default.set.bind(this));
47
+ .onGet(TargetState_1.default.get.bind(this));
40
48
  this.humidifierService
41
49
  .getCharacteristic(this.platform.Characteristic.CurrentHumidifierDehumidifierState)
42
50
  .setProps({
43
- validValues: [0, 1, 2],
51
+ validValues: [1, 2],
44
52
  })
45
53
  .onGet(CurrentState_1.default.get.bind(this));
46
54
  this.humidifierService
@@ -48,17 +56,69 @@ class VeSyncAccessory {
48
56
  .setProps({
49
57
  minStep: 1,
50
58
  minValue: 0,
59
+ maxValue: 100,
60
+ })
61
+ .onGet(TargetHumidity_1.default.get.bind(this))
62
+ .onSet(TargetHumidity_1.default.set.bind(this));
63
+ this.humidifierService
64
+ .getCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity)
65
+ .onGet(Humidity_1.default.get.bind(this));
66
+ this.mistService
67
+ .getCharacteristic(this.platform.Characteristic.RotationSpeed)
68
+ .setProps({
69
+ minStep: 1,
70
+ minValue: 0,
51
71
  maxValue: this.device.deviceType.mistLevels,
52
72
  validValues: this.getValues
53
73
  })
54
74
  .onGet(MistLevel_1.default.get.bind(this))
55
75
  .onSet(MistLevel_1.default.set.bind(this));
56
- this.humidifierService
57
- .getCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity)
58
- .onGet(Humidity_1.default.get.bind(this));
76
+ this.displaySwitch
77
+ .getCharacteristic(this.platform.Characteristic.On)
78
+ .onGet(DisplayState_1.default.get.bind(this))
79
+ .onSet(DisplayState_1.default.set.bind(this));
59
80
  this.humiditySensorService
60
81
  .getCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity)
61
82
  .onGet(Humidity_1.default.get.bind(this));
83
+ if (this.device.deviceType.hasSleepMode) {
84
+ this.sleepSwitch =
85
+ this.accessory.getService("Sleep Mode") ||
86
+ this.accessory.addService(this.platform.Service.Switch, "Sleep Mode", "Sleep Mode");
87
+ this.sleepSwitch
88
+ .getCharacteristic(this.platform.Characteristic.On)
89
+ .onGet(SleepState_1.default.get.bind(this))
90
+ .onSet(SleepState_1.default.set.bind(this));
91
+ }
92
+ if (this.device.deviceType.hasLight) {
93
+ this.nightLight =
94
+ this.accessory.getService("Night Light") ||
95
+ this.accessory.addService(this.platform.Service.Lightbulb, "Night Light", "Night Light");
96
+ this.nightLight
97
+ .getCharacteristic(this.platform.Characteristic.On)
98
+ .onGet(LightState_1.default.get.bind(this))
99
+ .onSet(LightState_1.default.set.bind(this));
100
+ this.nightLight
101
+ .getCharacteristic(this.platform.Characteristic.Brightness)
102
+ .setProps({
103
+ minStep: 25,
104
+ minValue: 0,
105
+ maxValue: 100,
106
+ validValues: [0, 25, 50, 75, 100]
107
+ })
108
+ .onGet(LightBrightness_1.default.get.bind(this))
109
+ .onSet(LightBrightness_1.default.set.bind(this));
110
+ }
111
+ // Link Services
112
+ this.humidifierService.setPrimaryService(true);
113
+ if (this.nightLight) {
114
+ this.humidifierService.addLinkedService(this.nightLight);
115
+ }
116
+ if (this.sleepSwitch) {
117
+ this.humidifierService.addLinkedService(this.sleepSwitch);
118
+ }
119
+ this.humidifierService.addLinkedService(this.mistService);
120
+ this.humidifierService.addLinkedService(this.displaySwitch);
121
+ this.humidifierService.addLinkedService(this.humiditySensorService);
62
122
  }
63
123
  get UUID() {
64
124
  return this.device.uuid.toString();
@@ -68,8 +128,8 @@ class VeSyncAccessory {
68
128
  }
69
129
  get getValues() {
70
130
  /*
71
- Determines the number of mist level values to slide through in the Humidify slider.
72
- Returns an array that contains the range of values between 0 and (mistLevels + 1).
131
+ Determines the number of mist level values to slide through in the Mist Level slider.
132
+ Returns an array that contains the range of values between 1 and (mistLevels + 1).
73
133
  We add 1 to mistLevels to account for 0 as a potential level.
74
134
  Example: The Classic300s has 9 mist levels, so this function returns [0,1,2,3,4,5,6,7,8,9].
75
135
  */
@@ -1 +1 @@
1
- {"version":3,"file":"VeSyncAccessory.js","sourceRoot":"","sources":["../src/VeSyncAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VeSyncAccessory.js","sourceRoot":"","sources":["../src/VeSyncAccessory.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import VeSyncFan from './VeSyncFan';
4
4
  export declare enum BypassMethod {
5
5
  STATUS = "getHumidifierStatus",
6
6
  MODE = "setHumidityMode",
7
- NIGHT = "setNightLight",
7
+ NIGHT = "setNightLightBrightness",
8
8
  DISPLAY = "setDisplay",
9
9
  SWITCH = "setSwitch",
10
10
  HUMIDITY = "setTargetHumidity",
@@ -1 +1 @@
1
- {"version":3,"file":"VeSync.d.ts","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;AAKlC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,oBAAY,YAAY;IACpB,MAAM,wBAAwB;IAC9B,IAAI,oBAAoB;IACxB,KAAK,kBAAkB;IACvB,OAAO,eAAe;IACtB,MAAM,cAAc;IACpB,QAAQ,sBAAsB;IAC9B,UAAU,oBAAoB;CACjC;AAMD,MAAM,CAAC,OAAO,OAAO,MAAM;IAiBnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,SAAS;aACpB,GAAG,EAAE,MAAM;IAnB/B,OAAO,CAAC,GAAG,CAAC,CAAgB;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmE;IACzF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;gBAGmB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM;IAI/B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,cAAc;IAiBT,WAAW,CACpB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,YAAY,EACpB,IAAI,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;IAiDN,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IA4B3C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;YAO/B,KAAK;IA0EN,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAuDlD"}
1
+ {"version":3,"file":"VeSync.d.ts","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;AAKlC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,oBAAY,YAAY;IACpB,MAAM,wBAAwB;IAC9B,IAAI,oBAAoB;IACxB,KAAK,4BAA4B;IACjC,OAAO,eAAe;IACtB,MAAM,cAAc;IACpB,QAAQ,sBAAsB;IAC9B,UAAU,oBAAoB;CACjC;AAID,MAAM,CAAC,OAAO,OAAO,MAAM;IAiBnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,SAAS;aACpB,GAAG,EAAE,MAAM;IAnB/B,OAAO,CAAC,GAAG,CAAC,CAAgB;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmE;IACzF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;gBAGmB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM;IAI/B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,cAAc;IAiBT,WAAW,CACpB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,YAAY,EACpB,IAAI,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;IAsDN,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAgC3C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;YAO/B,KAAK;IAyEN,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAqDlD"}
@@ -13,14 +13,13 @@ var BypassMethod;
13
13
  (function (BypassMethod) {
14
14
  BypassMethod["STATUS"] = "getHumidifierStatus";
15
15
  BypassMethod["MODE"] = "setHumidityMode";
16
- BypassMethod["NIGHT"] = "setNightLight";
16
+ BypassMethod["NIGHT"] = "setNightLightBrightness";
17
17
  BypassMethod["DISPLAY"] = "setDisplay";
18
18
  BypassMethod["SWITCH"] = "setSwitch";
19
19
  BypassMethod["HUMIDITY"] = "setTargetHumidity";
20
20
  BypassMethod["MIST_LEVEL"] = "setVirtualLevel";
21
21
  })(BypassMethod = exports.BypassMethod || (exports.BypassMethod = {}));
22
22
  const lock = new async_lock_1.default();
23
- const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
24
23
  class VeSync {
25
24
  constructor(email, password, debugMode, log) {
26
25
  this.email = email;
@@ -85,17 +84,21 @@ class VeSync {
85
84
  ...this.generateDetailBody(),
86
85
  ...this.generateBody(true)
87
86
  });
87
+ // Explicitly fail if device is offline
88
+ if (response.data.msg == "device offline") {
89
+ this.log.error("VeSync cannot communicate with humidifier! Check the VeSync App.");
90
+ return false;
91
+ }
88
92
  if (!(response === null || response === void 0 ? void 0 : response.data)) {
89
- this.debugMode.debug('[SEND COMMAND]', 'No response data!! JSON:', JSON.stringify(response));
93
+ this.debugMode.debug('[SEND COMMAND]', 'No response data!! JSON:', JSON.stringify(response === null || response === void 0 ? void 0 : response.data));
90
94
  }
91
95
  const isSuccess = ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.code) === 0;
92
96
  if (!isSuccess) {
93
- this.debugMode.debug('[SEND COMMAND]', `Failed to send command ${method} to ${fan.name}`, `with (${JSON.stringify(body)})!`, `Response: ${JSON.stringify(response)}`);
97
+ this.debugMode.debug('[SEND COMMAND]', `Failed to send command ${method} to ${fan.name}`, `with (${JSON.stringify(body)})!`, `Response: ${JSON.stringify(response === null || response === void 0 ? void 0 : response.data)}`);
94
98
  }
95
99
  else {
96
100
  this.debugMode.debug('[SEND COMMAND]', `Successfully sent command ${method} to ${fan.name}`, `with (${JSON.stringify(body)})!`, `Response: ${JSON.stringify(response.data)}`);
97
101
  }
98
- await delay(500);
99
102
  return isSuccess;
100
103
  });
101
104
  }
@@ -110,10 +113,14 @@ class VeSync {
110
113
  ...this.generateDetailBody(),
111
114
  ...this.generateBody(true)
112
115
  });
116
+ // Explicitly fail if device is offline
117
+ if (response.data.msg == "device offline") {
118
+ this.log.error("VeSync cannot communicate with humidifier! Check the VeSync App.");
119
+ return false;
120
+ }
113
121
  if (!(response === null || response === void 0 ? void 0 : response.data)) {
114
- this.debugMode.debug('[GET DEVICE INFO]', 'No response data!! JSON:', JSON.stringify(response));
122
+ this.debugMode.debug('[GET DEVICE INFO]', 'No response data!! JSON:', JSON.stringify(response === null || response === void 0 ? void 0 : response.data));
115
123
  }
116
- await delay(500);
117
124
  return response.data;
118
125
  });
119
126
  }
@@ -146,7 +153,7 @@ class VeSync {
146
153
  ...this.AXIOS_OPTIONS
147
154
  });
148
155
  if (!(response === null || response === void 0 ? void 0 : response.data)) {
149
- this.debugMode.debug('[LOGIN]', 'No response data!! JSON:', JSON.stringify(response));
156
+ this.debugMode.debug('[LOGIN]', 'No response data!! JSON:', JSON.stringify(response === null || response === void 0 ? void 0 : response.data));
150
157
  return false;
151
158
  }
152
159
  const { result } = response.data;
@@ -170,7 +177,6 @@ class VeSync {
170
177
  tk: this.token
171
178
  }
172
179
  });
173
- await delay(500);
174
180
  return true;
175
181
  });
176
182
  }
@@ -188,7 +194,7 @@ class VeSync {
188
194
  ...this.generateBody(true)
189
195
  });
190
196
  if (!(response === null || response === void 0 ? void 0 : response.data)) {
191
- this.debugMode.debug('[GET DEVICES]', 'No response data!! JSON:', JSON.stringify(response));
197
+ this.debugMode.debug('[GET DEVICES]', 'No response data!! JSON:', JSON.stringify(response === null || response === void 0 ? void 0 : response.data));
192
198
  return [];
193
199
  }
194
200
  if (!Array.isArray((_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.result) === null || _b === void 0 ? void 0 : _b.list)) {
@@ -201,7 +207,6 @@ class VeSync {
201
207
  .filter(({ deviceType, type }) => !!deviceTypes_1.default.find(({ isValid }) => isValid(deviceType)) &&
202
208
  type === 'wifi-air')
203
209
  .map(VeSyncFan_1.default.fromResponse(this));
204
- await delay(500);
205
210
  return devices;
206
211
  });
207
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VeSync.js","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VeSync.js","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,12 @@ export default class VeSyncFan {
10
10
  readonly name: string;
11
11
  private _mode;
12
12
  private _mistLevel;
13
+ private _brightnessLevel;
13
14
  readonly uuid: string;
14
15
  private _isOn;
15
16
  private _humidityLevel;
17
+ private _targetHumidity;
18
+ private _targetReached;
16
19
  readonly configModule: string;
17
20
  readonly cid: string;
18
21
  readonly region: string;
@@ -21,24 +24,33 @@ export default class VeSyncFan {
21
24
  private lock;
22
25
  readonly deviceType: DeviceType;
23
26
  private lastCheck;
24
- private _screenVisible;
27
+ private _displayOn;
25
28
  readonly manufacturer = "Levoit";
26
29
  get humidityLevel(): number;
27
- get screenVisible(): boolean;
30
+ get targetHumidity(): number;
31
+ get displayOn(): boolean;
32
+ get brightnessLevel(): number;
28
33
  get mistLevel(): number;
29
34
  get mode(): Mode;
35
+ get targetReached(): boolean;
30
36
  get isOn(): boolean;
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);
37
+ constructor(client: VeSync, name: string, _mode: Mode, _mistLevel: number, _brightnessLevel: number, uuid: string, _isOn: boolean, _humidityLevel: number, _targetHumidity: number, _targetReached: boolean, configModule: string, cid: string, region: string, model: string, mac: string);
32
38
  setPower(power: boolean): Promise<boolean>;
39
+ setTargetHumidity(level: number): Promise<boolean>;
33
40
  changeMode(mode: Mode): Promise<boolean>;
41
+ setBrightness(brightness: number): Promise<boolean>;
42
+ setDisplay(power: boolean): Promise<boolean>;
34
43
  changeMistLevel(mistLevel: number): Promise<boolean>;
35
44
  updateInfo(): Promise<void>;
36
- static fromResponse: (client: VeSync) => ({ deviceStatus, deviceName, mistLevel, mode, extension, uuid, configModule, cid, deviceRegion, deviceType, macID }: {
45
+ static fromResponse: (client: VeSync) => ({ deviceStatus, deviceName, mode, mistLevel, brightnessLevel, humidity, targetHumidity, targetReached, uuid, configModule, cid, deviceRegion, deviceType, macID }: {
37
46
  deviceStatus: any;
38
47
  deviceName: any;
39
- mistLevel: any;
40
48
  mode: any;
41
- extension: any;
49
+ mistLevel: any;
50
+ brightnessLevel: any;
51
+ humidity: any;
52
+ targetHumidity: any;
53
+ targetReached: any;
42
54
  uuid: any;
43
55
  configModule: any;
44
56
  cid: 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,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"}
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;IA0CtB,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,gBAAgB;aACR,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,cAAc;aACN,YAAY,EAAE,MAAM;aACpB,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,MAAM;aACd,KAAK,EAAE,MAAM;aACb,GAAG,EAAE,MAAM;IAvD/B,OAAO,CAAC,IAAI,CAA8B;IAC1C,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,UAAU,CAAQ;IAE1B,SAAgB,YAAY,YAAY;IAExC,IAAW,aAAa,WAEvB;IAED,IAAW,cAAc,WAExB;IAED,IAAW,SAAS,YAEnB;IAED,IAAW,eAAe,WAEzB;IAED,IAAW,SAAS,WAEnB;IAED,IAAW,IAAI,SAEd;IAED,IAAW,aAAa,YAEvB;IAED,IAAW,IAAI,YAEd;gBAGoB,MAAM,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACpB,KAAK,EAAE,IAAI,EACX,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,OAAO,EACf,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;IAe1C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAelD,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBxC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAanD,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAa5C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BxC,OAAc,YAAY,WACb,MAAM;;;;;;;;;;;;;;;oBAiCL;CACjB"}
@@ -14,14 +14,17 @@ var Mode;
14
14
  Mode["Auto"] = "auto";
15
15
  })(Mode = exports.Mode || (exports.Mode = {}));
16
16
  class VeSyncFan {
17
- constructor(client, name, _mode, _mistLevel, uuid, _isOn, _humidityLevel, configModule, cid, region, model, mac) {
17
+ constructor(client, name, _mode, _mistLevel, _brightnessLevel, uuid, _isOn, _humidityLevel, _targetHumidity, _targetReached, configModule, cid, region, model, mac) {
18
18
  this.client = client;
19
19
  this.name = name;
20
20
  this._mode = _mode;
21
21
  this._mistLevel = _mistLevel;
22
+ this._brightnessLevel = _brightnessLevel;
22
23
  this.uuid = uuid;
23
24
  this._isOn = _isOn;
24
25
  this._humidityLevel = _humidityLevel;
26
+ this._targetHumidity = _targetHumidity;
27
+ this._targetReached = _targetReached;
25
28
  this.configModule = configModule;
26
29
  this.cid = cid;
27
30
  this.region = region;
@@ -29,15 +32,21 @@ class VeSyncFan {
29
32
  this.mac = mac;
30
33
  this.lock = new async_lock_1.default();
31
34
  this.lastCheck = 0;
32
- this._screenVisible = true;
35
+ this._displayOn = true;
33
36
  this.manufacturer = 'Levoit';
34
37
  this.deviceType = deviceTypes_1.default.find(({ isValid }) => isValid(this.model));
35
38
  }
36
39
  get humidityLevel() {
37
40
  return this._humidityLevel;
38
41
  }
39
- get screenVisible() {
40
- return this._screenVisible;
42
+ get targetHumidity() {
43
+ return this._targetHumidity;
44
+ }
45
+ get displayOn() {
46
+ return this._displayOn;
47
+ }
48
+ get brightnessLevel() {
49
+ return this._brightnessLevel;
41
50
  }
42
51
  get mistLevel() {
43
52
  return this._mistLevel;
@@ -45,10 +54,14 @@ class VeSyncFan {
45
54
  get mode() {
46
55
  return this._mode;
47
56
  }
57
+ get targetReached() {
58
+ return this._targetReached;
59
+ }
48
60
  get isOn() {
49
61
  return this._isOn;
50
62
  }
51
63
  async setPower(power) {
64
+ this.client.log.info("Setting Power to " + power);
52
65
  const success = await this.client.sendCommand(this, VeSync_1.BypassMethod.SWITCH, {
53
66
  enabled: power,
54
67
  id: 0
@@ -58,15 +71,54 @@ class VeSyncFan {
58
71
  }
59
72
  return success;
60
73
  }
61
- async changeMode(mode) {
62
- const success = await this.client.sendCommand(this, VeSync_1.BypassMethod.MODE, {
63
- mode: mode.toString()
74
+ async setTargetHumidity(level) {
75
+ this.client.log.info("Setting Target Humidity to " + level);
76
+ const success = await this.client.sendCommand(this, VeSync_1.BypassMethod.HUMIDITY, {
77
+ "target_humidity": level,
78
+ id: 0
64
79
  });
80
+ if (success) {
81
+ this._targetHumidity = level;
82
+ }
83
+ return success;
84
+ }
85
+ async changeMode(mode) {
86
+ // Don't change the mode if we are already in that mode
87
+ let success;
88
+ if (this._mode == mode) {
89
+ success = true;
90
+ }
91
+ else {
92
+ this.client.log.info("Changing Mode to " + mode);
93
+ success = await this.client.sendCommand(this, VeSync_1.BypassMethod.MODE, {
94
+ mode: mode.toString()
95
+ });
96
+ }
65
97
  if (success) {
66
98
  this._mode = mode;
67
99
  }
68
100
  return success;
69
101
  }
102
+ async setBrightness(brightness) {
103
+ this.client.log.info("Setting Night Light to " + brightness);
104
+ const success = await this.client.sendCommand(this, VeSync_1.BypassMethod.NIGHT, {
105
+ "night_light_brightness": brightness
106
+ });
107
+ if (success) {
108
+ this._brightnessLevel = brightness;
109
+ }
110
+ return success;
111
+ }
112
+ async setDisplay(power) {
113
+ this.client.log.info("Setting Display to " + power);
114
+ const success = await this.client.sendCommand(this, VeSync_1.BypassMethod.DISPLAY, {
115
+ state: power
116
+ });
117
+ if (success) {
118
+ this._displayOn = power;
119
+ }
120
+ return success;
121
+ }
70
122
  async changeMistLevel(mistLevel) {
71
123
  this.client.log.info("Setting Mist Level to " + mistLevel);
72
124
  if (mistLevel > this.deviceType.mistLevels || mistLevel < 1) {
@@ -96,10 +148,13 @@ class VeSyncFan {
96
148
  }
97
149
  const result = (_b = data === null || data === void 0 ? void 0 : data.result) === null || _b === void 0 ? void 0 : _b.result;
98
150
  this._humidityLevel = result.humidity;
99
- this._screenVisible = result.display;
151
+ this._targetHumidity = result.configuration.auto_target_humidity;
152
+ this._targetReached = result.automatic_stop_reach_target;
153
+ this._displayOn = result.display;
100
154
  this._isOn = result.enabled;
101
155
  this._mistLevel = result.mist_virtual_level;
102
156
  this._mode = result.mode;
157
+ this._brightnessLevel = result.night_light_brightness;
103
158
  }
104
159
  catch (err) {
105
160
  this.client.log.error(err === null || err === void 0 ? void 0 : err.message);
@@ -108,5 +163,5 @@ class VeSyncFan {
108
163
  }
109
164
  }
110
165
  exports.default = VeSyncFan;
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);
166
+ VeSyncFan.fromResponse = (client) => ({ deviceStatus, deviceName, mode, mistLevel, brightnessLevel, humidity, targetHumidity, targetReached, uuid, configModule, cid, deviceRegion, deviceType, macID }) => new VeSyncFan(client, deviceName, mode, parseInt(mistLevel !== null && mistLevel !== void 0 ? mistLevel : '0', 10), brightnessLevel, uuid, deviceStatus === 'on', humidity, targetHumidity, targetReached, configModule, cid, deviceRegion, deviceType, macID);
112
167
  //# sourceMappingURL=VeSyncFan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VeSyncFan.js","sourceRoot":"","sources":["../../src/api/VeSyncFan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VeSyncFan.js","sourceRoot":"","sources":["../../src/api/VeSyncFan.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,16 @@ export declare enum DeviceName {
3
3
  Classic200S = "Classic200S",
4
4
  Dual200S = "Dual200S",
5
5
  Dual200S_EU = "LUH-D301S-WEU",
6
- Dual200S_UK = "LUH-D301S-WUK"
6
+ Dual200S_UK = "LUH-D301S-WUK",
7
+ LV600S = "LUH-A602S-WUS"
7
8
  }
8
9
  export interface DeviceType {
9
10
  isValid: (input: string) => boolean;
10
11
  hasAutoMode: boolean;
11
12
  mistLevels: number;
12
13
  mistMinLevel: number;
14
+ hasLight: boolean;
15
+ hasSleepMode: boolean;
13
16
  }
14
17
  declare const deviceTypes: DeviceType[];
15
18
  export default deviceTypes;
@@ -1 +1 @@
1
- {"version":3,"file":"deviceTypes.d.ts","sourceRoot":"","sources":["../../src/api/deviceTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,WAAW,kBAAkB;IAC7B,WAAW,kBAAkB;CAChC;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,QAAA,MAAM,WAAW,EAAE,UAAU,EAiC5B,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"deviceTypes.d.ts","sourceRoot":"","sources":["../../src/api/deviceTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,WAAW,kBAAkB;IAC7B,WAAW,kBAAkB;IAC7B,MAAM,kBAAkB;CAC3B;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,QAAA,MAAM,WAAW,EAAE,UAAU,EAoD5B,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -8,37 +8,56 @@ var DeviceName;
8
8
  DeviceName["Dual200S"] = "Dual200S";
9
9
  DeviceName["Dual200S_EU"] = "LUH-D301S-WEU";
10
10
  DeviceName["Dual200S_UK"] = "LUH-D301S-WUK";
11
+ DeviceName["LV600S"] = "LUH-A602S-WUS";
11
12
  })(DeviceName = exports.DeviceName || (exports.DeviceName = {}));
12
13
  const deviceTypes = [
13
14
  {
14
15
  isValid: (input) => input.includes(DeviceName.Classic300S),
15
16
  hasAutoMode: true,
16
17
  mistMinLevel: 1,
17
- mistLevels: 9
18
+ mistLevels: 9,
19
+ hasLight: true,
20
+ hasSleepMode: true
18
21
  },
19
22
  {
20
23
  isValid: (input) => input.includes(DeviceName.Classic200S),
21
24
  hasAutoMode: true,
22
25
  mistMinLevel: 1,
23
- mistLevels: 9
26
+ mistLevels: 9,
27
+ hasLight: false,
28
+ hasSleepMode: false
24
29
  },
25
30
  {
26
31
  isValid: (input) => input.includes(DeviceName.Dual200S),
27
32
  hasAutoMode: true,
28
33
  mistMinLevel: 1,
29
- mistLevels: 2
34
+ mistLevels: 2,
35
+ hasLight: false,
36
+ hasSleepMode: false
30
37
  },
31
38
  {
32
39
  isValid: (input) => input.includes(DeviceName.Dual200S_EU),
33
40
  hasAutoMode: true,
34
41
  mistMinLevel: 1,
35
- mistLevels: 2
42
+ mistLevels: 2,
43
+ hasLight: false,
44
+ hasSleepMode: false
36
45
  },
37
46
  {
38
47
  isValid: (input) => input.includes(DeviceName.Dual200S_UK),
39
48
  hasAutoMode: true,
40
49
  mistMinLevel: 1,
41
- mistLevels: 2
50
+ mistLevels: 2,
51
+ hasLight: false,
52
+ hasSleepMode: false
53
+ },
54
+ {
55
+ isValid: (input) => input.includes(DeviceName.LV600S),
56
+ hasAutoMode: true,
57
+ mistMinLevel: 1,
58
+ mistLevels: 9,
59
+ hasLight: true,
60
+ hasSleepMode: true
42
61
  },
43
62
  ];
44
63
  exports.default = deviceTypes;
@@ -1 +1 @@
1
- {"version":3,"file":"deviceTypes.js","sourceRoot":"","sources":["../../src/api/deviceTypes.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,yCAA2B,CAAA;IAC3B,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IACrB,2CAA6B,CAAA;IAC7B,2CAA6B,CAAA;AACjC,CAAC,EANW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAMrB;AASD,MAAM,WAAW,GAAiB;IAC9B;QACI,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;KAChB;IACD;QACI,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;KAChB;IACD;QACI,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;KAChB;IACD;QACI,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QAClE,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;KAChB;IACD;QACI,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QAClE,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;KAChB;CACJ,CAAC;AAEF,kBAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"deviceTypes.js","sourceRoot":"","sources":["../../src/api/deviceTypes.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAOX;AAPD,WAAY,UAAU;IAClB,yCAA2B,CAAA;IAC3B,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IACrB,2CAA6B,CAAA;IAC7B,2CAA6B,CAAA;IAC7B,sCAAwB,CAAA;AAC5B,CAAC,EAPW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAOrB;AAWD,MAAM,WAAW,GAAiB;IAC9B;QACI,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;QACb,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;KACrB;IACD;QACI,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;QACb,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACtB;IACD;QACI,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;QACb,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACtB;IACD;QACI,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QAClE,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACtB;IACD;QACI,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QAClE,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACtB;IACD;QACI,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CACvB,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;QACrC,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;KACrB;CACJ,CAAC;AAEF,kBAAe,WAAW,CAAC"}
@@ -6,7 +6,7 @@ const characteristic = {
6
6
  return this.device.isOn;
7
7
  },
8
8
  set: async function (value) {
9
- const boolValue = value === 1;
9
+ const boolValue = value == 1;
10
10
  if (boolValue !== this.device.isOn) {
11
11
  await this.device.setPower(boolValue);
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Active.js","sourceRoot":"","sources":["../../src/characteristics/Active.ts"],"names":[],"mappings":";;AASA,MAAM,cAAc,GAGI;IACtB,GAAG,EAAE,KAAK;QACR,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAE/B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IACD,GAAG,EAAE,KAAK,WAAW,KAA0B;QAC7C,MAAM,SAAS,GAAG,KAAK,KAAK,CAAC,CAAC;QAE9B,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAClC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACvC;IACH,CAAC;CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"Active.js","sourceRoot":"","sources":["../../src/characteristics/Active.ts"],"names":[],"mappings":";;AASA,MAAM,cAAc,GAGI;IACtB,GAAG,EAAE,KAAK;QACR,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAE/B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IACD,GAAG,EAAE,KAAK,WAAW,KAA0B;QAC7C,MAAM,SAAS,GAAG,KAAK,IAAI,CAAC,CAAC;QAE7B,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAClC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACvC;IACH,CAAC;CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CurrentState.d.ts","sourceRoot":"","sources":["../../src/characteristics/CurrentState.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,cAAc,EAAE;IACpB,GAAG,EAAE,wBAAwB,CAAC;CAC/B,GAAG,iBASH,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"CurrentState.d.ts","sourceRoot":"","sources":["../../src/characteristics/CurrentState.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EAG3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAGrD,QAAA,MAAM,cAAc,EAAE;IAClB,GAAG,EAAE,wBAAwB,CAAC;CACjC,GAAG,iBAaH,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const VeSyncFan_1 = require("../api/VeSyncFan");
3
4
  const characteristic = {
4
5
  get: async function () {
5
6
  await this.device.updateInfo();
6
7
  const { HUMIDIFYING, IDLE } = this.platform.Characteristic.CurrentHumidifierDehumidifierState;
7
- return this.device.isOn ? HUMIDIFYING : IDLE;
8
+ if (this.device.targetReached || !this.device.isOn || this.device.mode == VeSyncFan_1.Mode.Manual) {
9
+ return IDLE;
10
+ }
11
+ else {
12
+ return HUMIDIFYING;
13
+ }
8
14
  }
9
15
  };
10
16
  exports.default = characteristic;
@@ -1 +1 @@
1
- {"version":3,"file":"CurrentState.js","sourceRoot":"","sources":["../../src/characteristics/CurrentState.ts"],"names":[],"mappings":";;AAQA,MAAM,cAAc,GAEI;IACtB,GAAG,EAAE,KAAK;QACR,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAE/B,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GACzB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kCAAkC,CAAC;QAElE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"CurrentState.js","sourceRoot":"","sources":["../../src/characteristics/CurrentState.ts"],"names":[],"mappings":";;AAOA,gDAAsC;AAEtC,MAAM,cAAc,GAEI;IACpB,GAAG,EAAE,KAAK;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAE/B,MAAM,EAAC,WAAW,EAAE,IAAI,EAAC,GACrB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kCAAkC,CAAC;QAEpE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,gBAAI,CAAC,MAAM,EAAE;YACnF,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,WAAW,CAAC;SACtB;IACL,CAAC;CACJ,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CharacteristicGetHandler, CharacteristicSetHandler } from 'homebridge';
2
+ import { AccessoryThisType } from '../VeSyncAccessory';
3
+ declare const characteristic: {
4
+ get: CharacteristicGetHandler;
5
+ set: CharacteristicSetHandler;
6
+ } & AccessoryThisType;
7
+ export default characteristic;
8
+ //# sourceMappingURL=DisplayState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisplayState.d.ts","sourceRoot":"","sources":["../../src/characteristics/DisplayState.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,wBAAwB,EAG3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAErD,QAAA,MAAM,cAAc,EAAE;IAClB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,GAAG,EAAE,wBAAwB,CAAC;CACjC,GAAG,iBASH,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const characteristic = {
4
+ get: async function () {
5
+ await this.device.updateInfo();
6
+ return this.device.displayOn;
7
+ },
8
+ set: async function (value) {
9
+ const boolValue = value == 1;
10
+ await this.device.setDisplay(boolValue);
11
+ }
12
+ };
13
+ exports.default = characteristic;
14
+ //# sourceMappingURL=DisplayState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisplayState.js","sourceRoot":"","sources":["../../src/characteristics/DisplayState.ts"],"names":[],"mappings":";;AASA,MAAM,cAAc,GAGI;IACpB,GAAG,EAAE,KAAK;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IACjC,CAAC;IACD,GAAG,EAAE,KAAK,WAAW,KAA0B;QAC3C,MAAM,SAAS,GAAG,KAAK,IAAI,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;CACJ,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CharacteristicGetHandler, CharacteristicSetHandler } from 'homebridge';
2
+ import { AccessoryThisType } from '../VeSyncAccessory';
3
+ declare const characteristic: {
4
+ get: CharacteristicGetHandler;
5
+ set: CharacteristicSetHandler;
6
+ } & AccessoryThisType;
7
+ export default characteristic;
8
+ //# sourceMappingURL=LightBrightness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightBrightness.d.ts","sourceRoot":"","sources":["../../src/characteristics/LightBrightness.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,wBAAwB,EAG3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAErD,QAAA,MAAM,cAAc,EAAE;IAClB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,GAAG,EAAE,wBAAwB,CAAC;CACjC,GAAG,iBAaH,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const characteristic = {
4
+ get: async function () {
5
+ await this.device.updateInfo();
6
+ return this.device.brightnessLevel;
7
+ },
8
+ set: async function (value) {
9
+ // If light is on, and we are applying a non-zero value, change brightness to that level.
10
+ // Otherwise, LightState will handle on / off switching.
11
+ if (this.device.brightnessLevel > 0 && value > 0) {
12
+ await this.device.setBrightness(Number(value));
13
+ }
14
+ }
15
+ };
16
+ exports.default = characteristic;
17
+ //# sourceMappingURL=LightBrightness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightBrightness.js","sourceRoot":"","sources":["../../src/characteristics/LightBrightness.ts"],"names":[],"mappings":";;AASA,MAAM,cAAc,GAGI;IACpB,GAAG,EAAE,KAAK;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAE/B,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACvC,CAAC;IACD,GAAG,EAAE,KAAK,WAAW,KAA0B;QAC3C,yFAAyF;QACzF,wDAAwD;QACxD,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;YAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SAClD;IACL,CAAC;CACJ,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CharacteristicGetHandler, CharacteristicSetHandler } from 'homebridge';
2
+ import { AccessoryThisType } from '../VeSyncAccessory';
3
+ declare const characteristic: {
4
+ get: CharacteristicGetHandler;
5
+ set: CharacteristicSetHandler;
6
+ } & AccessoryThisType;
7
+ export default characteristic;
8
+ //# sourceMappingURL=LightState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightState.d.ts","sourceRoot":"","sources":["../../src/characteristics/LightState.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,wBAAwB,EAG3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAErD,QAAA,MAAM,cAAc,EAAE;IAClB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,GAAG,EAAE,wBAAwB,CAAC;CACjC,GAAG,iBAgBH,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const characteristic = {
4
+ get: async function () {
5
+ await this.device.updateInfo();
6
+ return !!this.device.brightnessLevel;
7
+ },
8
+ set: async function (bool) {
9
+ // If light is off and we are turning it on, turn it on to 50%.
10
+ // Note: Turning on the device will always make brightness 50%, even if you slide to 100% when turning it on.
11
+ if (this.device.brightnessLevel == 0 && bool == 1)
12
+ await this.device.setBrightness(50);
13
+ // If light is on and we are turning it off, turn it off
14
+ if (this.device.brightnessLevel > 0 && bool == 0)
15
+ await this.device.setBrightness(0);
16
+ }
17
+ };
18
+ exports.default = characteristic;
19
+ //# sourceMappingURL=LightState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightState.js","sourceRoot":"","sources":["../../src/characteristics/LightState.ts"],"names":[],"mappings":";;AASA,MAAM,cAAc,GAGI;IACpB,GAAG,EAAE,KAAK;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAE/B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACzC,CAAC;IACD,GAAG,EAAE,KAAK,WAAW,IAAyB;QAC1C,+DAA+D;QAC/D,6GAA6G;QAC7G,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;YAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACxC,wDAAwD;QACxD,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;YAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAE3C,CAAC;CACJ,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MistLevel.d.ts","sourceRoot":"","sources":["../../src/characteristics/MistLevel.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,wBAAwB,EAG3B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAOrD,QAAA,MAAM,cAAc,EAAE;IAClB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,GAAG,EAAE,wBAAwB,CAAC;CACjC,GAAG,iBAaH,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"MistLevel.d.ts","sourceRoot":"","sources":["../../src/characteristics/MistLevel.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,wBAAwB,EAG3B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAOrD,QAAA,MAAM,cAAc,EAAE;IAClB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,GAAG,EAAE,wBAAwB,CAAC;CACjC,GAAG,iBAeH,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const VeSyncFan_1 = require("../api/VeSyncFan");
3
4
  const calculateMistLevel = (device) => {
4
5
  const currentMistLevel = device.mistLevel;
5
- return device.isOn ? currentMistLevel : 0;
6
+ return device.isOn ? currentMistLevel : 1;
6
7
  };
7
8
  const characteristic = {
8
9
  get: async function () {
@@ -14,6 +15,7 @@ const characteristic = {
14
15
  await this.device.setPower(false);
15
16
  }
16
17
  else {
18
+ await this.device.changeMode(VeSyncFan_1.Mode.Manual);
17
19
  await this.device.changeMistLevel(Number(value));
18
20
  }
19
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MistLevel.js","sourceRoot":"","sources":["../../src/characteristics/MistLevel.ts"],"names":[],"mappings":";;AAUA,MAAM,kBAAkB,GAAG,CAAC,MAAiB,EAAE,EAAE;IAC7C,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,cAAc,GAGI;IACpB,GAAG,EAAE,KAAK;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG,EAAE,KAAK,WAAW,KAA0B;QAC3C,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACrC;aAAM;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACpD;IACL,CAAC;CACJ,CAAC;AAEF,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"MistLevel.js","sourceRoot":"","sources":["../../src/characteristics/MistLevel.ts"],"names":[],"mappings":";;AAMA,gDAAiD;AAIjD,MAAM,kBAAkB,GAAG,CAAC,MAAiB,EAAE,EAAE;IAC7C,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,cAAc,GAGI;IACpB,GAAG,EAAE,KAAK;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAE/B,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG,EAAE,KAAK,WAAW,KAA0B;QAC3C,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACrC;aAAM;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACpD;IACL,CAAC;CACJ,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CharacteristicGetHandler, CharacteristicSetHandler } from 'homebridge';
2
+ import { AccessoryThisType } from '../VeSyncAccessory';
3
+ declare const characteristic: {
4
+ get: CharacteristicGetHandler;
5
+ set: CharacteristicSetHandler;
6
+ } & AccessoryThisType;
7
+ export default characteristic;
8
+ //# sourceMappingURL=SleepState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SleepState.d.ts","sourceRoot":"","sources":["../../src/characteristics/SleepState.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,wBAAwB,EAG3B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAErD,QAAA,MAAM,cAAc,EAAE;IAClB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,GAAG,EAAE,wBAAwB,CAAC;CACjC,GAAG,iBAqBH,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const VeSyncFan_1 = require("../api/VeSyncFan");
4
+ const characteristic = {
5
+ get: async function () {
6
+ await this.device.updateInfo();
7
+ // If device is off, set the mode to null so the switch displays Off
8
+ if (!this.device.isOn) {
9
+ return false;
10
+ }
11
+ return this.device.mode === VeSyncFan_1.Mode.Sleep;
12
+ },
13
+ set: async function (value) {
14
+ switch (value) {
15
+ case true:
16
+ await this.device.changeMode(VeSyncFan_1.Mode.Sleep);
17
+ break;
18
+ case false:
19
+ await this.device.changeMode(VeSyncFan_1.Mode.Auto);
20
+ break;
21
+ }
22
+ }
23
+ };
24
+ exports.default = characteristic;
25
+ //# sourceMappingURL=SleepState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SleepState.js","sourceRoot":"","sources":["../../src/characteristics/SleepState.ts"],"names":[],"mappings":";;AAMA,gDAAsC;AAItC,MAAM,cAAc,GAGI;IACpB,GAAG,EAAE,KAAK;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAE/B,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACnB,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAI,CAAC,KAAK,CAAC;IAC3C,CAAC;IACD,GAAG,EAAE,KAAK,WAAW,KAA0B;QAC3C,QAAQ,KAAK,EAAE;YACX,KAAK,IAAI;gBACL,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAI,CAAC,KAAK,CAAC,CAAC;gBACzC,MAAM;YACV,KAAK,KAAK;gBACN,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM;SACb;IACL,CAAC;CACJ,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CharacteristicGetHandler, CharacteristicSetHandler } from 'homebridge';
2
+ import { AccessoryThisType } from '../VeSyncAccessory';
3
+ declare const characteristic: {
4
+ get: CharacteristicGetHandler;
5
+ set: CharacteristicSetHandler;
6
+ } & AccessoryThisType;
7
+ export default characteristic;
8
+ //# sourceMappingURL=TargetHumidity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TargetHumidity.d.ts","sourceRoot":"","sources":["../../src/characteristics/TargetHumidity.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EAAE,wBAAwB,EAGrD,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAGrD,QAAA,MAAM,cAAc,EAAE;IAClB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,GAAG,EAAE,wBAAwB,CAAC;CACjC,GAAG,iBAwBH,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const VeSyncFan_1 = require("../api/VeSyncFan");
4
+ const characteristic = {
5
+ get: async function () {
6
+ await this.device.updateInfo();
7
+ // If not in auto or sleep modes, don't display the target humidity in the slider
8
+ if (this.device.mode == VeSyncFan_1.Mode.Auto || this.device.mode == VeSyncFan_1.Mode.Sleep) {
9
+ return this.device.targetHumidity;
10
+ }
11
+ else {
12
+ return 0;
13
+ }
14
+ },
15
+ set: async function (humidity) {
16
+ if (this.device.mode == VeSyncFan_1.Mode.Manual)
17
+ await this.device.changeMode(VeSyncFan_1.Mode.Auto);
18
+ switch (true) {
19
+ case (humidity < 30):
20
+ humidity = 30;
21
+ break;
22
+ case (humidity > 80):
23
+ humidity = 80;
24
+ break;
25
+ }
26
+ await this.device.setTargetHumidity(Number(humidity));
27
+ }
28
+ };
29
+ exports.default = characteristic;
30
+ //# sourceMappingURL=TargetHumidity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TargetHumidity.js","sourceRoot":"","sources":["../../src/characteristics/TargetHumidity.ts"],"names":[],"mappings":";;AAOA,gDAAsC;AAEtC,MAAM,cAAc,GAGI;IACpB,GAAG,EAAE,KAAK;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAE/B,iFAAiF;QACjF,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,gBAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,gBAAI,CAAC,KAAK,EAAE;YACjE,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;SACrC;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;IACD,GAAG,EAAE,KAAK,WAAW,QAA6B;QAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,gBAAI,CAAC,MAAM;YAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,QAAQ,IAAI,EAAE;YACV,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;gBAChB,QAAQ,GAAG,EAAE,CAAC;gBACd,MAAM;YACV,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;gBAChB,QAAQ,GAAG,EAAE,CAAC;gBACd,MAAM;SACb;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,CAAC;CACJ,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -1,8 +1,7 @@
1
- import { CharacteristicGetHandler, CharacteristicSetHandler } from 'homebridge';
1
+ import { CharacteristicGetHandler } from 'homebridge';
2
2
  import { AccessoryThisType } from '../VeSyncAccessory';
3
3
  declare const characteristic: {
4
4
  get: CharacteristicGetHandler;
5
- set: CharacteristicSetHandler;
6
5
  } & AccessoryThisType;
7
6
  export default characteristic;
8
7
  //# sourceMappingURL=TargetState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TargetState.d.ts","sourceRoot":"","sources":["../../src/characteristics/TargetState.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EAGzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,cAAc,EAAE;IACpB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,GAAG,EAAE,wBAAwB,CAAC;CAC/B,GAAG,iBAkCH,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"TargetState.d.ts","sourceRoot":"","sources":["../../src/characteristics/TargetState.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,cAAc,EAAE;IACpB,GAAG,EAAE,wBAAwB,CAAC;CAC/B,GAAG,iBAOH,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,32 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const VeSyncFan_1 = require("../api/VeSyncFan");
4
3
  const characteristic = {
5
4
  get: async function () {
6
- const { HUMIDIFIER, AUTO } = this.platform.Characteristic.TargetHumidifierDehumidifierState;
7
- if (!this.device.deviceType.hasAutoMode) {
8
- return HUMIDIFIER;
9
- }
10
- await this.device.updateInfo();
11
- return this.device.mode === VeSyncFan_1.Mode.Auto ? AUTO : HUMIDIFIER;
12
- },
13
- set: async function (value) {
14
- if (!this.device.deviceType.hasAutoMode) {
15
- return;
16
- }
17
- const { HUMIDIFIER, AUTO } = this.platform.Characteristic.TargetHumidifierDehumidifierState;
18
- switch (value) {
19
- case AUTO:
20
- if (this.device.mode !== VeSyncFan_1.Mode.Auto) {
21
- await this.device.changeMode(VeSyncFan_1.Mode.Auto);
22
- }
23
- break;
24
- case HUMIDIFIER:
25
- if (this.device.mode !== VeSyncFan_1.Mode.Manual) {
26
- await this.device.changeMode(VeSyncFan_1.Mode.Manual);
27
- }
28
- break;
29
- }
5
+ const { HUMIDIFIER } = this.platform.Characteristic.TargetHumidifierDehumidifierState;
6
+ return HUMIDIFIER;
30
7
  }
31
8
  };
32
9
  exports.default = characteristic;
@@ -1 +1 @@
1
- {"version":3,"file":"TargetState.js","sourceRoot":"","sources":["../../src/characteristics/TargetState.ts"],"names":[],"mappings":";;AAMA,gDAAwC;AAIxC,MAAM,cAAc,GAGI;IACtB,GAAG,EAAE,KAAK;QACR,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GACxB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iCAAiC,CAAC;QAEjE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE;YACvC,OAAO,UAAU,CAAC;SACnB;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAE/B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IAC5D,CAAC;IACD,GAAG,EAAE,KAAK,WAAW,KAA0B;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE;YACvC,OAAO;SACR;QAED,MAAM,EAAE,UAAU,EAAG,IAAI,EAAE,GACzB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iCAAiC,CAAC;QAEjE,QAAQ,KAAK,EAAE;YACb,KAAK,IAAI;gBACP,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAI,CAAC,IAAI,EAAE;oBAClC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAI,CAAC,IAAI,CAAC,CAAC;iBACzC;gBACD,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAI,CAAC,MAAM,EAAE;oBACpC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAI,CAAC,MAAM,CAAC,CAAC;iBAC3C;gBACD,MAAM;SACT;IACH,CAAC;CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"TargetState.js","sourceRoot":"","sources":["../../src/characteristics/TargetState.ts"],"names":[],"mappings":";;AAQA,MAAM,cAAc,GAEI;IACtB,GAAG,EAAE,KAAK;QACR,MAAM,EAAE,UAAU,EAAE,GAClB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iCAAiC,CAAC;QAEjE,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"}
package/images/auto.png CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
- "description": "Made for Classic 300s",
2
+ "description": "Homebridge plugin for Levoit Humidifiers",
3
3
  "name": "homebridge-levoit-humidifiers",
4
4
  "displayName": "Levoit Humidifiers",
5
5
  "main": "dist/index.js",
6
6
  "license": "Apache-2.0",
7
- "version": "1.3.1",
7
+ "version": "1.5.0-beta11",
8
8
  "private": false,
9
9
  "bugs": {
10
10
  "url": "https://github.com/pschroeder89/homebridge-levoit-humidifiers/issues"
Binary file
package/images/off.png DELETED
Binary file