python-roborock 4.10.1__tar.gz → 4.11.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 (95) hide show
  1. {python_roborock-4.10.1 → python_roborock-4.11.0}/PKG-INFO +1 -1
  2. {python_roborock-4.10.1 → python_roborock-4.11.0}/pyproject.toml +1 -1
  3. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/b01_q7/b01_q7_code_mappings.py +9 -2
  4. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/b01_q7/b01_q7_containers.py +14 -2
  5. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/b01/q7/__init__.py +10 -0
  6. {python_roborock-4.10.1 → python_roborock-4.11.0}/.gitignore +0 -0
  7. {python_roborock-4.10.1 → python_roborock-4.11.0}/LICENSE +0 -0
  8. {python_roborock-4.10.1 → python_roborock-4.11.0}/README.md +0 -0
  9. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/__init__.py +0 -0
  10. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/broadcast_protocol.py +0 -0
  11. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/callbacks.py +0 -0
  12. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/cli.py +0 -0
  13. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/const.py +0 -0
  14. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/__init__.py +0 -0
  15. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/b01_q10/__init__.py +0 -0
  16. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/b01_q10/b01_q10_code_mappings.py +0 -0
  17. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/b01_q10/b01_q10_containers.py +0 -0
  18. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/b01_q7/__init__.py +0 -0
  19. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/code_mappings.py +0 -0
  20. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/containers.py +0 -0
  21. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/dyad/__init__.py +0 -0
  22. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/dyad/dyad_code_mappings.py +0 -0
  23. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/dyad/dyad_containers.py +0 -0
  24. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/v1/__init__.py +0 -0
  25. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/v1/v1_clean_modes.py +0 -0
  26. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/v1/v1_code_mappings.py +0 -0
  27. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/v1/v1_containers.py +0 -0
  28. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/zeo/__init__.py +0 -0
  29. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/zeo/zeo_code_mappings.py +0 -0
  30. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/data/zeo/zeo_containers.py +0 -0
  31. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/device_features.py +0 -0
  32. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/README.md +0 -0
  33. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/__init__.py +0 -0
  34. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/cache.py +0 -0
  35. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/device.py +0 -0
  36. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/device_manager.py +0 -0
  37. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/file_cache.py +0 -0
  38. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/rpc/__init__.py +0 -0
  39. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/rpc/a01_channel.py +0 -0
  40. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/rpc/b01_q10_channel.py +0 -0
  41. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/rpc/b01_q7_channel.py +0 -0
  42. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/rpc/v1_channel.py +0 -0
  43. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/__init__.py +0 -0
  44. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/a01/__init__.py +0 -0
  45. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/b01/__init__.py +0 -0
  46. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/b01/q10/__init__.py +0 -0
  47. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/b01/q10/command.py +0 -0
  48. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/b01/q10/vacuum.py +0 -0
  49. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/b01/q7/clean_summary.py +0 -0
  50. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/traits_mixin.py +0 -0
  51. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/__init__.py +0 -0
  52. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/child_lock.py +0 -0
  53. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/clean_summary.py +0 -0
  54. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/command.py +0 -0
  55. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/common.py +0 -0
  56. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/consumeable.py +0 -0
  57. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/device_features.py +0 -0
  58. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/do_not_disturb.py +0 -0
  59. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/dust_collection_mode.py +0 -0
  60. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/flow_led_status.py +0 -0
  61. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/home.py +0 -0
  62. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/led_status.py +0 -0
  63. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/map_content.py +0 -0
  64. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/maps.py +0 -0
  65. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/network_info.py +0 -0
  66. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/rooms.py +0 -0
  67. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/routines.py +0 -0
  68. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/smart_wash_params.py +0 -0
  69. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/status.py +0 -0
  70. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/valley_electricity_timer.py +0 -0
  71. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/volume.py +0 -0
  72. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/traits/v1/wash_towel_mode.py +0 -0
  73. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/transport/__init__.py +0 -0
  74. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/transport/channel.py +0 -0
  75. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/transport/local_channel.py +0 -0
  76. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/devices/transport/mqtt_channel.py +0 -0
  77. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/diagnostics.py +0 -0
  78. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/exceptions.py +0 -0
  79. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/map/__init__.py +0 -0
  80. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/map/map_parser.py +0 -0
  81. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/mqtt/__init__.py +0 -0
  82. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/mqtt/health_manager.py +0 -0
  83. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/mqtt/roborock_session.py +0 -0
  84. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/mqtt/session.py +0 -0
  85. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/protocol.py +0 -0
  86. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/protocols/__init__.py +0 -0
  87. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/protocols/a01_protocol.py +0 -0
  88. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/protocols/b01_q10_protocol.py +0 -0
  89. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/protocols/b01_q7_protocol.py +0 -0
  90. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/protocols/v1_protocol.py +0 -0
  91. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/py.typed +0 -0
  92. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/roborock_message.py +0 -0
  93. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/roborock_typing.py +0 -0
  94. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/util.py +0 -0
  95. {python_roborock-4.10.1 → python_roborock-4.11.0}/roborock/web_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-roborock
3
- Version: 4.10.1
3
+ Version: 4.11.0
4
4
  Summary: A package to control Roborock vacuums.
5
5
  Project-URL: Repository, https://github.com/humbertogontijo/python-roborock
6
6
  Project-URL: Documentation, https://python-roborock.readthedocs.io/
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-roborock"
3
- version = "4.10.1"
3
+ version = "4.11.0"
4
4
  description = "A package to control Roborock vacuums."
5
5
  authors = [{ name = "humbertogontijo", email = "humbertogontijo@users.noreply.github.com" }, {name="Lash-L"}, {name="allenporter"}]
6
6
  requires-python = ">=3.11, <4"
@@ -46,8 +46,15 @@ class CleanTypeMapping(RoborockModeEnum):
46
46
  class CleanRepeatMapping(RoborockModeEnum):
47
47
  """Maps the cleaning repeat parameter."""
48
48
 
49
- ONCE = ("once", 0)
50
- TWICE = ("twice", 1)
49
+ ONE = ("one", 0)
50
+ TWO = ("two", 1)
51
+
52
+
53
+ class CleanPathPreferenceMapping(RoborockModeEnum):
54
+ """Maps the cleaning path preference parameter."""
55
+
56
+ BALANCED = ("balanced", 0)
57
+ DEEP = ("deep", 1)
51
58
 
52
59
 
53
60
  class SCDeviceCleanParam(RoborockModeEnum):
@@ -7,6 +7,8 @@ from ...exceptions import RoborockException
7
7
  from ..containers import RoborockBase
8
8
  from .b01_q7_code_mappings import (
9
9
  B01Fault,
10
+ CleanPathPreferenceMapping,
11
+ CleanRepeatMapping,
10
12
  CleanTypeMapping,
11
13
  SCWindMapping,
12
14
  WaterLevelMapping,
@@ -94,10 +96,10 @@ class B01Props(RoborockBase):
94
96
  mop_life: int | None = None
95
97
  main_sensor: int | None = None
96
98
  net_status: NetStatus | None = None
97
- repeat_state: int | None = None
99
+ repeat_state: CleanRepeatMapping | None = None
98
100
  tank_state: int | None = None
99
101
  sweep_type: int | None = None
100
- clean_path_preference: int | None = None
102
+ clean_path_preference: CleanPathPreferenceMapping | None = None
101
103
  cloth_state: int | None = None
102
104
  time_zone: int | None = None
103
105
  time_zone_info: str | None = None
@@ -210,6 +212,16 @@ class B01Props(RoborockBase):
210
212
  """Returns the name of the current work mode."""
211
213
  return self.work_mode.value if self.work_mode is not None else None
212
214
 
215
+ @property
216
+ def repeat_state_name(self) -> str | None:
217
+ """Returns the name of the current repeat state."""
218
+ return self.repeat_state.value if self.repeat_state is not None else None
219
+
220
+ @property
221
+ def clean_path_preference_name(self) -> str | None:
222
+ """Returns the name of the current clean path preference."""
223
+ return self.clean_path_preference.value if self.clean_path_preference is not None else None
224
+
213
225
 
214
226
  @dataclass
215
227
  class CleanRecordDetail(RoborockBase):
@@ -5,6 +5,8 @@ from typing import Any
5
5
 
6
6
  from roborock import B01Props
7
7
  from roborock.data.b01_q7.b01_q7_code_mappings import (
8
+ CleanPathPreferenceMapping,
9
+ CleanRepeatMapping,
8
10
  CleanTaskTypeMapping,
9
11
  CleanTypeMapping,
10
12
  SCDeviceCleanParam,
@@ -66,6 +68,14 @@ class Q7PropertiesApi(Trait):
66
68
  """Set the cleaning mode (vacuum, mop, or vacuum and mop)."""
67
69
  await self.set_prop(RoborockB01Props.MODE, mode.code)
68
70
 
71
+ async def set_clean_path_preference(self, preference: CleanPathPreferenceMapping) -> None:
72
+ """Set the cleaning path preference (route)."""
73
+ await self.set_prop(RoborockB01Props.CLEAN_PATH_PREFERENCE, preference.code)
74
+
75
+ async def set_repeat_state(self, repeat: CleanRepeatMapping) -> None:
76
+ """Set the cleaning repeat state (cycles)."""
77
+ await self.set_prop(RoborockB01Props.REPEAT_STATE, repeat.code)
78
+
69
79
  async def start_clean(self) -> None:
70
80
  """Start cleaning."""
71
81
  await self.send(