Fix proberly Ecovacs mower area sensors (#145078)

This commit is contained in:
Robert Resch 2025-05-17 16:44:53 +02:00 committed by Franck Nijhof
parent 642e7fd487
commit 8e44684a61
No known key found for this signature in database
GPG Key ID: AB33ADACE7101952
2 changed files with 40 additions and 12 deletions

View File

@ -78,7 +78,9 @@ ENTITY_DESCRIPTIONS: tuple[EcovacsSensorEntityDescription, ...] = (
capability_fn=lambda caps: caps.stats.clean, capability_fn=lambda caps: caps.stats.clean,
value_fn=lambda e: e.area, value_fn=lambda e: e.area,
translation_key="stats_area", translation_key="stats_area",
device_class=SensorDeviceClass.AREA,
native_unit_of_measurement_fn=get_area_native_unit_of_measurement, native_unit_of_measurement_fn=get_area_native_unit_of_measurement,
suggested_unit_of_measurement=UnitOfArea.SQUARE_METERS,
), ),
EcovacsSensorEntityDescription[StatsEvent]( EcovacsSensorEntityDescription[StatsEvent](
key="stats_time", key="stats_time",
@ -95,8 +97,10 @@ ENTITY_DESCRIPTIONS: tuple[EcovacsSensorEntityDescription, ...] = (
value_fn=lambda e: e.area, value_fn=lambda e: e.area,
key="total_stats_area", key="total_stats_area",
translation_key="total_stats_area", translation_key="total_stats_area",
device_class=SensorDeviceClass.AREA,
native_unit_of_measurement_fn=get_area_native_unit_of_measurement, native_unit_of_measurement_fn=get_area_native_unit_of_measurement,
state_class=SensorStateClass.TOTAL_INCREASING, state_class=SensorStateClass.TOTAL_INCREASING,
suggested_unit_of_measurement=UnitOfArea.SQUARE_METERS,
), ),
EcovacsSensorEntityDescription[TotalStatsEvent]( EcovacsSensorEntityDescription[TotalStatsEvent](
capability_fn=lambda caps: caps.stats.total, capability_fn=lambda caps: caps.stats.total,

View File

@ -172,8 +172,11 @@
}), }),
'name': None, 'name': None,
'options': dict({ 'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}),
}), }),
'original_device_class': None, 'original_device_class': <SensorDeviceClass.AREA: 'area'>,
'original_icon': None, 'original_icon': None,
'original_name': 'Area cleaned', 'original_name': 'Area cleaned',
'platform': 'ecovacs', 'platform': 'ecovacs',
@ -181,21 +184,22 @@
'supported_features': 0, 'supported_features': 0,
'translation_key': 'stats_area', 'translation_key': 'stats_area',
'unique_id': '8516fbb1-17f1-4194-0000000_stats_area', 'unique_id': '8516fbb1-17f1-4194-0000000_stats_area',
'unit_of_measurement': <UnitOfArea.SQUARE_CENTIMETERS: 'cm²'>, 'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}) })
# --- # ---
# name: test_sensors[5xu9h3][sensor.goat_g1_area_cleaned:state] # name: test_sensors[5xu9h3][sensor.goat_g1_area_cleaned:state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'area',
'friendly_name': 'Goat G1 Area cleaned', 'friendly_name': 'Goat G1 Area cleaned',
'unit_of_measurement': <UnitOfArea.SQUARE_CENTIMETERS: 'cm²'>, 'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'sensor.goat_g1_area_cleaned', 'entity_id': 'sensor.goat_g1_area_cleaned',
'last_changed': <ANY>, 'last_changed': <ANY>,
'last_reported': <ANY>, 'last_reported': <ANY>,
'last_updated': <ANY>, 'last_updated': <ANY>,
'state': '10', 'state': '0.0010',
}) })
# --- # ---
# name: test_sensors[5xu9h3][sensor.goat_g1_battery:entity-registry] # name: test_sensors[5xu9h3][sensor.goat_g1_battery:entity-registry]
@ -514,8 +518,11 @@
}), }),
'name': None, 'name': None,
'options': dict({ 'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}),
}), }),
'original_device_class': None, 'original_device_class': <SensorDeviceClass.AREA: 'area'>,
'original_icon': None, 'original_icon': None,
'original_name': 'Total area cleaned', 'original_name': 'Total area cleaned',
'platform': 'ecovacs', 'platform': 'ecovacs',
@ -523,22 +530,23 @@
'supported_features': 0, 'supported_features': 0,
'translation_key': 'total_stats_area', 'translation_key': 'total_stats_area',
'unique_id': '8516fbb1-17f1-4194-0000000_total_stats_area', 'unique_id': '8516fbb1-17f1-4194-0000000_total_stats_area',
'unit_of_measurement': <UnitOfArea.SQUARE_CENTIMETERS: 'cm²'>, 'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}) })
# --- # ---
# name: test_sensors[5xu9h3][sensor.goat_g1_total_area_cleaned:state] # name: test_sensors[5xu9h3][sensor.goat_g1_total_area_cleaned:state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'area',
'friendly_name': 'Goat G1 Total area cleaned', 'friendly_name': 'Goat G1 Total area cleaned',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>, 'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfArea.SQUARE_CENTIMETERS: 'cm²'>, 'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'sensor.goat_g1_total_area_cleaned', 'entity_id': 'sensor.goat_g1_total_area_cleaned',
'last_changed': <ANY>, 'last_changed': <ANY>,
'last_reported': <ANY>, 'last_reported': <ANY>,
'last_updated': <ANY>, 'last_updated': <ANY>,
'state': '60', 'state': '0.0060',
}) })
# --- # ---
# name: test_sensors[5xu9h3][sensor.goat_g1_total_cleaning_duration:entity-registry] # name: test_sensors[5xu9h3][sensor.goat_g1_total_cleaning_duration:entity-registry]
@ -762,8 +770,11 @@
}), }),
'name': None, 'name': None,
'options': dict({ 'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}),
}), }),
'original_device_class': None, 'original_device_class': <SensorDeviceClass.AREA: 'area'>,
'original_icon': None, 'original_icon': None,
'original_name': 'Area cleaned', 'original_name': 'Area cleaned',
'platform': 'ecovacs', 'platform': 'ecovacs',
@ -777,6 +788,7 @@
# name: test_sensors[qhe2o2][sensor.dusty_area_cleaned:state] # name: test_sensors[qhe2o2][sensor.dusty_area_cleaned:state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'area',
'friendly_name': 'Dusty Area cleaned', 'friendly_name': 'Dusty Area cleaned',
'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>, 'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}), }),
@ -1257,8 +1269,11 @@
}), }),
'name': None, 'name': None,
'options': dict({ 'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}),
}), }),
'original_device_class': None, 'original_device_class': <SensorDeviceClass.AREA: 'area'>,
'original_icon': None, 'original_icon': None,
'original_name': 'Total area cleaned', 'original_name': 'Total area cleaned',
'platform': 'ecovacs', 'platform': 'ecovacs',
@ -1272,6 +1287,7 @@
# name: test_sensors[qhe2o2][sensor.dusty_total_area_cleaned:state] # name: test_sensors[qhe2o2][sensor.dusty_total_area_cleaned:state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'area',
'friendly_name': 'Dusty Total area cleaned', 'friendly_name': 'Dusty Total area cleaned',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>, 'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>, 'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
@ -1553,8 +1569,11 @@
}), }),
'name': None, 'name': None,
'options': dict({ 'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}),
}), }),
'original_device_class': None, 'original_device_class': <SensorDeviceClass.AREA: 'area'>,
'original_icon': None, 'original_icon': None,
'original_name': 'Area cleaned', 'original_name': 'Area cleaned',
'platform': 'ecovacs', 'platform': 'ecovacs',
@ -1568,6 +1587,7 @@
# name: test_sensors[yna5x1][sensor.ozmo_950_area_cleaned:state] # name: test_sensors[yna5x1][sensor.ozmo_950_area_cleaned:state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'area',
'friendly_name': 'Ozmo 950 Area cleaned', 'friendly_name': 'Ozmo 950 Area cleaned',
'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>, 'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}), }),
@ -1943,8 +1963,11 @@
}), }),
'name': None, 'name': None,
'options': dict({ 'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,
}),
}), }),
'original_device_class': None, 'original_device_class': <SensorDeviceClass.AREA: 'area'>,
'original_icon': None, 'original_icon': None,
'original_name': 'Total area cleaned', 'original_name': 'Total area cleaned',
'platform': 'ecovacs', 'platform': 'ecovacs',
@ -1958,6 +1981,7 @@
# name: test_sensors[yna5x1][sensor.ozmo_950_total_area_cleaned:state] # name: test_sensors[yna5x1][sensor.ozmo_950_total_area_cleaned:state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'area',
'friendly_name': 'Ozmo 950 Total area cleaned', 'friendly_name': 'Ozmo 950 Total area cleaned',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>, 'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>, 'unit_of_measurement': <UnitOfArea.SQUARE_METERS: 'm²'>,