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_DEFAULT_LIGHT_TRANSITION = "default_light_transition"
CONF_ENABLE_ENHANCED_LIGHT_TRANSITION = "enhanced_light_transition" CONF_ENABLE_ENHANCED_LIGHT_TRANSITION = "enhanced_light_transition"
CONF_ENABLE_LIGHT_TRANSITIONING_FLAG = "light_transitioning_flag" 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_GROUP_MEMBERS_ASSUME_STATE = "group_members_assume_state"
CONF_ENABLE_IDENTIFY_ON_JOIN = "enable_identify_on_join" 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_ARM_REQUIRES_CODE,
CONF_ALARM_FAILED_TRIES, CONF_ALARM_FAILED_TRIES,
CONF_ALARM_MASTER_CODE, CONF_ALARM_MASTER_CODE,
CONF_ALWAYS_PREFER_XY_COLOR_MODE,
CONF_BAUDRATE, CONF_BAUDRATE,
CONF_CONSIDER_UNAVAILABLE_BATTERY, CONF_CONSIDER_UNAVAILABLE_BATTERY,
CONF_CONSIDER_UNAVAILABLE_MAINS, 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_ENHANCED_LIGHT_TRANSITION, default=False): cv.boolean,
vol.Required(CONF_ENABLE_LIGHT_TRANSITIONING_FLAG, default=True): 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_GROUP_MEMBERS_ASSUME_STATE, default=True): cv.boolean,
vol.Required(CONF_ENABLE_IDENTIFY_ON_JOIN, default=True): cv.boolean, vol.Required(CONF_ENABLE_IDENTIFY_ON_JOIN, default=True): cv.boolean,
vol.Optional( vol.Optional(
@@ -1227,7 +1225,6 @@ def create_zha_config(hass: HomeAssistant, ha_zha_data: HAZHAData) -> ZHAData:
enable_light_transitioning_flag=zha_options.get( enable_light_transitioning_flag=zha_options.get(
CONF_ENABLE_LIGHT_TRANSITIONING_FLAG 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), group_members_assume_state=zha_options.get(CONF_GROUP_MEMBERS_ASSUME_STATE),
) )
device_options: DeviceOptions = DeviceOptions( device_options: DeviceOptions = DeviceOptions(

View File

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

View File

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

View File

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