# 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.** ---