Posts by Tillmario

    Ich würde dir gerne noch erklären, warum ich es falsch verstanden habe.

    Doch so passt es. Zuvor hast du es aber nicht so beschrieben:

    Ich haber aber das geschrieben.

    Dementsprechend müsste ich vermutlich camera = picamera.PiCamera() etc. mit in die Dauerschleife reinziehen.

    Wenn ich an's Ende der Dauerschleife aus Beitrag #1 beispielsweise button.close() schreibe, weiß das Skript am Anfang der Dauerschleife doch nicht mehr was es ist. Also muss ich es doch wohl mit hineinziehen.

    Das habe ich damit gemeint (etc.) und daher meine Schlussfolgerung.

    Davon abgesehen wurde hier auch schon was zu os.path.join() geschrieben

    Das habe ich ja versucht. Auch gemacht.

    1. camera.start_recording(os.path.join(filePath, routine, datetime.now().strftime("%Y.%m.%d"), end))


    Du sprichst sicher von end = 'Video_' + str(i+1) + '.h264'. Ich habe es leider nicht geschafft das zusammenzufügen ohne, dass ein "/" zwischen jedem Term steht.

    Nein. Das .close() gibt die Ressource wieder frei, dh die Werkseinstellung des jeweiligen GPIO's wird gesetzt.

    achso, ich hatte es erst so verstanden, dass ledR = LED(16) durch ledR.close() "rückgängig" gemacht wird und man es wieder neu definieren müsse. Aber das scheint ja dann nicht zu passieren ^^


    Ich habe mein Skript, so wie ich es bisher kann, einmal beispielhaft aufgeschrieben. Mit dem schließen ist so alles in Ordnung, oder?


    Soll ich es lieber eventgetrieben schreiben oder soll ich es einfach so lassen, weil es ja einfach von Vorne bis Hinten durchlaufen soll und dann ist gut.

    ich hatte jetzt alternativ an eine definition gedacht:

    def main(videos, pause, routine): ...

    und danach main(3,20,bb1) 

    auf Knopfdruck warten

    main(4,25,bb2) ...

    kannst du mir sagen für welche meiner drei Fragen das nein gilt und für welche evlt. ja


    Ich schließe z.B. das DigitalOutputDevice, damit es nicht zu Prolemen kommt, wenn in einem anderen Skript dasselbe DigitalOutputDevice am selben Pin genutzt wird, richtig?

    Das bedeutet für mein Skript aus Beitrag #1, dass ich am ende camera.close() und Dunkelheit.close() hinzufügen sollte.

    Dementsprechend müsste ich vermutlichcamera = picamera.PiCamera() etc. mit in die Dauerschleife reinziehen.

    Sehe ich das richtig, dass es bei OutputDevice und LED kein .close() gibt. Schließe ich das dann gar nicht?



    Sehr gerne eine Antwort a la:

    1.ja 2.nein 3.nein 4.doch


    und dann mache ich mich auf neu zu überlegen ;)

    Was es damit auf sich hat kannst du der Doku entnehmen

    Also, ich versuche mal das zu verstehen. Ich schließe z.B. das DigitalOutputDevice, damit es nicht zu Prolemen kommt, wenn in einem anderen Skript dasselbe DigitalOutputDevice am selben Pin genutzt wird, richtig?


    Das bedeutet für mein Skript aus Beitrag #1, dass ich am ende camera.close() und Dunkelheit.close() hinzufügen sollte. Dementsprechend müsste ich vermutlichcamera = picamera.PiCamera() etc. mit in die Dauerschleife reinziehen.


    Sehe ich das richtig, dass es bei OutputDevice und LED kein .close() gibt. Schließe ich das dann gar nicht?

    Gruß, Tom

    Aber ob die von Dir gewählte Methode überhaupt die richtige ist?

    Ja, das weiß ich auch nicht. ^^ Mir wurde hier im Forum empfohlen für ein Relais DigitalOutputDevice zu nehmen.


    Hätte ich das nicht tun sollen?

    schließen tuste das auch nirgends - auch hier hast du noch Nachholbedarf.

    schließen? =O Verstehe ich nicht. Ich hatte das so verstanden, dass ich auf das Relais Spannung gebe, damit der Kontakt da ist und Strom durchfließt. Und eben kein Strom fließt wenn am GPIO-Pin keine Spannung anliegt.

    Was muss ich denn nun noch schließen?

    Mit gpiozero geht das. Die `Button` Klasse kennt `button.when_pressed = do_something` Dann wird beim Druck auf den Taster die Funktion `do_something` aufgerufen. Ist aber auch in der Doku von gpiozero erklärt.

    Achso, ja das kenne ich schon. Ich dachte "Event-getrieben" wäre noch was anderes ^^

    Dann ersetze ich einfach button.wait_for_press() mit button.when_pressed() erstelle vorher ein def und experimentiere ein bisschen damit rum.


    Danke nochmal. Gruß, Tom

    Danke auch, dass du den Button zu lange drückst und der immer noch gedrückt

    Oh man, natürlich ^^ Oops.

    `Dunkelheit` als Variablenname ist ein bisschen schräg - zumal man Dunkelheit nicht an schalten kann... Warum nennst du die Variable nicht `lampe` - treffender.


    Hatte ich vorher auch, aber dann war lampe.on() = Licht aus und lampe.off() = Licht an. Daher erschien es mir so logischer. Und so konnte ich gewissermaßen tatsächlich die Dunkelheit "anschalten" :D
    Ich habe die Lampe am Relais so angeschlossen, dass es im "Grundzustand" nicht verbunden ist. Da mir auch das so am logischsten schien, weil die Lampe die meiste Zeit aus ist.

    Noch besser: kein Polling, sondern Event-getrieben programmieren.

    Das sagt mir leider noch nichts :saint:Bin noch am lernen. Mit was für commands programmiere ich denn event-getrieben? Dann kann ich mal googlen und mich weiterbilden. Ist das Stichwort: Threading? ^^ Sonst weiß ich es noch nicht. Wobei ich threading auch noch nicht kann :P


    Danke für die Hilfe.

    Gruß, Tom

    Hallo,


    ich wollte mir ein Skript schreiben, dass bei Knopfdruck ein Video aufnimmt, bei erneutem Knopfdruck das Video stoppt und dann, durch eine Dauerschleife, beim nächsten Knopfdruck wieder ein Video aufnimmt.

    Aber leider wird beim zweiten Knopfdruck das erste Video beendet und gleichzeitig das zweite gestartet. Kann mir jemand einen Tipp geben, was ich falsch gemacht habe?

    Gruß, Tom

    ich wollte dir jegendlich eine Korrekte Antwort geben,

    Und ich bedanke mich für die Antwort. Ich wollte lediglich zum Ausdruck bringen, dass Du dir die Mühe mit dem anderen was du geschrieben hast nicht hättest machen müssen, da es weder etwas war, das ich nicht verstanden habe, noch etwas wonach ich gefragt habe.

    Also noch mal:

    Ja man kann "motion" dazu zwingen ein Video auf zu nehmen auch wenn kein Event eingetreten ist. Nein es gibt dann kein event_start, da ja kein Event ausgelöst werden kann weil die Kamera nicht der Auslöser war.


    Sorry aber plumper gehts nicht.

    Auch das hier ^^ Nur, weil ich nochmal auf den Thread geantwortet habe, heißt doch nicht, dass du es nochmal erklären musst. Es war doch schon geklärt. Und ich habe doch auch gar nicht nochmal nachgefragt. Dieses "Sorry aber plumper gehts nicht" hört sich so an, als hätte ich verlangt, dass Du mir das nochmal genauer erklären sollst.

    Nein, Tillmario, ich glaube, es haben schon alle verstanden, was Du willst.

    :shy: Beweis durch Gegenbeispiel vom Post vor deinem:

    Dann schreibe doch ein einfaches Script, welches mittels avconv o.ä. ein Video aufnimmt, wenn der Sensor eine Bewegung wahrnimmt


    Zitat vor jenem:

    Ein solches Skript existiert und läuft schon lange. Darum ging es in diesem Thread auch nicht.

    ____

    Deine Kamera hat vielleicht keinen IR-Filter, kann aber noch lange nicht im Dunkeln sehen

    Meine Kamera kann im dunkeln sehen.

    Eben, weil sie ein IR-Licht hat. Verstehe aber auch nicht warum du es ansprichst.



    Zum Thema: Danke, ich weiß nun bescheid und es bedarf keiner weiteren Erklärungen. :danke_ATDE:

    Gruß, Tom

    Wir reden gewaltig an einander vorbei. Ich habe diese Anfrage nicht gestellt um zu erfahren wie ich meine Konfiguration zum laufen bekomme. Die läuft bereits. Sondern nur um zu erfahren ob dieser spezielle, von mir beschriebene Fall möglich wäre.


    Hier werden Romane geschrieben, die total am Thema vorbeigehen.

    Merkste's? Wenn die Kamera im dunkeln nichts sieht, wie soll die dann Bewegung wahrnehmen? Und wie willst du dann überhaupt auf einem Foto/Video etwas selber erkennen können? Schon mal mitm Smartphone im dunklen ein Selfie gemacht?

    Das ist gegeben. Es ist auch nicht von mir angenommen worden, dass das geht. Demnach verstehe ich nicht warum du es überhaupt erwähnst, als würde ich es nicht wissen.

    Für den PIR-Sensor ein Script einrichten was das gleiche tut. Dafür brauchst du MOTION nicht.

    Ein solches Skript existiert und läuft schon lange. Darum ging es in diesem Thread auch nicht.

    Alternativ kaufst du dir eine RaspiCam die auch im dunklen sehen kann

    Meine Kamera kann im dunkeln sehen. Auch darum ging es in diesem Thread nicht.

    Wieso Alternativlösung?

    Alternativlösung, weil ich einfach eine Frage gestellt habe und die Anwort war, warum ich es nicht einfach anders mache. Deswegen Alternative.

    Alles, was du schreibst, setzt voraus, dass ich überhaupt weiß, was motion ganz genau ist. Für mich war es einfach ein Programm was mit der Kamera Videos aufnimmt.


    Was ich wissen wollte kann ich ja nun aber aus deiner Antwort herauszulesen: "Nein, das geht so nicht". Danke, jetzte weiß ich bescheid.

    Wie es anders geht wusste ich selber, deshalb habe ich danach nicht gefragt.


    Gruß, Tom

    warum lässt Du den Bewegungsmelder nicht einfach das Licht anschalten und motion den „Rest“ erledigen


    Hallo, ja das wäre möglich und ist auch eine fast optimale Lösung. (Nicht ganz optimal, da der Motionsensor, nachdem er ausgeht, anscheinend (gefühlte) 5 Sekunden keine Bewegung wahrnimmt)

    Ich bin dankbar für deine Antwort, aber es ging mir wirklich nicht um Alternativlösungen, wie ich es zum laufen bringen kann. Ich wollte einfach nur allgemein wissen ob es technisch möglich ist, dass das Signal, welches der Motionsensor ausgibt, nachdem wait_for_motion "anschlägt", in motion dafür sorgen kann, dass ein Video aufgenommen wird.

    Also statt "Die Kamera erkennt ein Bild" -> Aufnahme starten. "Motionsensor erkennt Bewegung" -> Aufnahme starten.


    Vielleicht habe ich es nicht präzise genug formuliert. Es ist auch völlig okay, wenn die Antwort "Nein" ist oder wenn niemand darauf eine Antwort hat aber man sollte schon bei der Frage bleiben. (Weshalb Beitrag#2 fehl am Platz ist, da es in dort verwiesenem Thread um eine andere Frage geht.)


    Gruß, Tom

    Hallo,

    wenn ich im LXTerminal raspivid -o /home/pi/Spycam/Video.h264 eingeben, wird ein Video in home/pi/Spycam gespeichert. Wenn ich es in python in einer neuen Datei eingebe, speichere und ausführe, wird es nicht gespeichert.

    Es kommt dann der Fehler:

    Code
    Traceback (most recent call last):
    File "/home/pi/SPYCAM.py", line 10, in <module>
    raspivid -o /home/pi/Spycam/Video.h264
    NameError: name 'raspivid' is not defined

    Ich muss doch bestimmt irgendwie raspivid importieren, oder? Falls ja wäre die Frage, aus welchem modul ich raspivid importieren muss. In der documentation habe ich nichts gefunden.

    Weiß jemand Rat?


    Gruß, Tom

    lass mal das %f weg. In der Doku (Links von meigrafd) und in der Issue #357 steht es nicht dabei.

    also das steht in der motion.conf

    Code
    # Command to be executed when a movie file (.mpg|.avi) is created. (default: no$
    # To give the filename as an argument to a command append it with %f
    on_movie_start %f /home/pi/Licht_an.py

    Ich probiere es gleich trotzdem mal ohne aus.


    Ein anderer Gedanke:

    on_movie_start ist doch richtig oder? es gäbe ja auch noch on_event_start.


    (d)rwxr-xr-x pi pi und

    (d)rwxr-xr-x roor root

    sind eben zwei verschiedene Paar Schuhe.


    Das -w- Schreibrecht des Eigentümers erlaubt nicht nur das Ändern eines File(inhaltes), sondern auch das Erstellen eines Files und das Schreiben (Ausgeben) auf ein Device (das ja auch nur ein iNode im Filesystem ist).


    Und so ein Wunderwuzzi ist sudo-root auch nicht, wenn er keine Schreibrechte aus dem übergeordnetem Verzeichnis hat.

    war das an mich gerichtet? Wenn ja was soll ich machen? Rechte ändern?


    Gruß, Tom

    Habe ich das so richtig verstanden?

    Okay, so scheint es noch nicht gestimmt zu haben.

    Die Dateien licht_an.py und licht_aus.py tun definitiv was sie sollen.

    Meinen Vermutungen:

    1. Ich habe in der Zeile on_event_start %f /etc/motion/licht_an.py irgendetwas falsch geschrieben, irgendetwas nicht geschrieben?

    2. Die Datei muss in den Ordner /etc/motion/ um zu funktionieren. Ich habe aber nicht die Rechte sie dahinzuschieben.


    Hat jemand einen Tipp?


    Gruß, Tom

    Wenn du noch nicht alles zusammengelötest hast, reicht es nur den Display-Adapter anzuschliessen. Der arbeitet auch bei 3,3V.

    Nun solltest du eine Adresse bekommen.

    Jau, so zeigt er etwas an. Also ist vermutlich entweder der Logik Level Konverter defekt. Oder durch die Tatsache, dass ich ihn nur in's Breadboard gesteckt und nicht gelötet habe, haben evtl. nicht alle Pins einen Kontakt.


    Dann probiere ich mal es zu löten. Danke nochmal für diesen Tipp.