#!/usr/bin/python # shutdown/reboot(/power on) Raspberry Pi with pushbutton import RPi.GPIO as GPIO from subprocess import call from datetime import datetime import time # pushbutton connected to this GPIO pin, using pin 5 also has the benefit of # waking / powering up Raspberry Pi when button is pressed shutdownPin = 5 # if button pressed for at least this long then shut down. if less then reboot. shutdownMinSeconds = 3 # button debounce time in seconds debounceSeconds = 0.01 GPIO.setmode(GPIO.BOARD) GPIO.setup(shutdownPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) buttonPressedTime = None def buttonStateChanged(pin): global buttonPressedTime if not (GPIO.input(pin)): # button is down if buttonPressedTime is None: buttonPressedTime = datetime.now() else: # button is up if buttonPressedTime is not None: elapsed = (datetime.now() - buttonPressedTime).total_seconds() buttonPressedTime = None if elapsed >= shutdownMinSeconds: # button pressed for more than specified time, shutdown call(['shutdown', '-h', 'now'], shell=False) elif elapsed >= debounceSeconds: # button pressed for a shorter time, reboot call(['shutdown', '-r', 'now'], shell=False) # subscribe to button presses GPIO.add_event_detect(shutdownPin, GPIO.BOTH, callback=buttonStateChanged) while True: # sleep to reduce unnecessary CPU usage time.sleep(5)


#Autostart mit Programm "systemd" im Hostspezifischen Konfigurationsordner "etc"



[Service]
ExecStart=/usr/bin/python /home/pi/Desktop/pishutdown.py
WorkingDirectory=/home/pi/Desktop/
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=pishutdown
User=root
group=root



[Install]
WantedBy=multi-user.target



chmod 777 Ordner (neues museum)


pkexec chmod 555 /etc/sudoers pkexec chmod 555 /etc/sudoers.d/README
Befehl {gpio readall} on RPI4
cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb