Add turnOffCooldownPeriod to SensorsTriggerLights#9
Merged
Conversation
When a human manually turns off the lights, prevent motion sensors from re-triggering for a configurable cooldown period (default 10s). This prevents rapid light flashing when someone enters a room and flips the switch off moments before motion would have turned the lights back on. The cooldown only applies to human-initiated turn-offs, not to the automation's own timer-driven turn-offs. It's armed in handleLightStateChanged, which only fires for external state changes (guarded at the connection level). Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add a configurable cooldown period to SensorsTriggerLights that prevents motion sensors from re-triggering for a window after a human manually turns the lights off. Default is 10s; set to 0 to disable. This prevents the lights from flashing back on when someone enters a room and flips the switch off just as the motion sensor would have re-triggered.
The cooldown only applies to human-initiated turn-offs, not the automation's own timer. It arms in
handleLightStateChanged, which only runs for external state changes (guaranteed by connection-level filtering atconnection.go:292).Tests
TestSensorTurnOffCooldownverifies the cooldown blocks sensor re-triggers and releases after it elapses.TestSensorTurnOffCooldownDisabledconfirms setting the period to 0 disables the feature.🤖 Generated with Claude Code