[ e-networld.de ]

F1-Telemetry

Empfängt die UDP-Telemetrie der F1-Spiele von EA ab F1 2019, speichert sie in einer relationalen Datenbank und stellt sie in einer Weboberfläche dar.

MITDocker · PostgreSQL · MariaDB · SQL Serverv1.18.4 · 17.09.2026
F1-Telemetry-Weboberfläche mit dem Ergebnis eines Qualifyings in Melbourne, sortiert nach schnellster Runde

Überblick

F1-Telemetry nimmt die Telemetriedaten auf, die die F1-Spiele von EA während einer Session per UDP versenden, und macht daraus eine dauerhafte Datenbasis. Ausgewertet werden Fahrzeugdaten, Session-Informationen und Rundenzeiten, unterstützt sind die Titel ab F1 2019.

Das Projekt besteht aus mehreren Teilprojekten und wird als zwei Docker-Images veröffentlicht: der Dienst, der die Pakete empfängt und die REST-API sowie die SignalR-Hubs bereitstellt, und die Web-App, die die gespeicherten Daten darstellt. Eingehende Pakete werden gegen die Paketverträge der Spiele geparst und über Analyzer an spezialisierte Prozessoren verteilt.

Als Datenbank stehen PostgreSQL, MariaDB beziehungsweise MySQL und Microsoft SQL Server zur Wahl. Für jeden Anbieter existiert ein eigenes Migrationsprojekt, das Schema wird beim Start des Dienstes automatisch angelegt und aktualisiert. Beide Images bringen einen Docker-Healthcheck mit.

Neben dem Live-Betrieb gibt es einen Replay-Client, der aufgezeichnete Pakete an den Dienst schickt. Der Dienst lauscht dafür immer auf dem Telemetrie-Port plus eins. Wer die Anwendung beobachten möchte, kann OpenTelemetry einschalten: Traces, Metriken und Logs gehen dann über OTLP an einen Collector, jeder Signaltyp lässt sich einzeln aktivieren.

Funktionen

UDP-Telemetrie der F1-Spiele ab F1 2019 empfangen und auswerten
Fahrzeug-, Session- und Rundendaten dauerhaft speichern
PostgreSQL, MariaDB/MySQL oder Microsoft SQL Server als Datenbank
Datenbankschema wird beim Start automatisch angelegt und migriert
Weboberfläche als eigenes Image, Live-Daten über SignalR
Aufgezeichnete Pakete mit dem Replay-Client erneut einspielen
REST-API für eigene Auswertungen und Visualisierungen
OpenTelemetry für Traces, Metriken und Logs, optional zuschaltbar

Installation

docker compose up -d
# Dienst: UDP 20777 (Spiel), TCP 20778 (Replay), 4820 (API)
# Web-App: http://localhost:8080/

Das vollständige Compose-Beispiel mit Datenbank steht in der README. Im Spiel die UDP-Telemetrie auf den Host des Dienstes und Port 20777 einstellen.

Releases

v1.18.4 · 17.09.2026
  • Server: networlddev/f1-telemetry:1.18.4
  • Web app: networlddev/f1-telemetry-app:1.18.4
  • Bump hono from 4.13.2 to 4.13.7 in /F1ServerApp
  • Bump the npm-dependencies group in /F1ServerApp with 13 updates
  • Bump the nuget-dependencies group with 9 updates

GitHub ↗

v1.18.3 · 04.09.2026
  • Server: networlddev/f1-telemetry:1.18.3
  • Web app: networlddev/f1-telemetry-app:1.18.3
  • Resolve SonarQube findings in WebApi, Db, and Service code
  • Bump the actions group with 2 updates
  • Bump the npm-dependencies group in /F1ServerApp with 13 updates
  • Update OpenTelemetry and analyzer packages; fix log formatting
  • Bump the npm-dependencies group in /F1ServerApp with 14 updates
  • Bump the nuget-dependencies group with 1 update
  • Bump the actions group with 2 updates
  • Bump the actions group with 2 updates
  • Bump the npm-dependencies group in /F1ServerApp with 12 updates
  • Bump the nuget-dependencies group with 2 updates

GitHub ↗

v1.18.2 · 16.08.2026
  • Server: networlddev/f1-telemetry:1.18.2
  • Web app: networlddev/f1-telemetry-app:1.18.2
  • Bump Reihitsu.Analyzer to 1.0.0-rc1 and suppress RH4124
  • Fix review findings F-311, F-291, F-475, F-473, F-293, F-468
  • Fix F1ServerApp config/bootstrap review findings
  • Fix F1ServerApp Features/Models review findings
  • Clean up F1ServerApp: dead code, orphaned assets, inline styles
  • Fix SignalR live status detection and add version footer
  • Extract digest hash from Docker image inspection output

GitHub ↗

v1.18.1 · 15.08.2026
  • Server: networlddev/f1-telemetry:1.18.1
  • Web app: networlddev/f1-telemetry-app:1.18.1
  • Restore per-year inheritance chain for session data interfaces
  • Fix packet parsing correctness and robustness findings
  • Resolve low-severity interface consistency findings
  • Resolve remaining low-severity interface consistency findings
  • Clarify DeltaToCarInFront/DeltaToRaceLeader doc for 2024+ years
  • Model ActiveAeroMode as a dedicated enum instead of ushort
  • Fix session detection buffer handling and thread safety
  • Fix service-layer return values, factory reuse, and cache volatility
  • Improve RepositoryBase query/delete efficiency and AppMetrics hot path
  • Extract DbContext seed data, bound name columns, and document naming decisions

GitHub ↗

v1.18.0 · 09.08.2026
  • Server: networlddev/f1-telemetry:1.18.0
  • Web app: networlddev/f1-telemetry-app:1.18.0
  • Bump the actions group with 2 updates
  • Bump the nuget-dependencies group with 2 updates
  • Report packet converter errors instead of swallowing them silently
  • Populate and evaluate the packet analyzer error channel consistently
  • Reduce per-datagram allocations in the UDP receive path
  • Reuse packet transformation instances instead of allocating per packet
  • Bump ip-address from 10.2.0 to 10.4.0 in /F1ServerApp
  • Bump brace-expansion in /F1ServerApp
  • Fix slow session playback in the replay client
  • Bump socket.io-parser from 4.2.6 to 4.2.7 in /F1ServerApp

GitHub ↗

Alle Releases auf GitHub ↗