Use ColorMode enum in esphome (#70490)
parent
a0c7fca003
commit
31fbc088fe
|
@ -15,16 +15,9 @@ from homeassistant.components.light import (
|
||||||
ATTR_RGBWW_COLOR,
|
ATTR_RGBWW_COLOR,
|
||||||
ATTR_TRANSITION,
|
ATTR_TRANSITION,
|
||||||
ATTR_WHITE,
|
ATTR_WHITE,
|
||||||
COLOR_MODE_BRIGHTNESS,
|
|
||||||
COLOR_MODE_COLOR_TEMP,
|
|
||||||
COLOR_MODE_ONOFF,
|
|
||||||
COLOR_MODE_RGB,
|
|
||||||
COLOR_MODE_RGBW,
|
|
||||||
COLOR_MODE_RGBWW,
|
|
||||||
COLOR_MODE_UNKNOWN,
|
|
||||||
COLOR_MODE_WHITE,
|
|
||||||
FLASH_LONG,
|
FLASH_LONG,
|
||||||
FLASH_SHORT,
|
FLASH_SHORT,
|
||||||
|
ColorMode,
|
||||||
LightEntity,
|
LightEntity,
|
||||||
LightEntityFeature,
|
LightEntityFeature,
|
||||||
)
|
)
|
||||||
|
@ -53,15 +46,15 @@ async def async_setup_entry(
|
||||||
|
|
||||||
|
|
||||||
_COLOR_MODE_MAPPING = {
|
_COLOR_MODE_MAPPING = {
|
||||||
COLOR_MODE_ONOFF: [
|
ColorMode.ONOFF: [
|
||||||
LightColorCapability.ON_OFF,
|
LightColorCapability.ON_OFF,
|
||||||
],
|
],
|
||||||
COLOR_MODE_BRIGHTNESS: [
|
ColorMode.BRIGHTNESS: [
|
||||||
LightColorCapability.ON_OFF | LightColorCapability.BRIGHTNESS,
|
LightColorCapability.ON_OFF | LightColorCapability.BRIGHTNESS,
|
||||||
# for compatibility with older clients (2021.8.x)
|
# for compatibility with older clients (2021.8.x)
|
||||||
LightColorCapability.BRIGHTNESS,
|
LightColorCapability.BRIGHTNESS,
|
||||||
],
|
],
|
||||||
COLOR_MODE_COLOR_TEMP: [
|
ColorMode.COLOR_TEMP: [
|
||||||
LightColorCapability.ON_OFF
|
LightColorCapability.ON_OFF
|
||||||
| LightColorCapability.BRIGHTNESS
|
| LightColorCapability.BRIGHTNESS
|
||||||
| LightColorCapability.COLOR_TEMPERATURE,
|
| LightColorCapability.COLOR_TEMPERATURE,
|
||||||
|
@ -69,18 +62,18 @@ _COLOR_MODE_MAPPING = {
|
||||||
| LightColorCapability.BRIGHTNESS
|
| LightColorCapability.BRIGHTNESS
|
||||||
| LightColorCapability.COLD_WARM_WHITE,
|
| LightColorCapability.COLD_WARM_WHITE,
|
||||||
],
|
],
|
||||||
COLOR_MODE_RGB: [
|
ColorMode.RGB: [
|
||||||
LightColorCapability.ON_OFF
|
LightColorCapability.ON_OFF
|
||||||
| LightColorCapability.BRIGHTNESS
|
| LightColorCapability.BRIGHTNESS
|
||||||
| LightColorCapability.RGB,
|
| LightColorCapability.RGB,
|
||||||
],
|
],
|
||||||
COLOR_MODE_RGBW: [
|
ColorMode.RGBW: [
|
||||||
LightColorCapability.ON_OFF
|
LightColorCapability.ON_OFF
|
||||||
| LightColorCapability.BRIGHTNESS
|
| LightColorCapability.BRIGHTNESS
|
||||||
| LightColorCapability.RGB
|
| LightColorCapability.RGB
|
||||||
| LightColorCapability.WHITE,
|
| LightColorCapability.WHITE,
|
||||||
],
|
],
|
||||||
COLOR_MODE_RGBWW: [
|
ColorMode.RGBWW: [
|
||||||
LightColorCapability.ON_OFF
|
LightColorCapability.ON_OFF
|
||||||
| LightColorCapability.BRIGHTNESS
|
| LightColorCapability.BRIGHTNESS
|
||||||
| LightColorCapability.RGB
|
| LightColorCapability.RGB
|
||||||
|
@ -91,7 +84,7 @@ _COLOR_MODE_MAPPING = {
|
||||||
| LightColorCapability.RGB
|
| LightColorCapability.RGB
|
||||||
| LightColorCapability.COLD_WARM_WHITE,
|
| LightColorCapability.COLD_WARM_WHITE,
|
||||||
],
|
],
|
||||||
COLOR_MODE_WHITE: [
|
ColorMode.WHITE: [
|
||||||
LightColorCapability.ON_OFF
|
LightColorCapability.ON_OFF
|
||||||
| LightColorCapability.BRIGHTNESS
|
| LightColorCapability.BRIGHTNESS
|
||||||
| LightColorCapability.WHITE
|
| LightColorCapability.WHITE
|
||||||
|
@ -115,7 +108,7 @@ def _color_mode_to_ha(mode: int) -> str:
|
||||||
candidates.append((ha_mode, caps))
|
candidates.append((ha_mode, caps))
|
||||||
|
|
||||||
if not candidates:
|
if not candidates:
|
||||||
return COLOR_MODE_UNKNOWN
|
return ColorMode.UNKNOWN
|
||||||
|
|
||||||
# choose the color mode with the most bits set
|
# choose the color mode with the most bits set
|
||||||
candidates.sort(key=lambda key: bin(key[1]).count("1"))
|
candidates.sort(key=lambda key: bin(key[1]).count("1"))
|
||||||
|
@ -366,12 +359,12 @@ class EsphomeLight(EsphomeEntity[LightInfo, LightState], LightEntity):
|
||||||
def supported_color_modes(self) -> set[str] | None:
|
def supported_color_modes(self) -> set[str] | None:
|
||||||
"""Flag supported color modes."""
|
"""Flag supported color modes."""
|
||||||
supported = set(map(_color_mode_to_ha, self._native_supported_color_modes))
|
supported = set(map(_color_mode_to_ha, self._native_supported_color_modes))
|
||||||
if COLOR_MODE_ONOFF in supported and len(supported) > 1:
|
if ColorMode.ONOFF in supported and len(supported) > 1:
|
||||||
supported.remove(COLOR_MODE_ONOFF)
|
supported.remove(ColorMode.ONOFF)
|
||||||
if COLOR_MODE_BRIGHTNESS in supported and len(supported) > 1:
|
if ColorMode.BRIGHTNESS in supported and len(supported) > 1:
|
||||||
supported.remove(COLOR_MODE_BRIGHTNESS)
|
supported.remove(ColorMode.BRIGHTNESS)
|
||||||
if COLOR_MODE_WHITE in supported and len(supported) == 1:
|
if ColorMode.WHITE in supported and len(supported) == 1:
|
||||||
supported.remove(COLOR_MODE_WHITE)
|
supported.remove(ColorMode.WHITE)
|
||||||
return supported
|
return supported
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
Loading…
Reference in New Issue