diff --git a/roborock/code_mappings.py b/roborock/code_mappings.py index 94c7d51e..e1675c84 100644 --- a/roborock/code_mappings.py +++ b/roborock/code_mappings.py @@ -461,6 +461,7 @@ class RoborockDockTypeCode(RoborockEnum): s8_maxv_ultra_dock = 10 qrevo_master_dock = 14 qrevo_s_dock = 15 + saros_r10_dock = 16 qrevo_curv_dock = 17 diff --git a/roborock/exceptions.py b/roborock/exceptions.py index 393aa53f..179987d1 100644 --- a/roborock/exceptions.py +++ b/roborock/exceptions.py @@ -68,3 +68,7 @@ class RoborockTooFrequentCodeRequests(RoborockException): class RoborockMissingParameters(RoborockException): """Class for Roborock missing parameters exceptions.""" + + +class RoborockTooManyRequest(RoborockException): + """Class for Roborock too many request exceptions.""" diff --git a/roborock/version_1_apis/roborock_client_v1.py b/roborock/version_1_apis/roborock_client_v1.py index 00e1052e..9df9a760 100644 --- a/roborock/version_1_apis/roborock_client_v1.py +++ b/roborock/version_1_apis/roborock_client_v1.py @@ -72,6 +72,7 @@ RoborockDockTypeCode.p10_pro_dock, RoborockDockTypeCode.s8_maxv_ultra_dock, RoborockDockTypeCode.qrevo_s_dock, + RoborockDockTypeCode.saros_r10_dock, RoborockDockTypeCode.qrevo_curv_dock, ] RT = TypeVar("RT", bound=RoborockBase) diff --git a/roborock/web_api.py b/roborock/web_api.py index cc21a2de..e3dc7d26 100644 --- a/roborock/web_api.py +++ b/roborock/web_api.py @@ -22,6 +22,7 @@ RoborockMissingParameters, RoborockNoUserAgreement, RoborockTooFrequentCodeRequests, + RoborockTooManyRequest, RoborockUrlException, ) @@ -54,6 +55,8 @@ async def _get_base_url(self) -> str: raise RoborockMissingParameters( "You are missing parameters for this request, are you sure you " "entered your username?" ) + elif response_code == 9002: + raise RoborockTooManyRequest("Please temporarily disable making requests and try again later.") raise RoborockUrlException(f"error code: {response_code} msg: {response.get('error')}") response_data = response.get("data") if response_data is None: