blueair-api 1.37.0__tar.gz → 1.38.0__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.
Files changed (26) hide show
  1. {blueair_api-1.37.0 → blueair_api-1.38.0}/PKG-INFO +1 -1
  2. {blueair_api-1.37.0 → blueair_api-1.38.0}/pyproject.toml +1 -1
  3. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/device_aws.py +4 -0
  4. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/model_enum.py +1 -0
  5. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api.egg-info/PKG-INFO +1 -1
  6. {blueair_api-1.37.0 → blueair_api-1.38.0}/tests/test_device_aws.py +61 -0
  7. {blueair_api-1.37.0 → blueair_api-1.38.0}/LICENSE +0 -0
  8. {blueair_api-1.37.0 → blueair_api-1.38.0}/README.md +0 -0
  9. {blueair_api-1.37.0 → blueair_api-1.38.0}/setup.cfg +0 -0
  10. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/__init__.py +0 -0
  11. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/callbacks.py +0 -0
  12. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/const.py +0 -0
  13. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/device.py +0 -0
  14. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/errors.py +0 -0
  15. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/http_aws_blueair.py +0 -0
  16. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/http_blueair.py +0 -0
  17. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/intermediate_representation_aws.py +0 -0
  18. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/stub.py +0 -0
  19. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/util.py +0 -0
  20. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/util_bootstrap.py +0 -0
  21. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api/util_http.py +0 -0
  22. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api.egg-info/SOURCES.txt +0 -0
  23. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api.egg-info/dependency_links.txt +0 -0
  24. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api.egg-info/requires.txt +0 -0
  25. {blueair_api-1.37.0 → blueair_api-1.38.0}/src/blueair_api.egg-info/top_level.txt +0 -0
  26. {blueair_api-1.37.0 → blueair_api-1.38.0}/tests/test_intermediate_representation_aws.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: blueair_api
3
- Version: 1.37.0
3
+ Version: 1.38.0
4
4
  Summary: Blueair Api Wrapper
5
5
  Author-email: Brendan Dahl <dahl.brendan@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/dahlb/blueair_api
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
8
8
 
9
9
  [project]
10
10
  name = "blueair_api"
11
- version = "1.37.0"
11
+ version = "1.38.0"
12
12
  authors = [
13
13
  { name="Brendan Dahl", email="dahl.brendan@gmail.com" },
14
14
  ]
@@ -59,6 +59,7 @@ class DeviceAws(CallbacksMixin):
59
59
  pm2_5 : AttributeType[int] = None
60
60
  pm10 : AttributeType[int] = None
61
61
  tVOC : AttributeType[int] = None
62
+ VOC : AttributeType[int] = None
62
63
  temperature : AttributeType[int] = None
63
64
  humidity : AttributeType[int] = None
64
65
  filter_usage_percentage : AttributeType[int] = None
@@ -99,6 +100,7 @@ class DeviceAws(CallbacksMixin):
99
100
  self.pm2_5 = sensor_data_safe_get("pm2_5")
100
101
  self.pm10 = sensor_data_safe_get("pm10")
101
102
  self.tVOC = sensor_data_safe_get("tVOC")
103
+ self.VOC = sensor_data_safe_get("VOC")
102
104
  self.temperature = sensor_data_safe_get("t")
103
105
  self.humidity = sensor_data_safe_get("h")
104
106
  self.fan_speed_0 = sensor_data_safe_get("fsp0")
@@ -262,4 +264,6 @@ class DeviceAws(CallbacksMixin):
262
264
  return ModelEnum.MAX_311I_PLUS
263
265
  if self.sku == "112929":
264
266
  return ModelEnum.BLUE_SIGNATURE
267
+ if self.sku == "112793":
268
+ return ModelEnum.PET_AIR_PRO
265
269
  return ModelEnum.UNKNOWN
@@ -13,3 +13,4 @@ class ModelEnum(StrEnum):
13
13
  MAX_511I = "Blueair Blue Pure 511i Max"
14
14
  T10I = "T10i ComfortPure 3-in-1 Filter/Heater/Fan"
15
15
  BLUE_SIGNATURE = "Blue Signature"
16
+ PET_AIR_PRO = "PetAir Pro"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: blueair_api
3
- Version: 1.37.0
3
+ Version: 1.38.0
4
4
  Summary: Blueair Api Wrapper
5
5
  Author-email: Brendan Dahl <dahl.brendan@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/dahlb/blueair_api
@@ -363,6 +363,7 @@ class EmptyDeviceAwsTest(DeviceAwsTestBase):
363
363
  assert device.pm2_5 is NotImplemented
364
364
  assert device.pm10 is NotImplemented
365
365
  assert device.tVOC is NotImplemented
366
+ assert device.VOC is NotImplemented
366
367
  assert device.temperature is NotImplemented
367
368
  assert device.humidity is NotImplemented
368
369
  assert device.name is NotImplemented
@@ -417,6 +418,7 @@ class H35iTest(DeviceAwsTestBase):
417
418
  assert device.pm2_5 is NotImplemented
418
419
  assert device.pm10 is NotImplemented
419
420
  assert device.tVOC is NotImplemented
421
+ assert device.VOC is NotImplemented
420
422
  assert device.temperature is None
421
423
  assert device.humidity is None
422
424
  assert device.name == "Bedroom"
@@ -470,6 +472,7 @@ class Max311iTest(DeviceAwsTestBase):
470
472
  assert device.pm2_5 is None
471
473
  assert device.pm10 is NotImplemented
472
474
  assert device.tVOC is NotImplemented
475
+ assert device.VOC is NotImplemented
473
476
  assert device.temperature is NotImplemented
474
477
  assert device.humidity is NotImplemented
475
478
  assert device.name == "Loft"
@@ -524,6 +527,7 @@ class T10iTest(DeviceAwsTestBase):
524
527
  assert device.pm2_5 is None
525
528
  assert device.pm10 is NotImplemented
526
529
  assert device.tVOC is NotImplemented
530
+ assert device.VOC is NotImplemented
527
531
  assert device.temperature is None
528
532
  assert device.humidity is None
529
533
  assert device.name == "Allen's Office"
@@ -580,6 +584,7 @@ class Protect7470iTest(DeviceAwsTestBase):
580
584
  assert device.pm2_5 == 0
581
585
  assert device.pm10 == 0
582
586
  assert device.tVOC == 134
587
+ assert device.VOC is NotImplemented
583
588
  assert device.temperature == 23
584
589
  assert device.humidity == 55
585
590
  assert device.name == "air filter in room"
@@ -634,6 +639,7 @@ class Max211iTest(DeviceAwsTestBase):
634
639
  assert device.pm2_5 is None
635
640
  assert device.pm10 is None
636
641
  assert device.tVOC is NotImplemented
642
+ assert device.VOC is NotImplemented
637
643
  assert device.temperature is NotImplemented
638
644
  assert device.humidity is NotImplemented
639
645
  assert device.name == "Bedroom Purifier"
@@ -664,3 +670,58 @@ class Max211iTest(DeviceAwsTestBase):
664
670
  assert device.ap_sub_mode is NotImplemented
665
671
  assert device.fan_speed_0 is None
666
672
  assert device.temperature_unit is NotImplemented
673
+
674
+
675
+ class PetAirProTest(DeviceAwsTestBase):
676
+ """Tests for PetPro."""
677
+
678
+ def setUp(self):
679
+ super().setUp()
680
+ with open(resources.files().joinpath('device_info/pet_air_pro.json')) as sample_file:
681
+ info = json.load(sample_file)
682
+ self.device_info_helper.info.update(info)
683
+
684
+ async def test_attributes(self):
685
+
686
+ await self.device.refresh()
687
+ self.api.device_info.assert_awaited_with("fake-name-api", "fake-uuid")
688
+
689
+ with assert_fully_checked(self.device) as device:
690
+
691
+ assert device.model == ModelEnum.PET_AIR_PRO
692
+
693
+ assert device.pm1 is None
694
+ assert device.pm2_5 is None
695
+ assert device.pm10 is None
696
+ assert device.tVOC is NotImplemented
697
+ assert device.VOC is NotImplemented
698
+ assert device.temperature is NotImplemented
699
+ assert device.humidity is NotImplemented
700
+ assert device.name == "PetAir Pro"
701
+ assert device.firmware == "1.0.3"
702
+ assert device.mcu_firmware == "1.0.3"
703
+ assert device.serial_number == "111279300002313310000090"
704
+ assert device.sku == "112793"
705
+
706
+ assert device.standby is False
707
+ assert device.night_mode is NotImplemented
708
+ assert device.germ_shield is NotImplemented
709
+ assert device.brightness == 100.0
710
+ assert device.child_lock is False
711
+ assert device.fan_speed == 91.0
712
+ assert device.fan_auto_mode is NotImplemented
713
+ assert device.filter_usage_percentage == 5.0
714
+ assert device.wifi_working is False
715
+ assert device.wick_usage_percentage is NotImplemented
716
+ assert device.auto_regulated_humidity is NotImplemented
717
+ assert device.water_shortage is NotImplemented
718
+ assert device.wick_dry_mode is NotImplemented
719
+ assert device.main_mode == 0.0
720
+ assert device.heat_temp is NotImplemented
721
+ assert device.heat_sub_mode is NotImplemented
722
+ assert device.heat_fan_speed is NotImplemented
723
+ assert device.cool_sub_mode is NotImplemented
724
+ assert device.cool_fan_speed is NotImplemented
725
+ assert device.ap_sub_mode == 1.0
726
+ assert device.fan_speed_0 is None
727
+ assert device.temperature_unit is NotImplemented
File without changes
File without changes
File without changes