PI 4 Browser Kiosk Autostart und HDMI via Raspberry PIR steuern

  • Servus werte Community, ich stehe mich gleich zwei größeren Aufgaben gegenüber, die ich trotz verschiedener Ansätze noch nicht lösen konnte und nun hoffe ich von euch den nötigen Impuls bzw. die Funktionierende Anleitung zu erhalten, wie ich das zum laufen bekomme.

    Also ich möchte gerne auf meinem Pi4 beim Systemstart automatisch die IP Adresse meines HomeAssistant Servers aufrufen und dort mir die Oberfläche anzeigen lassen - auf meinem Acer T230H Touchscreen

    Ich habe das vor ewiger Zeit schon mal mit einem Pi3 und LCD Monitor umgesetzt und das war auch gar nicht so schwer, aber irgendwie hat sich bei dem Pi4 unter Bookwurm etwas geändert, weshalb meine Anleitung nicht mehr funktioniert. Aber zurück zum Pi4...

    Wie gesagt ich möchte den pi4 am Acer T230H betreiben, das funktioniert auch Super-der Touchscreen wird perfekt erkannt. Nun soll der Monitor natürlich nicht 24/7 an sein, sondern nur, wenn jeman sich in der Nähe aufhält, daher würde ich gern den Original Raspberry Bewegungsmelder anschliessen, der wiederrum das HDMI Signal steuer (An/Aus)

    Ich hatte das jetzt mal mit einer GitHub Version versucht, aber irgendwie funktioniert das nicht bzw. ich hab nicht verstanden was ich einstellen muß, damit es funktioniert.

    Wie bekomme ich beides am besten realisiert?

  • PI 4 Browser Kiosk Autostart und HDMI via Raspberry PIR steuern? Schau mal ob du hier fündig wirst!

  • Da hat sich in der letzten Zeit viel verändert. Das alte Tutorial funktioniert mit Sicherheit nicht mehr.

    Also... Ich würde zuerst den Browserstart automatisieren. Dazu müsste man wissen auf welchem Stand Dein System ist und welchen Browser Du verwendest.

    Öffne ein Terminalfenster auf dem Desktop! Was sind dort die Ausgaben von

    Code
    echo $XDG_SESSION_TYPE
    cat ~/.config/wayfire.ini

    ?

    Mit dem PIR (Was ist ein Original Raspberry Bewegungsmelder?) würde ich dann weiter machen, wenn das mit dem Kiosk läuft.

  • hyle

    via Putty....

    Installiert habe Raspberry Pi OS 64 Bit Bookworm Vers. 19.11.2024 mit dem Raspberry Pi Imager 1.8.5

    Ich kann auch gern eine andere Version installieren, falls es damit besser funktioniert

    Mit dem PIR (Was ist ein Original Raspberry Bewegungsmelder?)

    RPI HC-SR501

  • Schon besser! Sieh mal hier:

    hyle
    November 17, 2024 at 11:54 AM
  • Also dann gemäß Anleitung:

    Code
    nano run_kiosk.sh

    dort einfügen:

    Code
    sleep 4
    /bin/chromium-browser  --kiosk --ozone-platform=wayland --start-maximized --noerrdialogs --disable-infobars --enable-features=OverlayScrollbar  https://menue.cafe-dorner.at/ &

    mit den jeweiligen Attributen und vor allem der Adress die geöffnet werden soll

    dann folgt:

    Code
    nano .config/labwc/autostart

    wo ich den Befehl eintrage

    Code
    bash /home/pi/run_kiosk.sh &	


    Unfassbar aber es funktioniert...es dauert etwas bis die Seite das erste mal aufgerufen wird aber es geht. DANKE für Teil eins der Lösung

    Hm...leider kann ich so im Kiosk Modus die Seite von HomeAssistent nicht scrollen :( durch weglassen von --enable-features=OverlayScrollbar wird mir zwar rechts "Scrollleiste" angezeigt, aber ich kann die Seite via Touchscreen nicht verschieben.

    Edited once, last by *Maverick* (November 25, 2024 at 7:32 PM).

  • Hm...! :conf: Versuch mal die Option --start-fullscreen statt --kiosk !

    //Edit

    Brauchst Du den PIR eigentlich? Reicht es nicht aus auf den Touch zu tippen um das Display wieder zu wecken? Ist nur so ein Gedanke.

    Beide Möglichkeiten sollten zwar funktionieren, aber man muss sich ja nicht unnütz Arbeit machen. :green_wink:

  • Sorry das ich erst heute auf deine Frage reagiere...irgendwie ist zum Ende des Jahres so viel zu erledigen, das mein kleines Projekt leider etwas hinten an steht. Ich werde das aber mit fullscreen mal ausprobieren!

    Derzeit hab ich einen MagicMirror am laufen, naja eigentlich sind es sogar zwei hinter echtem Spiegelglas und die werden durch einen Mirkrowellen Bewegungsmelder aktiviert, bzw. die beiden Netzteile der Displays und das hat sich tatsächlich echt als Praktisch erwiesen. Wenn man in der Nähe ist schalten sich die Monitore an und man kann auf den Displays sehen, was dort halt angezeigt wird. Ich möchte nicht erst zum Bildschirm laufen und den antippen zum aktivieren. Der Touchscreen soll an die Stelle des MagicMirrors - ich möchte auf die gewohnte Funktion - der automatischen aktivierung nicht verzichten.

  • Ich habe gerade ein Thema gefunden an dem du hyle dich auch bereits beteiligt hast und hoffe da irgendwie eine Lösung raus zu ziehen.

    mit dem Befehl:

    Code
    wlr-randr --output=HDMI-A-1 --off

    schaffe ich es meinen Monitor über die Pi Konsole abzuschalten - leider bin ich danach ja im "Blindflug" und schaffe es nicht via

    Code
    wlr-randr --output=HDMI-A-1 --auto

    den HDMI wieder zu aktivieren. Mit dem Befehl

    Code
    xrandr --listmonitors

    hat als Ergebnis folgendes ausgegeben: 0: +WAYLAND0 1920/510/1080/280+0+0 XWAYLAND0

    Ich habe versucht die Befehle zu verwenden die in dem Thema eigentlich zu verwenden sind:

    Code
    xrandr --output HDMI-1 --off
    xrandr --output HDMI-0 --off

    aber keiner von denen funktioniert - nur der o.g mit wlr davor. Wie bekomme ich das jetzt so hin, dass ich das mit dem PIR steuern kann?

    Edited once, last by *Maverick* (December 9, 2024 at 7:07 PM).

  • leider bin ich danach ja im "Blindflug" und schaffe es nicht via

    Dafür wäre eine SSH-Verbindung zum RPi nicht schlecht. BTW: Der Befehl zum Anschalten wäre wlr-randr --output=HDMI-A-1 --on. :wink1:


    xrandr ist für x11 zuständig und wlr-randr für Wayland, was ja offensichtlich bei Dir läuft.

    Erstelle die Datei ~/.config/labwc/autostart falls nicht vorhanden mit folgendem Inhalt:

    Code
    swayidle -w \
    	timeout 60 'wlopm --off \*' \
    	resume 'wlopm --on \*' >/dev/null 2>&1 &

    Damit ( wlopm --off ) schaltet sich der Moni nach 60 Sekunden im Ruhezustand ab. Mit Mausbewegung oder Tastatur wieder ein.

    In dem Skript für den PIR verwendest Du dann den Befehl wlopm --on per subprocess.run oder gleichwertig, damit der Moni bei Bewegungserkennung des PIR auch wieder einschaltet. Für das Skript würde ich gpiozero verwenden. Siehe dazu hier: https://gpiozero.readthedocs.io/en/stable/reci…l#motion-sensor

  • Okay da ich im Blindflug war mußte ich den Befehl über Putty senden und tatsächlich lies sich damit der Monitor wieder aktivieren.

    Ich hab das auch gleich noch mal versucht, nachdem ich den Pi neugestartet habe und HA automatisch im Fullscreen Modus geladen war - diesmal beide Befehle direkt über Putty. Hm gibt nun einen kleinen Schönheitsfehler. Der Fullscreen ist nachdem reaktivieren nicht mehr aktiv, das Browserfenster ist minimiert :(

    Habe gerade mal besagte autostart mit Nano geöffnet und folgendes drin gefunden:

    Code
    bash /home/pi/run_kiosk.sh &

    erinnere mich nur nicht daran das eingetragen zu haben :/

    Habe deine Zeilen jetzt darunter eingefügt....

  • Ach ich Idiot...natürlich habe ich das in Autostart eingetragen - siehe Beitrag 11

    Dort steht nun also das:

    Code
    bash /home/pi/run_kiosk.sh &
    
    swayidle -w \
            timeout 60 'wlopm --off \*' \
            resume 'wlopm --on \*' >/dev/null 2>&1 &

    Der Monitor deaktiviert sich nach 60 Sekunden selbstständig und wenn ich die Maustaste drücke kommt die Ansicht auch genauso wieder :love:

    Selbst das berühren des Touchscreen funktioniert zum reaktivieren. Okay next Step...die Bewegungsmelder Anbindung.... :huh:


    Dürfte ich dich da auch noch um deinen Suppot bitten?

    Python
    from gpiozero import MotionSensor, LED
    from signal import pause
    
    pir = MotionSensor(4)
    led = LED(16)
    
    pir.when_motion = led.on
    pir.when_no_motion = led.off
    
    pause()

    Das wäre ja besagter Code den du mir empfohlen hast. Wo muß ich den eintragen?

    Edited once, last by *Maverick* (December 9, 2024 at 8:04 PM).

  • Ich weiß nicht inwieweit Du Python kannst und möchte Dir ungern vorgreifen, aber in etwa so könnte das aussehen (ungetestet!):


    //Edit

    Falls das so nicht funktionieren sollte, dann teste per SSH mal wlopm --on wenn der Moni aus ist und wenn das nicht geht, dann per SSH mit DISPLAY=:0 wlopm --on. Das sollte dann den Moni anschalten.

    Je nachdem was davon funktioniert, müsste der Code ggf. angepasst werden. :green_wink:

    Ach ich Idiot...natürlich habe ich das in Autostart eingetragen - siehe Beitrag 11

    Hatte ich auch schon wieder vergessen! Die Forendemenz lässt grüßen. :biggrin: Willkommen in meinem Leben!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!