Hi zusammen,
ich betreibe ein Sunfounder-Display mit Motion-Pir-Sensor am Pi3 und das seit einigen Jahren.
Warum auch immer schaltet sich mein Display auf einmal nicht mehr vor allein aus.
Was ich gemacht habe:
1. Autostart: sudo nano /etc/xdg/lxsession/LXDE-pi/autostart?
Code
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@xset s off
@xset -dpms
@xset s noblank
@chromium-browser --noerrdialogs --disable-translate --kiosk --incognito http:/>…
2. Skript: sudo nano Displayskript.py
Python
from gpiozero import MotionSensor
import subprocess
import datetime
import shlex
import time
import os
os.environ["DISPLAY"] = ":0"
DISPLAY_AN = shlex.split("xrandr -d :0 --output HDMI-1 --auto")
DISPLAY_AUS = shlex.split("xrandr -d :0 --output HDMI-1 --off")
EINSCHALTDAUER = 10 # in Sekunden
class DisplayController:
def __init__(self):
self.letzte_bewegung = None
self.display_status = None
def bewegung_erkannt(self):
self.letzte_bewegung = datetime.datetime.now()
self.display_an()
def display_an(self):
if not self.display_status:
subprocess.run(DISPLAY_AN)
self.display_status = True
print("Display eingeschaltet")
else:
print("Display ist schon an")
def display_aus(self):
subprocess.run(DISPLAY_AUS)
self.display_status = False
print("Display ausgeschaltet")
def main():
pir = MotionSensor(23)
controller = DisplayController()
pir.when_motion = controller.bewegung_erkannt
while True:
if controller.letzte_bewegung is not None:
if (datetime.datetime.now() - controller.letzte_bewegung).total_seconds() > EINSCHALTDAUER:
if controller.display_status:
controller.display_aus()
time.sleep(0.2)
if __name__ == "__main__":
main()
Display More
3. Autostart für Skript erzeugen: nano/home/pi/.config/autostart/pir.desktop
Code
[Desktop Entry]
Name=VIS-PIR-Monitor
Path=/home/pi
Exec=/usr/bin/python3 /home/pi/displayskript.py
Type=Application
Terminal=false
Display More
Aber irgendwo scheint nun etwas nicht mehr zu passen?!
Kann mir jemand helfen - ChatGPT findet den Fehler nicht und ich sowieso nicht.
Danke!