Address late review for Husqvarna Automower (#116536)

* Address late review for Husqvarna Automower

* fix wrong base entity
This commit is contained in:
Thomas55555 2024-05-02 10:05:45 +02:00 committed by GitHub
parent 67e199fb2f
commit 86637f7171
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -20,7 +20,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from .const import DOMAIN
from .coordinator import AutomowerDataUpdateCoordinator from .coordinator import AutomowerDataUpdateCoordinator
from .entity import AutomowerBaseEntity from .entity import AutomowerControlEntity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -125,7 +125,7 @@ async def async_setup_entry(
for description in WORK_AREA_NUMBER_TYPES for description in WORK_AREA_NUMBER_TYPES
for work_area_id in _work_areas for work_area_id in _work_areas
) )
await async_remove_entities(coordinator, hass, entry, mower_id) async_remove_entities(hass, coordinator, entry, mower_id)
entities.extend( entities.extend(
AutomowerNumberEntity(mower_id, coordinator, description) AutomowerNumberEntity(mower_id, coordinator, description)
for mower_id in coordinator.data for mower_id in coordinator.data
@ -135,7 +135,7 @@ async def async_setup_entry(
async_add_entities(entities) async_add_entities(entities)
class AutomowerNumberEntity(AutomowerBaseEntity, NumberEntity): class AutomowerNumberEntity(AutomowerControlEntity, NumberEntity):
"""Defining the AutomowerNumberEntity with AutomowerNumberEntityDescription.""" """Defining the AutomowerNumberEntity with AutomowerNumberEntityDescription."""
entity_description: AutomowerNumberEntityDescription entity_description: AutomowerNumberEntityDescription
@ -168,7 +168,7 @@ class AutomowerNumberEntity(AutomowerBaseEntity, NumberEntity):
) from exception ) from exception
class AutomowerWorkAreaNumberEntity(AutomowerBaseEntity, NumberEntity): class AutomowerWorkAreaNumberEntity(AutomowerControlEntity, NumberEntity):
"""Defining the AutomowerWorkAreaNumberEntity with AutomowerWorkAreaNumberEntityDescription.""" """Defining the AutomowerWorkAreaNumberEntity with AutomowerWorkAreaNumberEntityDescription."""
entity_description: AutomowerWorkAreaNumberEntityDescription entity_description: AutomowerWorkAreaNumberEntityDescription
@ -216,24 +216,25 @@ class AutomowerWorkAreaNumberEntity(AutomowerBaseEntity, NumberEntity):
) from exception ) from exception
async def async_remove_entities( @callback
coordinator: AutomowerDataUpdateCoordinator, def async_remove_entities(
hass: HomeAssistant, hass: HomeAssistant,
coordinator: AutomowerDataUpdateCoordinator,
config_entry: ConfigEntry, config_entry: ConfigEntry,
mower_id: str, mower_id: str,
) -> None: ) -> None:
"""Remove deleted work areas from Home Assistant.""" """Remove deleted work areas from Home Assistant."""
entity_reg = er.async_get(hass) entity_reg = er.async_get(hass)
work_area_list = [] active_work_areas = set()
_work_areas = coordinator.data[mower_id].work_areas _work_areas = coordinator.data[mower_id].work_areas
if _work_areas is not None: if _work_areas is not None:
for work_area_id in _work_areas: for work_area_id in _work_areas:
uid = f"{mower_id}_{work_area_id}_cutting_height_work_area" uid = f"{mower_id}_{work_area_id}_cutting_height_work_area"
work_area_list.append(uid) active_work_areas.add(uid)
for entity_entry in er.async_entries_for_config_entry( for entity_entry in er.async_entries_for_config_entry(
entity_reg, config_entry.entry_id entity_reg, config_entry.entry_id
): ):
if entity_entry.unique_id.split("_")[0] == mower_id: if entity_entry.unique_id.split("_")[0] == mower_id:
if entity_entry.unique_id.endswith("cutting_height_work_area"): if entity_entry.unique_id.endswith("cutting_height_work_area"):
if entity_entry.unique_id not in work_area_list: if entity_entry.unique_id not in active_work_areas:
entity_reg.async_remove(entity_entry.entity_id) entity_reg.async_remove(entity_entry.entity_id)