Somewhat large overhaul to move the kiosk towards using normal python
[kiosk.git] / camera_trigger.py
index 620a5b2fd62f27587cac6c096583eb94f42e90a5..0e9ac6d8752860b8b5a22a3278749b33feda336d 100644 (file)
@@ -4,7 +4,7 @@ from datetime import datetime
 import glob
 import os
 import time
-from typing import List, Tuple
+from typing import List, Tuple, Optional
 
 import trigger
 import utils
@@ -15,20 +15,23 @@ class any_camera_trigger(trigger.trigger):
         self.triggers_in_the_past_seven_min = {
             "driveway": 0,
             "frontdoor": 0,
+            "doorbell": 0,
             "cabin_driveway": 0,
         }
         self.last_trigger_timestamp = {
             "driveway": 0,
             "frontdoor": 0,
+            "doorbell": 0,
             "cabin_driveway": 0,
         }
 
     def choose_priority(self, camera: str, age: int) -> int:
         """Based on the camera name and last trigger age, compute priority."""
         base_priority_by_camera = {
-            "driveway": 1,
+            "driveway": 3,
             "frontdoor": 2,
-            "cabin_driveway": 1,
+            "doorbell": 1,
+            "cabin_driveway": 3,
         }
         priority = base_priority_by_camera[camera]
         if age < 10:
@@ -39,11 +42,11 @@ class any_camera_trigger(trigger.trigger):
             priority += trigger.trigger.PRIORITY_LOW
         return priority
 
-    def get_triggered_page_list(self) -> List[Tuple[str, int]]:
+    def get_triggered_page_list(self) -> Optional[List[Tuple[str, int]]]:
         """Return a list of triggered pages with priorities."""
         triggers = []
         num_cameras_with_recent_triggers = 0
-        camera_list = ["driveway", "frontdoor", "cabin_driveway"]
+        camera_list = ["driveway", "frontdoor", "doorbell", "cabin_driveway"]
 
         now = time.time()
         try:
@@ -78,10 +81,9 @@ class any_camera_trigger(trigger.trigger):
                         self.triggers_in_the_past_seven_min[camera] <= 4
                         or num_cameras_with_recent_triggers > 1
                     ):
-                        ts = utils.timestamp()
-                        priority = self.choose_priority(camera, age)
+                        priority = self.choose_priority(camera, int(age))
                         print(
-                            f"{ts}: ****** {camera}[{priority}] CAMERA TRIGGER ******"
+                            f"{utils.timestamp()}: *** {camera}[{priority}] CAMERA TRIGGER ***"
                         )
                         triggers.append(
                             (
@@ -90,7 +92,7 @@ class any_camera_trigger(trigger.trigger):
                             )
                         )
                     else:
-                        print(f"{ts}: Camera {camera} too spammy, squelching it")
+                        print(f"{utils.timestamp()}: Camera {camera} too spammy, squelching it")
         except Exception as e:
             print(e)
             pass