python-roborock 4.17.0__tar.gz → 4.17.2__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.17.0 → python_roborock-4.17.2}/PKG-INFO +2 -2
- {python_roborock-4.17.0 → python_roborock-4.17.2}/pyproject.toml +2 -2
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/v1/v1_clean_modes.py +0 -3
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/web_api.py +14 -32
- {python_roborock-4.17.0 → python_roborock-4.17.2}/.gitignore +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/LICENSE +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/README.md +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/broadcast_protocol.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/callbacks.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/cli.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/const.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/b01_q10/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/b01_q10/b01_q10_code_mappings.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/b01_q10/b01_q10_containers.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/b01_q7/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/b01_q7/b01_q7_code_mappings.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/b01_q7/b01_q7_containers.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/code_mappings.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/containers.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/dyad/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/dyad/dyad_code_mappings.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/dyad/dyad_containers.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/v1/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/v1/v1_code_mappings.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/v1/v1_containers.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/zeo/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/zeo/zeo_code_mappings.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/zeo/zeo_containers.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/device_features.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/README.md +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/cache.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/device.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/device_manager.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/file_cache.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/rpc/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/rpc/a01_channel.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/rpc/b01_q10_channel.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/rpc/b01_q7_channel.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/rpc/v1_channel.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/a01/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q10/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q10/command.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q10/common.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q10/status.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q10/vacuum.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q7/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q7/clean_summary.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/traits_mixin.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/child_lock.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/clean_summary.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/command.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/common.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/consumeable.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/device_features.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/do_not_disturb.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/dust_collection_mode.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/flow_led_status.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/home.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/led_status.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/map_content.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/maps.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/network_info.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/rooms.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/routines.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/smart_wash_params.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/status.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/valley_electricity_timer.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/volume.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/wash_towel_mode.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/transport/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/transport/channel.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/transport/local_channel.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/transport/mqtt_channel.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/diagnostics.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/exceptions.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/map/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/map/map_parser.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/mqtt/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/mqtt/health_manager.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/mqtt/roborock_session.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/mqtt/session.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/protocol.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/protocols/__init__.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/protocols/a01_protocol.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/protocols/b01_q10_protocol.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/protocols/b01_q7_protocol.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/protocols/v1_protocol.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/py.typed +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/roborock_message.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/roborock_typing.py +0 -0
- {python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-roborock
|
|
3
|
-
Version: 4.17.
|
|
3
|
+
Version: 4.17.2
|
|
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/
|
|
@@ -23,7 +23,7 @@ Requires-Dist: construct<3,>=2.10.57
|
|
|
23
23
|
Requires-Dist: paho-mqtt<3.0.0,>=1.6.1
|
|
24
24
|
Requires-Dist: pycryptodomex~=3.18; sys_platform == 'darwin'
|
|
25
25
|
Requires-Dist: pycryptodome~=3.18
|
|
26
|
-
Requires-Dist: pyrate-limiter<4
|
|
26
|
+
Requires-Dist: pyrate-limiter<5,>=4.0.0
|
|
27
27
|
Requires-Dist: vacuum-map-parser-roborock
|
|
28
28
|
Description-Content-Type: text/markdown
|
|
29
29
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "python-roborock"
|
|
3
|
-
version = "4.17.
|
|
3
|
+
version = "4.17.2"
|
|
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"
|
|
@@ -26,7 +26,7 @@ dependencies = [
|
|
|
26
26
|
"paho-mqtt>=1.6.1,<3.0.0",
|
|
27
27
|
"construct>=2.10.57,<3",
|
|
28
28
|
"vacuum-map-parser-roborock",
|
|
29
|
-
"pyrate-limiter>=
|
|
29
|
+
"pyrate-limiter>=4.0.0,<5",
|
|
30
30
|
"aiomqtt>=2.5.0,<3",
|
|
31
31
|
"click-shell~=2.1",
|
|
32
32
|
]
|
|
@@ -16,7 +16,6 @@ class VacuumModes(RoborockModeEnum):
|
|
|
16
16
|
TURBO = ("turbo", 103)
|
|
17
17
|
MAX = ("max", 104)
|
|
18
18
|
MAX_PLUS = ("max_plus", 108)
|
|
19
|
-
CARPET = ("carpet", 107)
|
|
20
19
|
OFF_RAISE_MAIN_BRUSH = ("off_raise_main_brush", 109)
|
|
21
20
|
CUSTOMIZED = ("custom", 106)
|
|
22
21
|
SMART_MODE = ("smart_mode", 110)
|
|
@@ -85,8 +84,6 @@ def get_clean_modes(features: DeviceFeatures) -> list[VacuumModes]:
|
|
|
85
84
|
if features.is_max_plus_mode_supported or features.is_none_pure_clean_mop_with_max_plus:
|
|
86
85
|
# If the vacuum has max plus mode supported
|
|
87
86
|
modes.append(VacuumModes.MAX_PLUS)
|
|
88
|
-
if features.is_carpet_deep_clean_supported:
|
|
89
|
-
modes.append(VacuumModes.CARPET)
|
|
90
87
|
if features.is_pure_clean_mop_supported:
|
|
91
88
|
# If the vacuum is capable of 'pure mop clean' aka no vacuum
|
|
92
89
|
if features.is_support_main_brush_up_down_supported:
|
|
@@ -12,7 +12,7 @@ from dataclasses import dataclass
|
|
|
12
12
|
|
|
13
13
|
import aiohttp
|
|
14
14
|
from aiohttp import ContentTypeError, FormData
|
|
15
|
-
from pyrate_limiter import
|
|
15
|
+
from pyrate_limiter import Duration, Limiter, Rate
|
|
16
16
|
|
|
17
17
|
from roborock import HomeDataSchedule
|
|
18
18
|
from roborock.data import HomeData, HomeDataRoom, HomeDataScene, ProductResponse, RRiot, UserData
|
|
@@ -62,7 +62,7 @@ class RoborockApiClient:
|
|
|
62
62
|
Rate(40, Duration.DAY),
|
|
63
63
|
]
|
|
64
64
|
|
|
65
|
-
_login_limiter = Limiter(_LOGIN_RATES
|
|
65
|
+
_login_limiter = Limiter(_LOGIN_RATES)
|
|
66
66
|
_home_data_limiter = Limiter(_HOME_DATA_RATES)
|
|
67
67
|
|
|
68
68
|
def __init__(
|
|
@@ -204,11 +204,8 @@ class RoborockApiClient:
|
|
|
204
204
|
return add_device_response["result"]
|
|
205
205
|
|
|
206
206
|
async def request_code(self) -> None:
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
except BucketFullException as ex:
|
|
210
|
-
_LOGGER.info(ex.meta_info)
|
|
211
|
-
raise RoborockRateLimit("Reached maximum requests for login. Please try again later.") from ex
|
|
207
|
+
if not await self._login_limiter.try_acquire_async("login", blocking=True, timeout=1):
|
|
208
|
+
raise RoborockRateLimit("Reached maximum requests for login. Please try again later.")
|
|
212
209
|
base_url = await self.base_url
|
|
213
210
|
header_clientid = self._get_header_client_id()
|
|
214
211
|
code_request = PreparedRequest(base_url, self.session, {"header_clientid": header_clientid})
|
|
@@ -238,11 +235,8 @@ class RoborockApiClient:
|
|
|
238
235
|
if await self.country_code is None or await self.country is None:
|
|
239
236
|
_LOGGER.info("No country code or country found, trying old version of request code.")
|
|
240
237
|
return await self.request_code()
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
except BucketFullException as ex:
|
|
244
|
-
_LOGGER.info(ex.meta_info)
|
|
245
|
-
raise RoborockRateLimit("Reached maximum requests for login. Please try again later.") from ex
|
|
238
|
+
if not await self._login_limiter.try_acquire_async("login", blocking=True, timeout=1):
|
|
239
|
+
raise RoborockRateLimit("Reached maximum requests for login. Please try again later.")
|
|
246
240
|
base_url = await self.base_url
|
|
247
241
|
header_clientid = self._get_header_client_id()
|
|
248
242
|
code_request = PreparedRequest(
|
|
@@ -370,11 +364,8 @@ class RoborockApiClient:
|
|
|
370
364
|
return UserData.from_dict(user_data)
|
|
371
365
|
|
|
372
366
|
async def pass_login(self, password: str) -> UserData:
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
except BucketFullException as ex:
|
|
376
|
-
_LOGGER.info(ex.meta_info)
|
|
377
|
-
raise RoborockRateLimit("Reached maximum requests for login. Please try again later.") from ex
|
|
367
|
+
if not await self._login_limiter.try_acquire_async("login", blocking=True, timeout=1):
|
|
368
|
+
raise RoborockRateLimit("Reached maximum requests for login. Please try again later.")
|
|
378
369
|
base_url = await self.base_url
|
|
379
370
|
header_clientid = self._get_header_client_id()
|
|
380
371
|
|
|
@@ -468,11 +459,8 @@ class RoborockApiClient:
|
|
|
468
459
|
return home_id_response["data"]["rrHomeId"]
|
|
469
460
|
|
|
470
461
|
async def get_home_data(self, user_data: UserData) -> HomeData:
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
except BucketFullException as ex:
|
|
474
|
-
_LOGGER.info(ex.meta_info)
|
|
475
|
-
raise RoborockRateLimit("Reached maximum requests for home data. Please try again later.") from ex
|
|
462
|
+
if not self._home_data_limiter.try_acquire("home_data", blocking=False):
|
|
463
|
+
raise RoborockRateLimit("Reached maximum requests for home data. Please try again later.")
|
|
476
464
|
rriot = user_data.rriot
|
|
477
465
|
if rriot is None:
|
|
478
466
|
raise RoborockException("rriot is none")
|
|
@@ -497,11 +485,8 @@ class RoborockApiClient:
|
|
|
497
485
|
|
|
498
486
|
async def get_home_data_v2(self, user_data: UserData) -> HomeData:
|
|
499
487
|
"""This is the same as get_home_data, but uses a different endpoint and includes non-robotic vacuums."""
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
except BucketFullException as ex:
|
|
503
|
-
_LOGGER.info(ex.meta_info)
|
|
504
|
-
raise RoborockRateLimit("Reached maximum requests for home data. Please try again later.") from ex
|
|
488
|
+
if not self._home_data_limiter.try_acquire("home_data", blocking=False):
|
|
489
|
+
raise RoborockRateLimit("Reached maximum requests for home data. Please try again later.")
|
|
505
490
|
rriot = user_data.rriot
|
|
506
491
|
if rriot is None:
|
|
507
492
|
raise RoborockException("rriot is none")
|
|
@@ -526,11 +511,8 @@ class RoborockApiClient:
|
|
|
526
511
|
|
|
527
512
|
async def get_home_data_v3(self, user_data: UserData) -> HomeData:
|
|
528
513
|
"""This is the same as get_home_data, but uses a different endpoint and includes non-robotic vacuums."""
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
except BucketFullException as ex:
|
|
532
|
-
_LOGGER.info(ex.meta_info)
|
|
533
|
-
raise RoborockRateLimit("Reached maximum requests for home data. Please try again later.") from ex
|
|
514
|
+
if not self._home_data_limiter.try_acquire("home_data", blocking=False):
|
|
515
|
+
raise RoborockRateLimit("Reached maximum requests for home data. Please try again later.")
|
|
534
516
|
rriot = user_data.rriot
|
|
535
517
|
home_id = await self._get_home_id(user_data)
|
|
536
518
|
if rriot.r.a is None:
|
|
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.17.0 → python_roborock-4.17.2}/roborock/data/b01_q10/b01_q10_code_mappings.py
RENAMED
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/data/b01_q10/b01_q10_containers.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/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.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q10/__init__.py
RENAMED
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q10/command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q7/__init__.py
RENAMED
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/b01/q7/clean_summary.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/clean_summary.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/device_features.py
RENAMED
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/do_not_disturb.py
RENAMED
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/dust_collection_mode.py
RENAMED
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/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.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/network_info.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/smart_wash_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/traits/v1/wash_towel_mode.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/roborock/devices/transport/local_channel.py
RENAMED
|
File without changes
|
{python_roborock-4.17.0 → python_roborock-4.17.2}/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
|