Always prefer XY color mode in ZHA

Remove a few more HS remnants
This commit is contained in:
puddly
2024-08-27 21:36:46 -04:00
parent 16dd6b1712
commit 8fb7789ea8
5 changed files with 11 additions and 29 deletions

View File

@@ -43,7 +43,6 @@ CONF_CUSTOM_QUIRKS_PATH = "custom_quirks_path"
CONF_DEFAULT_LIGHT_TRANSITION = "default_light_transition"
CONF_ENABLE_ENHANCED_LIGHT_TRANSITION = "enhanced_light_transition"
CONF_ENABLE_LIGHT_TRANSITIONING_FLAG = "light_transitioning_flag"
CONF_ALWAYS_PREFER_XY_COLOR_MODE = "always_prefer_xy_color_mode"
CONF_GROUP_MEMBERS_ASSUME_STATE = "group_members_assume_state"
CONF_ENABLE_IDENTIFY_ON_JOIN = "enable_identify_on_join"

View File

@@ -140,7 +140,6 @@ from .const import (
CONF_ALARM_ARM_REQUIRES_CODE,
CONF_ALARM_FAILED_TRIES,
CONF_ALARM_MASTER_CODE,
CONF_ALWAYS_PREFER_XY_COLOR_MODE,
CONF_BAUDRATE,
CONF_CONSIDER_UNAVAILABLE_BATTERY,
CONF_CONSIDER_UNAVAILABLE_MAINS,
@@ -1152,7 +1151,6 @@ CONF_ZHA_OPTIONS_SCHEMA = vol.Schema(
),
vol.Required(CONF_ENABLE_ENHANCED_LIGHT_TRANSITION, default=False): cv.boolean,
vol.Required(CONF_ENABLE_LIGHT_TRANSITIONING_FLAG, default=True): cv.boolean,
vol.Required(CONF_ALWAYS_PREFER_XY_COLOR_MODE, default=True): cv.boolean,
vol.Required(CONF_GROUP_MEMBERS_ASSUME_STATE, default=True): cv.boolean,
vol.Required(CONF_ENABLE_IDENTIFY_ON_JOIN, default=True): cv.boolean,
vol.Optional(
@@ -1227,7 +1225,6 @@ def create_zha_config(hass: HomeAssistant, ha_zha_data: HAZHAData) -> ZHAData:
enable_light_transitioning_flag=zha_options.get(
CONF_ENABLE_LIGHT_TRANSITIONING_FLAG
),
always_prefer_xy_color_mode=zha_options.get(CONF_ALWAYS_PREFER_XY_COLOR_MODE),
group_members_assume_state=zha_options.get(CONF_GROUP_MEMBERS_ASSUME_STATE),
)
device_options: DeviceOptions = DeviceOptions(

View File

@@ -45,7 +45,6 @@ ZHA_TO_HA_COLOR_MODE = {
ZhaColorMode.ONOFF: ColorMode.ONOFF,
ZhaColorMode.BRIGHTNESS: ColorMode.BRIGHTNESS,
ZhaColorMode.COLOR_TEMP: ColorMode.COLOR_TEMP,
ZhaColorMode.HS: ColorMode.HS,
ZhaColorMode.XY: ColorMode.XY,
ZhaColorMode.RGB: ColorMode.RGB,
ZhaColorMode.RGBW: ColorMode.RGBW,
@@ -143,11 +142,6 @@ class Light(LightEntity, ZHAEntity):
"""Return the warmest color_temp that this light supports."""
return self.entity_data.entity.max_mireds
@property
def hs_color(self) -> tuple[float, float] | None:
"""Return the hs color value [int, int]."""
return self.entity_data.entity.hs_color
@property
def xy_color(self) -> tuple[float, float] | None:
"""Return the xy color value [float, float]."""
@@ -185,7 +179,6 @@ class Light(LightEntity, ZHAEntity):
flash=kwargs.get(ATTR_FLASH),
color_temp=kwargs.get(ATTR_COLOR_TEMP),
xy_color=kwargs.get(ATTR_XY_COLOR),
hs_color=kwargs.get(ATTR_HS_COLOR),
)
self.async_write_ha_state()
@@ -200,6 +193,16 @@ class Light(LightEntity, ZHAEntity):
@callback
def restore_external_state_attributes(self, state: State) -> None:
"""Restore entity state."""
color_mode = None
if state.attributes.get(ATTR_COLOR_MODE) is not None:
color_mode = ColorMode(state.attributes[ATTR_COLOR_MODE])
# Remove in 2025.1: ZHA no longer uses HS color mode, only XY
if color_mode is ColorMode.HS:
color_mode = ColorMode.XY
self.entity_data.entity.restore_external_state_attributes(
state=(state.state == STATE_ON),
off_with_transition=state.attributes.get(OFF_WITH_TRANSITION),
@@ -209,9 +212,7 @@ class Light(LightEntity, ZHAEntity):
xy_color=state.attributes.get(ATTR_XY_COLOR),
hs_color=state.attributes.get(ATTR_HS_COLOR),
color_mode=(
HA_TO_ZHA_COLOR_MODE[ColorMode(state.attributes[ATTR_COLOR_MODE])]
if state.attributes.get(ATTR_COLOR_MODE) is not None
else None
HA_TO_ZHA_COLOR_MODE[color_mode] if color_mode is not None else None
),
effect=state.attributes.get(ATTR_EFFECT),
)

View File

@@ -178,7 +178,6 @@
"title": "Global Options",
"enhanced_light_transition": "Enable enhanced light color/temperature transition from an off-state",
"light_transitioning_flag": "Enable enhanced brightness slider during light transition",
"always_prefer_xy_color_mode": "Always prefer XY color mode",
"group_members_assume_state": "Group members assume state of group",
"enable_identify_on_join": "Enable identify effect when devices join the network",
"default_light_transition": "Default light transition time (seconds)",

View File

@@ -23,12 +23,6 @@ BASE_CUSTOM_CONFIGURATION = {
"required": True,
"default": True,
},
{
"type": "boolean",
"name": "always_prefer_xy_color_mode",
"required": True,
"default": True,
},
{
"type": "boolean",
"name": "group_members_assume_state",
@@ -62,7 +56,6 @@ BASE_CUSTOM_CONFIGURATION = {
"enhanced_light_transition": True,
"default_light_transition": 0,
"light_transitioning_flag": True,
"always_prefer_xy_color_mode": True,
"group_members_assume_state": False,
"enable_identify_on_join": True,
"consider_unavailable_mains": 7200,
@@ -94,12 +87,6 @@ CONFIG_WITH_ALARM_OPTIONS = {
"required": True,
"default": True,
},
{
"type": "boolean",
"name": "always_prefer_xy_color_mode",
"required": True,
"default": True,
},
{
"type": "boolean",
"name": "group_members_assume_state",
@@ -154,7 +141,6 @@ CONFIG_WITH_ALARM_OPTIONS = {
"enhanced_light_transition": True,
"default_light_transition": 0,
"light_transitioning_flag": True,
"always_prefer_xy_color_mode": True,
"group_members_assume_state": False,
"enable_identify_on_join": True,
"consider_unavailable_mains": 7200,