@_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
Raspberry Pi mit langen Tastendruck herunterfahren
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
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

- __blackjack__
- User
- Beiträge: 13938
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Dogma2k: Was hättest Du denn erwartet was passiert? Das Programm läuft halt.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware
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__blackjack__ hat geschrieben: ↑Freitag 26. Februar 2021, 19:27 @Dogma2k: Was hättest Du denn erwartet was passiert? Das Programm läuft halt.
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?
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?
- __blackjack__
- User
- Beiträge: 13938
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Dogma2k: Leite Standard- und Fehlerausgabe in eine Datei um und schau da nach was ausgegeben wird.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware
Hallo,
ich habe das auf einem Pi Zero nachgestellt.:
Da ich ja gpiozero-Fan bin:
Funktioniert super.
Grüße
Dennis
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
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()
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
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
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
"When I got the music, I got a place to go" [Rancid, 1993]
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
Ist halt nur komisch das der Dienst immer verschwindet wen ich die kontakte verwende, das ist bei meinem alten script ohne timer nicht passiert
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:
Grüße und viel Spass beim probieren
Dennis
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()
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
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()