From c310fbcf971596edb6f9222ef537483df0520d27 Mon Sep 17 00:00:00 2001 From: radded Date: Wed, 18 Mar 2026 07:17:04 +0000 Subject: [PATCH 1/8] Battery status for Roborock Q7 --- homeassistant/components/roborock/coordinator.py | 1 + homeassistant/components/roborock/sensor.py | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/homeassistant/components/roborock/coordinator.py b/homeassistant/components/roborock/coordinator.py index 5653b4ff3a150c..3fe71000ea6bce 100644 --- a/homeassistant/components/roborock/coordinator.py +++ b/homeassistant/components/roborock/coordinator.py @@ -547,6 +547,7 @@ def __init__( RoborockB01Props.WIND, RoborockB01Props.WATER, RoborockB01Props.MODE, + RoborockB01Props.QUANTITY, ] async def _async_update_data( diff --git a/homeassistant/components/roborock/sensor.py b/homeassistant/components/roborock/sensor.py index bb0240a78da14a..703f85ce7c0731 100644 --- a/homeassistant/components/roborock/sensor.py +++ b/homeassistant/components/roborock/sensor.py @@ -366,6 +366,15 @@ def _dock_error_value_fn(state: DeviceState) -> str | None: translation_key="main_brush_time_left", entity_category=EntityCategory.DIAGNOSTIC, ), + RoborockSensorDescriptionB01( + key="battery_level", + value_fn=lambda data: data.quantity, + device_class=SensorDeviceClass.BATTERY, + native_unit_of_measurement=PERCENTAGE, + suggested_unit_of_measurement=PERCENTAGE, + translation_key="battery_level", + entity_category=EntityCategory.DIAGNOSTIC, + ), RoborockSensorDescriptionB01( key="side_brush_time_left", value_fn=lambda data: data.side_brush_time_left, From 6ab1dc85c8e929ee738797fe8e96292f401ddeb6 Mon Sep 17 00:00:00 2001 From: Radded <66137579+RaddedMC@users.noreply.github.com> Date: Wed, 18 Mar 2026 03:36:06 -0400 Subject: [PATCH 2/8] Update translation key Battery status Roborock Q7 Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- homeassistant/components/roborock/sensor.py | 1 - 1 file changed, 1 deletion(-) diff --git a/homeassistant/components/roborock/sensor.py b/homeassistant/components/roborock/sensor.py index 703f85ce7c0731..0f91263b038811 100644 --- a/homeassistant/components/roborock/sensor.py +++ b/homeassistant/components/roborock/sensor.py @@ -372,7 +372,6 @@ def _dock_error_value_fn(state: DeviceState) -> str | None: device_class=SensorDeviceClass.BATTERY, native_unit_of_measurement=PERCENTAGE, suggested_unit_of_measurement=PERCENTAGE, - translation_key="battery_level", entity_category=EntityCategory.DIAGNOSTIC, ), RoborockSensorDescriptionB01( From 4023c35fa5222a97f9c456d37507597a8eaa9ada Mon Sep 17 00:00:00 2001 From: Radded <66137579+RaddedMC@users.noreply.github.com> Date: Wed, 18 Mar 2026 03:43:00 -0400 Subject: [PATCH 3/8] More smaller updates Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- homeassistant/components/roborock/sensor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/roborock/sensor.py b/homeassistant/components/roborock/sensor.py index 0f91263b038811..2a7d9347369a50 100644 --- a/homeassistant/components/roborock/sensor.py +++ b/homeassistant/components/roborock/sensor.py @@ -367,7 +367,7 @@ def _dock_error_value_fn(state: DeviceState) -> str | None: entity_category=EntityCategory.DIAGNOSTIC, ), RoborockSensorDescriptionB01( - key="battery_level", + key="battery", value_fn=lambda data: data.quantity, device_class=SensorDeviceClass.BATTERY, native_unit_of_measurement=PERCENTAGE, From 6b5997971cf4bdd236250eb513032139b9624f85 Mon Sep 17 00:00:00 2001 From: Radded <66137579+RaddedMC@users.noreply.github.com> Date: Wed, 18 Mar 2026 03:44:57 -0400 Subject: [PATCH 4/8] Remove suggested unit of measurement for battery sensor Removed suggested unit of measurement for battery sensor. --- homeassistant/components/roborock/sensor.py | 1 - 1 file changed, 1 deletion(-) diff --git a/homeassistant/components/roborock/sensor.py b/homeassistant/components/roborock/sensor.py index 2a7d9347369a50..1e8a87adce2c52 100644 --- a/homeassistant/components/roborock/sensor.py +++ b/homeassistant/components/roborock/sensor.py @@ -371,7 +371,6 @@ def _dock_error_value_fn(state: DeviceState) -> str | None: value_fn=lambda data: data.quantity, device_class=SensorDeviceClass.BATTERY, native_unit_of_measurement=PERCENTAGE, - suggested_unit_of_measurement=PERCENTAGE, entity_category=EntityCategory.DIAGNOSTIC, ), RoborockSensorDescriptionB01( From db52148fb57b6475a74e7b82b6738bc7f530d94e Mon Sep 17 00:00:00 2001 From: radded Date: Thu, 19 Mar 2026 01:10:24 +0000 Subject: [PATCH 5/8] Update tests: Battery status for Roborock Q7 L5 --- tests/components/roborock/mock_data.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/components/roborock/mock_data.py b/tests/components/roborock/mock_data.py index 2eb78c5cac7cdf..750d7ade84552d 100644 --- a/tests/components/roborock/mock_data.py +++ b/tests/components/roborock/mock_data.py @@ -1494,4 +1494,5 @@ main_sensor=500, mop_life=1200, real_clean_time=3000, + quantity=100, ) From 5097f40eddb73d99d64c9b96f5c6a4c43173bd5e Mon Sep 17 00:00:00 2001 From: radded Date: Mon, 23 Mar 2026 23:05:20 +0000 Subject: [PATCH 6/8] Update to reference battery property instead of quantity property --- homeassistant/components/roborock/sensor.py | 2 +- tests/components/roborock/mock_data.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/roborock/sensor.py b/homeassistant/components/roborock/sensor.py index 1e8a87adce2c52..cbe634dce9b270 100644 --- a/homeassistant/components/roborock/sensor.py +++ b/homeassistant/components/roborock/sensor.py @@ -368,7 +368,7 @@ def _dock_error_value_fn(state: DeviceState) -> str | None: ), RoborockSensorDescriptionB01( key="battery", - value_fn=lambda data: data.quantity, + value_fn=lambda data: data.battery, device_class=SensorDeviceClass.BATTERY, native_unit_of_measurement=PERCENTAGE, entity_category=EntityCategory.DIAGNOSTIC, diff --git a/tests/components/roborock/mock_data.py b/tests/components/roborock/mock_data.py index 750d7ade84552d..61376c980744d7 100644 --- a/tests/components/roborock/mock_data.py +++ b/tests/components/roborock/mock_data.py @@ -1494,5 +1494,5 @@ main_sensor=500, mop_life=1200, real_clean_time=3000, - quantity=100, + battery=100, ) From 3315e46698a403b943d931a58794b29b730b7cab Mon Sep 17 00:00:00 2001 From: radded Date: Mon, 23 Mar 2026 23:22:21 +0000 Subject: [PATCH 7/8] Update tests more? --- tests/components/roborock/mock_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/components/roborock/mock_data.py b/tests/components/roborock/mock_data.py index 61376c980744d7..750d7ade84552d 100644 --- a/tests/components/roborock/mock_data.py +++ b/tests/components/roborock/mock_data.py @@ -1494,5 +1494,5 @@ main_sensor=500, mop_life=1200, real_clean_time=3000, - battery=100, + quantity=100, ) From 24c4e9351af99f2bc4ed0ec988e330ceb5ae1f08 Mon Sep 17 00:00:00 2001 From: radded Date: Mon, 23 Mar 2026 23:38:51 +0000 Subject: [PATCH 8/8] Update test snapshots --- .../roborock/snapshots/test_sensor.ambr | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/tests/components/roborock/snapshots/test_sensor.ambr b/tests/components/roborock/snapshots/test_sensor.ambr index d0a92bb7bfc052..0d9b0829ccaa67 100644 --- a/tests/components/roborock/snapshots/test_sensor.ambr +++ b/tests/components/roborock/snapshots/test_sensor.ambr @@ -407,6 +407,58 @@ 'state': '3.55', }) # --- +# name: test_sensors[sensor.roborock_q7_battery-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.roborock_q7_battery', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Battery', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery', + 'platform': 'roborock', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'battery_q7_duid', + 'unit_of_measurement': '%', + }) +# --- +# name: test_sensors[sensor.roborock_q7_battery-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery', + 'friendly_name': 'Roborock Q7 Battery', + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.roborock_q7_battery', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '100', + }) +# --- # name: test_sensors[sensor.roborock_q7_filter_time_left-entry] EntityRegistryEntrySnapshot({ 'aliases': list([