python-roborock 2.40.0__tar.gz → 2.40.1__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-2.40.0 → python_roborock-2.40.1}/PKG-INFO +1 -1
- {python_roborock-2.40.0 → python_roborock-2.40.1}/pyproject.toml +1 -1
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/protocols/v1_protocol.py +4 -5
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/version_1_apis/roborock_client_v1.py +9 -8
- {python_roborock-2.40.0 → python_roborock-2.40.1}/LICENSE +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/README.md +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/__init__.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/api.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/b01_containers.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/broadcast_protocol.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/callbacks.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/clean_modes.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/cli.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/cloud_api.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/code_mappings.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/command_cache.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/const.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/containers.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/device_features.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/README.md +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/__init__.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/a01_channel.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/b01_channel.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/cache.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/channel.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/device.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/device_manager.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/local_channel.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/mqtt_channel.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/traits/b01/__init__.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/traits/b01/props.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/traits/dyad.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/traits/status.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/traits/trait.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/traits/zeo.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/v1_channel.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/devices/v1_rpc_channel.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/exceptions.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/mqtt/__init__.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/mqtt/roborock_session.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/mqtt/session.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/protocol.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/protocols/a01_protocol.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/protocols/b01_protocol.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/py.typed +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/roborock_future.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/roborock_message.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/roborock_typing.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/util.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/version_1_apis/__init__.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/version_1_apis/roborock_local_client_v1.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/version_1_apis/roborock_mqtt_client_v1.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/version_a01_apis/__init__.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/version_a01_apis/roborock_client_a01.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/version_a01_apis/roborock_mqtt_client_a01.py +0 -0
- {python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/web_api.py +0 -0
|
@@ -157,19 +157,18 @@ class MapResponse:
|
|
|
157
157
|
"""The map data, decrypted and decompressed."""
|
|
158
158
|
|
|
159
159
|
|
|
160
|
-
def create_map_response_decoder(security_data: SecurityData) -> Callable[[RoborockMessage], MapResponse]:
|
|
160
|
+
def create_map_response_decoder(security_data: SecurityData) -> Callable[[RoborockMessage], MapResponse | None]:
|
|
161
161
|
"""Create a decoder for V1 map response messages."""
|
|
162
162
|
|
|
163
|
-
def _decode_map_response(message: RoborockMessage) -> MapResponse:
|
|
163
|
+
def _decode_map_response(message: RoborockMessage) -> MapResponse | None:
|
|
164
164
|
"""Decode a V1 map response message."""
|
|
165
165
|
if not message.payload or len(message.payload) < 24:
|
|
166
166
|
raise RoborockException("Invalid V1 map response format: missing payload")
|
|
167
167
|
header, body = message.payload[:24], message.payload[24:]
|
|
168
168
|
[endpoint, _, request_id, _] = struct.unpack("<8s8sH6s", header)
|
|
169
169
|
if not endpoint.decode().startswith(security_data.endpoint):
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
)
|
|
170
|
+
_LOGGER.debug("Received map response requested not made by this device, ignoring.")
|
|
171
|
+
return None
|
|
173
172
|
try:
|
|
174
173
|
decrypted = Utils.decrypt_cbc(body, security_data.nonce)
|
|
175
174
|
except ValueError as err:
|
{python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/version_1_apis/roborock_client_v1.py
RENAMED
|
@@ -150,7 +150,7 @@ class RoborockClientV1(RoborockClient, ABC):
|
|
|
150
150
|
"""Roborock client base class for version 1 devices."""
|
|
151
151
|
|
|
152
152
|
_listeners: dict[str, ListenerModel] = {}
|
|
153
|
-
_map_response_decoder: Callable[[RoborockMessage], MapResponse] | None = None
|
|
153
|
+
_map_response_decoder: Callable[[RoborockMessage], MapResponse | None] | None = None
|
|
154
154
|
|
|
155
155
|
def __init__(self, device_info: DeviceData, security_data: SecurityData | None) -> None:
|
|
156
156
|
"""Initializes the Roborock client."""
|
|
@@ -439,13 +439,14 @@ class RoborockClientV1(RoborockClient, ABC):
|
|
|
439
439
|
elif data.payload and protocol == RoborockMessageProtocol.MAP_RESPONSE:
|
|
440
440
|
if self._map_response_decoder is not None:
|
|
441
441
|
map_response = self._map_response_decoder(data)
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
queue
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
442
|
+
if map_response is not None:
|
|
443
|
+
queue = self._waiting_queue.get(map_response.request_id)
|
|
444
|
+
if queue:
|
|
445
|
+
queue.set_result(map_response.data)
|
|
446
|
+
else:
|
|
447
|
+
self._logger.debug(
|
|
448
|
+
"Received unsolicited map response for request_id %s", map_response.request_id
|
|
449
|
+
)
|
|
449
450
|
else:
|
|
450
451
|
queue = self._waiting_queue.get(data.seq)
|
|
451
452
|
if queue:
|
|
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
|
|
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-2.40.0 → python_roborock-2.40.1}/roborock/version_1_apis/roborock_mqtt_client_v1.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_roborock-2.40.0 → python_roborock-2.40.1}/roborock/version_a01_apis/roborock_client_a01.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|