- 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>
Implémente mqtt_manager.h/.cpp : connexion sans authentification si
MQTT_USER vide, filtre deadband par sonde, retain=true, jamais de
valeur d'erreur publiée. Intégration dans main.cpp (mqtt_init/update).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Ajout des dépendances libs (ESPAsyncWebServer, AsyncTCP, OneWire, DallasTemperature, PubSubClient, ArduinoJson)
- Configuration LittleFS pour le système de fichiers
- Ajout des flags de compilation et d'upload (auth=Jardin2026)
- Création de parametrage.md contenant les paramètres initiaux des sondes, WiFi et MQTT
Compilation : SUCCESS (955692 bytes en Flash, 45560 bytes en RAM utilisés)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>