Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- on run arg
- --CUSTOMIZE THESE VARIABLES
- set motionThreshold to 1 -- when more motion than this, keep picture displayed
- set longDelay to 30
- set shortDelay to 7
- set keepLastTriggeredTime to 120
- set activeKeepTime to 20
- ------------------------------------------------------------------------------------------
- do shell script "~/Documents/SecuritySpy/SleepDisplay -w" -- WAKE DISPLAY ASAP
- set camNumber to item 1 of arg -- PLACE CAMERA NUMBER FROM SECURITYSPY INTO VARIABLE
- tell application "SecuritySpy" -- PUT TRIGGERED CAMERA ON SCREEN ASAP
- enter full screen mode
- add full screen camera number camNumber
- end tell
- set camNameToSay to item 2 of arg -- PLACE CAMERA NAME FROM SECURITYSPY INTO VARIABLE
- tell application "System Events" -- SAY NAME OF TRIGGERED CAMERA ASAP
- tell process "Finder"
- say camNameToSay
- end tell
- end tell
- set lastTriggeredNew to camNumber -- CURRENT CAMERA NUMBER BECOMES THE NEW LAST TRIGGERED
- set today to current date
- set lastTriggeredNewSeconds to time of today -- TIME OF DAY IN SECONDS SCRIPT IS EXECUTING BECOMES THE NEW LAST TRIGGERED SECONDS
- set lastTriggeredFile to "~/Documents/SecuritySpy/lastTriggeredLog.txt" -- TEXT FILE TO STORE LAST TRIGGERED DATA
- set lastTriggeredList to every paragraph of (do shell script "cat " & lastTriggeredFile) -- READ TEXT FILE INTO LIST
- do shell script "echo " & lastTriggeredNew & " > " & lastTriggeredFile -- WRITE NEW LAST TRIGGERED TO FIRST LINE OF TEXT FILE
- do shell script "echo " & lastTriggeredNewSeconds & " >> " & lastTriggeredFile -- WRITE NEW LAST TRIGGERED SECONDS TO LAST (2ND) LINE OF TEXT FILE
- set lastTriggered to first item of lastTriggeredList -- PLACE LAST TRIGGERED FROM FIRST ITEM OF LIST INTO VARIABLE
- set lastTriggeredSeconds to last item of lastTriggeredList -- PLACE LAST TRIGGERED SECONDS FROM LAST(2ND) ITEM OF LIST INTO VARIABLE
- -- if idle
- tell application "SecuritySpy"
- -- lastTriggered
- set lastTriggeredDisplaySeconds to (lastTriggeredSeconds + keepLastTriggeredTime) -- Display lastTriggered until delay
- if lastTriggered is not equal to camNumber and lastTriggeredDisplaySeconds > lastTriggeredNewSeconds then
- add full screen camera number lastTriggered
- set today to current date
- set nowSeconds to time of today -- TIME OF DAY IN SECONDS NOW
- repeat while lastTriggeredDisplaySeconds > nowSeconds
- delay 0.5
- set today to current date
- set nowSeconds to time of today -- TIME OF DAY IN SECONDS NOW
- end repeat
- set repeatCount to 4
- set lastTriggeredMeas1 to (get motion camera number lastTriggered)
- delay 0.25
- set lastTriggeredMeas2 to (get motion camera number lastTriggered)
- set lastTriggeredMotionAvg to ((lastTriggeredMeas1 + lastTriggeredMeas2) / 2)
- repeat while lastTriggeredMotionAvg > motionThreshold or repeatCount < 3
- delay 1
- set lastTriggeredMeas1 to (get motion camera number lastTriggered)
- delay 0.25
- set lastTriggeredMeas2 to (get motion camera number lastTriggered)
- set lastTriggeredMotionAvg to ((lastTriggeredMeas1 + lastTriggeredMeas2) / 2)
- set repeatCount to repeatCount + 1
- end repeat
- remove full screen camera number lastTriggered
- end if
- -- camNumber
- set today to current date
- set nowSeconds to time of today -- TIME OF DAY IN SECONDS NOW
- set camNumberDisplaySeconds to (lastTriggeredNewSeconds + activeKeepTime) -- Display camNumber until delay
- repeat while camNumberDisplaySeconds > nowSeconds
- delay 0.5
- set today to current date
- set nowSeconds to time of today -- TIME OF DAY IN SECONDS NOW
- end repeat
- set repeatCount to 1
- set camNumberMeas1 to (get motion camera number camNumber)
- delay 0.25
- set camNumberMeas2 to (get motion camera number camNumber)
- set camNumberMotionAvg to ((camNumberMeas1 + camNumberMeas2) / 2)
- repeat while camNumberMotionAvg > motionThreshold or repeatCount < 4
- delay 1
- set camNumberMeas1 to (get motion camera number camNumber)
- delay 0.25
- set camNumberMeas2 to (get motion camera number camNumber)
- set camNumberMotionAvg to ((camNumberMeas1 + camNumberMeas2) / 2)
- set repeatCount to repeatCount + 1
- end repeat
- remove full screen camera number camNumber
- remove full screen
- exit full screen mode
- end tell
- end run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement