From ccbdaabe741569cba8517154c054868f617fcbc9 Mon Sep 17 00:00:00 2001 From: Robert Resch Date: Tue, 28 Oct 2025 13:22:40 +0100 Subject: [PATCH] Add some Ecovacs lifespans entities (#155238) --- homeassistant/components/ecovacs/const.py | 8 +++-- homeassistant/components/ecovacs/icons.json | 24 +++++++++++++++ homeassistant/components/ecovacs/strings.json | 29 ++++++++++++++++--- tests/components/ecovacs/test_button.py | 8 ++--- tests/components/ecovacs/test_sensor.py | 2 +- 5 files changed, 60 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/ecovacs/const.py b/homeassistant/components/ecovacs/const.py index cf1c73b54af..f0a86d54e4a 100644 --- a/homeassistant/components/ecovacs/const.py +++ b/homeassistant/components/ecovacs/const.py @@ -13,14 +13,18 @@ CONF_OVERRIDE_MQTT_URL = "override_mqtt_url" CONF_VERIFY_MQTT_CERTIFICATE = "verify_mqtt_certificate" SUPPORTED_LIFESPANS = ( + LifeSpan.AIR_FRESHENER, LifeSpan.BLADE, LifeSpan.BRUSH, + LifeSpan.DUST_BAG, LifeSpan.FILTER, + LifeSpan.HAND_FILTER, LifeSpan.LENS_BRUSH, - LifeSpan.SIDE_BRUSH, - LifeSpan.UNIT_CARE, LifeSpan.ROUND_MOP, + LifeSpan.SIDE_BRUSH, LifeSpan.STATION_FILTER, + LifeSpan.UNIT_CARE, + LifeSpan.UV_SANITIZER, ) SUPPORTED_STATION_ACTIONS = ( diff --git a/homeassistant/components/ecovacs/icons.json b/homeassistant/components/ecovacs/icons.json index 6b651039bfc..5ebb898514d 100644 --- a/homeassistant/components/ecovacs/icons.json +++ b/homeassistant/components/ecovacs/icons.json @@ -12,15 +12,24 @@ "relocate": { "default": "mdi:map-marker-question" }, + "reset_lifespan_air_freshener": { + "default": "mdi:scent" + }, "reset_lifespan_blade": { "default": "mdi:saw-blade" }, "reset_lifespan_brush": { "default": "mdi:broom" }, + "reset_lifespan_dust_bag": { + "default": "mdi:delete-outline" + }, "reset_lifespan_filter": { "default": "mdi:air-filter" }, + "reset_lifespan_hand_filter": { + "default": "mdi:air-filter" + }, "reset_lifespan_lens_brush": { "default": "mdi:broom" }, @@ -36,6 +45,9 @@ "reset_lifespan_unit_care": { "default": "mdi:robot-vacuum" }, + "reset_lifespan_uv_sanitizer": { + "default": "mdi:lightbulb-on-outline" + }, "station_action_clean_base": { "default": "mdi:home" }, @@ -80,15 +92,24 @@ "error": { "default": "mdi:alert-circle" }, + "lifespan_air_freshener": { + "default": "mdi:scent" + }, "lifespan_blade": { "default": "mdi:saw-blade" }, "lifespan_brush": { "default": "mdi:broom" }, + "lifespan_dust_bag": { + "default": "mdi:delete-outline" + }, "lifespan_filter": { "default": "mdi:air-filter" }, + "lifespan_hand_filter": { + "default": "mdi:air-filter" + }, "lifespan_lens_brush": { "default": "mdi:broom" }, @@ -104,6 +125,9 @@ "lifespan_unit_care": { "default": "mdi:robot-vacuum" }, + "lifespan_uv_sanitizer": { + "default": "mdi:lightbulb-on-outline" + }, "network_ip": { "default": "mdi:ip-network-outline" }, diff --git a/homeassistant/components/ecovacs/strings.json b/homeassistant/components/ecovacs/strings.json index c073ac7148e..84894c7dea8 100644 --- a/homeassistant/components/ecovacs/strings.json +++ b/homeassistant/components/ecovacs/strings.json @@ -46,8 +46,8 @@ "relocate": { "name": "Relocate" }, - "reset_lifespan_base_station_filter": { - "name": "Reset station filter lifespan" + "reset_lifespan_air_freshener": { + "name": "Reset air freshener lifespan" }, "reset_lifespan_blade": { "name": "Reset blade lifespan" @@ -55,9 +55,15 @@ "reset_lifespan_brush": { "name": "Reset main brush lifespan" }, + "reset_lifespan_dust_bag": { + "name": "Reset dust bag lifespan" + }, "reset_lifespan_filter": { "name": "Reset filter lifespan" }, + "reset_lifespan_hand_filter": { + "name": "Reset hand filter lifespan" + }, "reset_lifespan_lens_brush": { "name": "Reset lens brush lifespan" }, @@ -67,9 +73,15 @@ "reset_lifespan_side_brush": { "name": "Reset side brush lifespan" }, + "reset_lifespan_station_filter": { + "name": "Reset station filter lifespan" + }, "reset_lifespan_unit_care": { "name": "Reset unit care lifespan" }, + "reset_lifespan_uv_sanitizer": { + "name": "Reset UV sanitizer lifespan" + }, "station_action_clean_base": { "name": "Clean base" }, @@ -145,8 +157,8 @@ } } }, - "lifespan_base_station_filter": { - "name": "Station filter lifespan" + "lifespan_air_freshener": { + "name": "Air freshener lifespan" }, "lifespan_blade": { "name": "Blade lifespan" @@ -154,9 +166,15 @@ "lifespan_brush": { "name": "Main brush lifespan" }, + "lifespan_dust_bag": { + "name": "Dust bag lifespan" + }, "lifespan_filter": { "name": "Filter lifespan" }, + "lifespan_hand_filter": { + "name": "Hand filter lifespan" + }, "lifespan_lens_brush": { "name": "Lens brush lifespan" }, @@ -172,6 +190,9 @@ "lifespan_unit_care": { "name": "Unit care lifespan" }, + "lifespan_uv_sanitizer": { + "name": "UV sanitizer lifespan" + }, "network_ip": { "name": "IP address" }, diff --git a/tests/components/ecovacs/test_button.py b/tests/components/ecovacs/test_button.py index 30a7db431d0..d06be906d18 100644 --- a/tests/components/ecovacs/test_button.py +++ b/tests/components/ecovacs/test_button.py @@ -77,6 +77,10 @@ def platforms() -> Platform | list[Platform]: "button.dusty_reset_filter_lifespan", ResetLifeSpan(LifeSpan.FILTER), ), + ( + "button.dusty_reset_round_mop_lifespan", + ResetLifeSpan(LifeSpan.ROUND_MOP), + ), ( "button.dusty_reset_side_brush_lifespan", ResetLifeSpan(LifeSpan.SIDE_BRUSH), @@ -85,10 +89,6 @@ def platforms() -> Platform | list[Platform]: "button.dusty_reset_unit_care_lifespan", ResetLifeSpan(LifeSpan.UNIT_CARE), ), - ( - "button.dusty_reset_round_mop_lifespan", - ResetLifeSpan(LifeSpan.ROUND_MOP), - ), ( "button.dusty_empty_dustbin", station_action.StationAction(StationAction.EMPTY_DUSTBIN), diff --git a/tests/components/ecovacs/test_sensor.py b/tests/components/ecovacs/test_sensor.py index 5e7173912ba..f7e8ccfe32e 100644 --- a/tests/components/ecovacs/test_sensor.py +++ b/tests/components/ecovacs/test_sensor.py @@ -104,9 +104,9 @@ async def notify_events(hass: HomeAssistant, event_bus: EventBus): "sensor.dusty_station_state", "sensor.dusty_main_brush_lifespan", "sensor.dusty_filter_lifespan", + "sensor.dusty_round_mop_lifespan", "sensor.dusty_side_brush_lifespan", "sensor.dusty_unit_care_lifespan", - "sensor.dusty_round_mop_lifespan", "sensor.dusty_error", ], ),