Skip to content

REST API

Base URL: https://hub.finishing2026.sw2e-lab.de/api/v1
Auth: x-api-key: <key> Header — außer /health und /docs
Interaktive Docs: /api/v1/docs

Geräte

GET /devices

Alle registrierten Geräte.

{
  "success": true,
  "data": [
    { "uuid": "...", "device_id": "motor-poc-01", "connection_status": "online", "created_at": "..." }
  ]
}

GET /devices/:uuid

Einzelnes Gerät inkl. vollständigem Thing Model.

POST /devices/batch

Mehrere Geräte auf einmal.

{ "uuids": ["uuid-1", "uuid-2"] }

Commands

POST /devices/:uuid/command

Sendet einen Command per MQTT an den ESP. Schlägt mit 503 fehl wenn das Gerät offline ist.

{ "capability": "power", "value": "ON" }

value je nach Capability-Typ: "ON" / "OFF" für ON_OFF, Zahl für NUMBER, beliebig für IMPULSE.

Optional: "command_id": "<uuid>" für Idempotenz — wird generiert falls nicht angegeben.

Response:

{ "success": true, "command_id": "550e8400-..." }

Telemetrie

GET /devices/:uuid/telemetry

Verlauf. Query-Parameter:

Parameter Default Beschreibung
timespan 24 hours PostgreSQL Interval-Syntax
start_date ISO 8601
end_date jetzt ISO 8601
limit 100 Max. Anzahl Einträge

GET /devices/:uuid/telemetry/latest

Letzter bekannter Wert pro Capability. Merged die letzten 20 Pakete — nützlich falls Capabilities in separaten Paketen kommen.

{ "data": { "power": "ON", "speed": 200, "solar_v": 2.1 }, "timestamp": "..." }

Identifiers

Die API verwendet durchgängig uuid als Gerät-Identifier. device_id ist der menschenlesbare Name aus dem Thing Model. mac bleibt intern (MQTT-Routing).