Seite 2 von 2
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 18:25
von Dogma2k
@_blackjack_
Ich hab eben mit "cat /etc/os-release" die Version ausgelesen es ist Linux 8 (Jessi) denke das sagt dir mehr als mir...
Zur installation von python 3.8 bin ich so vorgegangen
1. sudo apt update && sudo apt upgrade
2. wget
https://www.python.org/ftp/python/3.8.0 ... 8.0.tar.xz
3. tar xf Python-3.8.0.tar.xz
4. cd Python-3.8.0
5. ./configure
6. make -j -l 4
7. sudo make altinstall
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 19:12
von Dogma2k
Ich hab jetzt auf den RPi ein Linux 10 am laufen. Hier ist schon ein python 3.7.3 drauf
ich habe soweit alles wieder mit dem script von der 1. Seite fertig gemacht. Wenn ich jetzt aber mit -> sudo python3 /home/pi/shutdown_btn.py das script starten tue kommt zwar keine fehler Meldung es passiert aber auch nichts weiter. Es kommt einfach eine neue Zeile ohne
pi@.....
Was stimmt jetzt wieder nicht

Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 19:27
von __blackjack__
@Dogma2k: Was hättest Du denn erwartet was passiert? Das Programm läuft halt.
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 19:39
von Dennis89
Dogma2k hat geschrieben: ↑Freitag 26. Februar 2021, 19:12
Was stimmt jetzt wieder nicht
Glückwunsch und jetzt halte deinen Button gedrückt und sieh wie das Programm seinen Job übernimmt
Grüße
Dennis
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 19:52
von Dogma2k
Dennis89 hat geschrieben: ↑Freitag 26. Februar 2021, 19:39
Dogma2k hat geschrieben: ↑Freitag 26. Februar 2021, 19:12
Was stimmt jetzt wieder nicht
Glückwunsch und jetzt halte deinen Button gedrückt und sieh wie das Programm seinen Job übernimmt
Grüße
Dennis
__blackjack__ hat geschrieben: ↑Freitag 26. Februar 2021, 19:27
@Dogma2k: Was hättest Du denn erwartet was passiert? Das Programm läuft halt.
Ok nur leider passiert nichts wenn ich den GPIO5 mit dem GND verbinde nichts egal ob ich öffner oder schließer simuliere also scheid es doch nicht zu laufen wenn der RPi nicht reagiert
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 21:35
von Dogma2k
Nochmal eine Ergänzung,
wenn ich den RPi neu starte und "ps -ef | grep python3" eingebe sehe ich den Dienst laufen
root 426 410 0 21:31 ? 00:00:00 /bin/sh -c /usr/bin/python3 /home/pi/shutdown_btn.py
root 427 426 1 21:31 ? 00:00:00 /usr/bin/python3 /home/pi/shutdown_btn.py
pi 744 1 8 21:31 ? 00:00:01 /usr/bin/python3 /usr/bin/blueman-applet
pi 748 1 5 21:31 ? 00:00:01 /usr/bin/python3 /usr/share/system-config-printer/applet.py
root 1025 1 2 21:31 ? 00:00:00 /usr/bin/python3 /usr/lib/blueman/blueman-mechanism
pi 1299 1218 0 21:31 pts/0 00:00:00 grep --color=auto python3
Wenn ich den GPIO5 mit GND verbinde dann ist der Dienst weg
pi 744 1 2 21:31 ? 00:00:01 /usr/bin/python3 /usr/bin/blueman-applet
pi 748 1 1 21:31 ? 00:00:01 /usr/bin/python3 /usr/share/system-config-printer/applet.py
pi 1321 1218 0 21:33 pts/0 00:00:00 grep --color=auto python3
Hat jemand ein Erklärung?
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 21:40
von __blackjack__
@Dogma2k: Leite Standard- und Fehlerausgabe in eine Datei um und schau da nach was ausgegeben wird.
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 21:50
von Dogma2k
@_blackjack_ sry ich weiß nicht wie? Hast du einen Link oder evtl. gleich den Befehl parat?
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 22:49
von Dennis89
Hallo,
ich habe das auf einem Pi Zero nachgestellt.:
Code: Alles auswählen
shut.py:12: RuntimeWarning: A physical pull up resistor is fitted on this channel!
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Traceback (most recent call last):
File "shut.py", line 24, in <module>
main()
File "shut.py", line 16, in main
channel = GPIO.wait_for_edge(BUTTON_PIN, GPIO_RISING, timeout=TIMEOUT)
NameError: name 'GPIO_RISING' is not defined
Da ich ja gpiozero-Fan bin:
Code: Alles auswählen
from gpiozero import Button
from subprocess import check_call
from signal import pause
def shutdown():
check_call(['sudo', 'shutdown', '-h', '0'])
shutdown_button = Button(3, hold_time=2)
shutdown_button.when_held = shutdown
pause()
Funktioniert super.
Grüße
Dennis
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 23:00
von Dogma2k
Na toll und bei mir geht immer noch nicht und weiter weis ich auch nicht mehr
Aber dein Code sieht um einiges anders aus als der den ich bekommen hab. Vor allem die time bei mir 3000 und bei dir 3 bei selben befehl.
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 23:08
von Dennis89
Hallo,
die '3000' sind Millisekunden, das ergibt deine gewünschten 3 Sekunden.
Die '3' bei mir ist der GPIO 3 Pin, das entspricht der Pin-Nummer 5, siehe:
https://gpiozero.readthedocs.io/en/stable/recipes.html Absatz 2.2
Die Zeit, die man den Button gedrückt halten muss ist mit 'time=' angegeben, das ist bei mir jetzt 2 Sekunden. Kann man ja beliebig anpassen.
Der Code ist vom selben Link, Absatz 2.8.
Wenn du das verwenden möchtest, in dem Link Absatz 1.1 steht wie du gpiozero installierst. Das ist übrigends eine tolle Bibliothek mit guter und meiner Meinung nach verständlicher Doku.
Grüße
Dennis
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 23:19
von Dogma2k
Ok ich versuche mich mal das durch zu arbeiten evtl. klappt es ja damit.
Ist halt nur komisch das der Dienst immer verschwindet wen ich die kontakte verwende, das ist bei meinem alten script ohne timer nicht passiert
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 23:24
von Dennis89
Nachtrag:
Der Fehler war nur ein Tippfehler, es muss heißen 'GPIO.RISING' anstatt 'GPIO_RISING'
Ich hatte allerdings noch eine Fehlermeldung wegen Berechtigungen bekommen, dann den Shutdown-Befehl abgeändert und es ging:
Code: Alles auswählen
#!/usr/bin/env python3
from RPi import GPIO
from subprocess import run
BUTTON_PIN = 5
TIMEOUT = 3000 # ms
def main():
try:
GPIO.setmode(GPIO.BCM)
# GPIO5 (pin 29) set up as input. It is pulled up to stop false signals
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
# wait for the pin to be sorted with GND and, if so, halt the system
GPIO.wait_for_edge(BUTTON_PIN, GPIO.FALLING)
channel = GPIO.wait_for_edge(BUTTON_PIN, GPIO.RISING, timeout=TIMEOUT)
if channel is None:
print("Shutting down...")
run(["sudo", "shutdown", "-h", "0"])
finally:
GPIO.cleanup()
if __name__ == "__main__":
main()
Grüße und viel Spass beim probieren
Dennis
Re: Raspberry Pi mit langen Tastendruck herunterfahren
Verfasst: Freitag 26. Februar 2021, 23:34
von Dogma2k
Ah... damit hat es jetzt geklappt
Code: Alles auswählen
from gpiozero import Button
from subprocess import check_call
from signal import pause
def shutdown():
check_call(['sudo', 'poweroff'])
shutdown_button = Button(3, hold_time=2)
shutdown_button.when_held = shutdown
pause()