python-roborock 4.7.2__tar.gz → 4.9.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.7.2 → python_roborock-4.9.0}/PKG-INFO +1 -1
- {python_roborock-4.7.2 → python_roborock-4.9.0}/pyproject.toml +1 -1
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/b01_q7/b01_q7_containers.py +4 -2
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/b01/q10/__init__.py +5 -3
- python_roborock-4.9.0/roborock/devices/traits/b01/q10/vacuum.py +56 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/b01/q7/__init__.py +5 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/.gitignore +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/LICENSE +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/README.md +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/broadcast_protocol.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/callbacks.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/cli.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/const.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/b01_q10/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/b01_q10/b01_q10_code_mappings.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/b01_q10/b01_q10_containers.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/b01_q7/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/b01_q7/b01_q7_code_mappings.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/code_mappings.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/containers.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/dyad/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/dyad/dyad_code_mappings.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/dyad/dyad_containers.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/v1/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/v1/v1_clean_modes.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/v1/v1_code_mappings.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/v1/v1_containers.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/zeo/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/zeo/zeo_code_mappings.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/data/zeo/zeo_containers.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/device_features.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/README.md +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/cache.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/device.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/device_manager.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/file_cache.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/rpc/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/rpc/a01_channel.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/rpc/b01_q10_channel.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/rpc/b01_q7_channel.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/rpc/v1_channel.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/a01/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/b01/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/b01/q10/command.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/traits_mixin.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/child_lock.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/clean_summary.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/command.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/common.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/consumeable.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/device_features.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/do_not_disturb.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/dust_collection_mode.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/flow_led_status.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/home.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/led_status.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/map_content.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/maps.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/network_info.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/rooms.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/routines.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/smart_wash_params.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/status.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/valley_electricity_timer.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/volume.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/wash_towel_mode.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/transport/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/transport/channel.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/transport/local_channel.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/transport/mqtt_channel.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/diagnostics.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/exceptions.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/map/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/map/map_parser.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/mqtt/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/mqtt/health_manager.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/mqtt/roborock_session.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/mqtt/session.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/protocol.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/protocols/__init__.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/protocols/a01_protocol.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/protocols/b01_q10_protocol.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/protocols/b01_q7_protocol.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/protocols/v1_protocol.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/py.typed +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/roborock_message.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/roborock_typing.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/util.py +0 -0
- {python_roborock-4.7.2 → python_roborock-4.9.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.9.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.9.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"
|
|
@@ -3,7 +3,9 @@ from dataclasses import dataclass, field
|
|
|
3
3
|
from ..containers import RoborockBase
|
|
4
4
|
from .b01_q7_code_mappings import (
|
|
5
5
|
B01Fault,
|
|
6
|
+
CleanTypeMapping,
|
|
6
7
|
SCWindMapping,
|
|
8
|
+
WaterLevelMapping,
|
|
7
9
|
WorkModeMapping,
|
|
8
10
|
WorkStatusMapping,
|
|
9
11
|
)
|
|
@@ -77,8 +79,8 @@ class B01Props(RoborockBase):
|
|
|
77
79
|
status: WorkStatusMapping | None = None
|
|
78
80
|
fault: B01Fault | None = None
|
|
79
81
|
wind: SCWindMapping | None = None
|
|
80
|
-
water:
|
|
81
|
-
mode:
|
|
82
|
+
water: WaterLevelMapping | None = None
|
|
83
|
+
mode: CleanTypeMapping | None = None
|
|
82
84
|
quantity: int | None = None
|
|
83
85
|
alarm: int | None = None
|
|
84
86
|
volume: int | None = None
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"""Traits for Q10 B01 devices."""
|
|
2
2
|
|
|
3
|
-
from typing import Any
|
|
4
|
-
|
|
5
|
-
from roborock.devices.rpc.b01_q7_channel import send_decoded_command
|
|
6
3
|
from roborock.devices.traits import Trait
|
|
7
4
|
from roborock.devices.transport.mqtt_channel import MqttChannel
|
|
8
5
|
|
|
9
6
|
from .command import CommandTrait
|
|
7
|
+
from .vacuum import VacuumTrait
|
|
10
8
|
|
|
11
9
|
__all__ = [
|
|
12
10
|
"Q10PropertiesApi",
|
|
@@ -19,9 +17,13 @@ class Q10PropertiesApi(Trait):
|
|
|
19
17
|
command: CommandTrait
|
|
20
18
|
"""Trait for sending commands to Q10 devices."""
|
|
21
19
|
|
|
20
|
+
vacuum: VacuumTrait
|
|
21
|
+
"""Trait for sending vacuum related commands to Q10 devices."""
|
|
22
|
+
|
|
22
23
|
def __init__(self, channel: MqttChannel) -> None:
|
|
23
24
|
"""Initialize the B01Props API."""
|
|
24
25
|
self.command = CommandTrait(channel)
|
|
26
|
+
self.vacuum = VacuumTrait(self.command)
|
|
25
27
|
|
|
26
28
|
|
|
27
29
|
def create(channel: MqttChannel) -> Q10PropertiesApi:
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""Traits for Q10 B01 devices."""
|
|
2
|
+
|
|
3
|
+
from roborock.data.b01_q10.b01_q10_code_mappings import B01_Q10_DP
|
|
4
|
+
|
|
5
|
+
from .command import CommandTrait
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class VacuumTrait:
|
|
9
|
+
"""Trait for sending vacuum commands.
|
|
10
|
+
|
|
11
|
+
This is a wrapper around the CommandTrait for sending vacuum related
|
|
12
|
+
commands to Q10 devices.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
def __init__(self, command: CommandTrait) -> None:
|
|
16
|
+
"""Initialize the VacuumTrait."""
|
|
17
|
+
self._command = command
|
|
18
|
+
|
|
19
|
+
async def start_clean(self) -> None:
|
|
20
|
+
"""Start cleaning."""
|
|
21
|
+
await self._command.send(
|
|
22
|
+
command=B01_Q10_DP.START_CLEAN,
|
|
23
|
+
# TODO: figure out other commands
|
|
24
|
+
# 1 = start cleaning
|
|
25
|
+
# 2 = "electoral" clean, also has "clean_parameters"
|
|
26
|
+
# 4 = fast create map
|
|
27
|
+
params={"cmd": 1},
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
async def pause_clean(self) -> None:
|
|
31
|
+
"""Pause cleaning."""
|
|
32
|
+
await self._command.send(
|
|
33
|
+
command=B01_Q10_DP.PAUSE,
|
|
34
|
+
params={},
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
async def resume_clean(self) -> None:
|
|
38
|
+
"""Resume cleaning."""
|
|
39
|
+
await self._command.send(
|
|
40
|
+
command=B01_Q10_DP.RESUME,
|
|
41
|
+
params={},
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
async def stop_clean(self) -> None:
|
|
45
|
+
"""Stop cleaning."""
|
|
46
|
+
await self._command.send(
|
|
47
|
+
command=B01_Q10_DP.STOP,
|
|
48
|
+
params={},
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
async def return_to_dock(self) -> None:
|
|
52
|
+
"""Return to dock."""
|
|
53
|
+
await self._command.send(
|
|
54
|
+
command=B01_Q10_DP.START_DOCK_TASK,
|
|
55
|
+
params={},
|
|
56
|
+
)
|
|
@@ -6,6 +6,7 @@ from typing import Any
|
|
|
6
6
|
from roborock import B01Props
|
|
7
7
|
from roborock.data.b01_q7.b01_q7_code_mappings import (
|
|
8
8
|
CleanTaskTypeMapping,
|
|
9
|
+
CleanTypeMapping,
|
|
9
10
|
SCDeviceCleanParam,
|
|
10
11
|
SCWindMapping,
|
|
11
12
|
WaterLevelMapping,
|
|
@@ -54,6 +55,10 @@ class Q7PropertiesApi(Trait):
|
|
|
54
55
|
"""Set the water level (water)."""
|
|
55
56
|
await self.set_prop(RoborockB01Props.WATER, water_level.code)
|
|
56
57
|
|
|
58
|
+
async def set_mode(self, mode: CleanTypeMapping) -> None:
|
|
59
|
+
"""Set the cleaning mode (vacuum, mop, or vacuum and mop)."""
|
|
60
|
+
await self.set_prop(RoborockB01Props.MODE, mode.code)
|
|
61
|
+
|
|
57
62
|
async def start_clean(self) -> None:
|
|
58
63
|
"""Start cleaning."""
|
|
59
64
|
await self.send(
|
|
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.7.2 → python_roborock-4.9.0}/roborock/data/b01_q10/b01_q10_code_mappings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.7.2 → python_roborock-4.9.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
|
|
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.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/device_features.py
RENAMED
|
File without changes
|
{python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/do_not_disturb.py
RENAMED
|
File without changes
|
{python_roborock-4.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/dust_collection_mode.py
RENAMED
|
File without changes
|
{python_roborock-4.7.2 → python_roborock-4.9.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.7.2 → python_roborock-4.9.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.7.2 → python_roborock-4.9.0}/roborock/devices/traits/v1/wash_towel_mode.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
|