python-roborock 4.24.0__tar.gz → 4.25.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.
- {python_roborock-4.24.0 → python_roborock-4.25.0}/PKG-INFO +1 -1
- {python_roborock-4.24.0 → python_roborock-4.25.0}/pyproject.toml +1 -1
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/cli.py +2 -16
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/code_mappings.py +24 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/.gitignore +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/LICENSE +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/README.md +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/broadcast_protocol.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/callbacks.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/const.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/b01_q10/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/b01_q10/b01_q10_code_mappings.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/b01_q10/b01_q10_containers.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/b01_q7/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/b01_q7/b01_q7_code_mappings.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/b01_q7/b01_q7_containers.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/containers.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/dyad/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/dyad/dyad_code_mappings.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/dyad/dyad_containers.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/v1/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/v1/v1_clean_modes.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/v1/v1_code_mappings.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/v1/v1_containers.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/zeo/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/zeo/zeo_code_mappings.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/zeo/zeo_containers.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/device_features.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/README.md +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/cache.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/device.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/device_manager.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/file_cache.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/rpc/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/rpc/a01_channel.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/rpc/b01_q10_channel.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/rpc/b01_q7_channel.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/rpc/v1_channel.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/a01/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q10/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q10/command.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q10/common.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q10/status.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q10/vacuum.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q7/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q7/clean_summary.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q7/map.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/traits_mixin.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/child_lock.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/clean_summary.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/command.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/common.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/consumeable.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/device_features.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/do_not_disturb.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/dust_collection_mode.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/flow_led_status.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/home.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/led_status.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/map_content.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/maps.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/network_info.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/rooms.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/routines.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/smart_wash_params.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/status.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/valley_electricity_timer.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/volume.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/wash_towel_mode.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/transport/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/transport/channel.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/transport/local_channel.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/transport/mqtt_channel.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/diagnostics.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/exceptions.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/map/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/map/map_parser.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/mqtt/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/mqtt/health_manager.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/mqtt/roborock_session.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/mqtt/session.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/protocol.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/protocols/__init__.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/protocols/a01_protocol.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/protocols/b01_q10_protocol.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/protocols/b01_q7_protocol.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/protocols/v1_protocol.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/py.typed +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/roborock_message.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/roborock_typing.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/util.py +0 -0
- {python_roborock-4.24.0 → python_roborock-4.25.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.
|
|
3
|
+
Version: 4.25.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.
|
|
3
|
+
version = "4.25.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"
|
|
@@ -764,21 +764,6 @@ async def network_info(ctx, device_id: str):
|
|
|
764
764
|
await _display_v1_trait(context, device_id, lambda v1: v1.network_info)
|
|
765
765
|
|
|
766
766
|
|
|
767
|
-
def _parse_b01_q10_command(cmd: str) -> B01_Q10_DP:
|
|
768
|
-
"""Parse B01_Q10 command from either enum name or value."""
|
|
769
|
-
try:
|
|
770
|
-
return B01_Q10_DP(int(cmd))
|
|
771
|
-
except ValueError:
|
|
772
|
-
try:
|
|
773
|
-
return B01_Q10_DP.from_name(cmd)
|
|
774
|
-
except ValueError:
|
|
775
|
-
try:
|
|
776
|
-
return B01_Q10_DP.from_value(cmd)
|
|
777
|
-
except ValueError:
|
|
778
|
-
pass
|
|
779
|
-
raise RoborockException(f"Invalid command {cmd} for B01_Q10 device")
|
|
780
|
-
|
|
781
|
-
|
|
782
767
|
@click.command()
|
|
783
768
|
@click.option("--device_id", required=True)
|
|
784
769
|
@click.option("--cmd", required=True)
|
|
@@ -795,7 +780,8 @@ async def command(ctx, cmd, device_id, params):
|
|
|
795
780
|
if result:
|
|
796
781
|
click.echo(dump_json(result))
|
|
797
782
|
elif device.b01_q10_properties is not None:
|
|
798
|
-
cmd_value
|
|
783
|
+
if cmd_value := B01_Q10_DP.from_any_optional(cmd) is None:
|
|
784
|
+
raise RoborockException(f"Invalid command {cmd} for B01_Q10 device")
|
|
799
785
|
command_trait: Trait = device.b01_q10_properties.command
|
|
800
786
|
await command_trait.send(cmd_value, json.loads(params) if params is not None else None)
|
|
801
787
|
click.echo("Command sent successfully; Enable debug logging (-d) to see responses.")
|
|
@@ -100,6 +100,30 @@ class RoborockModeEnum(StrEnum):
|
|
|
100
100
|
return member
|
|
101
101
|
raise ValueError(f"{name} is not a valid name for {cls.__name__}")
|
|
102
102
|
|
|
103
|
+
@classmethod
|
|
104
|
+
def from_any_optional(cls, value: str | int) -> Self | None:
|
|
105
|
+
"""Resolve a string or int to an enum member.
|
|
106
|
+
|
|
107
|
+
Tries to look up by enum name, string value, or integer code
|
|
108
|
+
and returns None if no match is found.
|
|
109
|
+
"""
|
|
110
|
+
# Try enum name lookup (e.g. "SEEK")
|
|
111
|
+
try:
|
|
112
|
+
return cls.from_name(str(value))
|
|
113
|
+
except ValueError:
|
|
114
|
+
pass
|
|
115
|
+
# Try DP string value lookup (e.g. "dpSeek")
|
|
116
|
+
try:
|
|
117
|
+
return cls.from_value(str(value))
|
|
118
|
+
except ValueError:
|
|
119
|
+
pass
|
|
120
|
+
# Try integer code lookup (e.g. "11")
|
|
121
|
+
try:
|
|
122
|
+
return cls.from_code(int(value))
|
|
123
|
+
except (ValueError, TypeError):
|
|
124
|
+
pass
|
|
125
|
+
return None
|
|
126
|
+
|
|
103
127
|
@classmethod
|
|
104
128
|
def keys(cls) -> list[str]:
|
|
105
129
|
"""Returns a list of all member values."""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/b01_q10/b01_q10_code_mappings.py
RENAMED
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/b01_q10/b01_q10_containers.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/data/b01_q7/b01_q7_code_mappings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q10/__init__.py
RENAMED
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q10/command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q7/__init__.py
RENAMED
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/b01/q7/clean_summary.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/clean_summary.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/device_features.py
RENAMED
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/do_not_disturb.py
RENAMED
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/dust_collection_mode.py
RENAMED
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/flow_led_status.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/network_info.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/smart_wash_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/traits/v1/wash_towel_mode.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/transport/local_channel.py
RENAMED
|
File without changes
|
{python_roborock-4.24.0 → python_roborock-4.25.0}/roborock/devices/transport/mqtt_channel.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|