Commit Graph

4 Commits

Author SHA1 Message Date
gilles b075d04706 Initial release 1.2.2 2026-05-24 13:05:18 +02:00
gilles 87d33b41c7 feat: gestion WiFi — NVS credentials + scan + UI Gruvbox
- network.h/.cpp : lecture credentials NVS (Preferences) au boot,
  fallback config.h si vide ; network_get_ssid() et
  network_save_credentials() exposés
- web_server.cpp : 3 nouvelles routes REST
    GET /api/wifi/current  → SSID/IP/RSSI/modeAP
    GET /api/wifi/networks → scan async + polling état
    POST /api/wifi/connect → sauvegarde NVS + ESP.restart()
- index.html : modal WiFi (réseau actuel, liste scannée avec
  barres signal ▁▂▃▄▅ + cadenas, formulaire SSID/mdp,
  bouton œil, message redémarrage avec lien esp_jardin.local)
  design Gruvbox Seventies cohérent avec le reste

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 20:34:46 +02:00
gilles f75d35ae5b fix: dégradation gracieuse Chart.js CDN, WS cleanup, guards null
- C1: guard typeof Chart === 'undefined' dans initChart(), handler onerror
  sur le tag <script> CDN, message fallback "Graphique indisponible"
- C1: guards if(!chartInst) return dans ajouterPointChart(), chargerHistorique(),
  traiterMessageWS(), mettreAJourCouleursFond()
- I1: nettoyage ws.close() en début de connecterWS() avant toute reconnexion
- I3: guard if(!chartInst) au début du .then() de chargerHistorique()
- I4: tooltip backgroundColor remplacé par cssVar('--bg-3') (plus hardcodé)
- M2: sec = sec || 0 dans fmtUptime(), b = b || 0 dans fmtRam()
- M3: emoji ☀️ remplacé par ☼ (U+263C, caractère texte pur)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 16:58:42 +02:00
gilles d9d2db8b5e feat: interface web temps réel complète (WebSocket, Chart.js, thème Gruvbox Seventies)
Page auto-contenue LittleFS (31 Ko) : 3 cartes sondes temps réel, graphique 24h Chart.js,
panneau statut/config, bascule dark/light, status bar, reconnexion WS automatique, responsive.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 16:53:16 +02:00