ich habe mich hier neu angemeldet da ich ein Problem habe und hoffe, dass mir hier einer weiter helfen kann.
Ich habe auf der suche nach Lösungen ein Thema hier aus dem Forum gefunden, was aber leider nicht ganz passt und eröffne darum ein neues.
Ich habe mir einen Raspberry PI 5 und einen Touchscreen Monitor zugelegt. Beides soll in einem Zimmer an der Wand hängen und meine VIS aus iobroker zeigen.
Der Monitor soll sich nach einer einstellbaren Zeit abschalten und über einen Bewegungsmelder wieder aktiviert werden.
Dazu habe ich einen Bewegungsmelder (HC-SR501 PIR Sensor - Infrarot Bewegungsmelder) an die GPIO des Raspberry angeschlossen. Ich benutze GPIO PIN 5V, PIN GND und PIN 23.
Auf der suche nach Lösungen habe ich viele Seiten gefunden die sich allerdings immer auf RPi.GPIO.
Da die Lösungen/Skripte alle nicht funktioniert haben, habe ich weiter gesucht und wenn ich es richtig verstanden habe, auch den Grund gefunden. RPi.GPIO wird von Raspberry PI OS 5 nicht unterstützt.
Stattdessen muss GPIOzero verwendet werden.
Ich muss dazu sagen, dass dies mein erster Raspberry ist und ich auch mit Python noch nie etwas zu tun hatte. Folglich natürlich auch keine Ahnung von RPi.GPIO und GPIOzero habe.
Da ich wie gesagt nichts passendes gefunden habe, habe ich KI benutzt um mir ein Skript (pir.py) zu erstellen.
Wenn ich das skript vom Terminal aus mit python3 pir.py starte, funktioniert es.
Das war der "leichte" Teil.
Dann habe ich versucht diese Skript automatisch beim Start ausführen zu lassen. Meine suche danach hat erstmal zwei Ansätze gefbracht.
1. crontab und
2. systemctl
Beide führen aber leider nicht dazu, dass das skript bei Start ausgeführt wird.
Dann hat mich einer aus dem iobroker Forum darauf hin gewiesen, dass das so eventuell nicht funktioniert und das skript über LXDE Autostart gestartet werden muss, sicher ist er sich aber auch nicht.
Auch das habe ich probiert und das skript wird auch gestartet.
Nach ca. 10 min beendet sich das skript allerdings wieder.
Ob das skript läuft oder nicht prüfe ich mit pgrep -f pir.py, etwas anderes habe ich leider nicht gefunden. Wenn nichts zurückgegeben wird, läuft es nicht. Wenn eine ID zurück gegeben wird prüfe ich mit ps -p und der ID ob python3 ausgegeben wird.
Daraufhin habe ich auch mal im Taskmanager nachgesehen und festgestellt, dass es, wenn das Skript läuft, eine Task python3 gibt und wenn das skript nicht läuft, nicht.
Den Grund warum das skript beendet wird kenne ich nicht, was aber noch aufgefallen ist, ist das gleichzeitig meine VIS im browser nicht mehr angezeigt wird da steht dann "Oh nein! Fehler beim Anzeigen dieser Webseite. Fehlercode: 9". Klicke ich dann auf Neu Laden wird sie weder angezeigt.
Da dies gleichzeitig passiert, vermute ich da einen Zusammenhang.
Ich hoffe ich habe alles wichtige nun geschrieben, hier aber natürlich noch das skript:
Code: Alles auswählen
from gpiozero import MotionSensor
import subprocess
import time
# GPIO-Pin für den Bewegungssensor
MOTION_SENSOR_PIN = 23
# Befehl zum Einschalten des Touchscreen-Monitors
TURN_ON_COMMAND = "xset -display :0 dpms force on"
# Initialisierung des Bewegungssensors
motion_sensor = MotionSensor(MOTION_SENSOR_PIN)
# Funktion zum Einschalten des Touchscreen-Monitors
def turn_on_screen():
subprocess.run(TURN_ON_COMMAND, shell=True)
# Hauptfunktion
def main():
try:
while True:
# Ueberprüfe auf Bewegung
if motion_sensor.motion_detected:
turn_on_screen()
print("Bewegung erkannt! Bildschirm eingeschaltet.")
# Warte eine Weile, bevor du erneut nach Bewegung suchst
time.sleep(10)
else:
# Warte kurz, um die CPU nicht zu belasten
time.sleep(0.1)
except KeyboardInterrupt:
print("Programm beendet.")
if __name__ == "__main__":
main()
Und hier noch die Autostart Datei die sich unter /home/pi/.config/lxsession/LXDE-pi/autostart befindet:
Code: Alles auswählen
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
#@xscreensaver -no-splash
@xset s on
@xset s 0 0
@xset s blank
@xset s expose
@xset dpms 900 0 0
@xset +dpms
@chromium-browser --start-fullscreen http://xxx.xxx.xxx.xxx/vis-2/?HomeVis2_1#Home
@unclutter -idle 1
@python3 /home/pi/pir.py
Ich hoffe sehr, das mir hier einer Helfen kann, nach jetzt drei Tagen suchen und versuchen und zwei mal Raspberry komplett Neu Installation bin ich ziemlich verzweifelt.
Danke und VG