python-roborock 2.58.0__tar.gz → 2.59.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 (74) hide show
  1. {python_roborock-2.58.0 → python_roborock-2.59.0}/PKG-INFO +1 -1
  2. {python_roborock-2.58.0 → python_roborock-2.59.0}/pyproject.toml +1 -1
  3. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/channel.py +5 -0
  4. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/device.py +10 -0
  5. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/local_channel.py +5 -0
  6. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/mqtt_channel.py +5 -0
  7. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/command.py +1 -1
  8. {python_roborock-2.58.0 → python_roborock-2.59.0}/.gitignore +0 -0
  9. {python_roborock-2.58.0 → python_roborock-2.59.0}/LICENSE +0 -0
  10. {python_roborock-2.58.0 → python_roborock-2.59.0}/README.md +0 -0
  11. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/__init__.py +0 -0
  12. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/api.py +0 -0
  13. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/b01_containers.py +0 -0
  14. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/broadcast_protocol.py +0 -0
  15. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/callbacks.py +0 -0
  16. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/clean_modes.py +0 -0
  17. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/cli.py +0 -0
  18. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/cloud_api.py +0 -0
  19. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/code_mappings.py +0 -0
  20. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/command_cache.py +0 -0
  21. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/const.py +0 -0
  22. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/containers.py +0 -0
  23. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/device_features.py +0 -0
  24. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/README.md +0 -0
  25. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/__init__.py +0 -0
  26. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/a01_channel.py +0 -0
  27. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/b01_channel.py +0 -0
  28. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/cache.py +0 -0
  29. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/device_manager.py +0 -0
  30. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/__init__.py +0 -0
  31. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/a01/__init__.py +0 -0
  32. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/b01/__init__.py +0 -0
  33. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/traits_mixin.py +0 -0
  34. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/__init__.py +0 -0
  35. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/child_lock.py +0 -0
  36. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/clean_summary.py +0 -0
  37. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/common.py +0 -0
  38. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/consumeable.py +0 -0
  39. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/device_features.py +0 -0
  40. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/do_not_disturb.py +0 -0
  41. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/flow_led_status.py +0 -0
  42. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/home.py +0 -0
  43. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/led_status.py +0 -0
  44. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/map_content.py +0 -0
  45. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/maps.py +0 -0
  46. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/rooms.py +0 -0
  47. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/status.py +0 -0
  48. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/valley_electricity_timer.py +0 -0
  49. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/traits/v1/volume.py +0 -0
  50. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/v1_channel.py +0 -0
  51. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/devices/v1_rpc_channel.py +0 -0
  52. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/exceptions.py +0 -0
  53. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/map/__init__.py +0 -0
  54. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/map/map_parser.py +0 -0
  55. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/mqtt/__init__.py +0 -0
  56. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/mqtt/roborock_session.py +0 -0
  57. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/mqtt/session.py +0 -0
  58. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/protocol.py +0 -0
  59. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/protocols/a01_protocol.py +0 -0
  60. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/protocols/b01_protocol.py +0 -0
  61. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/protocols/v1_protocol.py +0 -0
  62. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/py.typed +0 -0
  63. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/roborock_future.py +0 -0
  64. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/roborock_message.py +0 -0
  65. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/roborock_typing.py +0 -0
  66. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/util.py +0 -0
  67. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/version_1_apis/__init__.py +0 -0
  68. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/version_1_apis/roborock_client_v1.py +0 -0
  69. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/version_1_apis/roborock_local_client_v1.py +0 -0
  70. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/version_1_apis/roborock_mqtt_client_v1.py +0 -0
  71. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/version_a01_apis/__init__.py +0 -0
  72. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/version_a01_apis/roborock_client_a01.py +0 -0
  73. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/version_a01_apis/roborock_mqtt_client_a01.py +0 -0
  74. {python_roborock-2.58.0 → python_roborock-2.59.0}/roborock/web_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-roborock
3
- Version: 2.58.0
3
+ Version: 2.59.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 = "2.58.0"
3
+ version = "2.59.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"
@@ -22,6 +22,11 @@ class Channel(Protocol):
22
22
  """Return true if the channel is connected."""
23
23
  ...
24
24
 
25
+ @property
26
+ def is_local_connected(self) -> bool:
27
+ """Return true if the channel is connected locally."""
28
+ ...
29
+
25
30
  async def subscribe(self, callback: Callable[[RoborockMessage], None]) -> Callable[[], None]:
26
31
  """Subscribe to messages from the device."""
27
32
  ...
@@ -87,6 +87,16 @@ class RoborockDevice(ABC, TraitsMixin):
87
87
  """Return whether the device is connected."""
88
88
  return self._channel.is_connected
89
89
 
90
+ @property
91
+ def is_local_connected(self) -> bool:
92
+ """Return whether the device is connected locally.
93
+
94
+ This can be used to determine if the device is reachable over a local
95
+ network connection, as opposed to a cloud connection. This is useful
96
+ for adjusting behavior like polling frequency.
97
+ """
98
+ return self._channel.is_local_connected
99
+
90
100
  async def connect(self) -> None:
91
101
  """Connect to the device using the appropriate protocol channel."""
92
102
  if self._unsub:
@@ -56,6 +56,11 @@ class LocalChannel(Channel):
56
56
  """Check if the channel is currently connected."""
57
57
  return self._is_connected
58
58
 
59
+ @property
60
+ def is_local_connected(self) -> bool:
61
+ """Check if the channel is currently connected locally."""
62
+ return self._is_connected
63
+
59
64
  async def connect(self) -> None:
60
65
  """Connect to the device."""
61
66
  if self._is_connected:
@@ -40,6 +40,11 @@ class MqttChannel(Channel):
40
40
  """
41
41
  return self._mqtt_session.connected
42
42
 
43
+ @property
44
+ def is_local_connected(self) -> bool:
45
+ """Return true if the channel is connected locally."""
46
+ return False
47
+
43
48
  @property
44
49
  def _publish_topic(self) -> str:
45
50
  """Topic to send commands to the device."""
@@ -14,7 +14,7 @@ class CommandTrait:
14
14
  """
15
15
  self._rpc_channel = None
16
16
 
17
- async def send(self, command: RoborockCommand, params: dict[str, Any] | None = None) -> Any:
17
+ async def send(self, command: RoborockCommand | str, params: dict[str, Any] | None = None) -> Any:
18
18
  """Send a command to the device."""
19
19
  if not self._rpc_channel:
20
20
  raise ValueError("Device trait in invalid state")