Posts by noisefloor

    Hallo,

    Quote

    Ist sowas zu einfach, oder warum wird man in die Irre geführt??????????

    Na ja, rc.local ist seit ~10 Jahren, also seit Einführung von systemd, tot. Das existiert noch aus Gründen von Rückwärtkompatibilität, kann aber im Prinzip jederzeit raus fliegen. Abgesehen davon wird rc.local "on the fly" von systemd ausgeführt. Kann klappen, muss aber nicht. Jedenfalls hast du keine Kontrolle darüber, wann was warum ausgeführt wird und ob das dann also so funktioniert, wie man sich das wünscht. Das hat man aber alles mit einer systemd Service Unit.

    rc.local ist per se nicht falsch, aber das Pferd, dass du reitest, ist toter als tot. Oder anders: die Tipps, du die hier bekommen hast, waren schon alle richtig. Die falsche Abzweigung Richtung Irre aka rc.local hast du selber genommen. Wenn du zukünftig irgendwelche Internetseiten zum automatischen Starten von Skripten liest -> achte auf das alter. Das Internet vergißt bekanntlich nichts und es gibt viele Tipps, die vor X Jahren mal richtig waren, heute aber schlichtweg veraltet über falsch bis ggf. gefährlich sind.

    Gruß, noisefloor

    Hallo,

    Quote

    Wenn ich wüsste wie ich es hin bekomme das der Raspi automatisch beim booten das Programm startet wäre es genial.

    Über die bereits mehrfach erwähnt systemd Service Unit. Dazu gibt es etliche Threads hier im Forum. Oder eine allgemeinere Anleitung: https://wiki.ubuntuusers.de/systemd/Service_Units/

    Wenn du eine Unit schreibst du die nicht funktioniert -> hier die Unit posten, dann kann man besser helfen.

    Gruß, noisefloor

    Hallo,

    wobei die Service Unit der bessere Weg ist, weil systemd das Skript dann z.B. auch neu starten kann, falls es warum auch immer mal crashen sollte. Plus du bekommst das Logging ins Journal von systemd gratis dazu.

    Willst du das Programm wirklich immer von Hand starten oder soll das automatisch starten, wenn der Pi bootet / neu startet?

    Und braucht dein Programm wirklich Root-Rechte? Also ist das `sudo` wirklich notwendig?

    Gruß, noisefloor

    Hallo,

    JS ist jetzt auch nicht meine Glanzdisziplin, aber IMHO kann dein Skript so nicht funktionieren. Eine ID in einem HTML Dokument muss eindeutig sein - ist es bei dir aber nicht, du hast in jeder Zeile als ID "remaining time". Was gehen sollte ist über Tabellenzeilen iterieren und sich dann immer den Wert as der X-ten Zelle holen.

    Gruß, noisefloor

    Hallo,

    cron ist auch der angestaubte Weg. Stand der Dinge ist seit ca. 10 Jahren eine systemd Service Unit zum Starten von Diensten beim Systemstart (oder wenn ein Nutzer sich einloggt) oder eine systemd Time Unit zum Ausführen zu einem bestimmten Zeitpunkt. Vorteil: du hast eine viel bessere Kontrolle, wann was startet und die siehst pro Unit Logeinträge im systemd Log namens journald. Da siehst du dann auch ggf. Fehler im Skript oder die während der Ausführung aufgetreten sind.

    Wofür sind die 300 Sekunden wichtig? Darf die ersten 300 Sekunden kein Adblocker laufen?

    Ist das Skript ausführbar? Sauberer ist IMHO, wenn man im Auftrag direkt noch mit angibt, welche Shell das Skript ausführen soll.

    Gruß, noisefloor

    Hallo,

    Ongi2024 : das ganze läuft doch bei dir _intern_ im Intranet, also hinter einem Route (Fritzbox oder so) und soll _nicht_ von außen = aus dem Internet erreichbar sein, oder? Wenn ja brauchst du den Server nicht absichern - weil keiner dran kommt, der nicht in deinem Netzwerk ist. Wenn das doch von außen erreichbar sein soll, dann solltest das ziemlich anders angehen als bisher von uns vorgeschlagen.

    Gruß, noisefloor

    Also doch einen Standard-Webserver oder deinen naechsten Vorschlag ;)

    Nee, wenn das ganze im Intranet ist und es nur um die eine Datei geht, dann ist so eine Instant Webserver wie von dir vorgeschlagen wie z.B. via Python und `http.server` schon die einfachste Wahl.

    Aber es braucht dazu einige Erfahrung mit HTML, CSS, JavaScript, JSON..

    Warum? Serverseitig alles komplett rendern lassen und statisch ausliefern -> kein JavaScript, kein JSON. Was jetzt nicht heißt, dass das einfach im Sinne von einfach wäre.

    Gruß, noisefloor

    Hallo,

    Auf dem Raspi braucht es dazu einen Server. Die Primitivversion geht so:

    Code
    python3 -m http.server 80

    Das funktioniert so nicht, weil 80 ein privilegierter Port ist -> braucht Root-Rechte. Da es aber ziemlich unvorsichtig wäre, so eine Webserver auf einen privilegiertem, sollte man einen unprivilegierten Port > 1024 nehmen. Also z.B. 8001 oder 8080 oder so.

    Noch besser: einen einfachen Webserver mit flask schreiben und das File mit der flask-App ausliefern.

    Oder direkt die Auswertung auch auf dem Pi laufen lassen und über eine Weboberfläche anzeigen lassen :)

    Gruß, noisefloor

    Hallo,

    dein "Problem" ist, dass du Raspberry Pi und Raspberry Pico gleichsetzt / gleichgesetzt hat. Der Pi ist ein vollwertiger Rechner, der Pico ist in Microcontroller. Das ist nicht das gleich und nicht das selbe.

    Dein Code ist halt für den Pi (in Python) geschrieben. Das kannst du nicht 1:1 auf den Pico (unnd MicroPython) übertragen. Schon gar nicht, wenn du X externe Module nutzen willst (oder musst).

    Du könntest, wenn du den Code nicht portieren willst oder der Code gar nicht portierbar ist, einen Pi Zero nehmen, den kleinsten, aktuellen Raspi. Mit allen Vor- und Nachteilen.

    Gruß, noisefloor

    Dabei ist es essenziell, dass die Chips über Datenleitungen mit klaren 0- oder 1-Signalen angesteuert werden,

    ??? - erklär' das mal bitte. Was soll den sonst über eine Datenleitung als 0 und 1 laufen? Und ob eine Bibliothek z.B. `on` als Synonym für 1 nimmt ist doch auch sekundär.

    Ein Beispiel dafür ist die Verbindung einer Seite der LED direkt mit GND, um sicherzustellen, dass Vout nicht höher als Vcc ist. Das mmit dem Therminal print wusste ich schon,

    Nochmal ??? - wo ist denn der Zusammenhang zwischen Hardwareverdrahtung, was aus dem Pin kommt und print im Terminal?

    Ich habe eine erweiterte Version von gpiozero erstellt, die ich gpiozerixx genannt habe.

    Wo findet man die denn? Github? Gitlab? ...? Oder ist die nicht öffentlich?

    Gruß, noisefloor

    Hallo,

    Quote

    Ich möchte ein Python3 Programm beim Start vom Pi automatisch in einem Termianl ausführen.

    Heißt konkret, dass du die Ausgabe des Programms sehen willst? Also im Prinzip so, als würdest du es manuell machen? Oder soll das Programm "nur" irgendwie 1x durchlaufen, wenn du den Pi (neu) startest?

    Grundsätzlich: rc.local ist total veraltet -> nutzt man nicht mehr. cron ist eher für periodische Aufgabem und im Prinzip durch systemd und systemd Timer Units abgelöst.

    Gruß, noisefloor

    Ist es in Ordnung, diese Anpassungen zu teilen?

    Grundsätzlich musst du, wenn du Software modifizierst, die Lizenz der Ausgangssoftware beachten. Weil "deine" Software ja auf der Ausgangssoftware basiert. Wie sich das in deinem Fall mit gpiozero verhält muss du dann mal selber recherchieren.

    Ansonsten möchte ich mich auch stark __blackjack__ anschließen:

    Ich würde da ja nicht direkt an der Bibliothek herumbasteln. Das ist verwirrend wenn Du da plötzlich Sachen machst die niemand nachvollziehen kann, weil die in der tatsächlichen/unveränderten Bibliothek anders funktionieren.

    Du änderst / erweiterst das Verhalten an einigen Stellen grundlegend, aber nicht den Namen. Das liegt irgendwo zwischen ziemlich verwirrend und irreführend. Entwicklungstechnisch deutlich saubere wäre, wenn du a) entweder gpiozero forkst und deine Fork unter anderem Namen bereitstellst (und wieder zu beachten: die Lizenz) oder b) die Patches für gpiozero einreichst und hoffst, dass sie aufgenommen werden. Ersteres ist vermutlich der einfachere Weg.

    Gruß, noisefloor

    Ansonsten kannst du doch auch die 230-V-Steckdose mit einem Verlängerungskabel verlängern und das Netzteilkabel so kurz lassen, wie es ist.

    Genau das hätte ich auch gesagt. Zumal das doch viel einfacher ist, als irgendwelche Stunts mit parallel geschalteten Netzteilen. Mal abgesehen davon, dass man Verlängerungskabel für Haushaltsanwendungen (wie dem Raspi) doch fertig konfektioniert im Baumarkt kaufen kann.

    Gruß, noisefloor