7

I'm trying to set up the raspberry pi with my webcam as a motion detecting cctv that uploads the videos to google drive using Jeremy Blythe's script

I have motion working correctly and the python script runs when I test it from the terminal.

However the script doesn't run when I add it to the on_movie_end option in motion.conf.

The script I am using in the file is

On_Movie_End /etc/motion/uploader.py /etc/motion/uploader.cfg %f

I have also tried getting the on_movie_end to run a bash script that runs the python script and this doesn't work either. I am new to linux though so not entirely sure I have it correct.

The script is:

#!/bin/bash
VIDEO=$1 
/etc/motion/uploader.py /etc/motion/uploader.cfg VIDEO

In motion.conf /etc/motion/uploaderscript.sh %f

  • Perhaps you should do /usr/bin/python /etc/motion/uploader.py /etc/motion/uploader.cfg VIDEO. Or check if python binary is installed in other directory and change the above line. – Luis Dec 21 '12 at 11:20
  • 1
    in bash you should have to use variable as /etc/motion/uploader.py /etc/motion/uploader.cfg $VIDEO – Rahul Patil Dec 21 '12 at 11:22
  • neither of those solutions work but I suspect the on_movie_end is not being called as I tried to get it to just open leafpad to see if that was working and it didn't – DanBrum Dec 21 '12 at 12:39
1

Check the following points:

  1. All the examples I saw use on_movie_end instead of On_Movie_End. So try using the lowercase version first.

  2. Check if both script have execution permission. If not add it:

    sudo chmod +x /etc/motion/uploader.py
    sudo chmod +x /etc/motion/uploaderscript.sh
    
  3. Redirect the stderr of the python script to a file. That can help to catch a error. Edit the .sh file to match this (note the $VIDEO: it is the correct way to reference a variable in bash):

    #!/bin/bash
    VIDEO=$1 
    /etc/motion/uploader.py /etc/motion/uploader.cfg $VIDEO &> /tmp/on_movie_end.log
    
0

I still haven't been able to figure out how to play a python script from motion. Instead, I just run a bash script which creates a text file. On start-up, I have the actual python script running a while loop, checking to see if the text file exists, and will run the rest of the script once it does.

0

This configuration works for me:

on_movie_end /usr/bin/python /home/myuser/Scripts/MyScript.py

Of course, the script must have the correct permissions to be executed by the motion process. More details on the configuration can be found in the Motion Docs:

https://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.