- JavaScript 47.4%
- Python 20.6%
- CSS 15.1%
- Shell 7.4%
- HTML 5.7%
- Other 3.8%
|
|
||
|---|---|---|
| bridge | ||
| kiosk | ||
| www | ||
| .gitignore | ||
| README.md | ||
| serve-windows.ps1 | ||
| session.json | ||
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.jshatdemo: truebereits 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/1–12) · 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 mpdTipp: In
~/.config/mpd/mpd.confbzw./etc/mpd.confdarauf achten, dass der Audio-Output aktiviert ist. Die Sender werden von der Bridge automatisch als Playlistradioangelegt – 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.