SSC-TrackerHandbuch

Referenz

Spezifikation / API

Verständnis des Datenformats und der API

Um Daten von einer Drittanbieter-App oder Webseite abzurufen, benötigst du eine laufende SSC-Tracker App. SSC-Tracker fungiert als Proxy, um sicherzustellen, dass der ssc-tracker.org-Server nicht überlastet wird.

Du kannst auf Tracker-Daten über den Standard-Port 55055 auf localhost zugreifen. Von einem anderen Gerät im lokalen Netzwerk ist der Zugriff über http://[IP SIM PC]:55055 möglich. Dafür muss der LAN-Zugriff einmalig freigegeben werden (☰ → Connections → Enable LAN access, ein Admin-Dialog) – die App dauerhaft als Administrator zu starten ist nicht nötig.

Alle Endpunkte antworten per HTTP (HTTPS ist derzeit nicht implementiert). CORS-Header sind gesetzt, sodass Webseiten direkt darauf zugreifen können.

---

Übersicht aller Endpunkte

GET-Endpunkte

PfadBeschreibung
/Whazzup-v1-Format (für Little Navmap)
/jsonLive-Flugzeugdaten aller Piloten im JSON-Format
/activetaskAktiver Task als geparste JSON-Struktur
/activetaskplnAktiver Task als MSFS PLN XML
/mapSSC-Tracker Karte (Browser)
/minifcMini Flight Computer (Browser)
/getsettingsPanel-Einstellungen als JSON
/elevation/statusStatus des Höhendatendienstes
/elevation/taskHöhenprofil der aktiven Aufgabe
/elevation/pointHöhe eines einzelnen Punktes
/elevation/userrouteHöhenprofil der gespeicherten Benutzerstrecke
/elevation/lineHöhenprofil zwischen zwei Punkten
/elevation/areaHöhenraster eines Gebiets
/userroute/loadGespeicherte Benutzerstrecke laden

POST-Endpunkte

PfadBeschreibung
/settaskTask lokal setzen
/setsettingsPanel-Einstellungen speichern
/elevation/userrouteHöhenprofil für übermittelte Streckendaten berechnen
/userroute/saveBenutzerstrecke speichern
/actionAktion ausführen (z. B. Task zurücksetzen)

---

Live-Flugzeugdaten abrufen

GET http://localhost:55055/json

Liefert alle Flugzeugdaten aller Piloten in der Gruppe. Die Werte werden jede Sekunde aktualisiert. TSK-Werte sind nur verfügbar, wenn ein Task/Flugplan geladen ist.

Felder:

GN:              Gruppenname
TASK:            Aktueller Aufgabenname
WEATHER:         Wettervoreinstellungsname
ID:              Eigene Pilot-ID
ITEMS:           Liste aller Piloten
  GN:            Gruppenname des Piloten
  ID:            Pilot-ID
  NAME:          Pilotname
  AC:            Flugzeugname
  MODEL:         Flugzeugmodell
  TH:            Wahre Kursrichtung [°]
  LON:           Längengrad [dezimal]
  LAT:           Breitengrad [dezimal]
  IAS:           Angezeigte Geschwindigkeit [kn]
  TAS:           Wahre Fluggeschwindigkeit [kn]
  GS:            Bodengeschwindigkeit [kn]
  LV:            Letzte Landegeschwindigkeit [kn]
  VS:            Vertikalgeschwindigkeit [ft/min]
  WD:            Windrichtung [°]
  WV:            Windgeschwindigkeit [kn]
  MSL:           Höhe über MSL [ft]
  AGL:           Höhe über Grund [ft]
  TSK_TIME:      Aufgabenzeit seit Startlinie [s]
  TSK_AVG:       Durchschnittsgeschwindigkeit Luftlinie [kn]
  TSK_AVG_PATH:  Durchschnittsgeschwindigkeit geflogener Weg [kn]
  TSK_NEXT:      Name des nächsten Wegpunkts
  TSK_DIS:       Restentfernung zur Ziellinie [nm]
  TSK_DIS_PATH:  Geflogene Wegstrecke [nm]
  TSK_DIS_ALL:   Geflogene Aufgabendistanz [nm]
  TSK_DIS_WP:    Entfernung zum nächsten Wegpunkt [nm]
  TSK_ONGROUND:  1 = am Boden während der Aufgabe
  TSK_SLEWT:     1 = Slew-Modus während der Aufgabe
  TSK_ENG:       1 = Motor an während der Aufgabe (Segelflug)
  DIS:           Entfernung vom eigenen Flugzeug [nm]
  FLAPS:         Klappenstellung
  TW:            Gesamtgewicht [lbs]
  VER:           App- und MSFS-Version

Beispiel:

{
    "GN": "ssc2",
    "TASK": "Bolzano Dolomiti SE",
    "WEATHER": "SSC2 08 Clear Sky SE 15kt",
    "ID": "FELTE",
    "ITEMS": [{
        "GN": "ssc2",
        "ID": "FELTE",
        "NAME": "Felte",
        "AC": "AS-33me",
        "MODEL": "AS-33me",
        "TH": 0.8,
        "LON": 11.531,
        "LAT": 46.462,
        "IAS": 85.0,
        "TAS": 90.0,
        "GS": 88.0,
        "VS": -1.2,
        "WD": 270.0,
        "WV": 12.5,
        "MSL": 6200.0,
        "AGL": 4800.0,
        "TSK_TIME": 1823.0,
        "TSK_AVG": 72.4,
        "TSK_NEXT": "TP1",
        "TSK_DIS": 45.2,
        "TSK_DIS_WP": 12.8,
        "TSK_ONGROUND": 0,
        "TSK_SLEWT": 0,
        "TSK_ENG": 0,
        "FLAPS": "1",
        "TW": 1208.0,
        "VER": "0.8.0.0|MSFS2020"
    }]
}

---

Whazzup-Format abrufen (Little Navmap)

GET http://localhost:55055/

Gibt die Flugzeugdaten im Whazzup-v1-Format zurück, das von Little Navmap und anderen Tools unterstützt wird.

---

Aktiven Flugplan abrufen

GET http://localhost:55055/activetaskpln

Gibt den aktiven Flugplan im MSFS PLN XML-Format zurück, wenn ein Task geladen ist.

---

Aktiven Task als JSON abrufen

GET http://localhost:55055/activetask

Gibt den geparsten Task im JSON-Format zurück. Die Daten enthalten alle Wegpunkte mit Koordinaten, Sektortypen und Aufgabenfortschritt.

{
    "Name": "Bolzano Dolomiti Airport",
    "GN": "ssc2",
    "DepartureID": "LIPB",
    "Distance": 173906.57,
    "IsEmpty": false,
    "IsStarted": false,
    "IsFinished": false,
    "IsAATTask": false,
    "StartWPIndex": 1,
    "FinishWPIndex": 4,
    "NextWPIndex": 1,
    "Waypoints": [...]
}

---

Höhendaten-Endpunkte

Benutzerstrecke (User Route)

Lokalen Task setzen (ohne Gruppenupload)

POST http://localhost:55055/settask

Setzt einen Task lokal in der SSC-Tracker-App, ohne ihn auf den Server hochzuladen.

Pflichtfelder: CMD, TASK, TASKDATA

{
    "CMD": "SET",
    "GN": "[GRUPPENNAME, optional]",
    "TASK": "[AUFGABENNAME]",
    "TASKDATA": "[.PLN XML-INHALT]",
    "TASKINFO": "[URL oder Infotext, optional]",
    "WEATHER": "[WETTERVOREINSTELLUNGSNAME, optional]",
    "WEATHERDATA": "[.WPR XML-INHALT, optional]"
}

---

Seit der alten Fassung sind Endpunkte dazugekommen. Der vollständige Stand des lokalen Servers (Standard-Port 55055):

PfadArtInhalt
/GETWhazzup-Textformat (Little Nav Map)
/jsonGETVollständiger Datensatz aller Piloten
/activetaskGETAktiver Flugplan
/activetaskjsonGETAktiver Task als JSON
/elevation/…GETGeländedaten und Profile
/getsettingsGETEinstellungen für die Web-Oberflächen
/setsettingsPOSTEinstellungen schreiben (feste Auswahl an ui.*-Schlüsseln)
/settaskPOSTTask von außen anbieten
/messagesGETAktuelle Statusmeldungen (das, was auch im Banner steht)
/actionPOSTEine benannte Aktion aus einer Meldung auslösen
/versionGETVersion der App
/getpanellayoutGETLayout des Overlays
/setpanellayoutPOSTLayout des Overlays schreiben
/map, /minifcGETDie Weboberflächen

Alle Endpunkte antworten per HTTP mit gesetzten CORS-Kopfzeilen; HTTPS gibt es nicht.

Dateien und Ordner

WasWo
Einstellungen%LocalAppData%\SSC-Tracker\settings.json
Log%LocalAppData%\SSC-Tracker\logs\ssc-tracker.log
Geländedaten%LocalAppData%\SSC-Tracker\DEM\
Task-Historieder Ordner aus Settings → Shared .pln folder, sonst %LocalAppData%\SSC-Tracker\tasks\
Web-Oberflächen (lokale Kopie)%LocalAppData%\SSC-Tracker\frontend\
In-Game-Pakete…\Packages\Community\SSC-Tracker-Panel, …-FC, …-AC je Simulator

Die Einstellungen sind eine schlichte JSON-Datei. Sie darf von Hand geändert werden — aber nur bei geschlossener App, sonst überschreibt der nächste Speichervorgang die Änderung. Identität (Name, ID, Gruppe) und der Logger-Abgleich sind zusätzlich signiert: ändert sie ein fremdes Programm, stellt der Tracker sie beim Start wieder her.

Einheiten

Die Anzeige folgt deinen Einstellungen (metrisch/imperial). Wer die Rohdaten über /json oder /activetaskjson ausliest, bekommt dagegen feste Einheiten — und die sind nicht überall gleich:

FeldEinheit
VS (Steigen/Sinken)m/s
IAS, TAS, GS, WVKnoten
MSL, AGLFuß
TSK_DIS, TSK_DIS_WPNautische Meilen
Schenkel- und Streckenlängen im Task-JSONMeter
TSK_ELEV_WP (Geländehöhe am Wendepunkt)Fuß
MinAlt / MaxAlt am WendepunktMeter
MacCreadygeschrieben als m/s (ui.MC), gelesen in Knoten (MC)

Die letzten vier Zeilen sind die klassischen Stolperstellen — wer sie übersieht, rechnet um den Faktor 3,28 oder 1,94 daneben.