pyvesync 2.1.17__tar.gz → 2.1.18__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pyvesync
3
- Version: 2.1.17
3
+ Version: 2.1.18
4
4
  Summary: pyvesync is a library to manage Etekcity Devices, Cosori Air Fryers and Levoit Air Purifiers run on the VeSync app.
5
5
  Home-page: https://github.com/webdjoe/pyvesync
6
6
  Author: Mark Perdue, Joe Trabulsy
@@ -10,7 +10,7 @@ with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f:
10
10
 
11
11
  setup(
12
12
  name='pyvesync',
13
- version='2.1.17',
13
+ version='2.1.18',
14
14
  description='pyvesync is a library to manage Etekcity\
15
15
  Devices, Cosori Air Fryers and Levoit Air \
16
16
  Purifiers run on the VeSync app.',
@@ -66,7 +66,7 @@ humid_features: dict = {
66
66
  },
67
67
  'OASISMIST1000S': {
68
68
  'module': 'VeSyncHumid1000S',
69
- 'models': ['LUH-M101S-WUS'],
69
+ 'models': ['LUH-M101S-WUS', 'LUH-M101S-WEUR'],
70
70
  'features': [],
71
71
  'mist_modes': ['auto', 'sleep', 'manual'],
72
72
  'mist_levels': list(range(1, 10))
@@ -118,7 +118,7 @@ air_features: dict = {
118
118
  },
119
119
  'LV-PUR131S': {
120
120
  'module': 'VeSyncAir131',
121
- 'models': ['LV-PUR131S', 'LV-RH131S'],
121
+ 'models': ['LV-PUR131S', 'LV-RH131S', 'LV-RH131S-WM'],
122
122
  'modes': ['manual', 'auto', 'sleep', 'off'],
123
123
  'features': ['air_quality'],
124
124
  'levels': list(range(1, 3))
@@ -366,7 +366,6 @@ class VeSyncAirBypass(VeSyncBaseDevice):
366
366
  self.details['display'] = dev_dict.get('display', False)
367
367
  self.details['child_lock'] = dev_dict.get('child_lock', False)
368
368
  self.details['night_light'] = dev_dict.get('night_light', 'off')
369
- self.details['display'] = dev_dict.get('display', False)
370
369
  self.details['display_forever'] = dev_dict.get('display_forever',
371
370
  False)
372
371
  if self.air_quality_feature is True:
@@ -1135,6 +1134,15 @@ class VeSyncAirBaseV2(VeSyncAirBypass):
1135
1134
  """Return true if light is detected."""
1136
1135
  return self.details['environment_light_state']
1137
1136
 
1137
+ @property
1138
+ def fan_level(self):
1139
+ """Get current fan level."""
1140
+ try:
1141
+ speed = int(self.set_speed_level)
1142
+ except ValueError:
1143
+ speed = self.set_speed_level
1144
+ return speed
1145
+
1138
1146
  def get_details(self) -> None:
1139
1147
  """Build API V2 Purifier details dictionary."""
1140
1148
  head, body = self.build_api_dict('getPurifierStatus')
@@ -1655,6 +1663,14 @@ class VeSyncAir131(VeSyncBaseDevice):
1655
1663
  """Get Air Quality."""
1656
1664
  return self.details.get('air_quality', 'unknown')
1657
1665
 
1666
+ @property
1667
+ def display_state(self) -> bool:
1668
+ """Get display state.
1669
+
1670
+ See [pyvesync.VeSyncAir131.get_details]
1671
+ """
1672
+ return self.details.get('screen_status', 'unknown') == "on"
1673
+
1658
1674
  @property
1659
1675
  def screen_status(self) -> str:
1660
1676
  """Return Screen status (on/off)."""
@@ -2191,6 +2207,11 @@ class VeSyncHumid200300S(VeSyncBaseDevice):
2191
2207
  """Turn 200S/300S Humidifier off."""
2192
2208
  return self.set_display(False)
2193
2209
 
2210
+ @property
2211
+ def display_state(self) -> bool:
2212
+ """Get display state."""
2213
+ return bool(self.details['display'])
2214
+
2194
2215
  def set_humidity(self, humidity: int) -> bool:
2195
2216
  """Set target 200S/300S Humidifier humidity."""
2196
2217
  if humidity < 30 or humidity > 80:
@@ -2244,7 +2265,7 @@ class VeSyncHumid200300S(VeSyncBaseDevice):
2244
2265
 
2245
2266
  if r is not None and Helpers.code_check(r):
2246
2267
  return True
2247
- logger.debug('Error setting humidity')
2268
+ logger.debug('Error setting night light brightness')
2248
2269
  return False
2249
2270
 
2250
2271
  def set_humidity_mode(self, mode: str) -> bool:
@@ -2705,6 +2726,12 @@ class VeSyncSuperior6000S(VeSyncBaseDevice):
2705
2726
  """Turn display off."""
2706
2727
  return self.set_display_enabled(False)
2707
2728
 
2729
+ @property
2730
+ def display_state(self) -> bool:
2731
+ """Get display state."""
2732
+ # This matches the values 0/1 set in set_display_enabled
2733
+ return self.details.get('display') == 1
2734
+
2708
2735
  def set_humidity(self, humidity: int) -> bool:
2709
2736
  """Set target humidity for humidity mode."""
2710
2737
  if humidity < 30 or humidity > 80:
@@ -2878,7 +2905,7 @@ class VeSyncSuperior6000S(VeSyncBaseDevice):
2878
2905
  @property
2879
2906
  def auto_humidity(self):
2880
2907
  """Auto target humidity."""
2881
- return self.config['target_humidity']
2908
+ return self.details['target_humidity']
2882
2909
 
2883
2910
  @property
2884
2911
  def target_humidity(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pyvesync
3
- Version: 2.1.17
3
+ Version: 2.1.18
4
4
  Summary: pyvesync is a library to manage Etekcity Devices, Cosori Air Fryers and Levoit Air Purifiers run on the VeSync app.
5
5
  Home-page: https://github.com/webdjoe/pyvesync
6
6
  Author: Mark Perdue, Joe Trabulsy
File without changes
File without changes
File without changes
File without changes
File without changes