Use ColorMode enum in tasmota (#70549)
This commit is contained in:
parent
265bf3e9e0
commit
1b08e509ed
1 changed files with 17 additions and 21 deletions
|
@ -22,13 +22,9 @@ from homeassistant.components.light import (
|
|||
ATTR_HS_COLOR,
|
||||
ATTR_TRANSITION,
|
||||
ATTR_WHITE,
|
||||
COLOR_MODE_BRIGHTNESS,
|
||||
COLOR_MODE_COLOR_TEMP,
|
||||
COLOR_MODE_HS,
|
||||
COLOR_MODE_ONOFF,
|
||||
COLOR_MODE_WHITE,
|
||||
SUPPORT_EFFECT,
|
||||
SUPPORT_TRANSITION,
|
||||
ColorMode,
|
||||
LightEntity,
|
||||
brightness_supported,
|
||||
)
|
||||
|
@ -132,23 +128,23 @@ class TasmotaLight(
|
|||
if light_type in [LIGHT_TYPE_RGB, LIGHT_TYPE_RGBW, LIGHT_TYPE_RGBCW]:
|
||||
# Mark HS support for RGBW light because we don't have direct control over the
|
||||
# white channel, so the base component's RGB->RGBW translation does not work
|
||||
self._supported_color_modes.add(COLOR_MODE_HS)
|
||||
self._color_mode = COLOR_MODE_HS
|
||||
self._supported_color_modes.add(ColorMode.HS)
|
||||
self._color_mode = ColorMode.HS
|
||||
|
||||
if light_type == LIGHT_TYPE_RGBW:
|
||||
self._supported_color_modes.add(COLOR_MODE_WHITE)
|
||||
self._supported_color_modes.add(ColorMode.WHITE)
|
||||
|
||||
if light_type in [LIGHT_TYPE_COLDWARM, LIGHT_TYPE_RGBCW]:
|
||||
self._supported_color_modes.add(COLOR_MODE_COLOR_TEMP)
|
||||
self._color_mode = COLOR_MODE_COLOR_TEMP
|
||||
self._supported_color_modes.add(ColorMode.COLOR_TEMP)
|
||||
self._color_mode = ColorMode.COLOR_TEMP
|
||||
|
||||
if light_type != LIGHT_TYPE_NONE and not self._supported_color_modes:
|
||||
self._supported_color_modes.add(COLOR_MODE_BRIGHTNESS)
|
||||
self._color_mode = COLOR_MODE_BRIGHTNESS
|
||||
self._supported_color_modes.add(ColorMode.BRIGHTNESS)
|
||||
self._color_mode = ColorMode.BRIGHTNESS
|
||||
|
||||
if not self._supported_color_modes:
|
||||
self._supported_color_modes.add(COLOR_MODE_ONOFF)
|
||||
self._color_mode = COLOR_MODE_ONOFF
|
||||
self._supported_color_modes.add(ColorMode.ONOFF)
|
||||
self._color_mode = ColorMode.ONOFF
|
||||
|
||||
if light_type in [LIGHT_TYPE_RGB, LIGHT_TYPE_RGBW, LIGHT_TYPE_RGBCW]:
|
||||
supported_features |= SUPPORT_EFFECT
|
||||
|
@ -180,15 +176,15 @@ class TasmotaLight(
|
|||
if self._tasmota_entity.light_type == LIGHT_TYPE_RGBW:
|
||||
# Tasmota does not support RGBW mode, set mode to white or hs
|
||||
if self._white_value == 0:
|
||||
self._color_mode = COLOR_MODE_HS
|
||||
self._color_mode = ColorMode.HS
|
||||
else:
|
||||
self._color_mode = COLOR_MODE_WHITE
|
||||
self._color_mode = ColorMode.WHITE
|
||||
elif self._tasmota_entity.light_type == LIGHT_TYPE_RGBCW:
|
||||
# Tasmota does not support RGBWW mode, set mode to ct or hs
|
||||
if self._white_value == 0:
|
||||
self._color_mode = COLOR_MODE_HS
|
||||
self._color_mode = ColorMode.HS
|
||||
else:
|
||||
self._color_mode = COLOR_MODE_COLOR_TEMP
|
||||
self._color_mode = ColorMode.COLOR_TEMP
|
||||
|
||||
self.async_write_ha_state()
|
||||
|
||||
|
@ -256,11 +252,11 @@ class TasmotaLight(
|
|||
|
||||
attributes: dict[str, Any] = {}
|
||||
|
||||
if ATTR_HS_COLOR in kwargs and COLOR_MODE_HS in supported_color_modes:
|
||||
if ATTR_HS_COLOR in kwargs and ColorMode.HS in supported_color_modes:
|
||||
hs_color = kwargs[ATTR_HS_COLOR]
|
||||
attributes["color_hs"] = [hs_color[0], hs_color[1]]
|
||||
|
||||
if ATTR_WHITE in kwargs and COLOR_MODE_WHITE in supported_color_modes:
|
||||
if ATTR_WHITE in kwargs and ColorMode.WHITE in supported_color_modes:
|
||||
attributes["white_value"] = scale_brightness(kwargs[ATTR_WHITE])
|
||||
|
||||
if ATTR_TRANSITION in kwargs:
|
||||
|
@ -269,7 +265,7 @@ class TasmotaLight(
|
|||
if ATTR_BRIGHTNESS in kwargs and brightness_supported(supported_color_modes):
|
||||
attributes["brightness"] = scale_brightness(kwargs[ATTR_BRIGHTNESS])
|
||||
|
||||
if ATTR_COLOR_TEMP in kwargs and COLOR_MODE_COLOR_TEMP in supported_color_modes:
|
||||
if ATTR_COLOR_TEMP in kwargs and ColorMode.COLOR_TEMP in supported_color_modes:
|
||||
attributes["color_temp"] = int(kwargs[ATTR_COLOR_TEMP])
|
||||
|
||||
if ATTR_EFFECT in kwargs:
|
||||
|
|
Loading…
Add table
Reference in a new issue