X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=camera_trigger.py;h=0f42ca20782cd06ecf46e23d68acd017a5d9f9a2;hb=5e241dc47e497c547463cecc07946ea6882835a7;hp=6e63dd1d2790bb9d963f33f5c09ce65973b3e67a;hpb=4b1f3d8a8b278ca6d62f461ea80c8ea21080c301;p=kiosk.git diff --git a/camera_trigger.py b/camera_trigger.py index 6e63dd1..0f42ca2 100644 --- a/camera_trigger.py +++ b/camera_trigger.py @@ -5,27 +5,28 @@ import trigger import utils from datetime import datetime + class any_camera_trigger(trigger.trigger): def __init__(self): self.triggers_in_the_past_seven_min = { - "driveway" : 0, - "frontdoor" : 0, - "cabin_driveway" : 0, - "backyard" : 0, + "driveway": 0, + "frontdoor": 0, + "cabin_driveway": 0, + "backyard": 0, } self.last_trigger = { - "driveway" : 0, - "frontdoor" : 0, - "cabin_driveway" : 0, - "backyard" : 0, + "driveway": 0, + "frontdoor": 0, + "cabin_driveway": 0, + "backyard": 0, } def choose_priority(self, camera, age): base_priority_by_camera = { - "driveway" : 1, - "frontdoor" : 2, - "cabin_driveway" : 1, - "backyard" : 0, + "driveway": 1, + "frontdoor": 2, + "cabin_driveway": 1, + "backyard": 0, } priority = base_priority_by_camera[camera] if age < 10: @@ -39,10 +40,7 @@ class any_camera_trigger(trigger.trigger): def get_triggered_page_list(self): triggers = [] cameras_with_recent_triggers = 0 - camera_list = [ "driveway", - "frontdoor", - "cabin_driveway", - "backyard" ] + camera_list = ["driveway", "frontdoor", "cabin_driveway", "backyard"] now = time.time() try: @@ -51,16 +49,20 @@ class any_camera_trigger(trigger.trigger): for camera in camera_list: file = "/timestamps/last_camera_motion_%s" % camera ts = os.stat(file).st_ctime - age = now - ts - # print "Camera: %s, age %s" % (camera, age) - if age < 60: + if ts != self.last_trigger[camera] and (now - ts) < 10: + print("Camera: %s, age %s" % (camera, (now - ts))) + self.last_trigger[camera] = ts cameras_with_recent_triggers += 1 - time_since_last_trigger = now - self.last_trigger[camera] - self.last_trigger[camera] = now - if time_since_last_trigger < (60 * 7): - self.triggers_in_the_past_seven_min[camera] += 1 - else: - self.triggers_in_the_past_seven_min[camera] = 1 + self.triggers_in_the_past_seven_min[camera] = 0 + file = "/timestamps/camera_motion_history_%s" % camera + f = open(file, "r") + contents = f.readlines() + f.close() + for x in contents: + x.strip() + age = now - int(x) + if age < (60 * 7): + self.triggers_in_the_past_seven_min[camera] += 1 # Second pass, see whether we want to trigger due to # camera activity we found. All cameras timestamps were @@ -68,20 +70,31 @@ class any_camera_trigger(trigger.trigger): # squelch spammy cameras unless more than one is # triggered at the same time. for camera in camera_list: - if self.last_trigger[camera] == now: - ts = utils.timestamp() - if (self.triggers_in_the_past_seven_min[camera] <= 4 or - cameras_with_recent_triggers > 1): + if (now - self.last_trigger[camera]) < 10: + if ( + self.triggers_in_the_past_seven_min[camera] <= 4 + or cameras_with_recent_triggers > 1 + ): + ts = utils.timestamp() p = self.choose_priority(camera, age) - print "%s: ****** %s[%d] CAMERA TRIGGER ******" % ( - ts, camera, p) - triggers.append( ( "hidden/%s.html" % camera, - self.choose_priority(camera, age)) ) + print( + ( + "%s: ****** %s[%d] CAMERA TRIGGER ******" + % (ts, camera, p) + ) + ) + triggers.append( + ( + "hidden/%s.html" % camera, + self.choose_priority(camera, age), + ) + ) else: - print "%s: Camera %s too spammy, squelching it" % ( - ts, camera) + print( + ("%s: Camera %s too spammy, squelching it" % (ts, camera)) + ) except Exception as e: - print e + print(e) pass if len(triggers) == 0: @@ -89,5 +102,6 @@ class any_camera_trigger(trigger.trigger): else: return triggers -#x = any_camera_trigger() -#print x.get_triggered_page_list() + +# x = any_camera_trigger() +# print(x.get_triggered_page_list())