diff --git a/roborock/api.py b/roborock/api.py index ce26f472..c7b3d781 100644 --- a/roborock/api.py +++ b/roborock/api.py @@ -20,6 +20,7 @@ from .roborock_future import RoborockFuture from .roborock_message import ( RoborockMessage, + RoborockMessageProtocol, ) from .util import get_next_int @@ -101,7 +102,9 @@ async def _wait_response(self, request_id: int, queue: RoborockFuture) -> Any: def _async_response(self, request_id: int, protocol_id: int = 0) -> Any: queue = RoborockFuture(protocol_id) - if request_id in self._waiting_queue: + if request_id in self._waiting_queue and not ( + request_id == 2 and protocol_id == RoborockMessageProtocol.PING_REQUEST + ): new_id = get_next_int(10000, 32767) self._logger.warning( "Attempting to create a future with an existing id %s (%s)... New id is %s. "