JSON-Konventionen
Alle Service-Schnittstellen verwenden JSON. Auf dieser Seite werden die gängigen Modelle beschrieben.
Anschlüsse
| Hafen | Schnittstelle | Version |
|---|---|---|
| 10001 | HTTP REST + WebSocket (Simulationskanal) | v3.1 (aktuell) |
| 10020 | WebSocket (Ereigniskanal, nur Lesezugriff) | — |
| 10000 | Veraltete WebSocket-Version (v3.0 – wird in v4.0 entfernt) | v3.0 |
HTTP-Antwort-Header
Jede HTTP-Antwort verwendet denselben Rahmen:
Erfolg (mit Daten):
{ "ok": true, "data": { … } }
Erfolg (keine Daten – nur Änderungsendpunkte):
{ "ok": true }
Fehler:
{ "ok": false, "error": "reason string" }
Veralteter Endpunkt:
{ "ok": true, "deprecation_warning": "This route is deprecated. Use …" }
HTTP-Statuscodes
| Code | Bedeutung |
|---|---|
200 | Erfolg |
400 | Fehlerhafte Anfrage – ungültiger Hauptteil, mehrdeutiger Selektor, fehlendes Pflichtfeld |
404 | Gerät, Sitzung oder Ressource nicht gefunden |
405 | Unzulässige Methode |
Format der WebSocket-Nachrichten
Die Nachrichten sind JSON-Objekte. Die Schlüssel der ersten Ebene sind die Namen der Gerätegruppen
(inverse3, verse_grip, wireless_verse_grip) und einen optionalen Schlüssel session
für Befehle auf Sitzungsebene.
Kunde → Dienstleistung (Auftrag):
{
"session": { "configure": { … } },
"inverse3": [
{ "device_id": "049D", "configure": { … }, "commands": { … } }
]
}
Service → Kunde (Status):
{
"session_id": 7,
"inverse3": [
{ "device_id": "049D", "config": { … }, "state": { … }, "status": { … } }
]
}
Die erste Nachricht des Dienstes enthält config (vollständiger Screenshot); die folgenden Nachrichten enthalten nur state et status. Siehe
WebSocket-Protokoll für den gesamten Arbeitsablauf.
Art des Inhalts
Alle HTTP-Anfragen mit einem Body müssen Folgendes senden: Content-Type: application/json.
WebSocket-Nachrichten sind immer JSON-Frames im Klartext.
Unbekannte Schlüssel
Der Dienst ignoriert derzeit unbekannte JSON-Schlüssel, ohne dabei einen Fehler auszugeben. Sollte ein Befehl keine Wirkung zu zeigen, sehen Sie bitte in den Protokollen des Dienstes nach und überprüfen Sie die Feldnamen in der API-Referenz. Dieses Verhalten wird sich in einer zukünftigen Version ändern (unbekannte Schlüssel lösen dann ein Warnereignis aus).