PySwitchbot 0.48.0__tar.gz → 0.48.1__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 (52) hide show
  1. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/PKG-INFO +1 -1
  2. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/PySwitchbot.egg-info/PKG-INFO +1 -1
  3. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/setup.py +1 -1
  4. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parser.py +2 -2
  5. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/lock.py +24 -0
  6. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/LICENSE +0 -0
  7. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/MANIFEST.in +0 -0
  8. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/PySwitchbot.egg-info/SOURCES.txt +0 -0
  9. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/PySwitchbot.egg-info/dependency_links.txt +0 -0
  10. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/PySwitchbot.egg-info/requires.txt +0 -0
  11. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/PySwitchbot.egg-info/top_level.txt +0 -0
  12. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/README.md +0 -0
  13. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/setup.cfg +0 -0
  14. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/__init__.py +0 -0
  15. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/__init__.py +0 -0
  16. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/blind_tilt.py +0 -0
  17. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/bot.py +0 -0
  18. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/bulb.py +0 -0
  19. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/ceiling_light.py +0 -0
  20. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/contact.py +0 -0
  21. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/curtain.py +0 -0
  22. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/hub2.py +0 -0
  23. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/humidifier.py +0 -0
  24. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/light_strip.py +0 -0
  25. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/meter.py +0 -0
  26. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/motion.py +0 -0
  27. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/adv_parsers/plug.py +0 -0
  28. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/api_config.py +0 -0
  29. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/const.py +0 -0
  30. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/__init__.py +0 -0
  31. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/base_cover.py +0 -0
  32. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/base_light.py +0 -0
  33. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/blind_tilt.py +0 -0
  34. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/bot.py +0 -0
  35. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/bulb.py +0 -0
  36. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/ceiling_light.py +0 -0
  37. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/contact.py +0 -0
  38. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/curtain.py +0 -0
  39. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/device.py +0 -0
  40. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/humidifier.py +0 -0
  41. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/light_strip.py +0 -0
  42. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/lock.py +0 -0
  43. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/meter.py +0 -0
  44. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/motion.py +0 -0
  45. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/devices/plug.py +0 -0
  46. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/discovery.py +0 -0
  47. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/enum.py +0 -0
  48. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/switchbot/models.py +0 -0
  49. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/tests/test_adv_parser.py +0 -0
  50. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/tests/test_base_cover.py +0 -0
  51. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/tests/test_blind_tilt.py +0 -0
  52. {pyswitchbot-0.48.0 → pyswitchbot-0.48.1}/tests/test_curtain.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySwitchbot
3
- Version: 0.48.0
3
+ Version: 0.48.1
4
4
  Summary: A library to communicate with Switchbot
5
5
  Home-page: https://github.com/Danielhiversen/pySwitchbot/
6
6
  Author: Daniel Hjelseth Hoyer
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySwitchbot
3
- Version: 0.48.0
3
+ Version: 0.48.1
4
4
  Summary: A library to communicate with Switchbot
5
5
  Home-page: https://github.com/Danielhiversen/pySwitchbot/
6
6
  Author: Daniel Hjelseth Hoyer
@@ -10,7 +10,7 @@ setup(
10
10
  "cryptography>=39.0.0",
11
11
  "pyOpenSSL>=23.0.0",
12
12
  ],
13
- version="0.48.0",
13
+ version="0.48.1",
14
14
  description="A library to communicate with Switchbot",
15
15
  author="Daniel Hjelseth Hoyer",
16
16
  url="https://github.com/Danielhiversen/pySwitchbot/",
@@ -19,7 +19,7 @@ from .adv_parsers.curtain import process_wocurtain
19
19
  from .adv_parsers.hub2 import process_wohub2
20
20
  from .adv_parsers.humidifier import process_wohumidifier
21
21
  from .adv_parsers.light_strip import process_wostrip
22
- from .adv_parsers.lock import process_wolock
22
+ from .adv_parsers.lock import process_wolock, process_wolock_pro
23
23
  from .adv_parsers.meter import process_wosensorth
24
24
  from .adv_parsers.motion import process_wopresence
25
25
  from .adv_parsers.plug import process_woplugmini
@@ -153,7 +153,7 @@ SUPPORTED_TYPES: dict[str, SwitchbotSupportedType] = {
153
153
  "$": {
154
154
  "modelName": SwitchbotModel.LOCK_PRO,
155
155
  "modelFriendlyName": "Lock Pro",
156
- "func": process_wolock,
156
+ "func": process_wolock_pro,
157
157
  "manufacturer_id": 2409,
158
158
  },
159
159
  "x": {
@@ -29,3 +29,27 @@ def process_wolock(data: bytes | None, mfr_data: bytes | None) -> dict[str, bool
29
29
  "auto_lock_paused": bool(mfr_data[8] & 0b00000010),
30
30
  "night_latch": bool(mfr_data[9] & 0b00000001) if len(mfr_data) > 9 else False,
31
31
  }
32
+
33
+
34
+ def process_wolock_pro(
35
+ data: bytes | None, mfr_data: bytes | None
36
+ ) -> dict[str, bool | int]:
37
+ _LOGGER.debug("mfr_data: %s", mfr_data.hex())
38
+ if data:
39
+ _LOGGER.debug("data: %s", data.hex())
40
+
41
+ res = {
42
+ "battery": data[2] & 0b01111111 if data else None,
43
+ "calibration": bool(mfr_data[7] & 0b10000000),
44
+ "status": LockStatus((mfr_data[7] & 0b00111000) >> 3),
45
+ "door_open": bool(mfr_data[8] & 0b01100000),
46
+ # Double lock mode is not supported on Lock Pro
47
+ "update_from_secondary_lock": False,
48
+ "double_lock_mode": False,
49
+ "unclosed_alarm": bool(mfr_data[11] & 0b10000000),
50
+ "unlocked_alarm": bool(mfr_data[11] & 0b01000000),
51
+ "auto_lock_paused": bool(mfr_data[8] & 0b100000),
52
+ "night_latch": bool(mfr_data[9] & 0b00000001),
53
+ }
54
+ _LOGGER.debug(res)
55
+ return res
File without changes
File without changes
File without changes
File without changes