This commit is contained in:
Benjamin Auquite 2023-04-03 00:55:21 -05:00
commit 3aa2f3242b

View file

@ -1761,6 +1761,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
@ -1772,12 +1775,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)"
@ -1794,7 +1793,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(