From 2bbc3008fee38a0d33a74e826f5377f30edc2b6b Mon Sep 17 00:00:00 2001 From: Aditya Gupta Date: Sun, 1 Feb 2026 15:46:25 +0530 Subject: [PATCH] Ignore change on state change --- desk_presence.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/desk_presence.py b/desk_presence.py index cbd3306..ec5ceb7 100755 --- a/desk_presence.py +++ b/desk_presence.py @@ -233,21 +233,28 @@ def detect_face(gray): def detect_motion(gray): - if ignore_motion_due_to_light(): - log.debug("Ignoring motion due to light cooldown") - return False + light_cooldown = ignore_motion_due_to_light() + # If no previous frame exists, initialize it if not os.path.exists(PREV_IMG): cv2.imwrite(PREV_IMG, gray) + log.debug("Initialized previous frame") return False prev = cv2.imread(PREV_IMG, cv2.IMREAD_GRAYSCALE) + + # Always update PREV_IMG so state stays aligned cv2.imwrite(PREV_IMG, gray) + # If we're in light cooldown, ignore motion but accept the frame + if light_cooldown: + log.debug("Ignoring motion due to light cooldown (state synced)") + return False + diff = cv2.absdiff(prev, gray) mean_diff = np.mean(diff) - if mean_diff > 75: + if mean_diff > 60: log.debug("Ignoring global brightness change (mean=%.2f)", mean_diff) return False