Posts by ReinhardT

    Hallo meigrafd,


    es scheint jetzt zu funktionieren, ich starte das Programm jetzt mit Crontab.


    Durch Angabe des absoluten Pfades umgeht man ggf PATH Probleme.

    Das scheint das Hauptproblem gewesen zu sein, ich habe ein Bild im Stammverzeichnis der SD Karte gefunden. Ich nahm an, das die Kamera nicht funktioniert, aber sie hat die Bilder woanders abgelegt und über Telegram wurde jeweils das Bild von /home/pi gesendet.


    Ich hab den Code nicht ausprobiert, stammt aus einem python3 Script, könnte sein das es damit zu tun hat - notfalls nimmst du erst mal die betroffenen Zeilen raus solange bis es geht

    Das schau ich mir Morgen in Ruhe an.


    Vielen Dank und frohe Ostern!

    Dann nimmste die Zeile server_socket.listen(0) raus und probierst mal bisschen selber rum

    Hatte ich gemacht, dann kam aber ein andere Fehler. Ich will dich auch nicht den ganzen Tag nerven, ist schließlich Ostern.


    Ich muß mich erstmal mehr mit den Grundlagen beschäftigen, da hapert es bei mir.


    Auf jeden Fall ganz herzlichen Dank und frohe Ostern! :danke_ATDE:

    Du hast natürlich Recht, das Programm lief im Hintergrund.


    Jetzt wird der Fehler ausgegeben:

    Code
    pi@raspberrypi:~ $ python /home/pi/LS_s.py
    Traceback (most recent call last):
      File "/home/pi/LS_s.py", line 21, in <module>
        server_socket.listen(0)
      File "/usr/lib/python2.7/socket.py", line 228, in meth
        return getattr(self._sock,name)(*args)
    socket.error: [Errno 95] Operation not supported
    Exit.
    pi@raspberrypi:~ $

    Und was spricht dagegen diese Variante zu verwenden?

    Gar nichts.


    Danke, das du dir so viel Mühe gibst!


    Wenn ich dein Programm in Idle starte, kommt diese Fehlermeldung:


    Ich stelle mich sicher wirklich ungeschickt an, ist eventuell dem Alter geschuldet. :(

    Wenn ich das Programm mit dem Befehl:


    python /home/pi/LS_s.py &


    in der rc.locale starte, dann funktioniert der Autostart:


    Code
    pi@raspberrypi:~ $ ps -ef | grep python
    root       326     1  0 11:20 ?        00:00:02 python /home/pi/LS_s.py
    pi         804   784  0 11:26 pts/0    00:00:00 grep --color=auto python
    pi@raspberrypi:~ $

    Allerdings funktioniert dann die Kamera nicht.

    Das Programm empfängt zwar über UDP die Daten vom anderen Raspberry und sendet per Telegramm auch ein Bild, es ist aber ein alter Bild, es wird kein Neues aufgenommen.

    Hallo meigrafd,


    habe mit alles noch mal angeschaut, die Berechtigungen sind gesetzt, in der Pfadvariablen steht alles drin und ich habe die Dateien auch nur direkt auf dem Raspberry mit idle erstellt bzw. bearbeitet.

    Das Programm läuft auch tadellos und tagelang, wenn ich es in idle starte.

    Übrigens ist Socket doch nicht überflüssig, ich empfange damit vom anderen Raspberry, der die Lichtschranke überwacht, das Signal zum Schießen des Fotos.

    Schau dir doch bitte mal die Ausgabe im Terminal an, gleich zum Beginn des Treads, da werden die Fehler ja schon mach den 180 Sekunden Zeitverzögerung angezeigt:


    Code
    exit 0
    + exit 0
    + /bin/sleep 180
    pi@raspberrypi:~ $ + /home/pi/LS_s.py
    /home/pi/LS_s.py: 1: /home/pi/LS_s.py: #!/usr/bin/env: not found
    /home/pi/LS_s.py: 2: /home/pi/LS_s.py: import: not found
    /home/pi/LS_s.py: 3: /home/pi/LS_s.py: import: not found
    /home/pi/LS_s.py: 4: /home/pi/LS_s.py: import: not found
    /home/pi/LS_s.py: 6: /home/pi/LS_s.py: Syntax error: "(" unexpected
    pi@raspberrypi:~ $

    In der 5. Zeile findet es scheinbar die Datei "env" nicht, sie ist aber vorhanden.


    Gruß Reinhard

    Es ist etwas verwirrend wenn du manuell /etc/rc.local ausführst und die Ausgabe postest... Zumal du /etc/rc.local dem Interpreter sh übergibst... Ist die Datei selbst ausführbar? Wenn nicht = Fail.

    Das hatte ich nur mal versucht, weil ich es in der Anleitung gelesen hatte, wie man ein Programm automatisch startet.



    /bin/sleep 180 && /home/pi/LS_s.py ist ebenfalls etwas komisch... Wieso möchtest du /etc/rc.local um 180 Sekunden verzögern bevor dein Python Script ausgeführt wird?

    Die Zeitverzögerung war auf den anderen Raspberry, also den Client, notwendig, ohne hat es nicht funktioniert , weil scheinbar irgendwas noch nicht bereit war. Mit funktioniert es auf diesem einwandfrei und ich hatte es einfach übernommen.

    Die Fehlermeldung sieht zudem so aus als würde das Script nicht vom Shebang verarbeitet werden... Schon mal versucht bei Ausführung die Datei direkt dem Interpreter zu übergeben? (die Zeile über deiner künstlichen Verzögerung)

    Ansonsten: Shebang direkt auf den Interpreter setzen.

    Probiere ich gleich mal.

    Das Script selbst sieht ebenfalls komisch aus... Welchen Zweck erfüllt socket?

    Kann raus, muß ich alles noch bereinigen.



    Und zu guter letzt: Du setzt nicht überall den absoluten Pfad zur bild.jpg. Das kann dir irgendwann zum Verhängnis werden.

    Korrigiere ich.

    Ich gehe alles noch mal durch, aber wie schon geschrieben, die Programme laufen auf beiden Raspberrys schon tagelang einwandfrei. Nur auf dem Zero klappt der Autostart nicht.


    Danke für die Antwort!


    Gruß Reinhard

    Hallo,


    ich habe einen Raspberry B und einen Raspberry Zero W und diese kommunizieren

    miteinander über UDP. Das funktioniert auch einwandfrei, allerdings bekomme ich es nicht

    hin, das Programm auf dem Zero per Autostart zu starten.

    Ich habe es genau so gemacht wie auf dem Raspberry B:

    Erste Zeile im Programm: #!/usr/bin/env python

    Der Eintrag in der rc.local: /bin/sleep 180 && /home/pi/LS_s.py &

    Und die Datei startbar gemacht: sudo chmod +x /home/pi/LS_s.py


    Starte ich die rc.local kommen folgende Fehlermeldungen:


    Das ist das Programm:

    Ist nicht schön, läuft aber tagelang ohne Probleme und tut, was es soll.


    Woran könnte das liegen?


    Gruß Reinhard

    Hallo,


    stimmt, die Informationen waren sehr spärlich.


    falls Du die originale Raspberrypi Kamera hast:


    Code
    raspivid -t 0 -o

    Tut sich leider nichts, wenn ich den Code im Terminal eingebe. Er führt den

    Befehl aus, aber es erscheint kein Ausgabefenster.


    Edit: Ich greife nur über VNC auf den PI zu, kann es daran liegen?


    Es handelt sich um den Raspberry Zero W und die Kamera V2.1.


    Inzwischen habe ich den Focus eingestellt, ich habe einfach genügend Einzelbilder gemacht.

    Bin erstaunt, das es soviel gebracht hat, der Focus war auf sehr kurze Distanzen eingestellt.


    Danke!


    Gruß Reinhard

    Hallo,


    es lag wirklich einfach an sleep(5) was da völlig sinnfrei drin was und die Aufname verzögert hat.


    Abgesehen davon, dass dein Programm inkl. Stil nicht wirklich an Schönheit glänzt, frag ich mich, warum du ein ``time.sleep(5)`` einbaust und zugleich dich frägst, warum dein Programm 5 Sekunden und mehr braucht...

    Genau, bootsmann, ich habe es nur nicht begriffen und dachte du meinst den Befehl im anderen Modul.

    Das kommt davon, wenn man sich Programmteile zusammenkopiert und nicht richtig versteht bzw. nicht richtig anschaut.

    Auf jeden Fall funktioniert es und ich gelobe Besserung.


    Schönes Forum hier, bisher wurde mir bei jedem Problem geholfen, vielen Dank!

    Könnte es ein, daß bootsmann sich auf das sleep(5) im 2. Listing bezogen hat? Das steht doch m.E. zwischen conn.recv und bot.sendMessage und führt damit zwangsläfug zur beobachteten Verzögerung. Oder übersehe ich da was?

    Ich sehe es gerade, das gehört da absolut nicht hin. Ich hatte zwischendurch alles Mögliche ausprobiert, kann ich mir nicht erklären.

    Muß noch arbeitsmäßig was erledigen und dann kümmere ich mich darum.


    Danke!

    Hallo noisefloor,

    Da finde ich 5 Sekunden jetzt nicht übermäßig viel, zumal der Rapsi keine I/O Rakete ist.

    Wahrscheinlich hast du recht, ich muß mir dann was Anderes einfallen lassen.



    Das unschöne `sleep(5)` kannst du eliminieren, in dem du nur auf eine Flankenwechsel am GPIO-Pin reagierst, nicht auf "high" oder "low".

    Mir geht es darum, das die Lichtschranke generelle eine Weile gesperrt ist, wenn zB. eine Gruppe

    durchläuft. Die 5 Sekunden sind ein willkürlicher Wert, er wäre in der Praxis eher höher, so

    30 Sekunden vielleicht, wie könnte man das ohne sleep lösen?


    Gruß Reinhard

    Hallo Bootsmann,


    danke für die Antwort!

    Abgesehen davon, dass dein Programm inkl. Stil nicht wirklich an Schönheit glänzt, frag ich mich, warum du ein ``time.sleep(5)`` einbaust und zugleich dich frägst, warum dein Programm 5 Sekunden und mehr braucht...

    Ich bin leider absoluter Anfänger, das nächste Programm wird besser.

    Time.sleep hat aber nicht das geringste mit dem Problem zu tun, ich habe es eingefügt

    damit nicht ständig Nachrichten kommen wenn einer in der Lichtschranke steht und die

    geradeso unterbricht.

    Die Nachricht an den anderen pi wird ja sofort abgesetzt und es geht um die Reaktionszeit danach.

    Hallo,


    ich habe zwei Raspberrys miteinander über Winsock verbunden.

    Einer überwacht eine Lichtschranke und wenn diese unterbrochenwird soll der

    Andere ein Photo machen und mir es über Telegram schicken.

    Das Problem ist, der an der Lichtschranke reagiert zwar schnell und schickt

    mir eine Nachricht fast ohne Verzögerung, der Andere schickt das Bild aber mit bis

    zu 5 Sekunden Zeitverzögerung.

    Auf dem ersten, der an der Lichtschranke läuft das Programm:

    Und auf dem Anderen dieses:

    Was läßt sich denn da verbessern und was ist den da eine realistische Reaktionszeit?

    Es wäre sicher besser gewesen nur Einen einzusetzen, aber auf Grund der baulichen Gegebenheiten

    wäre das schwierig und außerdem will ich ja auch noch was lernen (;


    Gruß Reinhard

    Ich habs mal probiert, es über eine System Unit einzurichten, dann wirds gleich neu gestartet wenns abka...crasht, aber sinnvoll ist DAS nicht. Ich nehm lieber was anderes...

    Was würdest du denn empfehlen, wäre gut wenn ich auf das gleiche Display zugreifen kann, das ich aus sehe, wenn ein Monitor dran ist?

    Das Seltsame ist, ich kann jetzt alles Möglichen machen die Verbindung steht.

    Sobald ich aber eine der Python IDEs aufrufe und nur das Menü File anklicke,

    wird die Verbindung sofort beendet.