Skip to content

Commit

Permalink
fix: set queue_timeout in the client leaf base classes
Browse files Browse the repository at this point in the history
  • Loading branch information
allenporter committed Jan 21, 2025
1 parent a395c6d commit b52227e
Show file tree
Hide file tree
Showing 7 changed files with 15 additions and 12 deletions.
4 changes: 2 additions & 2 deletions roborock/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@ class RoborockClient(ABC):
"""Roborock client base class."""

_logger: logging.LoggerAdapter
queue_timeout: int

def __init__(self, device_info: DeviceData, queue_timeout: int = 4) -> None:
def __init__(self, device_info: DeviceData) -> None:
"""Initialize RoborockClient."""
self.event_loop = get_running_loop_or_create_one()
self.device_info = device_info
Expand All @@ -45,7 +46,6 @@ def __init__(self, device_info: DeviceData, queue_timeout: int = 4) -> None:
"misc_info": {"Nonce": base64.b64encode(self._nonce).decode("utf-8")}
}
self.is_available: bool = True
self.queue_timeout = queue_timeout

def __del__(self) -> None:
self.release()
Expand Down
4 changes: 2 additions & 2 deletions roborock/cloud_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ def maybe_restart_loop(self) -> None:
class RoborockMqttClient(RoborockClient, ABC):
"""Roborock MQTT client base class."""

def __init__(self, user_data: UserData, device_info: DeviceData, queue_timeout: int = 10) -> None:
def __init__(self, user_data: UserData, device_info: DeviceData) -> None:
"""Initialize the Roborock MQTT client."""
rriot = user_data.rriot
if rriot is None:
raise RoborockException("Got no rriot data from user_data")
RoborockClient.__init__(self, device_info, queue_timeout)
RoborockClient.__init__(self, device_info)
self._mqtt_user = rriot.u
self._hashed_user = md5hex(self._mqtt_user + ":" + rriot.k)[2:10]
url = urlparse(rriot.r.m)
Expand Down
4 changes: 2 additions & 2 deletions roborock/local_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def connection_lost(self, exc: Exception | None) -> None:
class RoborockLocalClient(RoborockClient, ABC):
"""Roborock local client base class."""

def __init__(self, device_data: DeviceData, queue_timeout: int = 4):
def __init__(self, device_data: DeviceData):
"""Initialize the Roborock local client."""
if device_data.host is None:
raise RoborockException("Host is required")
Expand All @@ -48,7 +48,7 @@ def __init__(self, device_data: DeviceData, queue_timeout: int = 4):
self.transport: Transport | None = None
self._mutex = Lock()
self.keep_alive_task: TimerHandle | None = None
RoborockClient.__init__(self, device_data, queue_timeout)
RoborockClient.__init__(self, device_data)
self._local_protocol = _LocalProtocol(self._data_received, self._connection_lost)

def _data_received(self, message):
Expand Down
3 changes: 2 additions & 1 deletion roborock/version_1_apis/roborock_local_client_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@ class RoborockLocalClientV1(RoborockLocalClient, RoborockClientV1):

def __init__(self, device_data: DeviceData, queue_timeout: int = 4):
"""Initialize the Roborock local client."""
RoborockLocalClient.__init__(self, device_data, queue_timeout)
RoborockLocalClient.__init__(self, device_data)
RoborockClientV1.__init__(self, device_data, "abc")
self.queue_timeout = queue_timeout
self._logger = RoborockLoggerAdapter(device_data.device.name, _LOGGER)

def build_roborock_message(
Expand Down
3 changes: 2 additions & 1 deletion roborock/version_1_apis/roborock_mqtt_client_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@ def __init__(self, user_data: UserData, device_info: DeviceData, queue_timeout:
raise RoborockException("Got no rriot data from user_data")
endpoint = base64.b64encode(Utils.md5(rriot.k.encode())[8:14]).decode()

RoborockMqttClient.__init__(self, user_data, device_info, queue_timeout)
RoborockMqttClient.__init__(self, user_data, device_info)
RoborockClientV1.__init__(self, device_info, endpoint)
self.queue_timeout = queue_timeout
self._logger = RoborockLoggerAdapter(device_info.device.name, _LOGGER)

async def send_message(self, roborock_message: RoborockMessage):
Expand Down
4 changes: 2 additions & 2 deletions roborock/version_a01_apis/roborock_client_a01.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,9 @@ class A01ProtocolCacheEntry:
class RoborockClientA01(RoborockClient, ABC):
"""Roborock client base class for A01 devices."""

def __init__(self, device_info: DeviceData, category: RoborockCategory, queue_timeout: int = 4):
def __init__(self, device_info: DeviceData, category: RoborockCategory):
"""Initialize the Roborock client."""
super().__init__(device_info, queue_timeout)
super().__init__(device_info)
self.category = category

def on_message_received(self, messages: list[RoborockMessage]) -> None:
Expand Down
5 changes: 3 additions & 2 deletions roborock/version_a01_apis/roborock_mqtt_client_a01.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@ def __init__(
if rriot is None:
raise RoborockException("Got no rriot data from user_data")

RoborockMqttClient.__init__(self, user_data, device_info, queue_timeout)
RoborockClientA01.__init__(self, device_info, category, queue_timeout)
RoborockMqttClient.__init__(self, user_data, device_info)
RoborockClientA01.__init__(self, device_info, category)
self.queue_timeout = queue_timeout
self._logger = RoborockLoggerAdapter(device_info.device.name, _LOGGER)

async def send_message(self, roborock_message: RoborockMessage):
Expand Down

0 comments on commit b52227e

Please sign in to comment.