Skip to content

Commit

Permalink
Add Roborock Clean time sensors (#93637)
Browse files Browse the repository at this point in the history
* add clean time information

* add sensor test

* update to cleaning time

* fix sensor test
  • Loading branch information
Lash-L committed May 29, 2023
1 parent 3c5475a commit 3b4273d
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 2 deletions.
21 changes: 20 additions & 1 deletion homeassistant/components/roborock/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,25 @@ class RoborockSensorDescription(
),
]

CLEAN_INFORMATION_SENSORS = [
RoborockSensorDescription(
native_unit_of_measurement=UnitOfTime.SECONDS,
key="cleaning_time",
translation_key="cleaning_time",
icon="mdi:progress-clock",
device_class=SensorDeviceClass.DURATION,
value_fn=lambda data: data.status.clean_time,
),
RoborockSensorDescription(
native_unit_of_measurement=UnitOfTime.SECONDS,
key="total_cleaning_time",
translation_key="total_cleaning_time",
icon="mdi:history",
device_class=SensorDeviceClass.DURATION,
value_fn=lambda data: data.clean_summary.clean_time,
),
]


async def async_setup_entry(
hass: HomeAssistant,
Expand All @@ -93,7 +112,7 @@ async def async_setup_entry(
description,
)
for device_id, coordinator in coordinators.items()
for description in CONSUMABLE_SENSORS
for description in CONSUMABLE_SENSORS + CLEAN_INFORMATION_SENSORS
)


Expand Down
6 changes: 6 additions & 0 deletions homeassistant/components/roborock/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@
},
"entity": {
"sensor": {
"cleaning_time": {
"name": "Cleaning time"
},
"main_brush_time_left": {
"name": "Main brush time left"
},
Expand All @@ -39,6 +42,9 @@
},
"sensor_time_left": {
"name": "Sensor time left"
},
"total_cleaning_time": {
"name": "Total cleaning time"
}
},
"select": {
Expand Down
6 changes: 5 additions & 1 deletion tests/components/roborock/test_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

async def test_sensors(hass: HomeAssistant, setup_entry: MockConfigEntry) -> None:
"""Test sensors and check test values are correctly set."""
assert len(hass.states.async_all("sensor")) == 4
assert len(hass.states.async_all("sensor")) == 6
assert hass.states.get("sensor.roborock_s7_maxv_main_brush_time_left").state == str(
MAIN_BRUSH_REPLACE_TIME - 74382
)
Expand All @@ -27,3 +27,7 @@ async def test_sensors(hass: HomeAssistant, setup_entry: MockConfigEntry) -> Non
assert hass.states.get("sensor.roborock_s7_maxv_sensor_time_left").state == str(
SENSOR_DIRTY_REPLACE_TIME - 74382
)
assert hass.states.get("sensor.roborock_s7_maxv_cleaning_time").state == "1176"
assert (
hass.states.get("sensor.roborock_s7_maxv_total_cleaning_time").state == "74382"
)

0 comments on commit 3b4273d

Please sign in to comment.