Cockpit-XP API

REST-API Dokumentation
ab Cockpit-XP Version 3.7

Erste Schritte mit der Cockpit-XP API

Bevor die REST-API genutzt werden kann, müssen einige grundlegende Einstellungen in Cockpit-XP vorgenommen werden. Dieser Abschnitt erklärt Schritt für Schritt, wie die API aktiviert wird und wie das Logging zur Fehlersuche eingeschaltet werden kann.

1. REST-API aktivieren

Damit externe Anwendungen auf die Cockpit-XP REST-API/MQTT zugreifen können, muss diese in den Einstellungen aktiviert werden.

  1. Cockpit-XP starten
  2. Im Hauptmenü ConfigCenter aufrufen
  3. Dann Basis Einstellungen anklicken und Erweitert aufrufen
  4. In der Erweiterte Einstellungen Seite den Reiter API aufrufen
  5. Dort dann Cockpit-XP API/MQTT aktivieren Ja auswählen
  6. Cockpit-XP neu starten

Hinweis: Standardmäßig läuft die API auf Port 8080.

2. Logging aktivieren

Das Logging hilft bei der Entwicklung und Fehlersuche.

  1. Gleiche Seite wie beim Aktivieren aufrufen
  2. Nun aber den Reiter Logging aufrufen
  3. Dort dann das Logging für Online einschalten

Hinweis: Die Logdatei liegt im Cockpit-XP Datenverzeichnis LogOnline.txt

REST-API Grundlagen

Basislink: http://localhost|IP:8080
Läuft Cockpit-XP auf dem gleichen Rechner wie die Abfrage dann nimmt man localhost. Ruft man innerhalb dem gleichen Netzwerk die API auf muss man die IP des PCs von Cockpit-XP verwenden. Man kann auch die API über eine Seite aufrufen die sich im Internet befindet. Hier muss man ebenfalls die IP von Cockpit-XP verwenden.
Die GET-Befehle können in einem Browser direkt getestet werden. Zum testen der POST-Befehle empfehlen wir PostMan.

Webserver-Funktionalität

Neben der REST-API stellt Cockpit-XP auch einen kleinen lokalen Webserver bereit,
der z. B. HTML-Seiten und Benutzeroberflächen ausliefert.

Dies ermöglicht die einfache Erstellung eigener Widgets, die direkt auf die API zugreifen können. 

Der entsprechende gehostete Bereich befindet sich bei einer Standartinsallation in folgendem Ordner "C:\ProgramData\Cockpit-V2\www" und bei der Stickversion im Ordner "data\www".
  

Daten auslesen (GET)

GET Renndaten
/api/rbs/renndaten

Gibt die aktuellen Renndaten aller Slots zurück.

Antwort

[
  {
    "slot": "1",
    "position": "1",
    "runde": "-1",
    "rundenzeit": "0",
    "tankstand": "100",
    "tankenaktiviert": "0",
    "schnellsterunde": "-1",
    "abstandzeitfuehrenden": "0",
    "abstandzeitvordermann": "0",
    "bestrafung": "0"
  }
]

Slot-spezifisch

/api/rbs/renndaten?slot=ID
{
  Gefiltert auf entsprechender Slot
}
GET Rennstatus
/api/rbs/rennstatus
{
  "rennzeit": "",
  "rennstatus": "9",
  "statusampel": "0",
  "ampel1": "rot",
  "ampel2": "rot",
  "ampel3": "rot",
  "ampel4": "rot",
  "ampel5": "rot"
}

Mögliche Werte für rennstatus

  • -1 – Kein RBS offen
  • 0 – Stop
  • 2 – Pause
  • 3 – Rennen läuft
  • 9 – Startampel läuft
GET Allgemeine Daten
/api/rbs/sAllgemeinedaten
{
  "sollrennrunden": "10",
  "sollzeit": "0",
  "rennmodus": "Rennen: 10 Runden",
  "anzahlfahrer": "2"
}
GET Fahrerdaten
/api/rbs/sFahrer
[
  {
    "slot": "1",
    "namefahrer": "Das Team",
    "shortnamefahrer": "DTM",
    "namefahrzeug": "Audi R8",
    "bildfahrer": "Picture2611201574353.png",
    "bildfahrzeug": "Picture27092018112528.png"
  }
]

Slot-spezifisch

/api/rbs/sFahrer?slot=ID
{
  Gefiltert auf entsprechender Slot
}
GET Rekorde
/api/rbs/rekorde
[
  {
    "slot": "1",
    "anzahlrennen": "34",
    "anzahlsiege": "33",
    "persrundenrekord": "1003",
    "fahrzeugrekordabsolut": "1003",
    "fahrzeugrekordabs...
  }
]

Slot-spezifisch

/api/rbs/rekorde?slot=ID
{
  Gefiltert auf entsprechender Slot
}
GET Bilder
/bilder/BILDNAME

Gibt die Bilder aus dem Verzeichniss "Bilder" in Cockpit-XP aus

Antwort

[
  {
    Bild
  }
    

Steuer- & AddOn-Endpunkte (POST)

POST /api/rbs/cptastenstrafe

Parameter: slot

{
  "slot": 1
}

cURL Beispiel

curl -X POST http://cockpit-xp.ip:8080/api/rbs/cptastenstrafe \
  -H "Content-Type: application/json" \
  -d '{"slot":1}'
        

Details siehe Cockpit-XP AddOn-Dokumentation.

POST /api/rbs/cpsimulatebutton

Parameter: id

{
  "id": 1
}

cURL Beispiel

curl -X POST http://cockpit-xp.ip:8080/api/rbs/cpsimulatebutton \
  -H "Content-Type: application/json" \
  -d '{"id":1}'
        

Details siehe Cockpit-XP AddOn-Dokumentation.

POST /api/rbs/cpaddonapicall

Parameter: id

{
  "id": 1
}

cURL Beispiel

curl -X POST http://cockpit-xp.ip:8080/api/rbs/cpaddonapicall \
  -H "Content-Type: application/json" \
  -d '{"id":1}'
        

Details siehe Cockpit-XP AddOn-Dokumentation.

Beispiele

Hier finden Sie Beispielprojekte, die die Nutzung der Cockpit-XP API demonstrieren. Einfach ZIP-Datei herunterladen, entpacken und ausprobieren.

Beispiel 1: Renndaten auslesen (GET)

Enthält eine einfache html Seite zum lesen der Renndaten die man überall installieren kann. Funktioniert auch wenn die Seite im Internet aufgerufen wird.

📥 Download ZIP