Einrichtungsanleitung

CODESYS WebVisu
Kiosk-Modus auf Raspberry Pi

Vollständige Schritt-für-Schritt-Anleitung für Raspbian 64-bit mit Wayland / labwc

Voraussetzungen

1

Chromium installieren

Folgenden Befehl in PuTTY oder am Pi-Terminal eingeben:

sudo apt update
sudo apt install -y chromium unclutter
Auf Raspbian 64-bit heißt das Paket chromium (nicht chromium-browser).
2

Start-Script erstellen

Datei anlegen:

nano ~/start-webvisu.sh

Folgenden Inhalt einfügen (BENUTZERNAME und PASSWORT anpassen):

#!/bin/bash
exec > /home/BENUTZERNAME/webvisu.log 2>&1
echo "=== Start: $(date) ==="
echo "WAYLAND_DISPLAY=$WAYLAND_DISPLAY"

sleep 8
echo "=== Sleep fertig ==="

# Warte bis CODESYS WebVisu erreichbar ist
until curl -s http://localhost:8080/webvisu.htm > /dev/null 2>&1; do
    echo "Warte auf WebVisu... $(date)"
    sleep 2
done
echo "=== WebVisu erreichbar ==="

chromium --kiosk \
    --noerrdialogs \
    --disable-infobars \
    --no-first-run \
    --ozone-platform=wayland \
    --start-fullscreen \
    --disable-session-crashed-bubble \
    --password-store=basic \
    --use-mock-keychain \
    --incognito \
    http://BENUTZERNAME:PASSWORT@localhost:8080/webvisu.htm

echo "=== Chromium beendet ==="

Speichern: Strg+OEnterStrg+X

Sonderzeichen im Passwort müssen URL-kodiert werden (siehe Tabelle unten).
ZeichenURL-Kodierung
!%21
"%22
§%C2%A7
@%40
#%23
$%24
%%25
&%26
3

Script ausführbar machen

chmod +x ~/start-webvisu.sh
4

Autostart konfigurieren

Verzeichnis erstellen und Datei anlegen:

mkdir -p ~/.config/autostart
nano ~/.config/autostart/webvisu.desktop

Folgenden Inhalt einfügen (BENUTZERNAME anpassen):

[Desktop Entry]
Type=Application
Name=CODESYS WebVisu
Exec=bash /home/BENUTZERNAME/start-webvisu.sh
X-GNOME-Autostart-enabled=true

Speichern: Strg+OEnterStrg+X

BENUTZERNAME muss mit dem Linux-Benutzernamen auf dem Pi übereinstimmen.
5

Keyring-Dialog deaktivieren

Verhindert, dass Chromium beim Start nach einem Keyring-Passwort fragt:

sudo mv /usr/bin/gnome-keyring-daemon /usr/bin/gnome-keyring-daemon.bak
6

Bildschirmschoner deaktivieren

nano ~/.config/labwc/environment

Folgenden Inhalt einfügen:

XSETTINGS_DPMS=false

Speichern: Strg+OEnterStrg+X

7

Automatischen Login aktivieren

sudo raspi-config

Dann navigieren zu:

1 System OptionsS5 Boot / Auto LoginB4 Desktop Autologin

Mit OK bestätigen und raspi-config beenden.

8

Neustart

sudo reboot

Nach dem Neustart startet der Pi automatisch in den Desktop und öffnet die CODESYS WebVisu im Vollbild.

?

Fehlersuche

Falls etwas nicht funktioniert, helfen folgende Befehle bei der Diagnose:

cat ~/webvisu.log
sudo ss -tlnp | grep codesys
sudo systemctl status codesyscontrol

Wie funktioniert der Autostart? — Ablauf von A bis Z

Der Kiosk-Modus läuft in mehreren Schichten ab, von der Hardware bis zum Browser. Hier ist der vollständige Ablauf erklärt:

1. Strom an → Kernel bootet

Der Pi startet normal durch. Sobald der Linux-Kernel läuft, übergibt er die Kontrolle an systemd — den Init-Prozess, der alle weiteren Dienste startet.

👤
2. Automatischer Login (Schritt 7)

raspi-config hat systemd so konfiguriert, dass der Standard-Benutzer ohne Login-Bildschirm direkt in den Desktop eingeloggt wird. Ohne diese Einstellung würde der Pi am Login-Bildschirm warten und nie weitermachen.

🖥
3. labwc startet (Wayland-Compositor)

labwc ist der „Fenstermanager" auf Raspbian 64-bit mit Wayland. Er zeichnet den Desktop und verwaltet Fenster. Nach dem Start liest labwc automatisch alle .desktop-Dateien aus dem Verzeichnis ~/.config/autostart/ und führt sie aus.

📄
4. webvisu.desktop wird gelesen (Schritt 4)

labwc findet die Datei ~/.config/autostart/webvisu.desktop und führt die Exec-Zeile aus:

Exec=bash /home/BENUTZERNAME/start-webvisu.sh

Das Script wird im Hintergrund gestartet, sobald der Desktop bereit ist.

📄
5. start-webvisu.sh läuft (Schritt 2)

Das Script arbeitet drei Aufgaben der Reihe nach ab:

#Was passiertWarum
1 sleep 8 Wartet 8 Sekunden, damit Wayland und CODESYS vollständig hochgefahren sind bevor etwas geöffnet wird
2 until curl ... Prüft alle 2 Sekunden, ob die WebVisu unter Port 8080 antwortet — erst wenn ja, geht es weiter
3 Chromium startet Öffnet die WebVisu im Kiosk-Vollbild, sobald CODESYS bereit ist
Der entscheidende Trick ist die until curl-Schleife: Ohne sie würde Chromium zu früh starten und nur eine Fehlerseite zeigen, weil CODESYS noch nicht bereit ist.
🌐
6. Chromium öffnet die WebVisu im Kiosk-Modus

Chromium startet im Vollbild ohne Adressleiste, Tabs oder Dialoge. Der Parameter --ozone-platform=wayland sorgt dafür, dass Chromium direkt mit dem Wayland-Compositor kommuniziert — ohne diesen Parameter würde Chromium auf Wayland nicht korrekt funktionieren.

Kurzübersicht als Kette:

Strom an
  → Kernel bootet
    → systemd startet Desktop-Login (raspi-config)
      → labwc startet
        → webvisu.desktop wird gelesen
          → start-webvisu.sh wird ausgeführt
            → wartet auf CODESYS (until curl-Schleife)
              → Chromium öffnet WebVisu im Vollbild
i

Wichtige Hinweise

ThemaInformation
WebVisu-PortStandard: 8080
Compositorlabwc (Wayland)
Log-Datei~/webvisu.log
Start-Script~/start-webvisu.sh
CODESYS-ProjektMuss aktiv auf dem Pi laufen, damit die WebVisu erreichbar ist
Passwort-SonderzeichenIm URL immer URL-kodieren (Tabelle in Schritt 2)