From 9e529d1d5914049ed73829b6be16f1f8523f77ef Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Thu, 4 May 2023 21:54:28 +0200 Subject: [PATCH] Refactor of unique ID and entity description handling in Rituals Perfume Genie (#92545) --- .../components/rituals_perfume_genie/binary_sensor.py | 4 +--- homeassistant/components/rituals_perfume_genie/entity.py | 5 ++++- homeassistant/components/rituals_perfume_genie/number.py | 4 +--- homeassistant/components/rituals_perfume_genie/select.py | 4 +--- homeassistant/components/rituals_perfume_genie/sensor.py | 4 +--- homeassistant/components/rituals_perfume_genie/switch.py | 4 +--- 6 files changed, 9 insertions(+), 16 deletions(-) diff --git a/homeassistant/components/rituals_perfume_genie/binary_sensor.py b/homeassistant/components/rituals_perfume_genie/binary_sensor.py index 37d60522dea..3c49dc14f51 100644 --- a/homeassistant/components/rituals_perfume_genie/binary_sensor.py +++ b/homeassistant/components/rituals_perfume_genie/binary_sensor.py @@ -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 diff --git a/homeassistant/components/rituals_perfume_genie/entity.py b/homeassistant/components/rituals_perfume_genie/entity.py index 07944f4eed3..e5b9f3ebd6f 100644 --- a/homeassistant/components/rituals_perfume_genie/entity.py +++ b/homeassistant/components/rituals_perfume_genie/entity.py @@ -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, diff --git a/homeassistant/components/rituals_perfume_genie/number.py b/homeassistant/components/rituals_perfume_genie/number.py index 487fd12f339..8049e53fa0d 100644 --- a/homeassistant/components/rituals_perfume_genie/number.py +++ b/homeassistant/components/rituals_perfume_genie/number.py @@ -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 diff --git a/homeassistant/components/rituals_perfume_genie/select.py b/homeassistant/components/rituals_perfume_genie/select.py index f721f2e6e29..10ad5dbf3bb 100644 --- a/homeassistant/components/rituals_perfume_genie/select.py +++ b/homeassistant/components/rituals_perfume_genie/select.py @@ -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 diff --git a/homeassistant/components/rituals_perfume_genie/sensor.py b/homeassistant/components/rituals_perfume_genie/sensor.py index cd637a2284f..e48bf4de219 100644 --- a/homeassistant/components/rituals_perfume_genie/sensor.py +++ b/homeassistant/components/rituals_perfume_genie/sensor.py @@ -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 diff --git a/homeassistant/components/rituals_perfume_genie/switch.py b/homeassistant/components/rituals_perfume_genie/switch.py index 85e29f7f1ca..44ff951f532 100644 --- a/homeassistant/components/rituals_perfume_genie/switch.py +++ b/homeassistant/components/rituals_perfume_genie/switch.py @@ -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)