Advertisement
Guest User

allCamsV5

a guest
Oct 31st, 2014
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. on run arg
  2.    
  3.     --CUSTOMIZE THESE VARIABLES
  4.     set motionThreshold to 1 -- when more motion than this, keep picture displayed
  5.     set longDelay to 30
  6.     set shortDelay to 7
  7.     set keepLastTriggeredTime to 120
  8.     set activeKeepTime to 20
  9.    
  10.    
  11.     ------------------------------------------------------------------------------------------
  12.     do shell script "~/Documents/SecuritySpy/SleepDisplay -w" -- WAKE DISPLAY ASAP
  13.    
  14.     set camNumber to item 1 of arg -- PLACE CAMERA NUMBER FROM SECURITYSPY INTO VARIABLE
  15.    
  16.     tell application "SecuritySpy" -- PUT TRIGGERED CAMERA ON SCREEN ASAP
  17.         enter full screen mode
  18.         add full screen camera number camNumber
  19.     end tell
  20.    
  21.     set camNameToSay to item 2 of arg -- PLACE CAMERA NAME FROM SECURITYSPY INTO VARIABLE
  22.    
  23.     tell application "System Events" -- SAY NAME OF TRIGGERED CAMERA ASAP
  24.         tell process "Finder"
  25.             say camNameToSay
  26.         end tell
  27.     end tell
  28.    
  29.     set lastTriggeredNew to camNumber -- CURRENT CAMERA NUMBER BECOMES THE NEW LAST TRIGGERED
  30.     set today to current date
  31.     set lastTriggeredNewSeconds to time of today -- TIME OF DAY IN SECONDS SCRIPT IS EXECUTING BECOMES THE NEW LAST TRIGGERED SECONDS
  32.     set lastTriggeredFile to "~/Documents/SecuritySpy/lastTriggeredLog.txt" -- TEXT FILE TO STORE LAST TRIGGERED DATA
  33.     set lastTriggeredList to every paragraph of (do shell script "cat " & lastTriggeredFile) -- READ TEXT FILE INTO LIST
  34.     do shell script "echo  " & lastTriggeredNew & " >  " & lastTriggeredFile -- WRITE NEW LAST TRIGGERED TO FIRST LINE OF TEXT FILE
  35.     do shell script "echo  " & lastTriggeredNewSeconds & " >>  " & lastTriggeredFile -- WRITE NEW LAST TRIGGERED SECONDS TO LAST (2ND) LINE OF TEXT FILE
  36.     set lastTriggered to first item of lastTriggeredList -- PLACE LAST TRIGGERED FROM FIRST ITEM OF LIST INTO VARIABLE
  37.     set lastTriggeredSeconds to last item of lastTriggeredList -- PLACE LAST TRIGGERED SECONDS FROM LAST(2ND) ITEM OF LIST INTO VARIABLE
  38.    
  39.     -- if idle
  40.    
  41.     tell application "SecuritySpy"
  42.        
  43.        
  44.        
  45.         -- lastTriggered
  46.         set lastTriggeredDisplaySeconds to (lastTriggeredSeconds + keepLastTriggeredTime) -- Display lastTriggered until delay
  47.        
  48.         if lastTriggered is not equal to camNumber and lastTriggeredDisplaySeconds > lastTriggeredNewSeconds then
  49.             add full screen camera number lastTriggered
  50.            
  51.             set today to current date
  52.             set nowSeconds to time of today -- TIME OF DAY IN SECONDS NOW
  53.             repeat while lastTriggeredDisplaySeconds > nowSeconds
  54.                 delay 0.5
  55.                 set today to current date
  56.                 set nowSeconds to time of today -- TIME OF DAY IN SECONDS NOW
  57.             end repeat
  58.            
  59.             set repeatCount to 4
  60.             set lastTriggeredMeas1 to (get motion camera number lastTriggered)
  61.             delay 0.25
  62.             set lastTriggeredMeas2 to (get motion camera number lastTriggered)
  63.             set lastTriggeredMotionAvg to ((lastTriggeredMeas1 + lastTriggeredMeas2) / 2)
  64.             repeat while lastTriggeredMotionAvg > motionThreshold or repeatCount < 3
  65.                 delay 1
  66.                 set lastTriggeredMeas1 to (get motion camera number lastTriggered)
  67.                 delay 0.25
  68.                 set lastTriggeredMeas2 to (get motion camera number lastTriggered)
  69.                 set lastTriggeredMotionAvg to ((lastTriggeredMeas1 + lastTriggeredMeas2) / 2)
  70.                 set repeatCount to repeatCount + 1
  71.             end repeat
  72.            
  73.             remove full screen camera number lastTriggered
  74.         end if
  75.        
  76.        
  77.         -- camNumber
  78.         set today to current date
  79.         set nowSeconds to time of today -- TIME OF DAY IN SECONDS NOW
  80.         set camNumberDisplaySeconds to (lastTriggeredNewSeconds + activeKeepTime) -- Display camNumber until delay
  81.         repeat while camNumberDisplaySeconds > nowSeconds
  82.             delay 0.5
  83.             set today to current date
  84.             set nowSeconds to time of today -- TIME OF DAY IN SECONDS NOW
  85.         end repeat
  86.        
  87.         set repeatCount to 1
  88.         set camNumberMeas1 to (get motion camera number camNumber)
  89.         delay 0.25
  90.         set camNumberMeas2 to (get motion camera number camNumber)
  91.         set camNumberMotionAvg to ((camNumberMeas1 + camNumberMeas2) / 2)
  92.         repeat while camNumberMotionAvg > motionThreshold or repeatCount < 4
  93.             delay 1
  94.             set camNumberMeas1 to (get motion camera number camNumber)
  95.             delay 0.25
  96.             set camNumberMeas2 to (get motion camera number camNumber)
  97.             set camNumberMotionAvg to ((camNumberMeas1 + camNumberMeas2) / 2)
  98.             set repeatCount to repeatCount + 1
  99.         end repeat
  100.        
  101.         remove full screen camera number camNumber
  102.        
  103.        
  104.         remove full screen
  105.         exit full screen mode
  106.     end tell
  107. end run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement