# feature.md — esp_jardin v1.0 ## Fonctionnalités implémentées ### Acquisition des températures - 3 sondes DS18B20 sur bus OneWire (GPIO 4) — adressage par index - Acquisition non-bloquante : demande de conversion + attente 750 ms via `millis()` - Fréquence : toutes les 10 secondes (configurable) - Validation métrologique : valeurs −127.0°C (CRC fail) et 85.0°C (power-on) rejetées - Précision affichée : 1 décimale (%.1f) ### Historique 24h en RAM - Tampon circulaire de 288 points (structure `PointHistorique`) - Empreinte mémoire : ~4.5 Ko sur 520 Ko SRAM (<1%) - Les valeurs d'erreur sont stockées comme `NAN` pour discontinuer les courbes ### Connectivité réseau hybride - **Mode STA** : connexion au réseau WiFi configuré, timeout 30s - **Mode AP de secours** : point d'accès `ESP_CHEF_JARDIN` si STA échoue - Reconnexion automatique STA non-bloquante (retry toutes les 30s / 60s en mode AP) - **mDNS** : accessible via `http://esp_jardin.local` - **OTA** : mise à jour firmware à distance, protégée par mot de passe ### Interface web temps réel - Page unique servie depuis LittleFS (`data/index.html`) - **WebSocket** : push JSON immédiat à chaque nouvelle acquisition - **Graphique 24h** (Chart.js) : initialisé depuis `/api/history`, mis à jour en temps réel - 3 cartes sondes avec valeur live, LED d'état, message d'erreur si sonde déconnectée - Panneau statut système : WiFi / IP / RSSI / MQTT / RAM libre / uptime - Console de configuration : intervalle + broker MQTT (appliqué en RAM) - Bascule thème dark/light - Responsive (grille adaptative sur mobile) ### API REST | Endpoint | Description | |---|---| | `GET /api/status` | RSSI, uptime, RAM libre, mode AP, état MQTT | | `GET /api/temperatures` | Températures instantanées des 3 sondes | | `GET /api/history` | Historique complet 24h (288 points) | | `POST /api/config` | Mise à jour intervalle + broker MQTT | ### Publication MQTT - Client PubSubClient, reconnexion non-bloquante (retry toutes les 5s) - Publication indépendante par sonde - **Filtre deadband** : publish si `|ΔT| ≥ deadband` OU si `intervalle_max` dépassé - Messages retain=true - Valeurs d'erreur jamais publiées ## Hors scope v1 - Deep sleep / économie d'énergie - NTP (timestamps relatifs `millis()`) - Capteurs I2C (BH1750, SHT31), sol (ADC), relais, pluviomètre - Authentification interface web - Persistance de la configuration (redémarrage → retour aux valeurs par défaut)