Merge branch 'wait_for_transitions' into reformat_adapt_lights

This commit is contained in:
Benjamin Auquite 2023-04-03 00:55:52 -05:00
commit 2a4acde1c0
2 changed files with 5 additions and 8 deletions

View file

@ -177,8 +177,6 @@ CONF_USE_DEFAULTS = "use_defaults"
TURNING_OFF_DELAY = 5
CONF_AUTORESET_CONTROL, DEFAULT_AUTORESET_CONTROL = "autoreset_control_seconds", 0
def int_between(min_int, max_int):
"""Return an integer between 'min_int' and 'max_int'."""

View file

@ -1769,6 +1769,9 @@ class TurnOnOffListener:
)
if new_state is not None and new_state.state == STATE_ON:
old_state: list[State] | None = self.last_state_change.get(entity_id)
if old_state is None:
return
# It is possible to have multiple state change events with the same context.
# This can happen because a `turn_on.light(brightness_pct=100, transition=30)`
# event leads to an instant state change of
@ -1780,12 +1783,8 @@ class TurnOnOffListener:
# called with a color_temp outside of its range (and HA reports the
# incorrect 'min_kelvin' and 'max_kelvin', which happens e.g., for
# Philips Hue White GU10 Bluetooth lights).
old_state: list[State] | None = self.last_state_change.get(entity_id)
if is_our_context(new_state.context):
if (
old_state is not None
and old_state[0].context.id == new_state.context.id
):
if old_state[0].context.id == new_state.context.id:
_LOGGER.debug(
"TurnOnOffListener: State change event of '%s' is already"
" in 'self.last_state_change' (%s)"
@ -1802,7 +1801,7 @@ class TurnOnOffListener:
)
self.last_state_change[entity_id] = [new_state]
self.start_transition_timer(entity_id)
elif old_state is not None:
else:
self.last_state_change[entity_id].append(new_state)
def is_manually_controlled(