docs: Phase 7 Checkliste, README Test 7.7 Abschnitt und Implementierungsstand

This commit is contained in:
MaPaLo76 2026-02-22 20:44:51 +01:00
parent 16838fa265
commit d6adc9f23e
2 changed files with 38 additions and 12 deletions

View File

@ -169,25 +169,27 @@
## Phase 7 Webinterface (`WebServer`)
- [ ] **7.1** `include/web_server.h` + `src/web_server.cpp` erstellen
- [x] **7.1** `include/web_server.h` + `src/web_server.cpp` erstellen
Basierend auf `ESPAsyncWebServer`
- [ ] **7.2** Route `GET /` Statusseite (HTML):
- Aktuelle Laserzeit (Minuten)
- Letzter Session-Wert (Sekunden)
- WLAN-Status, MQTT-Status
- IP-Adresse
- [x] **7.2** Route `GET /` Statusseite (HTML):
- Session-Minuten, Gesamtzeit, letzter Burst
- WLAN-Status (IP), MQTT-Status (verbunden/getrennt)
- Broker-Info, Gratiszeit
- Auto-Reload alle 10 s
- [ ] **7.3** Route `GET /config` Konfigurationsformular (HTML):
- [x] **7.3** Route `GET /config` Konfigurationsformular (HTML):
- MQTT Broker IP, Port, User, Passwort
- Gratiszeit (Slider 0120 s)
- Signal-Polarität (Radio-Button)
- [ ] **7.4** Route `POST /config` Konfiguration speichern (via `Settings`, NVS)
- [x] **7.4** Route `POST /config` Konfiguration speichern (via `Settings`, NVS)
Redirect + Hinweis „Neustart für MQTT-Änderungen"
- [ ] **7.5** Route `POST /reset` Laserzeit zurücksetzen (Button auf Statusseite)
- [x] **7.5** Route `POST /reset` Gesamtzeit zurücksetzen (`laserTracker.resetTotal()`)
- [ ] **7.6** ElegantOTA unter `/update` einbinden
- [x] **7.6** ElegantOTA unter `/update` einbinden
Flag `ELEGANTOTA_USE_ASYNC_WEBSERVER=1` in `platformio.ini`
- [ ] **7.7** Test: Alle Seiten im Browser aufrufen, Konfiguration ändern und nach Neustart prüfen

View File

@ -314,7 +314,8 @@ MQTT-Display-LaserCutter/
│ ├── laser_tracker.cpp # Signal-Detektion, Burst-Logik, Zeiterfassung
│ ├── settings.cpp # NVS-Persistenz (Preferences)
│ ├── wifi_connector.cpp # WiFiManager-Wrapper
│ └── mqtt_client.cpp # MQTT-Wrapper (PubSubClient, TLS, Phase 6)
│ ├── mqtt_client.cpp # MQTT-Wrapper (PubSubClient, TLS, Phase 6)
│ └── web_server.cpp # Webinterface (ESPAsyncWebServer, Phase 7)
├── include/
│ ├── config.h # Pin-Definitionen, Konstanten
│ ├── display_manager.h # Display-API (showLaserTime, showCountdown, ...)
@ -331,6 +332,7 @@ MQTT-Display-LaserCutter/
│ ├── test_display_manager.cpp # 4.3 - DisplayManager
│ ├── test_laser_tracker.cpp # 5.6 - LaserTracker
│ ├── test_mqtt_client.cpp # 6.5 - MqttClient (TLS, Session, Heartbeat)
│ ├── test_web_server.cpp # 7.7 - WebServer (Routen, Config, OTA)
│ └── mqtt_test_secrets.h # (gitignoriert) persönliche Broker-Credentials
├── platformio.ini
└── README.md
@ -352,6 +354,7 @@ Alle Tests sind Hardware-Tests (kein Unit-Test-Framework). Sie werden als separa
| 4.3 | `test-display-mgr` | `test_display_manager.cpp` | DisplayManager API (alle show*-Methoden) |
| 5.6 | `test-laser-tracker` | `test_laser_tracker.cpp` | LaserTracker Burst-Logik, Gratiszeit, Session/NVS |
| 6.5 | `test-mqtt` | `test_mqtt_client.cpp` | MqttClient TLS, Heartbeat, Session-Publish, JSON-Reset, LWT |
| 7.7 | `test-web` | `test_web_server.cpp` | WebServer Routen, Config-Formular, Reset, ElegantOTA OTA |
### Test 1.4 Display Verdrahtungstest
@ -449,6 +452,27 @@ pio device monitor -e test-mqtt
**Status:** ✅ Verbindung, Heartbeat, Session-Publish, JSON-Reset, LWT getestet
⚠️ **Ungetestet:** MQTT-Error Modul 5 bei Verbindungsverlust, Reconnect nach WiFi-Ausfall
### Test 7.7 WebServer (Phase 7)
```bash
pio run -e test-web --target upload
pio device monitor -e test-web
```
IP-Adresse aus Serial Monitor ablesen, dann im Browser:
| URL | Erwartetes Verhalten |
|---|---|
| `http://<IP>/` | Statusseite: Session, Gesamtzeit, WLAN-IP, MQTT-Status, Broker |
| `http://<IP>/config` | Formular: Broker, Port, User, PW, Gratiszeit, Polarität |
| POST `/config` | Werte in NVS speichern, nach Neustart prüfen |
| Button „Gesamtzeit löschen" | `resetTotal()` → 0.00 min auf Statusseite |
| `http://<IP>/update` | ElegantOTA-Seite erreichbar |
Statusseite aktualisiert sich automatisch alle 10 s.
**Status:** ⏳ Hardware-Test ausstehend
---
## Implementierungsstand
@ -461,7 +485,7 @@ pio device monitor -e test-mqtt
| 4 | DisplayManager | ✅ abgeschlossen |
| 5 | LaserTracker (Burst-Logik, Zeiterfassung) | ✅ abgeschlossen |
| 6 | MqttClient (PubSubClient, TLS, Heartbeat, Session) | ✅ implementiert / ⚠️ 2 Punkte ungetestet |
| 7 | WebServer (ESPAsyncWebServer, Config-UI, OTA) | ⏳ ausstehend |
| 7 | WebServer (ESPAsyncWebServer, Config-UI, OTA) | ✅ implementiert / Hardware-Test ausstehend |
| 8 | Integrationstest (Display + MQTT + Web) | ⏳ ausstehend |
| 9 | Gehäuse / Hardware-Finish | ⏳ ausstehend |
| 10 | Produktiv-Deployment, Dokumentation final | ⏳ ausstehend |