mirror of
https://github.com/basnijholt/adaptive-lighting.git
synced 2026-11-03 00:47:46 +01:00
## Summary - Fixes regression in v1.30.0 where lights turned on by automations were incorrectly marked as "manually controlled" - Makes `adapt_only_on_bare_turn_on` respect individual attribute tracking from #1356 ## Root Cause PR #1356 added a call to `update_manually_controlled_from_event()` in the `turn_on_off_event_listener.on()` handler for ALL `light.turn_on` events, including when turning a light on from OFF state. When an automation turns on a light with brightness/color attributes, this incorrectly marked the light as "manually controlled", preventing Adaptive Lighting from adapting it. ## Fix 1. Only call `update_manually_controlled_from_event()` when the light was **already ON** before the turn_on event. Turning on from OFF is handled by `_respond_to_off_to_on_event()`. 2. Make `adapt_only_on_bare_turn_on` respect `take_over_control_mode`: - With `PAUSE_CHANGED`: Only pause adaptation of specified attributes, continue adapting unspecified ones - With `PAUSE_ALL`: Pause all adaptation (existing behavior) ## Expected Behavior After Fix | Scenario | `adapt_only_on_bare_turn_on` | `take_over_control_mode` | Result | |----------|------------------------------|--------------------------|--------| | Turn on from OFF with brightness | `false` | Either | NOT manually controlled | | Turn on from OFF with brightness | `true` | `PAUSE_ALL` | All adaptation paused | | Turn on from OFF with brightness | `true` | `PAUSE_CHANGED` | Only brightness paused, color adapts | | Turn on from OFF without attributes | Either | Either | NOT manually controlled | | Change brightness while ON | Either | Either | Brightness manually controlled | ## Test plan - [x] Turn on light via automation with brightness/color (`adapt_only_on_bare_turn_on=false`) - should adapt - [x] Turn on light via scene (`adapt_only_on_bare_turn_on=true`, `PAUSE_ALL`) - should pause all adaptation - [x] Turn on light with brightness only (`adapt_only_on_bare_turn_on=true`, `PAUSE_CHANGED`) - should adapt color - [x] Both intercept=True and intercept=False paths tested for consistency - [x] CI tests pass Fixes #1378 Co-authored-by: Mario Guggenberger <mg@protyposis.net> |
||
|---|---|---|
| .. | ||
| adaptive_lighting | ||