From 3afdecd51f70cf90c6e265f9697436509dc4e68c Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Wed, 6 Sep 2023 23:37:31 +0200 Subject: [PATCH] Use shorthand attributes in Plum (#99770) Use shorthand attributes in Plum shorthand --- .../components/plum_lightpad/light.py | 74 +++++-------------- 1 file changed, 20 insertions(+), 54 deletions(-) diff --git a/homeassistant/components/plum_lightpad/light.py b/homeassistant/components/plum_lightpad/light.py index 2c1f7daa880..9464e66e3a9 100644 --- a/homeassistant/components/plum_lightpad/light.py +++ b/homeassistant/components/plum_lightpad/light.py @@ -73,6 +73,14 @@ class PlumLight(LightEntity): """Initialize the light.""" self._load = load self._brightness = load.level + unique_id = f"{load.llid}.light" + self._attr_unique_id = unique_id + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, unique_id)}, + manufacturer="Plum", + model="Dimmer", + name=load.name, + ) async def async_added_to_hass(self) -> None: """Subscribe to dimmerchange events.""" @@ -83,21 +91,6 @@ class PlumLight(LightEntity): self._brightness = event["level"] self.schedule_update_ha_state() - @property - def unique_id(self): - """Combine logical load ID with .light to guarantee it is unique.""" - return f"{self._load.llid}.light" - - @property - def device_info(self) -> DeviceInfo: - """Return the device info.""" - return DeviceInfo( - identifiers={(DOMAIN, self.unique_id)}, - manufacturer="Plum", - model="Dimmer", - name=self._load.name, - ) - @property def brightness(self) -> int: """Return the brightness of this switch between 0..255.""" @@ -138,18 +131,27 @@ class GlowRing(LightEntity): _attr_color_mode = ColorMode.HS _attr_should_poll = False _attr_supported_color_modes = {ColorMode.HS} + _attr_icon = "mdi:crop-portrait" def __init__(self, lightpad): """Initialize the light.""" self._lightpad = lightpad - self._name = f"{lightpad.friendly_name} Glow Ring" + self._attr_name = f"{lightpad.friendly_name} Glow Ring" - self._state = lightpad.glow_enabled + self._attr_is_on = lightpad.glow_enabled self._glow_intensity = lightpad.glow_intensity + unique_id = f"{self._lightpad.lpid}.glow" + self._attr_unique_id = unique_id self._red = lightpad.glow_color["red"] self._green = lightpad.glow_color["green"] self._blue = lightpad.glow_color["blue"] + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, unique_id)}, + manufacturer="Plum", + model="Glow Ring", + name=self._attr_name, + ) async def async_added_to_hass(self) -> None: """Subscribe to configchange events.""" @@ -159,13 +161,12 @@ class GlowRing(LightEntity): """Handle Configuration change event.""" config = event["changes"] - self._state = config["glowEnabled"] + self._attr_is_on = config["glowEnabled"] self._glow_intensity = config["glowIntensity"] self._red = config["glowColor"]["red"] self._green = config["glowColor"]["green"] self._blue = config["glowColor"]["blue"] - self.schedule_update_ha_state() @property @@ -173,46 +174,11 @@ class GlowRing(LightEntity): """Return the hue and saturation color value [float, float].""" return color_util.color_RGB_to_hs(self._red, self._green, self._blue) - @property - def unique_id(self): - """Combine LightPad ID with .glow to guarantee it is unique.""" - return f"{self._lightpad.lpid}.glow" - - @property - def name(self): - """Return the name of the switch if any.""" - return self._name - - @property - def device_info(self) -> DeviceInfo: - """Return the device info.""" - return DeviceInfo( - identifiers={(DOMAIN, self.unique_id)}, - manufacturer="Plum", - model="Glow Ring", - name=self.name, - ) - @property def brightness(self) -> int: """Return the brightness of this switch between 0..255.""" return min(max(int(round(self._glow_intensity * 255, 0)), 0), 255) - @property - def glow_intensity(self): - """Brightness in float form.""" - return self._glow_intensity - - @property - def is_on(self) -> bool: - """Return true if light is on.""" - return self._state - - @property - def icon(self): - """Return the crop-portrait icon representing the glow ring.""" - return "mdi:crop-portrait" - async def async_turn_on(self, **kwargs: Any) -> None: """Turn the light on.""" if ATTR_BRIGHTNESS in kwargs: