Autostart für eine Lüftersteuerung will einfach nicht gelingen.

  • Moin Soddi,

    wir haben schon mal weitergedacht.... ;-))

    Um deine /etc/rc.local zu testen, kann man sie auch aufrufen.

    In einer Konsole, war klar, oder, sudo /etc/rc.local eingeben.

    Es sollte zumindest deine IP-Adresse dabei ausgegeben werden.

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Autostart für eine Lüftersteuerung will einfach nicht gelingen.? Schau mal ob du hier fündig wirst!

  • Hallo Bernd, Servus dreamshader.

    Mhm, dann mach mal sudo journalctl. Dann kommen viele Zeilen, aber er bleibt nach einer Seite stehen.

    dann tippe mal /rc.local ein. Es wird etwas gesucht und die gefundenen Stellen sollte farbig unterlegt sein.

    Also wenn ich dann /rc.local Suche wird folgendes gefunden:

    Code
    Jun 01 20:30:30 BMW316i systemd[1]: [/etc/systemd/system/rc-local.service:3] Ass
    Jun 01 20:30:30 BMW316i systemd[1]: [/etc/systemd/system/rc-local.service:7] Ass
    Jun 01 20:30:30 BMW316i systemd[1]: [/etc/systemd/system/rc-local.service:51] Mi


    ich würde am Anfang der /etc/rc.local mal die Zeile

    set -x

    einfügen und die /etc/rc.local dann mal aus einem Terminal per Hand aufrufen.

    Habe ich mal gemacht, dann sieht meine rc.local Datei so aus:

    Code
    set -x
    
    #!/bin/sh -e
    # rc.local
    
    /usr/bin/python /home/pi/fan.py &
    
    /home/pi/shutdown.py
    
    exit 0

    Ich habe mal alles Überflüssige gelöscht, wie die Komentare.


    Was tut eigentlich das script /home/pi/reboot.py ?

    Mit dem Script wird mittels Taster ein Shutdown des Raspberry Pi auslöst.

    Ich habe das Script dann noch mal neu geschrieben, d.h. neu koppiert, damit es keine Verwirrung gibt:

    Wenn ich jetzt rc.local über das Terminal starte sudo -i und bash /etc/rc.local werden die Scripte durchlaufen und mir wir folgendes Angezeigt:

    Code
    + /home/pi/shutdown.py
    + /usr/bin/python /home/pi/fan.py
    64.451
    power on fan...
    power off fan...
    47.236

    Der Lüfter geht an, da meine Temperatur grade über 60°C (64.451) war und geht dann nach 180sec. wieder aus (47.236).

    Auch lässt sich zu jeder Zeit mittels des Tasters der RPi Herunterfahren.

    Einmal editiert, zuletzt von Soddi (1. Juni 2018 um 21:05)

  • Moin Soddi,

    das ist doch schon was.

    Aber, ich vermute das es noch nicht beim Starten geht...

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Ja Bernd korrekt, beim Starten des RPi geht es noch nicht. Das möchte ich aber gerne.

    Meine Scripte gehen nur wenn ich Sie nach dem Start über das Terminal selber starte.

    Also das heißt das shutdown Script geht dann natürlich nur einmal, weil der RPi nach drücken des Tatsers Herunterfährt.

    Aber das fan Script geht leider auch nur einmal, wenn ich es nochmal starten will muss ich das Manuel machen. Ich weiß aber nicht warum das so ist.

    Und nach dem Aufruf im Terminal: stehst Du da wieder auf dem Prompt?

    Ich vermute mal nicht ... denn dazu musst Du das /home/pi/shutdown.py auch in den Hintergrund schicken.

    Was meinst du den damit dreamshader? Ich verstehe nicht so ganz was ich da machen soll, also wie das geht.

    Ja ich konnte nichts weiter machen, in der Konsole und muste ein neues Terminal aufmachen.

    • Offizieller Beitrag

    beim Starten des RPi geht es noch nicht. Das möchte ich aber gerne.

    Aber das fan Script geht leider auch nur einmal, wenn ich es nochmal starten will muss ich das Manuel machen.

    D.h. es könnte sein, dass das Script startet, die 60° nicht erreicht sind und dadurch das Script einfach durchläuft und sich danach mangels Schleife einfach beendet? :denker:

  • Moin Soddi,

    ich schlage vor erstmal den Start des Scrpts hin zubekommen.

    Das regelmässige Starten des Scripts kann man mit einer Schleife, in der die Temperatur abgefragt wird, ändern.

    Ich vermute das systemd den rc.local.service zu früh startet.

    Besser wäre wirklich eine systemd.serviceroutine. Oder hat jemand eine "legale" Idee wie man rc.local später startet??

    Eine illegale hätte ich, aber dann erschlagemn mich hier alle im Forum.....

    Gruss Bernd

    dreamshader : Du beantwortest es selbst??

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Ja klar gerne ... hättest Du, Bernd666, aber auch gerne übernehmen können ...

    Das heisst, die musst hinter die Zeile /home/pi/shutdown.py genauso wie bei der Zeile /usr/bin/python /home/pi/fan.py & ein Ampersand am Schluss anhängen ( also /home/pi/shutdown.py& ).

    Dadurch wird das script in den Hintergrund geschickt. Sonst blockiert es die rc.local ...

    Sicherheitshalber würde ich da allerdings auch noch /usr/bin/python davor schreiben, also /usr/bin/python /home/pi/shutdown.py& .

    Ist nur, damit das einheitlich ist ...

    cu,

    -ds-

  • Moin!

    Manul Du hast recht. Das weiss keiner. Bau ich ein.

    Aber bevor der Soddi sich nicht wieder meldet, geht von meiner Seite nichts mehr...

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo, danke für die Vorschläge ich habe noch keine Zeit gefunden die Woche. Vielleicht schaffe ich das Morgen mal.

    D.h. es könnte sein, dass das Script startet, die 60° nicht erreicht sind und dadurch das Script einfach durchläuft und sich danach mangels Schleife einfach beendet? :denker:

    Also wenn ich den RPi3 starte und mehr als 60°C vor dem starten sind geht der Lüfter trotzdem nicht an. Leider nur durch Manueles starten über ein Terminalfenster.

    Das heisst, die musst hinter die Zeile /home/pi/shutdown.py genauso wie bei der Zeile /usr/bin/python /home/pi/fan.py & ein Ampersand am Schluss anhängen ( also /home/pi/shutdown.py& ).

    Dadurch wird das script in den Hintergrund geschickt. Sonst blockiert es die rc.local ...


    Sicherheitshalber würde ich da allerdings auch noch /usr/bin/python davor schreiben, also /usr/bin/python /home/pi/shutdown.py& .

    Ist nur, damit das einheitlich ist ...

    Ja okey, machen ich dann sobalt wie es mir möglich ist.

    Aber bevor der Soddi sich nicht wieder meldet, geht von meiner Seite nichts mehr...

    Hallo Bernd, ich bin dran. Wird gemacht;)

  • Also wenn ich den RPi3 starte und mehr als 60°C vor dem starten sind geht der Lüfter trotzdem nicht an.

    Selbst wenn die CPU bereits vor dem Starten über 60°C hat (wie kriegst Du das hin?), wäre ich mir nicht sicher, ob der Sensor nicht eine Weile braucht, das auch zu registrieren.

    • Offizieller Beitrag

    Hallo Soddi!

    Davon ausgehend, dass Dein Script funktioniert, ändere doch einfach mal die Temperatur nach unten z.B. auf 10°C, also in Zeile 17

    if (temp_float > 10):. Damit könntest Du zumindest meinen Verdacht (siehe Beitrag #26) widerlegen. ;)

  • Also meine rc.local Datei sieht jetzt so aus:

    Code
    set -x
    #!/bin/sh -e
    # rc.local
    /usr/bin/python /home/pi/fan.py &
    /usr/bin/python /home/pi/shutdown.py &
    exit 0

    Datei: /etc/rc.local

    1.

    Ich starte den RPi3 wie immer in der grafischen Oberfläche.

    2.

    Der Shutdown Taster hat noch immer keine Funktion und der Lüfter will auch bei mehr als 60°C nicht angehen.

    3.

    Einzige Möglichkeit: Terminal öffnen und bash /etc/rc.local eingeben.

    Dann geht der Lüfter an, wenn die Temperatur über 60°C ist oder er bleibt aus, wenn die Temperatur unter diesem Wert ist.

    Ist der Lüfter einmal gelaufen geht dieser beim nächsten Übertreten der 60°C auch nicht nochmal an.

    Das wird vermute ich mal, eine fehlende Schleife sein, wie Bernd gesagt hat.

    Allerdings müsste mir jemand sagen wie man sowas programmiert, da ich keine Programmierungen kann.

    Meine Scripte sind alles nur Vorlagen/Kopien gewesen.

    Bedeutet das ich wiederrum bash /etc/rc.local im Terminal eingeben muss wenn die Temperatur über 60°C ist.

    4.

    Der Shutdown Taster hat auch erst keine Funktion, erst wenn ich bash /etc/rc.local über das Terminal eingegeben habe.

    Hier kann aber der Lüfter gelaufen oder nicht gelaufen sein, die Funktion bleibt nach einmaligen eingeben von bash /etc/rc.local bestehen.

    Hier einmal noch das Shutdown-Script:

    Datei: /home/pi/shutdown.py

    5.

    Nach jedem Neustart ist der Shutdown Taster und der Lüfter wieder ohne Funktion.


    Selbst wenn die CPU bereits vor dem Starten über 60°C hat (wie kriegst Du das hin?)

    Also wenn mir ca. 62°C angezeigt wird und ich dann Neustarte sind über 60°C beim Einschaltvorgang vorhanden. ;)

  • Davon ausgehend, dass Dein Script funktioniert, ändere doch einfach mal die Temperatur nach unten z.B. auf 10°C, also in Zeile 17


    if (temp_float > 10):. Damit könntest Du zumindest meinen Verdacht (siehe Beitrag #26) widerlegen.

    Okey habe ich jetzt gemacht. Beim Start des RPi3 geht aber auch so der Lüfter nicht an, erst nach Eingabe von bash /etc/rc.local in ein Terminalfenster.

    Bedeutet das den jetzt das dass Script nicht okey ist?

    Hier nachmal das Script:

    • Offizieller Beitrag

    Also erstmal für das shutdown-Script bietet sich gpiozero an, ist aktueller:

    Der Pin GPIO 9 == Pin BOARD 21.

    Zwei Sekunden Button drücken, dann fährt der RPi Runter.

    Ich starte den RPi3 wie immer in der grafischen Oberfläche.

    Dann wäre imho eine .desktop-Datei besser geeignet, denn so hast Du die Benutzerumgebung bereits geladen.

    Du kannst Dich ja schon mal einlesen, ich muss erstmal: :sleepy: Morgen sehen wir weiter.

  • Okey danke, aber ich verstehe nicht ganz was ich dann machen soll.

    Code
    pi@BMW316i:~ $ sudo systemctl status rc-local
    
    ● rc-local.service - /etc/rc.local Compatibility
       Loaded: error (Reason: Bad message)
       Active: inactive (dead)
    
    Warning: Unit file changed on disk, 'systemctl daemon-reload' recommended.

    Ich bekomme da einen error angezeigt.

  • Also erstmal für das shutdown-Script bietet sich gpiozero an, ist aktueller:

    Okey, danke habe ich übernommen.


    Dann wäre imho eine .desktop-Datei besser geeignet, denn so hast Du die Benutzerumgebung bereits geladen.

    Okey, da habe ich mich auch schon mal dran versucht, aber noch kein Ergebnis zustande gebracht was funktioniert hätte:neutral::denker:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!