No description
  • JavaScript 47.4%
  • Python 20.6%
  • CSS 15.1%
  • Shell 7.4%
  • HTML 5.7%
  • Other 3.8%
Find a file
Margraf c581f17154 V0.0.1
Basis gebaut, test als Demo gelaufen
2026-07-31 09:22:32 +02:00
bridge V0.0.1 2026-07-31 09:22:32 +02:00
kiosk V0.0.1 2026-07-31 09:22:32 +02:00
www V0.0.1 2026-07-31 09:22:32 +02:00
.gitignore V0.0.1 2026-07-31 09:22:32 +02:00
README.md V0.0.1 2026-07-31 09:22:32 +02:00
serve-windows.ps1 V0.0.1 2026-07-31 09:22:32 +02:00
session.json V0.0.1 2026-07-31 09:22:32 +02:00

ETS2 Web Companion

Actros-artiges Dashboard für Euro Truck Simulator 2 auf einem Touchdisplay (1024×768). Zeigt Telemetrie live aus dem Spiel (via TruckTel) und steuert Internetradio (via MPD) alles in einem Browser-Tab.

┌─────────────────────────────────────────────────────────────┐
│  ETS2-PC (Linux)                                            │
│   ETS2 + TruckTel (Port 8080, liefert Dashboard + Telemetrie)│
│   MPD (Port 6600)  Radiosound an den Lautsprechern         │
│   Radio-Bridge (Port 8082)  macht MPD per HTTP/CORS nutzbar │
└─────────────────────────────────────────────────────────────┘
                        │  Dashboard + Telemetrie + Radio
┌───────────────────────▼─────────────────────────────────────┐
│  Mini-PC + Touchdisplay (Chromium im Kiosk-Modus)           │
└─────────────────────────────────────────────────────────────┘

Inhalt

Pfad Beschreibung
www/ Dashboard (statisch, HTML/CSS/JS, keine Abhängigkeiten). Kommt in den TruckTel-www-Ordner.
bridge/ radio_bridge.py (REST→MPD, nur Python-Stdlib), config.json, install.sh
kiosk/ setup-kiosk.sh für den Anzeige-Rechner
serve-windows.ps1 Temporärer Test-Server für Windows (Demo-Modus)

Testen von Windows aus (bevor alles installiert ist)

Das Dashboard hat einen Demo-Modus: Telemetrie und Radio werden simuliert, sodass du das komplette Interface ohne ETS2/MPD ansehen kannst genau richtig, um auf dem Touch-PC schon mal zu prüfen, ob dir das Design gefällt.

# auf der Windows-Maschine (im Projektordner):
.\serve-windows.ps1
  • www/config.js hat demo: true bereits gesetzt.
  • Eigene IP ermitteln (ipconfig) und auf dem Linux-Touch-PC im Browser öffnen: http://<WINDOWS-IP>:8080
  • Beim ersten Start die Windows-Firewall-Abfrage mit „Zulassen" (Privates Netz) bestätigen, sonst ist die Seite vom Touch-PC nicht erreichbar.
  • Auf dem Touch-PC wird idealerweise ein Fenster in 1024×768 geöffnet (das Layout ist dafür gebaut; im Kiosk-Setup später automatisch).
  • Tipp: Im Demo-Modus kannst du über den Touch auch Sender wählen, Play/Pause/Stop und Lautstärke ausprobieren.

Für den echten Betrieb: demo: false in www/config.js setzen.

Angezeigte Daten

Geschwindigkeit · Drehzahl (mit Redline) · Tankfüllstand · AdBlue · Kühlmitteltemperatur · Gang (R/N/112) · LKW-Modell · Ladung (Name, Art, Masse) · Ziel & Restzeit des Auftrags · echte Uhrzeit + In-Game-Zeit · Radio-Steuerung (Sender-Presets, Play/Stop, Lautstärke, laufender Titel).

Alle Telemetriedaten kommen per WebSocket aus TruckTel (/api/ws/delta/struct/<key>). Die Radio-Steuerung läuft über die Bridge, weil der Browser das MPD-TCP-Protokoll (Port 6600) nicht direkt ansprechen kann.


1. Voraussetzungen (ETS2-PC)

  • Ubuntu 24.04/26.04 (oder ein anderes Linux) mit laufendem ETS2

  • TruckTel ist installiert und funktioniert (dann läuft ein Webserver, Standard-Port 8080)

  • MPD für das Radio:

    sudo apt install mpd mpc
    # Audio-Ausgabe sicherstellen (z.B. unter Systemeinstellungen > Sound prüfen)
    systemctl --user start mpd   # oder: sudo systemctl enable --now mpd
    

    Tipp: In ~/.config/mpd/mpd.conf bzw. /etc/mpd.conf darauf achten, dass der Audio-Output aktiviert ist. Die Sender werden von der Bridge automatisch als Playlist radio angelegt nichts manuell einpflegen.

2. Dashboard in TruckTel installieren

Die www/-Dateien gehören in den Dokument-Root von TruckTel:

# übliche Stelle für ETS2 (Linux, Steam):
TELEDIR="$HOME/.local/share/Steam/steamapps/common/Euro Truck Simulator 2"
WWW="$TELEDIR/bin/linux_x64/plugins/trucktel/www"

mkdir -p "$WWW"
cp -r www/* "$WWW"/

Den exakten Pfad findet man alternativ über: find ~ -type d -path '*trucktel/www' 2>/dev/null

Anschließend im Browser testen: http://<ETS2-IP>:8080 (im Demo-Modus: in www/config.js demo: true setzen dann läuft die Anzeige auch ohne gestartetes Spiel).

3. Radio-Bridge installieren

cd bridge
./install.sh
  • Dienst: radio-bridge.service (systemd-User-Service, Port 8082)
  • Senderliste anpassen: ~/.local/share/ets2-radio-bridge/config.json
  • Danach Dienst neu starten: systemctl --user restart radio-bridge.service
  • Status/Logs: systemctl --user status radio-bridge.service, journalctl --user -u radio-bridge.service -f
  • Damit der Dienst auch ohne angemeldete Session läuft: sudo loginctl enable-linger $USER

Kurz testen:

curl http://localhost:8082/api/status
curl http://localhost:8082/api/stations
curl -X POST -H 'Content-Type: application/json' -d '{"index":0}' http://localhost:8082/api/play

4. Firewall (nur wenn aktiv)

sudo ufw allow 8080/tcp   # TruckTel
sudo ufw allow 8082/tcp   # Radio-Bridge

5. Mini-PC mit Touchdisplay einrichten

cd kiosk
./setup-kiosk.sh http://<ETS2-IP>:8080

Das Skript installiert Chromium, erstellt eine Autostart-Datei (~/.config/autostart/ets2-dashboard.desktop) und deaktiviert Bildschirmschoner/Suspend. Nach Ab-/Anmelden oder Neustart läuft das Dashboard automatisch im Kiosk-Modus. Für Autologin unter GNOME die Einstellungen → Benutzer → „Automatische Anmeldung" aktivieren.

Konfiguration (www/config.js)

trucktel: { host: "", port: 8080 },   // "" = Host der Seite (empfohlen)
radio:    { host: "", port: 8082 },   // "" = Host der Seite
speedMax: 120,                        // Tacho-Skalenende (km/h)
demo:     false                       // true = Vorschau ohne Spiel

Empfohlener Zugriff: Browser öffnet direkt http://<ETS2-IP>:8080, dann sind Telemetrie und Radio automatisch auf demselben Host erreichbar.

Senderliste

Standardmäßig sind einige öffentliche deutsche Sender vorkonfiguriert (bridge/config.json). Stream-URLs ändern sich bei Sendern gelegentlich beim „Reinheitsgebot" der Sender einfach die URLs aktualisieren und die Bridge neu starten. Alternativ kann man die Senderliste aus ETS2 übernehmen (documents/Euro Truck Simulator 2/live_streams.sii).

Hinweise

  • Keine Verbindung zum Spiel: TruckTel sendet erst Daten, wenn das Spiel läuft. Das Dashboard zeigt dann „–" und verbindet sich automatisch neu, sobald ETS2 gestartet wird (auch wenn der Browser vorher offen war).
  • Pause: Während das Spiel pausiert ist, erscheint ein PAUSE-Overlay.
  • Browser-Fenster: Einfach im Kiosk den Tab schließen und neu öffnen alle Verbindungen stellen sich selbst wieder her.