Files
AquaMasterMQTT/API.md
2025-06-03 15:32:01 +02:00

109 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# API- und Routenbeschreibung für das AquaMaster-Projekt
Diese Datei beschreibt alle HTTP-Routen (API und statische Seiten) für das AquaMaster-Projekt. Sie dient als Referenz für Frontend-Entwickler.
---
## Statische Seiten
| Route | Methode | Beschreibung | Antwort (Content-Type) |
|-----------------|---------|-------------------------------------|------------------------|
| `/` | GET | Hauptseite (Timer) | HTML |
| `/settings` | GET | Einstellungen-Seite | HTML |
| `/about` | GET | Info-/About-Seite | HTML |
| `/` (static) | GET | Statische Dateien (CSS, Bilder, JS) | entspr. MIME-Type |
---
## API-Routen
### Timer & Daten
| Route | Methode | Beschreibung | Body/Parameter | Antwort (Content-Type) |
|-------------------|---------|-------------------------------------|------------------------|--------------------------------|
| `/api/data` | GET | Aktuelle Timerdaten und Status | | JSON |
**Beispiel-Response:**
```json
{
"time1": 12.34,
"status1": "running",
"time2": 0,
"status2": "ready",
"best1": 10.12,
"best2": 9.87,
"learningMode": false,
"learningButton": "Start Bahn 1"
}
```
---
### Bestzeiten
| Route | Methode | Beschreibung | Body/Parameter | Antwort (Content-Type) |
|----------------------|---------|-------------------------------------|------------------------|--------------------------------|
| `/api/reset-best` | POST | Setzt Bestzeiten zurück | | `{ "success": true }` |
---
### Button-Lernmodus
| Route | Methode | Beschreibung | Body/Parameter | Antwort (Content-Type) |
|--------------------------|---------|-------------------------------------|------------------------|--------------------------------|
| `/api/start-learning` | POST | Startet Lernmodus | | `{ "success": true }` |
| `/api/stop-learning` | POST | Beendet Lernmodus | | `{ "success": true }` |
| `/api/learn/status` | GET | Status des Lernmodus | | `{ "active": true, "step": 1 }`|
| `/api/unlearn-button` | POST | Löscht alle Button-Zuordnungen | | `{ "success": true }` |
| `/api/buttons/status` | GET | Status der Button-Zuordnung | | JSON (siehe unten) |
**Beispiel-Response für `/api/buttons/status`:**
```json
{
"lane1Start": true,
"lane1Stop": false,
"lane2Start": true,
"lane2Stop": false
}
```
---
### Einstellungen
| Route | Methode | Beschreibung | Body/Parameter | Antwort (Content-Type) |
|------------------------|---------|-------------------------------------|------------------------|--------------------------------|
| `/api/set-max-time` | POST | Setzt max. Laufzeit & max. Anzeigezeit | `maxTime` (Sekunden, optional), `maxTimeDisplay` (Sekunden, optional) als Form-Parameter | `{ "success": true }` oder `{ "success": false }` |
| `/api/get-settings` | GET | Liefert aktuelle Einstellungen | | `{ "maxTime": 300, "maxTimeDisplay": 20 }` |
---
### Systeminfo
| Route | Methode | Beschreibung | Antwort (Content-Type) |
|-------------------|---------|-------------------------------------|--------------------------------|
| `/api/info` | GET | Systeminfos (IP, MAC, Speicher, Lizenz, verbundene Buttons) | JSON (siehe unten) |
**Beispiel-Response:**
```json
{
"ip": "192.168.4.1",
"channel": 1,
"mac": "AA:BB:CC:DD:EE:FF",
"freeMemory": 123456,
"connectedButtons": 3,
"valid": "Ja",
"tier": 1
}
```
---
## Hinweise
- **Alle API-Routen liefern JSON zurück.**
- **POST-Requests erwarten ggf. Form-Parameter (kein JSON-Body).**
- **Statische Seiten und Assets werden direkt ausgeliefert.**
- **Kein Authentifizierungsverfahren implementiert.**
---