Kiosk Modus auf Touchscreen am Raspberry Pi mit automatischer Anmeldung im Browser

Echo Show 5 (1. Gen, 2019) – Smart Display mit Alexa – Durch Alexa in Verbindung bleiben – Anthrazit
Echo Show 5 (1. Gen, 2019) – Smart Display mit Alexa – Durch Alexa in Verbindung bleiben – Anthrazit
--

Vor einigen Jahren bei der Sanierung des Hauses hatte ich bereits den Plan einen Touchscreen in der Wand neben der Haustüre zu platzieren. Die Verteilerdose mit Strom und Netzwerkkabel sind also seitdem vorhanden. Weiter bin ich aber bisher nie gekommen.

Jetzt habe ich mich dem Projekt aber dann doch einmal angenommen und endlich einen 7″ Touchscreen in der Wand verbaut. Bei diesem Projekt gab es einige Hürden zu meistern, die ich euch hier Dokumentieren möchte.

Diese Anleitung enthält im wesentlichen die folgenden Punkte:

  • Raspberry PI für Touchscreen konfigurieren
  • Chromium-Browser im Kiosk Modus einrichten
  • Home Assistant im Browser aufrufen und automatisch anmelden


Touchscreen Empfehlung

Für mein Projekt habe ich das Touchscreen Display „UPi“ der Firma UPERFECT verwendet. Dieses ist speziell für die Nutzung mit einem Raspberry Pi ausgelegt und liefert alle notwendigen Kabel, Netzteil und Adapter direkt mit. Ebenfalls kann der Raspberry Pi auf der Rückseite montiert werden das die Handhabung extrem vereinfacht.

Weitere Informationen zu dem Display findet Ihr hier:
https://www.uperfectmonitor.com/products/raspberry-pi-7-touchscreen-uperfect

Den Amazon Shop von UPERFECT findet Ihr hier:
https://amzn.to/3408FNS

Raspberry Pi Grundeinrichtung

Zuerst installiert man Raspbian (https://www.raspberrypi.com/software/) auf die SD-Karte und startet anschließend damit den PI.

Als nächstes kann die Grundeinrichtung des PI losgehen. Dazu starten wir das Konfigurations-Tool mit folgendem Befehl:

sudo raspi-config

Overscan Compensation

In dem sich öffnenden Menü muss zunächst der Overscan Modus deaktiviert werden.

> 2 – Display Options
>> D2 – Underscan
>>> NO (DISABLE overscan compensation)

Auto-Login

Anschließend aktivieren wir den automatischen Login.

> 1 – System Options
>>  S5 – Boot / Auto Login
>>> B2 – Console Autologin


Benötigte Pakete (Chromium-Browser, Openbox etc.) installieren

Update

Als nächstes müssen die notwendigen Pakete installiert werden. Dafür sollte zuerst ein Update mit folgenden Befehlen durchgeführt werden.

sudo apt update
sudo apt upgrade

Anschließend können die Pakete mit folgendem Befehl installiert werden:

sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox xdotool
sudo apt-get install --no-install-recommends chromium-browser


Autostart konfigurieren

Nachdem der Pi mit der notwendigen Software versorgt wurde, kann nun der Startvorgang des Systems konfiguriert werden. Dabei muss dafür gesorgt werden, dass das Display an bleibt und der Chromium-Browser automatisch gestartet wird.

Dazu ruft man mit folgendem Befehl die Datei /etc/xdg/openbox/autostart im Texteditor Nano auf:

sudo nano /etc/xdg/openbox/autostart

In diese Datei muss der folgende Code eingetragen werden:

xset -dpms            # turn off display power management system
xset s noblank        # turn off screen blanking
xset s off            # turn off screen saver

# Remove exit errors from the config files that could trigger a warning
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State'
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences

# Run Chromium in kiosk mode
chromium-browser  --noerrdialogs --check-for-update-interval=31536000 --disable-infobars --kiosk $KIOSK_URL &

Jetzt muss in der Datei /etc/xdg/openbox/environment noch festgelegt werden, welche URL im Browser aufgerufen werden soll. Mit folgendem Befehl wird also wieder die o.g. Datei mit Nano aufgerufen:

sudo nano /etc/xdg/openbox/environment

In der Datei muss nun diese Zeile eingefügt werden:

export KIOSK_URL=https://DEINE_HA_URL

Damit das ganze funktioniert muss nun noch dafür gesorgt werden, dass der xserver gestartet wird. Dabei blenden wir direkt noch den Cursor aus, da dieser beim Touchscreen nicht benötigt wird.
Also muss die Datei~/.bash_profile nun mit Nano bearbeitet werden.

sudo nano ~/.bash_profile

In dieser Datei muss die folgende Zeile eingefügt werden

[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx -- -nocursor


Automatisch im Browser in Home Assistant anmelden

Als letzten Schritt muss noch für eine automatische Anmeldung am Home Assistant nach dem Booten gesorgt werden,

Dazu muss mit folgendem Befehl noch einmal die Datei /etc/xdg/openbox/autostart bearbeitet werden.

sudo nano /etc/xdg/openbox/autostart

In dieser Datei wird nun am ende der nachstehende Inhalt eingefügt.

sleep 30
exec /home/pi/start_ha.sh

Als letzten Schritt muss nur noch die Datei /home/pi/start_ha.sh erzeugt werden. Diese Datei beinhaltet die Befehle, um im Browser die Anmeldung am Home Assistant durchzuführen.
Auch hier wird wieder der Editor Nano mit folgendem Befehl verwendet.

sudo nano /home/pi/start_ha.sh

In dieser Datei muss die folgende Befehlsfolge eingefügt werden.

# login to HA
sleep 30
export XAUTHORITY=/home/pi/.Xauthority; export DISPLAY=:0; xdotool type DEIN_HA_BENUTZERNAME
sleep 1;
export XAUTHORITY=/home/pi/.Xauthority; export DISPLAY=:0; xdotool key Tab
sleep 1;
export XAUTHORITY=/home/pi/.Xauthority; export DISPLAY=:0; xdotool type DEIN_HA_PASSWORT

sleep 1;
export XAUTHORITY=/home/pi/.Xauthority; export DISPLAY=:0; xdotool key Return
sleep 5;

# click save login-button
export XAUTHORITY=/home/pi/.Xauthority; export DISPLAY=:0; xdotool mousemove 1835 1030;
sleep 1;
export XAUTHORITY=/home/pi/.Xauthority; export DISPLAY=:0;xdotool click 1;
sleep 2;

Abschließend muss die neu angelegte Datei noch die Berechtigung zum ausführen erhalten. Das wird mit dem folgenden Kommando erreicht:

chmod +x /home/pi/start_ha.sh

Nun sollte der PI automatisch den Browser starten und sich selbstständig am Home Assistant anmelden.


Video zum Touchscreen am Raspberry Pi im Kioskmodus

Den gesamten Ablauf habe ich zusätzlich auch noch einmal in einem Video zusammengefasst. Dieses findet Ihr hier:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden