SHARE
TWEET

-- SecuritySpy "hot screen" script v1.0 (modified .1)

a guest Nov 3rd, 2014 231 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- SecuritySpy "hot screen" script v1.0 (modified .1)
  2. -- 2014/11/01 John Todd jtodd@loligo.com
  3. -- modfied 2014/11/03 ncowles@me.com
  4. --
  5. -- Load this script into AppleScript Editor, and save as an scpt file to:
  6. -- ~/Documents/SecuritySpy/Scripts
  7. --
  8. -- Then for all your cameras in SecuritySpy, attach this
  9. -- script as an "action".
  10. --
  11. -- I leave my SSpy machine in "full grid" mode when it is idle,
  12. -- so I can see a quick view of all the cameras. However, when
  13. -- there is motion detected, I'd like to see just those cameras that
  14. -- are having motion events. This focuses in on the cameras that
  15. -- are in "motion detect" mode, and shows them in full screen. When
  16. -- the events are completed, it goes back to full grid.
  17. --
  18. -- Improvements welcome.
  19.  
  20. on run arg
  21.         set idleTime to (do shell script "ioreg -c IOHIDSystem | perl -ane 'if (/Idle/) {$idle=(pop @F)/1000000000; print $idle,\"\";last}'") as integer
  22.        
  23.         if idleTime > 30 then
  24.                 do shell script "~/Documents/SecuritySpy/SleepDisplay -w" -- WAKE DISPLAY ASAP
  25.                
  26.                 tell application "SecuritySpy"
  27.                         activate
  28.                 end tell
  29.         end if
  30.        
  31.         set camNumber to item 1 of arg
  32.         set totalCams to 5 -- set this to the number of cameras in your system
  33.         set activeCams to totalCams - 1
  34.         set currentCam to 1
  35.         set recording to ""
  36.        
  37.         set camNameToSay to item 2 of arg -- PLACE CAMERA NAME FROM SECURITYSPY INTO VARIABLE
  38.        
  39.        
  40.         tell application "SecuritySpy"
  41.                 enter full screen mode
  42.                 add full screen camera number camNumber -- immediately show MD camera (no test needed)
  43.         end tell
  44.        
  45.        
  46.         tell application "System Events" -- SAY NAME OF TRIGGERED CAMERA ASAP
  47.                 tell process "Finder"
  48.                         say camNameToSay
  49.                 end tell
  50.         end tell
  51.        
  52.         tell application "SecuritySpy"
  53.                
  54.                 repeat while activeCams > 0 -- as long as there are any cams doing MD, loop
  55.                        
  56.                         set activeCams to totalCams - 1
  57.                         repeat until currentCam > totalCams -- loop on all cameras
  58.                                
  59.                                
  60.                                 -- if we try to look at a motion detection file for a camera
  61.                                 -- that isn't recording an MD file, it throws an error. Trap
  62.                                 -- the error and use that error to indicate that this camera should
  63.                                 -- not be shown on the "hot screen".
  64.                                 try
  65.                                         set recording_test to (get current MD file camera number currentCam)
  66.                                 on error errMsg number errorNumber
  67.                                         remove full screen camera number currentCam
  68.                                         set activeCams to (activeCams - 1)
  69.                                         set recording_test to null
  70.                                 end try
  71.                                
  72.                                
  73.                                 -- if there is currently an MD file being recorded, then
  74.                                 -- we want to see it on the hot screen.
  75.                                 if (recording_test is not equal to null) then
  76.                                         add full screen camera number currentCam
  77.                                         set activeCams to (activeCams + 1)
  78.                                 end if
  79.                                
  80.                                 set currentCam to (currentCam + 1) -- increment counter for loop
  81.                                
  82.                         end repeat
  83.                         set currentCam to 1 --aaaand wash, rinse, repeat.
  84.                        
  85.                         delay 1 -- pause for a bit to give the machine a break
  86.                 end repeat
  87.                
  88.                
  89.                 -- Now that we're out of the motion detection events,
  90.                 -- set the screen back to showing all cameras in a grid, and exit.
  91.                
  92.                 set currentCam to 1
  93.                 repeat while currentCam ≤ totalCams
  94.                         add full screen camera number currentCam
  95.                         set currentCam to currentCam + 1
  96.                 end repeat
  97.                
  98.         end tell
  99.        
  100. end run
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top