From 09a89cd3e9d64f125204291e1915da5400a97e27 Mon Sep 17 00:00:00 2001 From: Robert Resch Date: Wed, 31 Jan 2024 00:43:39 +0100 Subject: [PATCH] Fix Ecovacs duration sensors (#108868) --- homeassistant/components/ecovacs/sensor.py | 4 +++- .../ecovacs/snapshots/test_sensor.ambr | 24 ++++++++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/ecovacs/sensor.py b/homeassistant/components/ecovacs/sensor.py index 48c1fbbcecc..10dbf9c904d 100644 --- a/homeassistant/components/ecovacs/sensor.py +++ b/homeassistant/components/ecovacs/sensor.py @@ -72,6 +72,7 @@ ENTITY_DESCRIPTIONS: tuple[EcovacsSensorEntityDescription, ...] = ( capability_fn=lambda caps: caps.stats.clean, value_fn=lambda e: e.time, translation_key="stats_time", + device_class=SensorDeviceClass.DURATION, native_unit_of_measurement=UnitOfTime.SECONDS, suggested_unit_of_measurement=UnitOfTime.MINUTES, ), @@ -89,7 +90,8 @@ ENTITY_DESCRIPTIONS: tuple[EcovacsSensorEntityDescription, ...] = ( value_fn=lambda e: e.time, key="total_stats_time", translation_key="total_stats_time", - native_unit_of_measurement=UnitOfTime.MINUTES, + device_class=SensorDeviceClass.DURATION, + native_unit_of_measurement=UnitOfTime.SECONDS, suggested_unit_of_measurement=UnitOfTime.HOURS, state_class=SensorStateClass.TOTAL_INCREASING, ), diff --git a/tests/components/ecovacs/snapshots/test_sensor.ambr b/tests/components/ecovacs/snapshots/test_sensor.ambr index 5b072b6c232..3a59b3ba418 100644 --- a/tests/components/ecovacs/snapshots/test_sensor.ambr +++ b/tests/components/ecovacs/snapshots/test_sensor.ambr @@ -326,8 +326,11 @@ 'id': , 'name': None, 'options': dict({ + 'sensor.private': dict({ + 'suggested_unit_of_measurement': , + }), }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, 'original_name': 'Time cleaned', 'platform': 'ecovacs', @@ -335,20 +338,21 @@ 'supported_features': 0, 'translation_key': 'stats_time', 'unique_id': 'E1234567890000000001_stats_time', - 'unit_of_measurement': , + 'unit_of_measurement': , }) # --- # name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_time_cleaned:state] StateSnapshot({ 'attributes': ReadOnlyDict({ + 'device_class': 'duration', 'friendly_name': 'Ozmo 950 Time cleaned', - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , 'entity_id': 'sensor.ozmo_950_time_cleaned', 'last_changed': , 'last_updated': , - 'state': '300', + 'state': '5.0', }) # --- # name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_area_cleaned:entity-registry] @@ -465,8 +469,11 @@ 'id': , 'name': None, 'options': dict({ + 'sensor.private': dict({ + 'suggested_unit_of_measurement': , + }), }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, 'original_name': 'Total time cleaned', 'platform': 'ecovacs', @@ -474,21 +481,22 @@ 'supported_features': 0, 'translation_key': 'total_stats_time', 'unique_id': 'E1234567890000000001_total_stats_time', - 'unit_of_measurement': , + 'unit_of_measurement': , }) # --- # name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_time_cleaned:state] StateSnapshot({ 'attributes': ReadOnlyDict({ + 'device_class': 'duration', 'friendly_name': 'Ozmo 950 Total time cleaned', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , 'entity_id': 'sensor.ozmo_950_total_time_cleaned', 'last_changed': , 'last_updated': , - 'state': '144000', + 'state': '40.000', }) # --- # name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_wi_fi_rssi:entity-registry]