From d4805d568245a700577906694d0acd2b0385f974 Mon Sep 17 00:00:00 2001 From: radded Date: Tue, 17 Mar 2026 18:02:51 -0400 Subject: [PATCH 1/3] feat: Q7 Get battery level --- roborock/devices/traits/b01/q7/__init__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/roborock/devices/traits/b01/q7/__init__.py b/roborock/devices/traits/b01/q7/__init__.py index 9bbe6818..3d28dc5f 100644 --- a/roborock/devices/traits/b01/q7/__init__.py +++ b/roborock/devices/traits/b01/q7/__init__.py @@ -84,6 +84,19 @@ async def set_clean_path_preference(self, preference: CleanPathPreferenceMapping async def set_repeat_state(self, repeat: CleanRepeatMapping) -> None: """Set the cleaning repeat state (cycles).""" await self.set_prop(RoborockB01Props.REPEAT_STATE, repeat.code) + + async def get_battery_level(self) -> int | None: + """Get the battery level (%)""" + level_query = await self.send( + command=RoborockB01Q7Methods.GET_PROP, + params={ + "property": ["quantity"] + } + ) + try: + return level_query['quantity'] + except: + return None async def start_clean(self) -> None: """Start cleaning.""" From 2f5cc5d8835e8e6c7e537c41de1c4e89859bc138 Mon Sep 17 00:00:00 2001 From: radded Date: Tue, 17 Mar 2026 18:02:51 -0400 Subject: [PATCH 2/3] feat: Q7 Get battery level --- roborock/data/b01_q7/b01_q7_containers.py | 1 + roborock/devices/traits/b01/q7/__init__.py | 2 +- roborock/roborock_message.py | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/roborock/data/b01_q7/b01_q7_containers.py b/roborock/data/b01_q7/b01_q7_containers.py index 6ae43099..82927c2d 100644 --- a/roborock/data/b01_q7/b01_q7_containers.py +++ b/roborock/data/b01_q7/b01_q7_containers.py @@ -115,6 +115,7 @@ class B01Props(RoborockBase): water: WaterLevelMapping | None = None mode: CleanTypeMapping | None = None quantity: int | None = None + battery: int | None = None alarm: int | None = None volume: int | None = None hypa: int | None = None diff --git a/roborock/devices/traits/b01/q7/__init__.py b/roborock/devices/traits/b01/q7/__init__.py index 9bbe6818..7e63ffac 100644 --- a/roborock/devices/traits/b01/q7/__init__.py +++ b/roborock/devices/traits/b01/q7/__init__.py @@ -84,7 +84,7 @@ async def set_clean_path_preference(self, preference: CleanPathPreferenceMapping async def set_repeat_state(self, repeat: CleanRepeatMapping) -> None: """Set the cleaning repeat state (cycles).""" await self.set_prop(RoborockB01Props.REPEAT_STATE, repeat.code) - + async def start_clean(self) -> None: """Start cleaning.""" await self.send( diff --git a/roborock/roborock_message.py b/roborock/roborock_message.py index fbe9becf..e7c23857 100644 --- a/roborock/roborock_message.py +++ b/roborock/roborock_message.py @@ -165,6 +165,7 @@ class RoborockB01Props(StrEnum): WATER = "water" MODE = "mode" QUANTITY = "quantity" + BATTERY = "quantity" ALARM = "alarm" VOLUME = "volume" HYPA = "hypa" From d07916ad0991b55e7971abbd1116936165277669 Mon Sep 17 00:00:00 2001 From: radded Date: Wed, 18 Mar 2026 21:18:07 -0400 Subject: [PATCH 3/3] Run lint --- roborock/data/b01_q7/b01_q7_containers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roborock/data/b01_q7/b01_q7_containers.py b/roborock/data/b01_q7/b01_q7_containers.py index 8a21881d..a75b7185 100644 --- a/roborock/data/b01_q7/b01_q7_containers.py +++ b/roborock/data/b01_q7/b01_q7_containers.py @@ -114,7 +114,7 @@ class B01Props(RoborockBase): wind: SCWindMapping | None = None water: WaterLevelMapping | None = None mode: CleanTypeMapping | None = None - quantity: int | None = None # The Q7 L5 reports its battery level as 'quantity' + quantity: int | None = None # The Q7 L5 reports its battery level as 'quantity' alarm: int | None = None volume: int | None = None hypa: int | None = None @@ -168,7 +168,7 @@ class B01Props(RoborockBase): serial_number: str | None = None recommend: Recommend | None = None add_sweep_status: int | None = None - + @property def battery(self) -> int | None: """