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: