📖 CH-Timing Handbuch
Vollständige Dokumentation für Rennleiter, Zeitnehmer und Veranstalter
🌐 Netzwerk-Zugriff
CH-Timing läuft als lokaler Webserver. Alle Geräte im selben Netzwerk (WLAN/LAN) können auf die verschiedenen Endpunkte zugreifen. Die URLs werden unter Hilfe → Netzwerk-Zugriff angezeigt.
| Endpunkt | Beschreibung | Typische Nutzung |
|---|---|---|
/viewer | Live-Rangliste mit Gap-Spalte, Auto-Paging, Timer, Flaggen. Automatische Wiederverbindung bei Verbindungsverlust. | Beamer, TV, große Bildschirme |
/viewer2 | Kompakte Team-Karten im Grid-Layout | Kleine Bildschirme, Tablets |
/clock | Großer Countdown-Timer mit Ampel-Anzeige, Datum/Uhrzeit vom Server | Streckenposten, Start/Ziel |
/rennleitung | Dashboard mit Flaggen (+ Kommentar), Strafen, manueller Buchung, Track-Tracker, Ticker-Nachrichten, Top 5 schnellste/langsamste | Rennleiter, Zeitnehmer |
/qr | QR-Code Seite für Zuschauer zum Scannen | Beamer, Aushang |
/handbuch | Dieses Handbuch | Nachschlagen |
/sponsor | Sponsor-View: Top 10 fix, Rest mit Auto-Paging, Gap-Spalte, Sponsoren-Logo-Ticker | Videowall, Beamer mit Sponsoren |
/rennleitung kann optional mit Passwort geschützt werden (Einstellungen). QR-Codes unter /qr verlinken automatisch auf den Viewer.🏎️ Teilnehmer
Starterfeld
- Jedes Team hat eine Startnummer, einen Namen und optional eine Klasse.
- Bis zu 4 Transponder-Nummern pro Team. TP1+TP2 werden automatisch berechnet (600+Nr, 700+Nr) und können überschrieben werden. TP3+TP4 sind frei konfigurierbar.
- Team-Details: Verein, Fahrer 1+2, Fahrzeug, E-Mail, Telefon, Kommentar. Rein informativ, kein Einfluss auf die Wertung.
- Bezahlt-Status: Checkbox pro Team. Sessions können auf „Nur Bezahlte" gefiltert werden.
Teilnehmer lassen sich jederzeit anlegen und speichern – auch bevor eine Session existiert. Die Starterliste kann also lange vor der Veranstaltung gepflegt werden.
Import & Export
- Excel Import/Export: Volle .xlsx-Unterstützung. Spalten werden beim Import automatisch erkannt. Export enthält alle Felder.
- Teamdaten-PDF: Druckbares PDF mit allen Team-Infos, Platzierungs-Feldern (Training/Qualifying/Rennen) und optionalem Logo.
- Startaufstellung-PDF: 4-reihiges Grid-Layout, Leader links/rechts konfigurierbar, nach Klassen trennbar.
Inline-Bearbeitung
Klick auf eine Zelle in der Teilnehmer- oder Sessions-Tabelle zum direkten Bearbeiten. Enter bestätigt, Escape bricht ab.
🏁 Sessions & Rennmodi
Rennmodi
| Modus | Beschreibung | Typisch für |
|---|---|---|
| Rundenzählung | Wer die meisten Runden in der vorgegebenen Zeit fährt, gewinnt. Bei Gleichstand entscheidet die Gesamtzeit. | 24h-Rennen, Ausdauer |
| Feste Rundenzahl | Vorgegebene Anzahl Runden (z.B. 50). Session endet automatisch nach Abwinken. | Sprint-Rennen |
| Schnellste Runde | Sortierung nach bester Rundenzeit. | Qualifying, Zeittraining |
| Shootout K.O. | Eliminierungsrennen. Die langsamsten Teams werden in konfigurierbaren Intervallen eliminiert. Finale mit den letzten X Teams. | Show-Events |
Session-Einstellungen
- Zeitbegrenzung: Countdown, absolute Uhrzeit, oder unbegrenzt.
- Mindestrundenzeit: Standard 10 Sekunden. Schnellere Durchfahrten werden ignoriert.
- Split-Toleranz: Standard 6 Sekunden. Bestimmt die Empfindlichkeit der Split-Erkennung.
- Warnzeiten: Blau-Schwelle (Standard 15s) und Orange-Schwelle (Standard 30s) über erwarteter Rundenzeit.
- Klassenfilter: Nur bestimmte Klassen in der Session werten.
- Bezahlt-Filter: Nur bezahlte Teams in der Session werten.
▶️ Live-Betrieb
Session starten
Session anlegen → „Live öffnen" → „Start". Bei Ampelstart: „🚦 Ampel starten" verwenden.
Manuelle Buchung
Startnummer ins Eingabefeld tippen und Enter drücken. Funktioniert parallel zum RFID-System.
Audio
Bei jeder gezählten Runde ertönt ein Piep-Ton. Kann im Header abgeschaltet werden.
Pause / Stopp
Session kann jederzeit pausiert oder beendet werden. „Zurücksetzen" archiviert alte Runden und setzt den Live-Bereich zurück.
Displays & Einstellungen
- 📺 Displays: Button in der Toolbar lädt alle Viewer/Clock/Sponsor-Displays remote neu.
- Auto-Paging: Wechselintervall der Tabellenseiten (3–60 Sek.), einstellbar unter Einstellungen. Gilt für Viewer und Sponsor.
- Ticker-Speed: Laufgeschwindigkeit der Sponsor-Logos (5–120 Sek.), einstellbar neben dem Sponsor-Label.
- Watchdog: Viewer/Clock/Sponsor verbinden sich automatisch wieder wenn der Server neu gestartet wird. Kein manueller Browser-Refresh nötig.
- Server-Zeit: Alle Displays zeigen Datum/Uhrzeit vom Rennrechner (wichtig für Raspberry Pis ohne Echtzeituhr).
🚦 Ampel-Start (F1-Stil)
- Konfigurierbar pro Session unter „⚙️ Ampel" im Live-Tab.
- Countdown: Einstellbar bis 10 Minuten. Wird auf Uhr (
/clock) angezeigt. In den letzten 5 Sekunden werden die roten Lichter nacheinander aufgebaut (5→1 Licht pro Sekunde). - Bei 0: Alle 5 rot → zufällige Wartezeit (1–3 Sek.) → Alle 5 grün = GO! Session startet automatisch.
- Transponder-Gating: Transponder werden erst X Sekunden nach Grün aktiv (konfigurierbar). „Auto" schaltet automatisch scharf.
- Die Ampel wird auf allen Endpunkten angezeigt:
/clock,/viewer2,/rennleitung.
🏁 Abwink-Logik (Rennende)
Bei Rundenzählung (Timer)
Timer läuft ab → Abwink-Phase startet. Das erste Team das mehr Runden hat als der Leader bei Timer-Ablauf, wird als Leader erkannt → Abwinken beginnt. Auch Führungswechsel in der letzten Runde werden korrekt erkannt.
Dynamische Leader-Erkennung
Bei Timer-Ablauf wird die aktuelle Rundenzahl des Leaders gespeichert (leaderLapCount). Während der Abwink-Phase wird jedes Team das die Linie überquert geprüft: Hat es mehr Runden als der gespeicherte Wert? Wenn ja, wird es als neuer Leader erkannt und das Abwinken beginnt.
Das bedeutet: Wenn Team A bei Timer-Ablauf führt, aber Team B in der letzten Runde überholt und zuerst die Linie überquert, wird Team B korrekt als Leader erkannt — nicht Team A.
Bei fester Rundenzahl
Erstes Team erreicht Zielrundenzahl → Abwink-Phase startet. Alle anderen werden beim nächsten Überqueren der Linie abgewunken.
Status-Anzeige
- Rot blinkend — Team muss noch über die Linie
- Grün — Team hat überquert, fertig
Session endet automatisch wenn alle Teams abgewunken sind (oder manuell durch „Stop").
🎨 Farben & Status
| Blau blinkend — Team überfällig (über Blau-Schwelle, Standard 15s über erwarteter Rundenzeit) | |
| Orange blinkend — Team stark überfällig (über Orange-Schwelle, Standard 30s) | |
| Rot blinkend — Abwink-Phase, Team hat die Linie noch nicht überquert | |
| Grün — Team fertig (abgewunken) | |
| Grau — DSQ, DNS, DNF, RET, OUT |
✂️ Split-Erkennung
- Automatisch wenn Rundenzeit ≈ 2× vorherige Runde (Toleranz einstellbar pro Session).
- Erscheint als Vorschlag in der Sidebar (Live-Tab) und in der Rennleitung.
- Splitten: Teilt Doppelrunde in 2 gleichmäßige Hälften. Nachfolgende Rundennummern werden automatisch angepasst.
- Ignorieren/OK: Entfernt den Vorschlag, die Runde bleibt unverändert.
- Im Team-Detail (Doppelklick auf Team in Rennleitung): Einzelne Runden nachträglich splitten (✂-Button).
🏆 Ergebnisse & PDFs
- Ergebnis-PDF: Offizielle Platzierung mit Runden, Gesamtzeit, Gap, Best/Last Lap. Wahlweise mit oder ohne Strafen.
- Teams-PDF: Jedes Team auf eigener Seite mit allen individuellen Rundenzeiten, Statistiken und optionalem Logo.
- Startaufstellung-PDF: 4-reihiges Grid für Ausdrucke an der Strecke. Leader links/rechts, nach Klassen trennbar.
- Nachbearbeitung: Unter „Ergebnisse" → „Nachbearbeiten": Runden bearbeiten, löschen, hinzufügen, splitten. Auch nach Rennende möglich.
- Logo: Unter „Veranstaltung" hochladen (PNG mit Transparenz empfohlen, max 2MB). Erscheint oben rechts auf allen PDFs.
📡 Rennleitung
Separates Dashboard unter /rennleitung (oder /racecontrol), optional passwortgeschützt.
Flaggen
An alle: Gelb, Rot, Weiß, Gelb-Rot, Zielfahne. An einzelne Teams: Blau, Schwarz-Weiß, Schwarz-Orange, Schwarz. Bei Team-Flaggen kann eine Begründung eingegeben werden (z.B. „Transponder defekt, Box") — wird auf der Clock-Anzeige angezeigt.
Strafen
Zeitstrafe (Sekunden), Rundenabzug, Verwarnung, Status (DSQ / DNS / DNF / RET / OUT).
Weitere Funktionen
- Manuelle Buchung: Startnummer eingeben → +1 Runde direkt buchen.
- Team-Detail: Doppelklick auf Team-Karte → alle Rundenzeiten mit Löschen (✕), Splitten (✂) und Runde hinzufügen (+).
- Track-Tracker: Klick auf Team = Punkt auf der Strecken-Visualisierung (max. 5 gleichzeitig).
- Letzte Durchfahrten: Echtzeit-Anzeige der letzten 10 Durchfahrten mit Rundenzeiten. Die Liste wird im Browser mitgeschrieben und beginnt beim Öffnen der Seite neu – verbindliche Werte stehen im Ergebnis und im PDF.
- Sortierung der Team-Karten: Über dem Kachelfeld wählbar zwischen Position (Standard), Startnummer und Name. Bei vielen Teilnehmern wandern die Karten bei Positionssortierung ständig – nach Startnummer oder Name stehen sie fest. Die Rennposition auf der Karte bleibt dabei immer die echte Platzierung.
- Schnellste / Langsamste 5: Zeigt die 5 schnellsten (Best) und langsamsten (letzte Runde) Teams. Klick blendet einzelne Einträge aus.
- Ticker-Nachricht: 📢 Eingabefeld sendet Nachricht an alle Viewer/Sponsor-Displays (blauer Banner).
- Gap-Spalte: Abstand zur Position davor. Rundenzählung: +Runden oder Zeitdifferenz. Schnellste Runde: Zeitdifferenz der besten Runde.
Alle Aktionen werden in Echtzeit mit der Haupt-App und allen Viewern synchronisiert.
📡 RFID & Transponder
Unterstützte Protokolle
| Protokoll | Port | Kompatible Reader |
|---|---|---|
| LLRP | 5084 | Impinj R420/R700, Zebra FX7500/FX9600, ThingMagic u.a. |
| Speedway Connect | 14150 | Impinj Reader mit Speedway Connect Software |
| IFM DTE405 | 33000 | IFM DTE405 (XL/XP Nachrichtenformat, Auto-Erkennung) |
Externe Reader / Fremdsysteme
Im Modus Extern liest CH-Timing Durchfahrten aus dem Ordner inbox/. Jede Datei ist genau eine Durchfahrt. Die Dateiendung spielt keine Rolle – jede Datei im Ordner wird ausgewertet und danach gelöscht. Damit lässt sich jedes System anbinden, das Dateien schreiben kann.
Es gibt zwei Betriebsarten:
- Dateiname: Die Transponder-Nummer steht am Anfang des Dateinamens, der Inhalt ist egal (die Datei darf leer sein). Gelesen wird die führende Ziffernfolge –
608.cht,608_1785863064315.chtund608-antenne2.txtergeben alle den Chip 608. - Rohdaten: Die Nummer steht im Inhalt der Datei. Über Start und Ende wird der Zeichenbereich festgelegt (ab Position 0, Ende einschließlich). Der Dateiname ist dann egal.
Zeitstempel: Steht im Dateinamen direkt vor dem Punkt eine Zahl mit mindestens 13 Stellen (Millisekunden seit 1970), verwendet CH-Timing diese als Durchfahrtszeit – empfohlenes Format: <Chip>_<Millisekunden>.cht. Fehlt sie, gilt der Zeitpunkt der Verarbeitung. Das macht sich bemerkbar, wenn sich Dateien stauen: Sie kommen dann mit fast gleicher Zeit an und werden von der Mindestrundenzeit als Doppellesung verworfen.
Nicht direkt anschließbar sind Systeme mit eigener Erfassungstechnik wie MYLAPS oder AMB – deren Transponder werden über Induktionsschleifen gelesen und benötigen einen eigenen Decoder. Ein kleines Zusatzprogramm, das dessen Durchfahrten als Dateien in inbox/ schreibt, genügt aber zur Anbindung.
Tag-Konfiguration
- Offset + Länge: Bestimmen welcher Teil der EPC als Chip-Nummer extrahiert wird.
- Validierung: Optionale Prüfposition filtert Fremd-Tags.
- Debounce: Standard 500ms. Verhindert Doppelzählungen durch mehrfache Lesungen desselben Tags.
🌐 Live Upload (Externe Homepage)
Zweck: Zeigt Live-Ergebnisse auf eurer eigenen Website, damit Zuschauer von überall verfolgen können.
Im Installationsordner liegt der homepage/-Ordner mit fertiger Live-Ergebnis-Seite (live.html) und PHP-Backend (api/timing.php).
Einrichtung (PHP-Webspace)
- 1. Den
homepage/-Ordner per FTP auf den Webspace hochladen. - 2. In
api/timing.phpden API-Key setzen (Zeile 6). - 3. In CH-Timing unter Einstellungen → Live Upload die URL eintragen:
https://eure-seite.de/homepage/api/timing.php - 4. Gleichen API-Key eintragen, Intervall wählen (5–60s), „Aktivieren" klicken.
- 5. Live-Ergebnisse sind dann sichtbar unter
https://eure-seite.de/homepage/live.html
Einbetten: Per iFrame: <iframe src="https://eure-seite.de/homepage/live.html">
Test: Der „🔍 Test senden"-Button prüft, ob die Verbindung funktioniert.
💾 Daten & Backup
- Auto-Backup: Alle 5 Minuten (max. 10 behalten). Manuell: Einstellungen → Server-Manager → Erstellen/Herunterladen.
- Wiederherstellen: Backup-Datei hochladen → überschreibt aktuelle Daten.
- System zurücksetzen: Löscht ALLE Daten (Teilnehmer, Sessions, Runden). Erfordert Bestätigungs-Eingabe.
- Datenbank: SQLite im WAL-Modus für maximale Stabilität bei gleichzeitigem Lese-/Schreibzugriff. Log-Dateien werden automatisch rotiert (max. 2MB).
🔄 Software Update
CH-Timing kann ohne Neuinstallation aktualisiert werden. Neue Versionen werden als ZIP-Datei auf der Homepage zum Download bereitgestellt.
Update durchführen
- ZIP-Datei von der Homepage herunterladen
- In CH-Timing: Einstellungen → 🔄 Software Update → „📦 Update importieren"
- ZIP-Datei auswählen → Bestätigen
- Server neu starten (wird automatisch angeboten)
Das Update wird in einen Staging-Ordner entpackt und erst beim nächsten Server-Start angewendet. Die ZIP-Datei wird automatisch validiert (muss server.js enthalten).
Was bleibt erhalten?
- Datenbank — Alle Teilnehmer, Sessions, Runden, Einstellungen
- Backups — Alle gespeicherten Sicherungen
- Sponsor-Logos — Hochgeladene Bilder für die Sponsor-Ansicht
- Session-Exporte — Gespeicherte Ergebnis-JSONs
- Log-Dateien — Bisherige Protokolle
🌐 Sprache / Language
CH-Timing ist vollständig zweisprachig (Deutsch/Englisch). Die Sprache kann an drei Stellen umgeschaltet werden:
- 🌐 Button in der Toolbar — Schaltet die gesamte Hauptsoftware sofort um
- 🌐 Button in der Rennleitung — Schaltet die Rennleitung unabhängig um
- Einstellungen → Sprache — Radio-Buttons für DE/EN
Die Spracheinstellung wird im Browser gespeichert und gilt für alle Ansichten (Viewer, Clock, Rennleitung). Auch die generierten PDFs verwenden die eingestellte Sprache.
⌨️ Tastenkürzel
| Taste | Funktion |
|---|---|
Enter | Manuelle Buchung bestätigen / Inline-Edit bestätigen |
Escape | Modal schließen / Inline-Edit abbrechen |
💡 Tipps für den Renntag
- Vor dem Rennen: Teilnehmer importieren, Transponder-Nummern prüfen, Test-Session mit RFID-Reader starten.
- RFID testen: Alle Transponder über die Antenne fahren lassen und im Live-Bereich prüfen, ob die Zuordnung passt.
- Netzwerk: Am besten kabelgebunden (LAN) für den Timing-PC. Viewer und Rennleitung können über WLAN verbunden werden.
- Backup: Vor dem Rennen ein manuelles Backup erstellen. Die Auto-Backups laufen alle 5 Minuten.
- Viewer aufsetzen:
/viewerauf Beamer öffnen und im Vollbild (F11) betreiben. Auto-Paging zeigt alle Teams rotierend. - Uhr an der Strecke:
/clockauf großem Monitor an Start/Ziel. Zeigt Timer und Ampel. - Mehrere Zeitnehmer: Jeder kann
/rennleitungauf dem eigenen Gerät öffnen und manuelle Buchungen vornehmen. - Energiesparen abschalten: Am Timing-PC Energiesparmodus und Ruhezustand deaktivieren. Der Server ist ein eigener Prozess – schläft der Rechner ein, schläft die Zeitnahme mit.
- Transponder-Länge prüfen: Einmal gegen die tatsächlichen Nummern abgleichen. Steht sie zu kurz, werden Runden dem falschen Team gutgeschrieben.
- Reader-Status im Blick behalten: Nach dem Ampelstart prüfen, ob der Reader verbunden ist und die erste Durchfahrt in der Live-Tabelle erscheint. Reißt die Verbindung ab, meldet sich CH-Timing selbstständig wieder – ein Blick auf die Statusanzeige schadet trotzdem nicht.
- Startaufstellung außerhalb der Lesezone: Stehen alle Fahrzeuge unter dem Bogen, liegen sie schon im Feld. Ein paar Meter davor aufstellen.
- Virenschutz: Den Ordner
inbox/als Ausnahme eintragen. Hält ein anderes Programm eine Datei fest, kann das eine Durchfahrt kosten.
inbox/ wegkopieren, dann neu starten. In den Dateinamen steckt der Zeitstempel – damit lassen sich fehlende Runden über die Rennleitung nachtragen. Nach der Verarbeitung sind die Dateien weg. Die laufende Session und alle gebuchten Runden überstehen einen Neustart unbeschadet.