Refactor of unique ID and entity description handling in Rituals Perfume Genie (#92545)

This commit is contained in:
Franck Nijhof 2023-05-04 21:54:28 +02:00 committed by GitHub
parent 7b8936b420
commit 9e529d1d59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 9 additions and 16 deletions

View file

@ -77,9 +77,7 @@ class RitualsBinarySensorEntity(DiffuserEntity, BinarySensorEntity):
description: RitualsBinarySensorEntityDescription,
) -> None:
"""Initialize Rituals binary sensor entity."""
super().__init__(coordinator)
self.entity_description = description
self._attr_unique_id = f"{coordinator.diffuser.hublot}-{description.key}"
super().__init__(coordinator, description)
self._attr_name = f"{coordinator.diffuser.name} {description.name}"
@property

View file

@ -1,7 +1,7 @@
"""Base class for Rituals Perfume Genie diffuser entity."""
from __future__ import annotations
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity import DeviceInfo, EntityDescription
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
@ -18,9 +18,12 @@ class DiffuserEntity(CoordinatorEntity[RitualsDataUpdateCoordinator]):
def __init__(
self,
coordinator: RitualsDataUpdateCoordinator,
description: EntityDescription,
) -> None:
"""Init from config, hookup diffuser and coordinator."""
super().__init__(coordinator)
self.entity_description = description
self._attr_unique_id = f"{coordinator.diffuser.hublot}-{description.key}"
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, coordinator.diffuser.hublot)},
manufacturer=MANUFACTURER,

View file

@ -72,9 +72,7 @@ class RitualsNumberEntity(DiffuserEntity, NumberEntity):
description: RitualsNumberEntityDescription,
) -> None:
"""Initialize the diffuser perfume amount number."""
super().__init__(coordinator)
self.entity_description = description
self._attr_unique_id = f"{coordinator.diffuser.hublot}-{description.key}"
super().__init__(coordinator, description)
self._attr_name = f"{coordinator.diffuser.name} {description.name}"
@property

View file

@ -76,12 +76,10 @@ class RitualsSelectEntity(DiffuserEntity, SelectEntity):
description: RitualsSelectEntityDescription,
) -> None:
"""Initialize the diffuser room size select entity."""
super().__init__(coordinator)
self.entity_description = description
super().__init__(coordinator, description)
self._attr_entity_registry_enabled_default = (
self.coordinator.diffuser.has_battery
)
self._attr_unique_id = f"{coordinator.diffuser.hublot}-{description.key}"
self._attr_name = f"{coordinator.diffuser.name} {description.name}"
@property

View file

@ -98,9 +98,7 @@ class RitualsSensorEntity(DiffuserEntity, SensorEntity):
description: RitualsSensorEntityDescription,
) -> None:
"""Initialize the diffuser sensor."""
super().__init__(coordinator)
self.entity_description = description
self._attr_unique_id = f"{coordinator.diffuser.hublot}-{description.key}"
super().__init__(coordinator, description)
self._attr_name = f"{coordinator.diffuser.name} {description.name}"
@property

View file

@ -72,9 +72,7 @@ class RitualsSwitchEntity(DiffuserEntity, SwitchEntity):
description: RitualsSwitchEntityDescription,
) -> None:
"""Initialize the diffuser switch."""
super().__init__(coordinator)
self.entity_description = description
self._attr_unique_id = f"{coordinator.diffuser.hublot}-{description.key}"
super().__init__(coordinator, description)
self._attr_name = coordinator.diffuser.name
self._attr_is_on = description.is_on_fn(coordinator.diffuser)