Repository navigation
Tracker
Ein Tracker ist ein festes Ortungsgerät im Fahrzeug: GNSS, IoT-SIM, Akku. Es ist mit einem Fahrzeug der Organisation gekoppelt und meldet dessen Position von selbst — die Besatzung muss nichts tun, kein Telefon, kein Link, keine App.
Gerät und Firmware entstehen im Repo ConvoyPlan-Tracker; dort stehen Plan, Protokoll und ein Simulator, mit dem sich alles hier Beschriebene ohne Hardware ausprobieren lässt.
Gebuchte Pakete (Hosting) können Tracker begrenzen; gezählt werden nur nicht gesperrte, und die Grenze ist weich — siehe Lizenz und Demo-Modus.
Nur, solange sein Fahrzeug in einem laufenden Konvoi eingeplant ist — Status aktiv oder läuft. In der Planung, nach dem Abschluss oder ohne Konvoi bleibt das Gerät stumm; es fragt bei Bewegung alle fünf Minuten nach, ob sich das geändert hat. Das entscheidet die Instanz, nicht das Gerät: Ein Tracker ist keine Ortung rund um die Uhr, sondern Tracking für den Marsch.
Aktiv geschaltet wird der Konvoi mit ▶ Konvoi aktivieren — in der Tracking-Ansicht oben in der Seitenleiste oder in der Planung im Reiter Export unter Live-Tracking (ab der Rolle Planer). ⏹ Konvoi abschließen beendet das Senden wieder; ein abgeschlossener Konvoi lässt sich erneut aktivieren. ↩ Zurück in Planung setzt ihn aus beiden Zuständen wieder auf In Planung.
Steht das Fahrzeug in zwei laufenden Konvois (Hauptkonvoi und Unterkonvoi), erscheint es in beiden.
Ob sein Fahrzeug in einem laufenden Konvoi steht, erfährt der Tracker beim ersten Kontakt mit der Instanz. Steht das Fahrzeug länger und hängt der Tracker nicht am Bordnetz, schläft er und vergisst dabei, ob er senden soll — das Aufwachen ist ein Neustart. Weckt ihn die Bewegung oder die Zündung, sendet er erst, wenn dieser erste Kontakt durchkommt:
- Mit Mobilfunk oder WLAN dauert das Sekunden.
- Ohne eigenes Netz (Halle ohne Empfang, Gerät ohne SIM) ruft er per Bluetooth die Begleit-App und fragt über sie nach. Ohne App versucht er es jede Minute erneut, bis er Netz hat.
Was bis dahin gefahren wird, zeichnet er nicht auf: Die Linie beginnt beim ersten Kontakt, nicht in der Halle. Konvoi früher aktivieren ändert daran nichts, denn der Tracker weiß es erst nach dem Kontakt. Hängt der Tracker dagegen am Dauerstrom, schläft er nicht und behält, was die Instanz zuletzt gesagt hat. Dann zeichnet er auch eine Anfahrt ohne Empfang auf und reicht sie nach.
Wer die Linie ab der ersten Minute braucht, sorgt am Abfahrtsort für Empfang, etwa mit dem WLAN der Wache, oder für eine Begleit-App mit Fahrer-Link im Fahrzeug.
Das Nachfragen über die App und jede Minute kann der Tracker ab Firmware 0.3.0. Ältere Fassungen versuchen es ohne Netz erst mit dem nächsten Lebenszeichen wieder, nach bis zu zwölf Stunden.
Positionen vom Tracker tragen die Zeit der Messung, nicht die des Eingangs. Fährt das Fahrzeug durch ein Funkloch, reicht das Gerät die Punkte danach nach, und die Linie auf der Aktionsseite bleibt eine Linie. Ein nachgereichter Punkt setzt die aktuelle Position auf der Karte nie zurück.
Während der Fahrt misst ein Tracker seine Position alle 10 s und sendet die gesammelten Punkte gebündelt. Wie oft, stellt der Org-Admin für alle Tracker der Organisation ein: Org-Admin → Tracker → Sendetakt, zur Wahl stehen 10, 15 (Standard), 30, 60 und 120 s. Der Verlauf auf der Karte bleibt gleich dicht; der Takt bestimmt, wie aktuell die Position ist und wie weit sie zwischen zwei Versänden springt (bei 50 km/h und 15 s gut 200 m). Die Tracker übernehmen eine Änderung mit ihrem nächsten Kontakt.
Der Abschnitt zeigt für jeden Takt eine Schätzung des Datenvolumens je Tracker und Fahrstunde und rechnet sie mit der Zahl der Tracker und den Fahrstunden im Monat auf den SIM-Tarif hoch. Die Kosten stecken fast ganz im Versand, nicht in den Punkten: Bei 15 s sind es grob 400 KB je Fahrstunde, bei 60 s gut 120 KB. Schließt das Mobilfunknetz die Verbindung zwischen zwei Versänden, muss jeder neu verbinden, und es wird ein Mehrfaches; die Seite nennt diesen Wert in Klammern. Im Stand und ohne laufenden Konvoi fällt kaum etwas an. Es ist eine Schätzung aus dem Protokoll, bis Messfahrten echte Zahlen liefern.
Öfter senden kostet auch Strom und beim verbauten Funkmodul etwas GNSS: Solange es sendet, misst es nicht.
Der Sendetakt gilt nur im Mobilfunk. Meldet ein Tracker, dass er über WLAN (Router im Fahrzeug, Netz der Wache) oder über BLE (Weiterleitung durch die Begleit-App) verbunden ist, sendet er live: jede Messung sofort, also alle 10 s, ohne dass jemand etwas einstellt. Diese Wege kosten kein Volumen der SIM. Die Entscheidung trifft die Instanz bei jedem Kontakt neu; fällt der Tracker auf Mobilfunk zurück, gilt mit der nächsten Antwort wieder der Takt der Organisation.
Beim ersten Punkt wechselt ein Fahrzeug im Status geplant auf unterwegs, wie beim Fahrer-Link. Statusmeldungen, Stärke und Betriebsstoff kommen weiter aus der App oder vom Fahrer-Link — der Tracker meldet nur, wo das Fahrzeug ist.
Sendet ein Tracker, gehört ihm die Position. Meldet daneben die Besatzung mit App oder Fahrer-Link für dasselbe Fahrzeug, wird ihre Position verworfen, und nur sie erfährt es: „Die Position kommt vom Fahrzeugtracker. Status und Meldungen gehen weiter von hier." Genau das bleibt ihr: Status, Stärke, Betriebsstoff, Quittung. Sonst sprängen zwei Punkte auf der Karte hin und her.
Im Browser — Fahrer-Link und Tracking-Ansicht — ist „GPS senden" für ein solches Fahrzeug gar nicht erst drückbar; der Hinweis steht darunter. Lief das Senden schon, als der Tracker übernahm, endet es von selbst, und die Position des Trackers bleibt auf der Karte.
Fällt der Tracker aus, gilt fünf Minuten nach seinem letzten Bündel wieder das Telefon: Im Browser wird „GPS senden" dann wieder drückbar. In der Fahrzeugliste steht TRACKER statt LIVE, solange die Position vom Gerät kommt.
Will die Führung sofort das Telefon gelten lassen (Tracker defekt, falsches Fahrzeug gekoppelt), übersteuert sie den Tracker: Org-Admin → GPS-Freigaben → „Tracker übersteuern" (Rolle Planer). Danach wird verworfen, was der Tracker für dieses Fahrzeug in diesem Konvoi sendet, bis jemand „Tracker wieder nutzen" drückt. Das nimmt die Instanz nicht von selbst zurück, auch nicht nach einem Neustart.
Die Begleit-App verbindet sich per Bluetooth mit dem Tracker ihres Fahrzeugs. Erreicht das Telefon die Instanz nicht, etwa in einer Halle, im Funkloch oder auf einem Diensttelefon ohne Daten, gehen Status, Stärke und Betriebsstoff über den Tracker hinaus (WLAN oder Mobilfunk). Die App zeigt dann „an den Tracker übergeben“ und später „über den Tracker bestätigt“. Die Führung sieht die Meldung wie jede andere, mit Alarm bei technischem Halt und Ausfall.
- Es funktioniert nur im laufenden Konvoi und nur für die Besatzung, die das Fahrzeug in der App gewählt hat. Den Schlüssel dafür gibt die Instanz dem Tracker und dieser einen App; Koppeln oder Knöpfe am Gerät gibt es nicht.
- Die App muss einmal Netz gehabt haben, nachdem sie das Fahrzeug gewählt hat. Ein Telefon, das schon beim Einsteigen kein Netz hat, kann den Tracker nicht nutzen.
- Wählt eine andere Besatzung das Fahrzeug oder gibt die bisherige es frei, gilt ein neuer Schlüssel. Der alte Weg endet damit, ein Funkloch beendet ihn nicht.
- Eine Meldung zählt einmal, auch wenn sie über App und Tracker zugleich ankommt. Was länger als 30 Minuten unterwegs war, wird verworfen; die App sagt es.
- Nötig sind Tracker-Firmware und Begleit-App mit Nahfunk. Ältere Fassungen merken nichts davon.
Org-Admin → Tracker → „+ Neuer Tracker" (Rolle Admin):
- Name vergeben, Fahrzeug wählen, Update-Kanal lassen (Stabil).
-
Anlegen. Die Seite zeigt einen Einmal-Code (
K7Q2-M9XD) — nur jetzt, 24 Stunden gültig. Gespeichert ist er nicht. - Gerät per USB an den Rechner und Per USB einrichten klicken, dann das Gerät in der Liste des Browsers wählen. Die Seite schreibt die Adresse dieser Instanz und den Code aufs Gerät, auf Wunsch auch WLAN-Netze und den APN der SIM (siehe unten). Der Tracker meldet sich danach selbst über WLAN oder Mobilfunk an und tauscht den Code gegen seinen Zugang. Damit ist zugleich geprüft, dass er Netz hat und die Instanz von außen erreicht. Der Code ist danach verbraucht.
Das geht in Chrome oder Edge am Rechner (Web Serial). In anderen Browsern steht stattdessen ein Hinweis, und der Code wird am Gerät eingegeben.
Schlägt das Einrichten fehl, bleibt der Code stehen, und die Seite sagt, woran es lag: kein Netz, Code abgelaufen, Zertifikat nicht prüfbar oder keine gültige Lizenz auf dieser Instanz (dann bleibt der Code gültig, bis eine Lizenz eingetragen ist). Ohne Lizenz senden auch eingerichtete Tracker keine Positionen; sie melden sich nur noch in langen Abständen. Ein Tracker, der schon für eine andere Instanz eingerichtet war, behält diese Einrichtung, bis die neue gelungen ist.
Eigene Zertifizierungsstelle: Ein Tracker kennt die öffentlichen Wurzeln von Let's Encrypt. Hat diese Instanz ein Zertifikat einer eigenen oder internen Stelle, gehört deren Wurzelzertifikat (PEM) beim Einrichten unter Eigene Zertifizierungsstelle dazu, höchstens drei. Wechselt die Stelle später, muss jedes Gerät einmal neu per USB eingerichtet werden.
Andere SIM als 1NCE: Ab Werk meldet sich ein Tracker mit dem APN
iot.1nce.net im LTE-M-Netz an. Für eine andere SIM gehört deren APN beim
Einrichten unter Mobilfunk (SIM) dazu, ebenso das Funknetz, wenn am Standort
nur NB-IoT verfügbar ist. Der Tracker übernimmt beides erst, wenn er sich damit
bei dieser Instanz anmelden konnte; ein Tippfehler im APN ergibt „erreicht diese
Instanz nicht", und die alten Einstellungen bleiben. Leer gelassen ändert sich
nichts. Beides gehört zur SIM, nicht zur Instanz: Ein Tracker, der zu einer
anderen Organisation wechselt, behält es. Die Statuszeile beim Einrichten nennt
den APN, mit dem das Gerät gerade arbeitet. Firmware vor 0.3.0 kennt diese
Felder noch nicht; dort setzt man den APN im seriellen Terminal
(setze apn …, dann neustart), die Seite sagt das.
In der Liste steht danach bereit, mit dem letzten Lebenszeichen, Akku, Empfang und Firmwarestand. Meldet sich ein Gerät länger als einen Tag nicht, steht dort nicht erreichbar — ein Tracker meldet sich auch ohne Bewegung alle zwölf Stunden. Hat der Akku weniger als 20 % und hängt das Gerät nicht am Bordnetz, steht dort Akku schwach.
Ein Tracker sendet bevorzugt über WLAN: das Netz des LTE-Routers im Fahrzeug (ELW, KdoW) oder das der Wache. Das kostet kein Datenvolumen, und Updates kommen schneller. Erst wenn kein bekanntes WLAN in Reichweite ist, nimmt er Mobilfunk.
Beim Einrichten unter WLAN bis zu drei Netze eintragen, je Name (SSID) und Passwort (WPA2/WPA3 mit Passwort; Netze mit Anmeldeseite oder Benutzerkonto gehen nicht). Später ändern, ohne neu einzurichten: in der Tracker-Liste WLAN per USB, Netze eintragen, Per USB übertragen. Ohne Eintrag werden alle Netze vom Gerät gelöscht.
Das Passwort geht nur aufs Gerät. Die Instanz bekommt es nie zu sehen, und das Gerät gibt es nicht wieder heraus — nur die Namen. Ob das WLAN trägt, zeigt das Symbol in der Liste beim nächsten Kontakt (siehe Akku und Empfang).
Hat der Tracker weder WLAN noch Mobilfunk, kann ein Telefon im Fahrzeug einspringen: Die Begleit-App mit einem Fahrer-Link dieser Instanz nimmt die Daten des Trackers per Bluetooth entgegen und liefert sie ab. Die Besatzung muss dafür nichts tun, außer die App mit dem Fahrer-Link offen zu haben. Das gilt auch beim Losfahren: Weiß der Tracker nach dem Aufwachen noch nicht, ob ein Konvoi läuft, ruft er die App, um nachzufragen. Das ist die Rückfallebene, nicht der Normalfall — auf Akku und Hintergrundbetrieb des Telefons ist weniger Verlass als auf das Gerät.
Das Telefon ist dabei nur eine Leitung: Der Tracker signiert, was er schickt, mit einem eigenen Schlüssel, und die Instanz signiert ihre Antwort. Das Telefon kann nichts verändern, keine Position erfinden und dem Tracker kein Senden außerhalb eines laufenden Konvois einreden. Das Gerätetoken und der Schlüssel gehen nie über Bluetooth. Es gelten dieselben Regeln wie sonst — gesendet wird nur im laufenden Konvoi. Der Fahrer-Link muss zur selben Organisation gehören wie der Tracker, aber nicht zum Konvoi, in dem das Fahrzeug fährt. Ein Link nur zum Ansehen leitet nicht weiter.
Das ist der umgekehrte Weg zu den Meldungen über den Tracker: dort hat das Telefon kein Netz und der Tracker schon, hier ist es andersherum.
Ein eingerichteter Tracker sendet per Bluetooth eine Kennung, die alle 15 Minuten wechselt. Die Begleit-App erkennt daran, in welchem Fahrzeug sie sitzt, und schlägt es vor; gewählt wird weiter von Hand. Weil die Kennung wechselt und nur die Instanz sie zuordnen kann, lässt sich ein Fahrzeug darüber nicht über Tage verfolgen. Tracker, die vor dieser Funktion eingerichtet wurden, bekommen ihren Schlüssel beim nächsten Kontakt über WLAN oder Mobilfunk von selbst. Auch ein Tracker, der seinen Schlüssel verloren hat (Gerätespeicher gelöscht), bekommt beim nächsten direkten Kontakt einen neuen — nie den alten, damit mitgeschnittene Nachrichten nicht wieder gelten.
Akku und Empfang stehen als kleine Symbole, wie man sie vom Telefon kennt: in der Tracker-Liste und in der Konvoi-Ansicht direkt am Fahrzeug, damit die Führung einen schwachen Akku oder ein Funkloch bemerkt, bevor die Position ausbleibt. Mit der Maus über dem Symbol stehen die genauen Werte.
- Batterie: Füllung nach Ladestand. Ein gelber Blitz heißt am Bordnetz, das Gerät lädt. Rot mit Zahl heißt Akku schwach: unter 20 % und ohne Bordnetz. Der Tooltip nennt, seit wann das Gerät auf Akku läuft („auf Akku seit 3 Tagen").
- Empfang: Kam die letzte Meldung über WLAN, steht ein WLAN-Symbol, kam sie über die Begleit-App, ein Bluetooth-Symbol. Nur über Mobilfunk gibt es Balken: vier nach der zuletzt gemeldeten Signalstärke (RSRP: ab −90 dBm vier, ab −100 drei, ab −110 zwei, ab −120 einer). Ist die letzte Meldung älter als zehn Minuten, ist das Symbol grau — alter Empfang ist kein Empfang. Das ist kein Fehler: Steht das Fahrzeug länger als fünf Minuten, schläft der Tracker auf Akku bis zur nächsten Bewegung oder bis die Zündung Strom bringt.
Die Konvoi-Ansicht fragt die Werte alle 15 Sekunden ab.
Während der Fahrt sendet ein Tracker im Sendetakt der Organisation ein Bündel (Standard 15 Sekunden), auch ohne GPS. Die Instanz erwartet es deshalb und zeigt am Fahrzeug in Worten, was fehlt:
- Verbindung unterbrochen (rot): Zwei erwartete Bündel sind ausgeblieben, also zwei Takte plus 15 Sekunden für den Verbindungsaufbau nichts — beim Standard 45 Sekunden, bei 60 Sekunden Takt 2¼ Minuten. Gerechnet wird immer mit dem Takt der Organisation, auch wenn der Tracker gerade live über WLAN sendet: Wer das WLAN der Wache verlässt, wechselt erst nach einem gescheiterten Versuch auf Mobilfunk, und das soll nicht als Abriss aufleuchten. Funkloch, Tunnel, Gerät aus. Kommt das nächste Bündel, verschwindet die Meldung; was der Tracker im Funkloch aufgezeichnet hat, reicht er nach.
- GPS gestört (orange): Die Bündel kommen, das Netz steht also, aber seit einer Minute plus einem Takt plus 15 Sekunden (beim Standard 90 Sekunden) ohne brauchbare Position — kein Satellitenempfang, Antenne ab, Störsender oder unplausible Werte. Unplausibel ist eine Position bei 0°/0°, eine Genauigkeit über 100 m, mehr als 250 km/h oder ein Sprung, der schneller wäre. Solche Positionen landen nicht auf der Karte.
Ein parkendes Fahrzeug ist keine Störung: Steht es fünf Minuten oder geht die Zündung aus, meldet sich der Tracker ab, bevor er schläft, und die Instanz erwartet nichts mehr. Ohne laufenden Konvoi erwartet sie ohnehin nichts.
In der Tracker-Liste des Org-Admins stehen beide Meldungen als Zustand des Geräts.
Hängt ein Tracker nicht am Bordnetz, steht dort auf Akku seit …, ab einem Tag hervorgehoben. Über Nacht ohne Strom ist normal, wenn die Steckdose an der Zündung hängt. Mehrere Tage heißen meist: Stecker gezogen oder Steckdose ohne Strom, und der Akku hält nicht ewig. Gezählt wird ab der ersten Meldung ohne Bordnetz, der Wert heißt also „seit spätestens".
Neu einrichten erzeugt einen neuen Code und sperrt den bisherigen Zugang sofort — für ein Gerät, das den Besitzer wechselt oder verloren ging. Bearbeiten koppelt ein anderes Fahrzeug, wechselt den Kanal oder sperrt das Gerät; Löschen entfernt es.
Wie bei der Instanz: Stabil, Beta, Nightly. Der Kanal gilt je Gerät; die Instanz bietet dem Gerät an, was auf seinem Kanal neuer ist als sein Stand und zu seiner Hardware passt. Eingespielt wird nur im Stand, nie während der Fahrt, und ein Image, das nach dem Neustart die Instanz nicht erreicht, rollt sich selbst zurück. In der Liste steht, welche Version bereitsteht und wie das letzte Update ausging.
Die Firmware kommt aus der Firmware-Ablage (https://firmware.convoyplan.de,
gefüllt vom Tracker-Repo). Die Instanz holt stündlich das Manifest des Kanals,
lädt das Image einmal und prüft es gegen Prüfsumme und Größe; die Geräte laden
von ihrer Instanz, nicht aus dem Internet — ein Tracker braucht nur die
Adresse seiner Instanz zu erreichen. Mit TRACKER_FIRMWARE_URL zeigt eine
Instanz auf eine eigene Ablage, leer schaltet Updates ab. Ist die Ablage nicht
erreichbar, bleibt der letzte Stand gültig.
Ein Tracker prüft das Zertifikat seiner Instanz. Let's Encrypt kennt er von Haus aus; eine eigene oder interne Zertifizierungsstelle bekommt er beim Einrichten per USB (Feld Wurzelzertifikate). Wechselt die Instanz später ihre CA, muss dafür nicht jedes Gerät an den Rechner: die Instanz kann die Wurzeln selbst verteilen.
Dazu legt der Betreiber eine PEM-Datei mit höchstens drei CA-Zertifikaten ab und
nennt sie in TRACKER_WURZELN, am besten im Volume /certs
(TRACKER_WURZELN=/certs/tracker-wurzeln.pem). Beim nächsten Kontakt bekommt jedes
Gerät das Bündel; übernommen wird es erst, wenn eine Verbindung damit gelingt.
Ein falsches Bündel sperrt also kein Gerät aus, es wird nur nicht übernommen.
Der Wechsel geht in drei Schritten:
- Alte und neue CA in die Datei schreiben. Die Instanz liest sie ohne Neustart.
- Warten, bis in der Tracker-Liste bei keinem Gerät mehr Zertifikate noch nicht übernommen steht. Ein Gerät meldet sich spätestens nach zwölf Stunden, mit Strom aus dem Fahrzeug sofort.
- Zertifikat der Instanz tauschen, danach die alte CA aus der Datei nehmen. Bis zum Tausch lehnen die Geräte das gekürzte Bündel ab und behalten beide.
Eine Datei ohne Zertifikat heißt: keine eigenen Wurzeln mehr, etwa nach dem Umzug
auf Let's Encrypt. Ist die Datei unlesbar oder enthält sie etwas anderes als
CA-Zertifikate, verteilt die Instanz nichts und schreibt den Grund ins Log.
Ohne TRACKER_WURZELN behält jedes Gerät, was es beim Einrichten bekommen hat.
- Ein Fahrzeug, ein Tracker. Ein Fahrzeug, an dem schon ein Tracker hängt, steht beim Koppeln nicht zur Wahl.
- „GPS-Freigabe zurücksetzen" (Reiter GPS-Freigaben) gilt auch für einen Tracker: die gelöschte Position kommt nicht beim nächsten Punkt zurück.
- Jede Änderung — Anlegen, Koppeln, Sperren, neuer Code, Löschen, der Sendetakt und das Einrichten durch das Gerät — steht im Audit-Log.
- Ortung im Dienstfahrzeug ist bei hauptamtlichem Personal mitbestimmungspflichtig. Dass nur während eines laufenden Konvois gesendet wird und das in der Fahrzeugliste sichtbar ist, ist dafür die Grundlage.
Die Geräte-API liegt unter /api/geraete/ (einloesen, hallo, positionen,
firmware/ergebnis), authentifiziert mit Authorization: Bearer cvt_…. Die
Weiterleitung über BLE liegt am Fahrer-Link (POST /api/track/{slug}/tracker, dazu
GET /api/track/{slug}/baken für die Bake), die Kryptographie in
backend/app/services/tracker_ble.py. Das
Einrichten per USB spricht ein Zeilenprotokoll über die serielle Schnittstelle
(frontend/src/lib/tracker/usb.ts); der Browser sieht dabei nie ein Token. Der
Vertrag steht im Tracker-Repo unter docs/PROTOKOLL.md; die Regeln in
backend/app/services/ortungsgeraet.py.
Start
Einrichtung & Referenz
- Installation und Setup
- API-Dokumentation
- MCP-Server (KI-Schnittstelle)
- ConvoyPlan in ChatGPT verbinden
- Auskunft für Agenten
- Benutzerhandbuch
- Entwicklung
Bedienung
- Erste Schritte
- Konvoi-Planung
- Fahrzeuge
- Live-Tracking
- Marschbefehl & Export
- Rollen & Berechtigungen
- Teilen
- Aktionsseite
- Tracker
- Fehler melden & Wünsche
Betrieb & Sicherheit