diff --git a/custom_components/adaptive_lighting/switch.py b/custom_components/adaptive_lighting/switch.py index 949ec6b1..203fcb4e 100644 --- a/custom_components/adaptive_lighting/switch.py +++ b/custom_components/adaptive_lighting/switch.py @@ -1141,11 +1141,24 @@ class AdaptiveSwitch(SwitchEntity, RestoreEntity): ) ) self.async_write_ha_state() + + # Return here if there's no lights to adapt. if lights is None: lights = self._lights - if (self._only_once and not force) or not lights: + if not len(lights): return - await self._adapt_lights(lights, transition, force, context) + + if not force: + if self._only_once: + return + for light in lights: + # Don't adapt lights that haven't finished prior transitions. + if self.turn_on_off_listener.transition_timers.get(light): + lights.remove(light) + + await self._update_manual_control_and_maybe_adapt( + lights, transition, force, context + ) async def _adapt_lights( self,