From 07f1530475812fec86e8554dcef4ca21f4b3d56e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20BOU=C3=89?= Date: Thu, 17 Jul 2025 17:52:11 +0200 Subject: [PATCH 1/3] feat: get_home_data_v3 for new devices Use get_home_data_v3 to discovered Roborock Q10 devices Update device_manager.py to use get_home_data_v3 --- roborock/cli.py | 2 +- roborock/devices/device_manager.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/roborock/cli.py b/roborock/cli.py index 0e6881eb..9d1587ea 100644 --- a/roborock/cli.py +++ b/roborock/cli.py @@ -128,7 +128,7 @@ async def _discover(ctx): if not login_data: raise Exception("You need to login first") client = RoborockApiClient(login_data.email) - home_data = await client.get_home_data(login_data.user_data) + home_data = await client.get_home_data_v3(login_data.user_data) login_data.home_data = home_data context.update(login_data) click.echo(f"Discovered devices {', '.join([device.name for device in home_data.get_all_devices()])}") diff --git a/roborock/devices/device_manager.py b/roborock/devices/device_manager.py index 3244b261..cb84f4d5 100644 --- a/roborock/devices/device_manager.py +++ b/roborock/devices/device_manager.py @@ -97,7 +97,7 @@ def create_home_data_api(email: str, user_data: UserData) -> HomeDataApi: client = RoborockApiClient(email) async def home_data_api() -> HomeData: - return await client.get_home_data(user_data) + return await client.get_home_data_v3(user_data) return home_data_api From 6d8272a9070e79a2e1db93f357db493ee50f1fd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20BOU=C3=89?= Date: Wed, 30 Jul 2025 21:34:48 +0200 Subject: [PATCH 2/3] feat: Use get_home_data_v3 for tests --- tests/devices/test_device_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/devices/test_device_manager.py b/tests/devices/test_device_manager.py index 63ff4079..6ae3ff8e 100644 --- a/tests/devices/test_device_manager.py +++ b/tests/devices/test_device_manager.py @@ -86,7 +86,7 @@ async def home_data_api_exception() -> HomeData: async def test_create_home_data_api_exception() -> None: """Test that exceptions from the home data API are propagated through the wrapper.""" - with patch("roborock.devices.device_manager.RoborockApiClient.get_home_data") as mock_get_home_data: + with patch("roborock.devices.device_manager.RoborockApiClient.get_home_data_v3") as mock_get_home_data: mock_get_home_data.side_effect = RoborockException("Test exception") api = create_home_data_api(USER_DATA, mock_get_home_data) From cac0c0e5b1f42db97d0d315b867884a80c8a484d Mon Sep 17 00:00:00 2001 From: Allen Porter Date: Sun, 10 Aug 2025 08:33:07 -0700 Subject: [PATCH 3/3] chore: fix merge with cache data rename --- roborock/cli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roborock/cli.py b/roborock/cli.py index 4d485083..9127c5a4 100644 --- a/roborock/cli.py +++ b/roborock/cli.py @@ -157,7 +157,7 @@ async def _discover(ctx): raise Exception("You need to login first") client = RoborockApiClient(cache_data.email) home_data = await client.get_home_data_v3(cache_data.user_data) - login_data.home_data = home_data + cache_data.home_data = home_data context.update(cache_data) click.echo(f"Discovered devices {', '.join([device.name for device in home_data.get_all_devices()])}")