Posts by Soddi

    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.

    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:

    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. ;)

    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;)

    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.

    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.

    Ja das habe ich gemacht und dann einen reboot durchgeführt.


    Was mir auch jetzt ausgefallen ist, ist das mein Taster zum Herunterfahren auch nicht mehr geht, nach all den Änderungen von heute.

    Also irgenwie steige ich nicht durch.:wallbash:


    Also nur die beiden Zeilen 21/22 sind doch in meiner rc.local Aktiv und sonst nichts, richtig?

    Hier mein Skript für den das ausschalten mittels Taster.

    Python
    #!/usr/bin/python3
    # Datei /home/pi/reboot.py
    import os, sys, time, RPi.GPIO as gpio
    gpio.setmode(gpio.BOARD)   # Pin-Nummern des P1/J8-Headers
    gpio.setup(21, gpio.IN)    # Pin 21 ist mit Reset-Button verbunden
    while 1:
      if gpio.input(21)==gpio.LOW:
        os.system("halt")
        sys.exit()
      time.sleep(0.3)

    So hier eine rc.local Datei die den Autostart vom Skript ausführen soll,

    macht Sie aber noch immer nicht::denker:


    Dann mein Skript fan.py das im Homeverzeichnis liegt (/home/pi/fan.py):


    Ich hoffe das ich das dann so richtig gemacht habe mit dem Absoluter Pfad zum Python Interpreter Linus!?:daumendreh2:

    Code
    usr/bin/python /home/pi/fan.py &

    Danke für eure Antworten.


    Entschuldigt, das ich alles auf einmal Versucht habe, aber da ich keine Ahung von dem ganzen habe,

    dachte ich, irgendetwas muss ja funktionieren, hat es aber leider nicht.:no_sad:


    Okey ich nehme dann nur eine Variante: rc.local


    Ist der Shebang in der fan.py korrekt? Ist die Datei ausführbar? Schon mal absolute Pfade in der rc.local probiert (auch zum Python-Interpreter)?

    Was ist den der Shebang? Also in meiner fan.py Datei steht in der ersten Zeile: #!/usr/bin/python

    Ja die Datei habe ich mit sudo chmod +x fan.py Ausführbar gemacht.

    Der ablolute Pfad in der rc.local Datei ist bei mir doch /home/pi/fan.py oder nicht?



    Erstmal, entscheide Dich bitte für eine Variante, so ist das Planlos.

    Danke. Okey ist gut. Ich werde es mit den Autostart rc.local versuchen.



    Falls Dein Skript tatsächlich root-Rechte braucht, mußt Du ihm die natürlich auch beim Autostart zukommen lassen.

    Okey. Wie würde das den gehen?



    wie wäre es denn, wenn du mal den aktuellen Weg wählst und eine systemd Service Unit schreibst? Dann bekommt du ein brauchbares Logging via journald dirket mit geliefert.


    Vorher solltest du das Skript aber vielleicht erst mal lauffähig machen... `print irgendwas` erzeugt einen Fehler in Python 3 und beendet die Ausführung.


    Ansonsten:

    os.popen ist veraltet, das steht sogar wörtlich in der Python-Doku. Der aktuelle Weg ist das subprocess Modul.
    Die Klammern beim if-Statement sind überflüssig.
    am Ende solltest du noch ein GPIO.cleanup() einfügen

    Okey, das kann ich auch gerne so versuchen und eine systemd Service Unit schreiben.

    Ja okey, allerdings kann ich nicht Programmieren und habe das Skript für die Lüftersteuerung nur koppiert.:daumendreh2:

    Kannst du mir da vielleicht weiterhelfen???



    So auf die Schnelle: mit der Funktion ``getCPUtemperature`` bekommst du die GPU Temperatur und nicht die CPU Temp.

    Solltest du wirklich die CPU Temperatur meinen, dann empfehle ich dir:

    Ja ich wollte die CPU Temperatur haben. Kann ich die drei Zeilen einfach so tauschen in dem Lüfter Script?



    Wenn Dein Script als user "pi" laufen kann/darf, dann kann man ein Autostart auch über die crontab realisieren.

    Hatte ich auch versucht aber klappte nicht. Ja klar kann es, es soll ja immer laufen wenn die Temperatur zu hoch ist.

    Hallo zusammen;)

    Ich habe ein Problem mit den Autostart meiner Lütersteuerung und hoffe das Ihr mir weiterhelfen könnt:helpnew:

    Ich habe schon viel Versucht, bin aber immer wieder gescheitert. :conf:


    Zuerst aber mal ein paar Daten zu meinem System:


    Hier einen Link wie ich meinen Lüfter verwenden wollte: https://alexbloggt.com/lueftersteuerung/

    So sieht meine Datei dann aus:

    Die Datei ist bei mir unter /home/pi zu finden und heist fan.py



    Was ich schon alles Versucht habe:


    1. Autostart über rc.local

    Kein Erfolg bei einem neustart des RPi.


    2. Andere schreibweise für Autostart über rc.local

    Kein Erfolg bei einem neustart des RPi.


    3. Autostart über Init-Scripts

    Unter /etc/init.d/ die Datei fan erstellt.

    Dann in den Ordner gewechselt cd /etc/init.d/ und
    sudo chmod 755 fan und sudo update-rc.d fan defaults ausgeführt.

    Kein Erfolg.


    4. Autostart über .desktop Dateien

    Unter ~/.config/autostart die Datei fan.desktop erstellt.

    Code
    [Desktop Entry]
    Name=Autostart-Script
    Comment=Kommentar
    Type=Application
    Exec=fan.sh
    Terminal=false

    Kein Erfolg.


    5. Cronjobs, unter /etc/crontab etwas in die Datei eintragen.

    Code
    #...
    */10 * * * * /home/pi/fan.py

    Kein Erfolg.


    Wenn ich über die Console, die Datei sudo python /home/pi/fan.py starte, dann geht mein Lüfter wie gewünscht an.


    Warum aber nicht automatisch? :wallbash: Ich bin echt ratlos!:denker: Bitte um Hilfe. Danke.:daumendreh2: