93 lines
4.9 KiB
Markdown
93 lines
4.9 KiB
Markdown
# API Documentation: AquaMaster Webserver
|
||
|
||
This document describes all available API routes provided by the webserver in `webserverrouter.h`.
|
||
All API endpoints return JSON unless otherwise noted.
|
||
|
||
---
|
||
|
||
## Static Files
|
||
|
||
| Route | Method | Description | Response Type |
|
||
|------------------|--------|------------------------------|--------------|
|
||
| `/` | GET | Main page | HTML |
|
||
| `/settings` | GET | Settings page | HTML |
|
||
| `/rfid` | GET | RFID page | HTML |
|
||
| `/firmware.bin` | GET | Firmware file (SPIFFS) | Binary |
|
||
|
||
---
|
||
|
||
## Timer & Data
|
||
|
||
| Route | Method | Description | Request Body/Params | Response Example |
|
||
|-------------------|--------|-------------------------------------|--------------------|------------------|
|
||
| `/api/data` | GET | Get current timer and status data | – | `{...}` |
|
||
| `/api/reset-best` | POST | Reset best times | – | `{ "success": true }` |
|
||
|
||
---
|
||
|
||
## Button Learning
|
||
|
||
| Route | Method | Description | Request Body/Params | Response Example |
|
||
|------------------------|--------|-------------------------------------|--------------------|------------------|
|
||
| `/api/unlearn-button` | POST | Remove all button assignments | – | `{ "success": true }` |
|
||
| `/api/start-learning` | POST | Start button learning mode | – | `{ "success": true }` |
|
||
| `/api/stop-learning` | POST | Stop button learning mode | – | `{ "success": true }` |
|
||
| `/api/learn/status` | GET | Get learning mode status | – | `{ "active": true, "step": 1 }` |
|
||
| `/api/buttons/status` | GET | Get button assignment and voltage | – | `{ "lane1Start": true, "lane1StartVoltage": 3.3, ... }` |
|
||
|
||
---
|
||
|
||
## Settings
|
||
|
||
| Route | Method | Description | Request Body/Params | Response Example |
|
||
|----------------------|--------|-------------------------------------|--------------------|------------------|
|
||
| `/api/set-max-time` | POST | Set max timer and display time | `maxTime`, `maxTimeDisplay` (form params, seconds) | `{ "success": true }` |
|
||
| `/api/get-settings` | GET | Get current timer settings | – | `{ "maxTime": 300, "maxTimeDisplay": 20 }` |
|
||
|
||
---
|
||
|
||
## WiFi Configuration
|
||
|
||
| Route | Method | Description | Request Body/Params | Response Example |
|
||
|-------------------|--------|-------------------------------------|--------------------|------------------|
|
||
| `/api/set-wifi` | POST | Set WiFi SSID and password | `ssid`, `password` (form params) | `{ "success": true }` |
|
||
| `/api/get-wifi` | GET | Get current WiFi SSID and password | – | `{ "ssid": "...", "password": "..." }` |
|
||
|
||
---
|
||
|
||
## Location Configuration
|
||
|
||
| Route | Method | Description | Request Body/Params | Response Example |
|
||
|----------------------|--------|-------------------------------------|--------------------|------------------|
|
||
| `/api/set-location` | POST | Set location name and ID | `id`, `name` (form params) | `{ "success": true }` |
|
||
| `/api/get-location` | GET | Get current location | – | `{ "locationid": "..." }` |
|
||
|
||
---
|
||
|
||
## Button Update & Mode
|
||
|
||
| Route | Method | Description | Request Body/Params | Response Example |
|
||
|----------------------|--------|-------------------------------------|--------------------|------------------|
|
||
| `/api/updateButtons` | GET | Trigger MQTT update for buttons | – | `{ "success": true }` |
|
||
| `/api/set-mode` | POST | Set operational mode | `mode` (form param: "individual" or "wettkampf") | `{ "success": true }` |
|
||
| `/api/get-mode` | GET | Get current operational mode | – | `{ "mode": "individual" }` |
|
||
|
||
---
|
||
|
||
## System Info
|
||
|
||
| Route | Method | Description | Request Body/Params | Response Example |
|
||
|---------------|--------|-------------------------------------|--------------------|------------------|
|
||
| `/api/info` | GET | Get system info (IP, MAC, memory, license, etc.) | – | `{ "ip": "...", "ipSTA": "...", "channel": 1, "mac": "...", "freeMemory": 123456, "connectedButtons": 3, "isOnline": true, "valid": "Ja", "tier": 1 }` |
|
||
|
||
---
|
||
|
||
## WebSocket
|
||
|
||
| Route | Description |
|
||
|---------|------------------------------------|
|
||
| `/ws` | WebSocket endpoint for live updates|
|
||
|
||
---
|
||
|
||
**All API endpoints return JSON unless otherwise noted. POST requests expect form parameters (not JSON body).** |