MaPaLo76
|
4dd4ce0620
|
feat(FR-002): Web Console via HTTP-Polling (/log + /log-data) -- v1.1.0
- Ring-Buffer _logBuf in web_server.cpp: webLogForward() schreibt auf Core 1
- GET /log-data liefert Puffer als Plain-Text (kein WebSocket, kein Core-Konflikt)
- Browser pollt alle 2 s, Auto-Scroll, dunkles Terminal-Theme
- LOG_I/LOG_E/LOG_D: Timestamp (HH:MM:SS nach NTP, sonst +Xs), webLogForward()
- Alle Serial.* in laser_tracker.cpp, mqtt_client.cpp, web_server.cpp auf LOG_I/LOG_E
- main.cpp: esp_reset_reason() beim Booten loggen (POWER_ON / WATCHDOG / PANIC...)
- telnet_logger.h entfernt (war nur noch Deprecated-Stub)
- Feature-Requests.md: FR-002 abgeschlossen
|
2026-02-28 17:24:56 +01:00 |
|
MaPaLo76
|
75f5b7a576
|
feat(web,mqtt): Firmware-Version auf Webseite und MQTT-Status
- platformio.ini: -DFIRMWARE_VERSION='1.0.0' als build_flag (Single Source of Truth)
- config.h: #ifndef FIRMWARE_VERSION Fallback fuer Arduino IDE
- web_server.cpp: config.h eingebunden; Firmware-Zeile in Statustabelle (/);
Footer 'v1.0.0 (Feb 26 2026)' auf /config
- mqtt_client.cpp: firmware_version im lasercutter/status Payload;
buf von 160 auf 220 Bytes vergroessert
- Feature-Requests.md: FR-001 dokumentiert
|
2026-02-26 21:53:05 +01:00 |
|
MaPaLo76
|
6bef93210e
|
feat(ota): ArduinoOTA integration + platformio.ini refactor
- ArduinoOTA in web_server.cpp integriert (Hostname: lasercutter-display)
- WebServerManager::loop() hinzugefuegt -> ArduinoOTA.handle()
- webServer.loop() in main.cpp aufgerufen
- platformio.ini: gemeinsamer [env]-Basisblock (lib_deps einmalig)
- Neues env az-delivery-devkit-v4-ota (espota, upload_flags --auth Anleitung)
- Neues env az-delivery-devkit-v4-ota-http (ElegantOTA HTTP Fallback)
- upload_ota.py: HTTP-Multipart-Upload Script fuer ElegantOTA
- README.md: Abschnitt Via WiFi (OTA) mit Passwort-Anleitung
- Implementation-Plan.md: Task 9.9 dokumentiert
|
2026-02-26 21:35:55 +01:00 |
|
MaPaLo76
|
7fb14307ea
|
Vor Architektur Änderung
|
2026-02-26 18:50:45 +01:00 |
|
MaPaLo76
|
3516e58dc6
|
feat(web): Konfigurationsseite Buttons gleich breit
- buildConfigPage(): width:100% fuer alle Buttons (via .btn-Klasse)
- Flex-Spalten-Layout identisch zur Statusseite (gap:.6rem, margin-top:1.5rem)
- Farben unveraendert: Blau=Speichern, Grau=Abbrechen
- Implementation-Plan.md Phase 7.8 ergaenzt
|
2026-02-23 22:56:09 +01:00 |
|
MaPaLo76
|
99b5c25e37
|
feat(tracker): resetSessionSum + MQTT reset_session + UI-Verbesserungen
- resetSession() umbenannt in resetSessionSum() (klarere Semantik)
- Bug fix: resetSessionSum() setzt laufende Session-Timer korrekt zurueck
(vorher: getAllSessionsSumMinutes() blieb > 0 nach Reset)
- consumeSessionReset() nach consumeSessionEnd()-Muster (consume-Semantik)
- Vor Reset: akkumulierte Netto-Sekunden sichern -> publishSession() wie Session-Ende
- MQTT: payload {reset_session:true} via lasercutter/reset loest resetSessionSum() aus
- MQTT: Session-Reset publiziert identisches JSON wie normales Session-Ende
- Web: Button-Layout ueberarbeitet (alle 3 Buttons blau, uebereinander, gleich breit)
- Docs: README.md + Implementation-Plan.md aktualisiert
|
2026-02-23 22:49:30 +01:00 |
|
MaPaLo76
|
fde1f12315
|
fix(auth): HTTP Basic Auth funktioniert korrekt
- requestAuthentication() auf Basic Auth umgestellt (false = kein Digest)
- webPassword/webUser Buffer von 32 auf 64 Byte vergroessert
- POST /config: leeres Passwortfeld laesst bestehendes Passwort unveraendert
- Checkbox 'clear_auth' zum expliziten Deaktivieren des Schutzes
- Temporaere Debug-Ausgaben entfernt
|
2026-02-23 22:09:28 +01:00 |
|
MaPaLo76
|
07c99dc7d8
|
feat(web): HTTP-Basic-Auth fuer alle Routen; webUser/webPassword in NVS; ElegantOTA.setAuth()
|
2026-02-23 21:32:47 +01:00 |
|
MaPaLo76
|
2073c3678c
|
feat(main): Phase 9 - LOG_D, getFreeHeap-Monitor; fix: PIMPL web_server loest ESPAsyncWebServer/WiFiManager HTTP-Enum-Konflikt
|
2026-02-23 21:06:59 +01:00 |
|
MaPaLo76
|
e98002db7b
|
refactor(laser,web): getSessionMinutes->getAllSessionsSumMinutes, Platzhalter SESSION->ALLSESSIONS, BURST->LASTSESSION
|
2026-02-23 19:50:47 +01:00 |
|
MaPaLo76
|
d644ff4986
|
refactor(laser): Burst-Begriff durch Session ersetzt (BurstState->SessionState, getLastBurstSeconds->getLastSessionSeconds, consumeBurstEnd->consumeSessionEnd)
|
2026-02-23 19:33:40 +01:00 |
|
MaPaLo76
|
d0d4666cf7
|
refactor(mqtt,web): Terminologie Session/Maschinenlaufzeit, JSON-Felder aktualisiert
|
2026-02-23 19:17:29 +01:00 |
|
MaPaLo76
|
546b155af2
|
fix(web): POST /reset setzt nur Session zurueck (resetSession), nicht NVS-Gesamtzeit
|
2026-02-22 20:55:24 +01:00 |
|
MaPaLo76
|
16838fa265
|
feat(web): Phase 7 WebServer (ESPAsyncWebServer, Config, Reset, ElegantOTA)
|
2026-02-22 20:43:08 +01:00 |
|