From ef46ac2b2ba5ee915fd1f0d80aa49e6150cebb9e Mon Sep 17 00:00:00 2001 From: andvikt Date: Thu, 8 Sep 2022 12:41:42 +0300 Subject: [PATCH 1/3] fix 2022.9 --- custom_components/mega/light.py | 43 +++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/custom_components/mega/light.py b/custom_components/mega/light.py index 28ce493..643dae6 100644 --- a/custom_components/mega/light.py +++ b/custom_components/mega/light.py @@ -1,4 +1,6 @@ """Platform for light integration.""" +from __future__ import annotations + import asyncio import logging import typing @@ -14,8 +16,8 @@ from homeassistant.components.light import ( SUPPORT_BRIGHTNESS, LightEntity, SUPPORT_TRANSITION, - SUPPORT_COLOR, - SUPPORT_WHITE_VALUE + SUPPORT_COLOR, ColorMode, LightEntityFeature, + # SUPPORT_WHITE_VALUE ) from homeassistant.config_entries import ConfigEntry from homeassistant.const import ( @@ -116,6 +118,7 @@ class MegaRGBW(LightEntity, BaseMegaEntity): self._is_on = None self._brightness = None self._hs_color = None + self._rgb_color: tuple[int, int, int] | None = None self._white_value = None self._task: asyncio.Task = None self._restore = None @@ -143,10 +146,34 @@ class MegaRGBW(LightEntity, BaseMegaEntity): def is_ws(self): return self.customize.get(CONF_WS28XX) + + @property + def supported_color_modes(self) -> set[ColorMode] | set[str] | None: + return { + ColorMode.BRIGHTNESS, + ColorMode.RGB if len(self.port) != 4 else ColorMode.RGBW + } + + @property + def color_mode(self) -> ColorMode | str | None: + if len(self.port) == 4: + return ColorMode.RGBW + else: + return ColorMode.RGB + @property def white_value(self): - if self.supported_features & SUPPORT_WHITE_VALUE: - return float(self.get_attribute('white_value', 0)) + # if self.supported_features & SUPPORT_WHITE_VALUE: + return float(self.get_attribute('white_value', 0)) + + @property + def rgb_color(self) -> tuple[int, int, int] | None: + return self._rgb_color + + @property + def rgbw_color(self) -> tuple[int, int, int, int] | None: + if self._white_value is not None and self._rgb_color is not None: + return (*self._rgb_color, self._white_value) @property def brightness(self): @@ -162,12 +189,7 @@ class MegaRGBW(LightEntity, BaseMegaEntity): @property def supported_features(self): - return ( - SUPPORT_BRIGHTNESS | - SUPPORT_TRANSITION | - SUPPORT_COLOR | - (SUPPORT_WHITE_VALUE if len(self.port) == 4 else 0) - ) + return LightEntityFeature.TRANSITION def get_rgbw(self): if not self.is_on: @@ -225,6 +247,7 @@ class MegaRGBW(LightEntity, BaseMegaEntity): for item, value in kwargs.items(): setattr(self, f'_{item}', value) _after = self.get_rgbw() + self._rgb_color = tuple(_after[:3]) if transition is None: transition = self.smooth.total_seconds() ratio = self.calc_speed_ratio(_before, _after) From 1ceb7e47667ead1bffbdaa0555b5d46f9a2fefbf Mon Sep 17 00:00:00 2001 From: andvikt Date: Thu, 8 Sep 2022 12:41:56 +0300 Subject: [PATCH 2/3] =?UTF-8?q?Bump=20version:=201.1.3=20=E2=86=92=201.1.4?= =?UTF-8?q?b0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- custom_components/mega/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index b828d54..efbfa55 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.1.3 +current_version = 1.1.4b0 parse = (?P\d+)(\.(?P\d+))(\.(?P\d+))(?P[bf]*)(?P\d*) commit = True tag = True diff --git a/custom_components/mega/manifest.json b/custom_components/mega/manifest.json index 55e1176..36169ca 100644 --- a/custom_components/mega/manifest.json +++ b/custom_components/mega/manifest.json @@ -15,5 +15,5 @@ "@andvikt" ], "issue_tracker": "https://github.com/andvikt/mega_hacs/issues", - "version": "v1.1.3" + "version": "v1.1.4b0" } \ No newline at end of file From d7180c047739d8bccee2416324be375d0e5195ca Mon Sep 17 00:00:00 2001 From: andvikt Date: Thu, 8 Sep 2022 12:42:10 +0300 Subject: [PATCH 3/3] =?UTF-8?q?Bump=20version:=201.1.4b0=20=E2=86=92=201.1?= =?UTF-8?q?.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- custom_components/mega/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index efbfa55..22cf943 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.1.4b0 +current_version = 1.1.4 parse = (?P\d+)(\.(?P\d+))(\.(?P\d+))(?P[bf]*)(?P\d*) commit = True tag = True diff --git a/custom_components/mega/manifest.json b/custom_components/mega/manifest.json index 36169ca..0df0eb8 100644 --- a/custom_components/mega/manifest.json +++ b/custom_components/mega/manifest.json @@ -15,5 +15,5 @@ "@andvikt" ], "issue_tracker": "https://github.com/andvikt/mega_hacs/issues", - "version": "v1.1.4b0" + "version": "v1.1.4" } \ No newline at end of file