Fix Ecovacs duration sensors (#108868)

This commit is contained in:
Robert Resch 2024-01-31 00:43:39 +01:00 committed by GitHub
parent 1aa9807e26
commit 09a89cd3e9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 9 deletions

View File

@ -72,6 +72,7 @@ ENTITY_DESCRIPTIONS: tuple[EcovacsSensorEntityDescription, ...] = (
capability_fn=lambda caps: caps.stats.clean, capability_fn=lambda caps: caps.stats.clean,
value_fn=lambda e: e.time, value_fn=lambda e: e.time,
translation_key="stats_time", translation_key="stats_time",
device_class=SensorDeviceClass.DURATION,
native_unit_of_measurement=UnitOfTime.SECONDS, native_unit_of_measurement=UnitOfTime.SECONDS,
suggested_unit_of_measurement=UnitOfTime.MINUTES, suggested_unit_of_measurement=UnitOfTime.MINUTES,
), ),
@ -89,7 +90,8 @@ ENTITY_DESCRIPTIONS: tuple[EcovacsSensorEntityDescription, ...] = (
value_fn=lambda e: e.time, value_fn=lambda e: e.time,
key="total_stats_time", key="total_stats_time",
translation_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, suggested_unit_of_measurement=UnitOfTime.HOURS,
state_class=SensorStateClass.TOTAL_INCREASING, state_class=SensorStateClass.TOTAL_INCREASING,
), ),

View File

@ -326,8 +326,11 @@
'id': <ANY>, 'id': <ANY>,
'name': None, 'name': None,
'options': dict({ 'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfTime.MINUTES: 'min'>,
}), }),
'original_device_class': None, }),
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
'original_icon': None, 'original_icon': None,
'original_name': 'Time cleaned', 'original_name': 'Time cleaned',
'platform': 'ecovacs', 'platform': 'ecovacs',
@ -335,20 +338,21 @@
'supported_features': 0, 'supported_features': 0,
'translation_key': 'stats_time', 'translation_key': 'stats_time',
'unique_id': 'E1234567890000000001_stats_time', 'unique_id': 'E1234567890000000001_stats_time',
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>, 'unit_of_measurement': <UnitOfTime.MINUTES: 'min'>,
}) })
# --- # ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_time_cleaned:state] # name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_time_cleaned:state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'Ozmo 950 Time cleaned', 'friendly_name': 'Ozmo 950 Time cleaned',
'unit_of_measurement': <UnitOfTime.SECONDS: 's'>, 'unit_of_measurement': <UnitOfTime.MINUTES: 'min'>,
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'sensor.ozmo_950_time_cleaned', 'entity_id': 'sensor.ozmo_950_time_cleaned',
'last_changed': <ANY>, 'last_changed': <ANY>,
'last_updated': <ANY>, 'last_updated': <ANY>,
'state': '300', 'state': '5.0',
}) })
# --- # ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_area_cleaned:entity-registry] # name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_area_cleaned:entity-registry]
@ -465,8 +469,11 @@
'id': <ANY>, 'id': <ANY>,
'name': None, 'name': None,
'options': dict({ 'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}), }),
'original_device_class': None, }),
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
'original_icon': None, 'original_icon': None,
'original_name': 'Total time cleaned', 'original_name': 'Total time cleaned',
'platform': 'ecovacs', 'platform': 'ecovacs',
@ -474,21 +481,22 @@
'supported_features': 0, 'supported_features': 0,
'translation_key': 'total_stats_time', 'translation_key': 'total_stats_time',
'unique_id': 'E1234567890000000001_total_stats_time', 'unique_id': 'E1234567890000000001_total_stats_time',
'unit_of_measurement': <UnitOfTime.MINUTES: 'min'>, 'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}) })
# --- # ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_time_cleaned:state] # name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_time_cleaned:state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'Ozmo 950 Total time cleaned', 'friendly_name': 'Ozmo 950 Total time cleaned',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>, 'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfTime.MINUTES: 'min'>, 'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'sensor.ozmo_950_total_time_cleaned', 'entity_id': 'sensor.ozmo_950_total_time_cleaned',
'last_changed': <ANY>, 'last_changed': <ANY>,
'last_updated': <ANY>, 'last_updated': <ANY>,
'state': '144000', 'state': '40.000',
}) })
# --- # ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_wi_fi_rssi:entity-registry] # name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_wi_fi_rssi:entity-registry]