Ich versuche, den Himbeer-Pi mit meiner Webcam als Bewegungserkennungs-CCTV einzurichten, der die Videos mithilfe von Jeremy Blythes Skript auf Google Drive hochlädt
Ich habe Motion, die richtig funktioniert, und das Python-Skript wird ausgeführt, wenn ich es vom Terminal aus teste.
Das Skript wird jedoch nicht ausgeführt, wenn ich es der Option on_movie_end in motion.conf hinzufüge.
Das Skript, das ich in der Datei verwende, ist
On_Movie_End /etc/motion/uploader.py /etc/motion/uploader.cfg %f
Ich habe auch versucht, das on_movie_end dazu zu bringen, ein Bash-Skript auszuführen, das das Python-Skript ausführt, und dies funktioniert auch nicht. Ich bin neu in Linux, aber nicht ganz sicher, ob ich es richtig habe.
Das Skript lautet:
#!/bin/bash
VIDEO=$1
/etc/motion/uploader.py /etc/motion/uploader.cfg VIDEO
In motion.conf /etc/motion/uploaderscript.sh% f
scripting
python
raspberry-pi
motion
DanBrum
quelle
quelle
/usr/bin/python /etc/motion/uploader.py /etc/motion/uploader.cfg VIDEO
. Oder überprüfen Sie, ob Python Binary in einem anderen Verzeichnis installiert ist, und ändern Sie die obige Zeile./etc/motion/uploader.py /etc/motion/uploader.cfg $VIDEO
Antworten:
Überprüfen Sie die folgenden Punkte:
Alle Beispiele, die ich gesehen habe, wurden
on_movie_end
anstelle von verwendetOn_Movie_End
. Versuchen Sie also zuerst, die Kleinbuchstabenversion zu verwenden.Überprüfen Sie, ob beide Skripte über Ausführungsberechtigungen verfügen. Wenn nicht, fügen Sie es hinzu:
Leiten Sie den stderr des Python-Skripts in eine Datei um. Das kann helfen, einen Fehler zu erkennen. Bearbeiten Sie die .sh-Datei entsprechend (beachten
$VIDEO
Sie Folgendes : Es ist die richtige Methode, um auf eine Variable in bash zu verweisen):quelle
Ich konnte immer noch nicht herausfinden, wie man ein Python-Skript aus Bewegung spielt. Stattdessen führe ich einfach ein Bash-Skript aus, das eine Textdatei erstellt. Beim Start führt das eigentliche Python-Skript eine while-Schleife aus, um zu überprüfen, ob die Textdatei vorhanden ist, und führt den Rest des Skripts aus, sobald dies der Fall ist.
quelle
Diese Konfiguration funktioniert bei mir:
Natürlich muss das Skript über die richtigen Berechtigungen verfügen, um vom Bewegungsprozess ausgeführt zu werden. Weitere Details zur Konfiguration finden Sie in den Motion Docs:
https://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions
quelle