python-roborock 7.10.0__tar.gz → 7.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 (134) hide show
  1. {python_roborock-7.10.0 → python_roborock-7.11.0}/PKG-INFO +1 -1
  2. {python_roborock-7.10.0 → python_roborock-7.11.0}/pyproject.toml +1 -1
  3. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/cli.py +15 -0
  4. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/status.py +17 -0
  5. {python_roborock-7.10.0 → python_roborock-7.11.0}/.gitignore +0 -0
  6. {python_roborock-7.10.0 → python_roborock-7.11.0}/LICENSE +0 -0
  7. {python_roborock-7.10.0 → python_roborock-7.11.0}/README.md +0 -0
  8. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/__init__.py +0 -0
  9. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/broadcast_protocol.py +0 -0
  10. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/callbacks.py +0 -0
  11. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/const.py +0 -0
  12. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/__init__.py +0 -0
  13. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/b01_q10/__init__.py +0 -0
  14. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/b01_q10/b01_q10_code_mappings.py +0 -0
  15. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/b01_q10/b01_q10_containers.py +0 -0
  16. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/b01_q7/__init__.py +0 -0
  17. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/b01_q7/b01_q7_code_mappings.py +0 -0
  18. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/b01_q7/b01_q7_containers.py +0 -0
  19. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/code_mappings.py +0 -0
  20. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/containers.py +0 -0
  21. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/dyad/__init__.py +0 -0
  22. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/dyad/dyad_code_mappings.py +0 -0
  23. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/dyad/dyad_containers.py +0 -0
  24. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/mower/__init__.py +0 -0
  25. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/mower/mower_code_mappings.py +0 -0
  26. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/mower/mower_containers.py +0 -0
  27. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/v1/__init__.py +0 -0
  28. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/v1/v1_clean_modes.py +0 -0
  29. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/v1/v1_code_mappings.py +0 -0
  30. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/v1/v1_containers.py +0 -0
  31. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/zeo/__init__.py +0 -0
  32. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/zeo/zeo_code_mappings.py +0 -0
  33. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/data/zeo/zeo_containers.py +0 -0
  34. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/device_features.py +0 -0
  35. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/README.md +0 -0
  36. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/__init__.py +0 -0
  37. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/cache.py +0 -0
  38. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/device.py +0 -0
  39. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/device_manager.py +0 -0
  40. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/file_cache.py +0 -0
  41. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/rpc/__init__.py +0 -0
  42. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/rpc/a01_channel.py +0 -0
  43. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/rpc/b01_q10_channel.py +0 -0
  44. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/rpc/b01_q7_channel.py +0 -0
  45. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/rpc/v1_channel.py +0 -0
  46. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/__init__.py +0 -0
  47. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/a01/__init__.py +0 -0
  48. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/a01/device_feature.py +0 -0
  49. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/__init__.py +0 -0
  50. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/__init__.py +0 -0
  51. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/button_light.py +0 -0
  52. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/child_lock.py +0 -0
  53. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/clean_history.py +0 -0
  54. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/command.py +0 -0
  55. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/common.py +0 -0
  56. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/consumable.py +0 -0
  57. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/do_not_disturb.py +0 -0
  58. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/dust_collection.py +0 -0
  59. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/goto.py +0 -0
  60. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/map.py +0 -0
  61. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/maps.py +0 -0
  62. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/network_info.py +0 -0
  63. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/remote.py +0 -0
  64. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/status.py +0 -0
  65. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/vacuum.py +0 -0
  66. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q10/volume.py +0 -0
  67. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q7/__init__.py +0 -0
  68. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q7/clean_summary.py +0 -0
  69. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q7/map.py +0 -0
  70. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/b01/q7/map_content.py +0 -0
  71. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/common.py +0 -0
  72. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/traits_mixin.py +0 -0
  73. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/__init__.py +0 -0
  74. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/child_lock.py +0 -0
  75. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/clean_summary.py +0 -0
  76. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/command.py +0 -0
  77. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/common.py +0 -0
  78. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/consumeable.py +0 -0
  79. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/device_features.py +0 -0
  80. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/do_not_disturb.py +0 -0
  81. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/dust_collection_mode.py +0 -0
  82. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/flow_led_status.py +0 -0
  83. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/home.py +0 -0
  84. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/led_status.py +0 -0
  85. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/map_content.py +0 -0
  86. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/maps.py +0 -0
  87. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/mop_dryer.py +0 -0
  88. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/network_info.py +0 -0
  89. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/obstacle_photos.py +0 -0
  90. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/rooms.py +0 -0
  91. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/routines.py +0 -0
  92. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/smart_wash_params.py +0 -0
  93. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/valley_electricity_timer.py +0 -0
  94. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/volume.py +0 -0
  95. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/traits/v1/wash_towel_mode.py +0 -0
  96. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/transport/__init__.py +0 -0
  97. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/transport/channel.py +0 -0
  98. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/transport/local_channel.py +0 -0
  99. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/devices/transport/mqtt_channel.py +0 -0
  100. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/diagnostics.py +0 -0
  101. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/exceptions.py +0 -0
  102. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/__init__.py +0 -0
  103. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/b01_grid_layers.py +0 -0
  104. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/b01_map_parser.py +0 -0
  105. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/b01_q10_map_parser.py +0 -0
  106. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/b01_q10_overlays.py +0 -0
  107. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/b01_q10_render.py +0 -0
  108. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/map_parser.py +0 -0
  109. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/proto/__init__.py +0 -0
  110. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/proto/b01_scmap.proto +0 -0
  111. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/proto/b01_scmap_pb2.py +0 -0
  112. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/map/room_colors.py +0 -0
  113. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/mqtt/__init__.py +0 -0
  114. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/mqtt/health_manager.py +0 -0
  115. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/mqtt/roborock_session.py +0 -0
  116. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/mqtt/session.py +0 -0
  117. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/protocol.py +0 -0
  118. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/protocols/__init__.py +0 -0
  119. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/protocols/a01_protocol.py +0 -0
  120. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/protocols/b01_q10_protocol.py +0 -0
  121. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/protocols/b01_q7_protocol.py +0 -0
  122. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/protocols/v1_protocol.py +0 -0
  123. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/py.typed +0 -0
  124. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/roborock_message.py +0 -0
  125. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/roborock_typing.py +0 -0
  126. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/testing/__init__.py +0 -0
  127. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/testing/a01_simulator.py +0 -0
  128. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/testing/b01_q10_simulator.py +0 -0
  129. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/testing/channel.py +0 -0
  130. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/testing/cloud.py +0 -0
  131. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/testing/simulator.py +0 -0
  132. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/testing/v1_simulator.py +0 -0
  133. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/util.py +0 -0
  134. {python_roborock-7.10.0 → python_roborock-7.11.0}/roborock/web_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: python-roborock
3
- Version: 7.10.0
3
+ Version: 7.11.0
4
4
  Summary: A package to control Roborock vacuums.
5
5
  Project-URL: Repository, https://github.com/python-roborock/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 = "7.10.0"
3
+ version = "7.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"
@@ -749,6 +749,20 @@ async def reset_consumable(ctx, device_id: str, consumable: str):
749
749
  click.echo(f"Reset {consumable} for device {device_id}")
750
750
 
751
751
 
752
+ @session.command()
753
+ @click.option("--device_id", required=True)
754
+ @click.option("--error_code", type=int, help="Error code to resolve. Defaults to the current dock or robot error.")
755
+ @click.pass_context
756
+ @async_command
757
+ async def resolve_error(ctx, device_id: str, error_code: int | None):
758
+ """Resolve the current dock or robot error, like "Resolved" in the app."""
759
+ context: RoborockContext = ctx.obj
760
+ trait = await _v1_trait(context, device_id, lambda v1: v1.status)
761
+ await trait.refresh()
762
+ await trait.resolve_error(error_code)
763
+ click.echo(f"Dock error: {trait.dock_error_status}, error: {trait.error_code}")
764
+
765
+
752
766
  @session.command()
753
767
  @click.option("--device_id", required=True)
754
768
  @click.option("--enabled", type=bool, help="Enable (True) or disable (False) the child lock.")
@@ -1369,6 +1383,7 @@ cli.add_command(map_data)
1369
1383
  cli.add_command(q10_position)
1370
1384
  cli.add_command(consumables)
1371
1385
  cli.add_command(reset_consumable)
1386
+ cli.add_command(resolve_error)
1372
1387
  cli.add_command(rooms)
1373
1388
  cli.add_command(home)
1374
1389
  cli.add_command(features)
@@ -133,6 +133,23 @@ class StatusTrait(StatusV2, common.V1TraitMixin, TraitUpdateListener):
133
133
  params=get_cleaning_mode_parameters(resolve_cleaning_mode(cleaning_mode), self._device_features_trait),
134
134
  )
135
135
 
136
+ async def resolve_error(self, error_code: int | None = None) -> None:
137
+ """Resolve an error, like tapping "Resolved" in the Roborock app.
138
+
139
+ Without an explicit code this resolves the current dock error if there is one,
140
+ otherwise the current robot error. A dock error such as water_empty stays latched
141
+ on the device until it is resolved, even after the cause has been fixed.
142
+ """
143
+ if error_code is None:
144
+ if self.dock_error_status:
145
+ error_code = int(self.dock_error_status)
146
+ elif self.error_code:
147
+ error_code = int(self.error_code)
148
+ else:
149
+ return
150
+ await self.rpc_channel.send_command(RoborockCommand.RESOLVE_ERROR, params={"error_code": error_code})
151
+ await self.refresh()
152
+
136
153
  def update_from_dps(self, decoded_dps: dict[RoborockDataProtocol, Any]) -> None:
137
154
  """Update the trait from data protocol push message data.
138
155