Toutes les modifications notables de ce projet sont documentées dans ce fichier.
Format basé sur Keep a Changelog
Versioning basé sur Semantic Versioning
- Intégration forecast.solar pour la prévision de production PV (kWh/jour + courbe horaire)
- Paramètres PV configurables dans l'onglet Solaire : puissance crête, inclinaison, azimuth
- OpenDTU IP dynamique : l'IP saisie dans les paramètres est maintenant réellement utilisée par le proxy nginx (captures nommées
(?<dtuip>...)) - Boutons de contrôle mode direct restaurés dans l'onglet Batteries (au-dessus du planificateur)
- Labels des nœuds flux colorés selon leur couleur respective (solaire=jaune, réseau=bleu, etc.)
- Comparatif multi-installations : installations affichées comme "hors ligne" (mauvais format de requête GET→POST)
- Comparatif : SOC incorrect (division /10 erronée supprimée)
- Comparatif : température batterie incorrecte (mauvais registre
6001→9012, valeur directe en °C) - nginx : erreur
unknown "1" variableremplacée par captures nommées pour OpenDTU - Modèles supportés dans la documentation : 4 modèles réels (SolidFlex ECO sans MPPT, + OpenDTU, PowerFlex MPPT, BK1600)
default.confnginx : bloc OpenDTU avec IP dynamique et protection SSRF192.168.1.x- Publication GitHub :
README.md,.gitignore,setup.sh,screenshot_dashboard.png,CHANGELOG.md
- Timeline 24h interactive avec créneaux glisser-déposer
- 4 modes colorés : Autoconsommation 🟢 · Charge forcée 🔵 · Décharge forcée 🟠 · Programmé 🟣
- Handles de redimensionnement des créneaux, snap automatique 30 minutes
- Ligne rouge "heure actuelle" rafraîchie chaque minute
- SOC cible par créneau avec arrêt automatique quand atteint
- Forçage immédiat charge/décharge avec SOC cible
checkScheduler()multi-créneaux avec surbrillance du créneau actif- Persistance des créneaux via
serverStore
- Détection automatique : coupures réseau, passages bypass, SOC bas/critique, température, changements de mode
- Timeline verticale avec icônes colorées et niveaux de sévérité (info/warning/critical)
- Filtres par type d'événement (8 catégories)
- Export PDF horodaté (
journal-indevolt-YYYY-MM-DD.html) - Badge rouge sur l'onglet Logs en cas d'alerte non lue
- Persistance serveur (
indevolt_events) - Événement de démarrage du dashboard loggé automatiquement
- Zoom temps réel : molette souris, pinch-to-zoom mobile, boutons 5min/10min/15min/30min/1h/2h
- Buffer 6h de données (1 point toutes les 30s)
- Sélecteur plage dates 30j avec presets 7j/14j/30j + dates personnalisées
- Bottom navigation fixe sur mobile
- Swipe entre onglets
- Graphiques redimensionnés (140px), boutons scrollables horizontalement
- Cartes SOC/puissance/température par installation
- Graphique barres comparatif
- Fetch parallèle avec auto-refresh 30s
- Bouton "→ Basculer" pour changer l'installation active
- Sélecteur d'installation dans le header
- Formulaire inline d'édition (nom, IP, port, modèle)
- Système de notifications push unifié 3 niveaux (info/warning/critical)
- Historique des alertes dans l'onglet Logs
- Accolade manquante dans
sendPushNotif - Bloc formulaire dupliqué supprimé
- Sidecar Python
settings_api.pyavec endpoints/api/store/<key> - Whitelist de clés :
indevolt_7days,indevolt_30days,indevolt_solar24h,indevolt_degrad,indevolt_cycles,indevolt_hist30 - Stockage JSON dans
/data/store/(volume Docker partagé) serverStore.syncFromServer()au démarrage — restauration automatique- Fallback localStorage si serveur indisponible
- Onglet Fiches techniques batteries
- Graphique barres 5 métriques : Production / Import / Export / Charge / Décharge
- Comparaison semaine N vs N-1 avec tableau évolution % et flèches colorées
- Export rapport mensuel HTML (imprimable en PDF)
- Accumulation automatique 1x/heure en localStorage
- Compteur de cycles (détection début/fin de charge, fraction de cycle)
- Courbe de dégradation SOC max sur 60 jours (canvas)
- Projection durée de vie restante (cycles/jour sur 30j)
- Alerte température avec bannière et notification push (cooldown 10min)
- Notifications push navigateur (3 niveaux)
- Settings : seuil température, date/compteur de départ cycles
- Supervision micro-onduleurs OpenDTU : HM-400, HM-800×2
- Fetch individuel par serial pour puissance AC réelle, YieldDay, température, RSSI
- Courbe production solaire 24h (localStorage, reset minuit)
- Prévision météo Open-Meteo 3 jours (icônes WMO, temp min/max, précipitations, rayonnement)
- Graphique rayonnement horaire avec zone passée/future et ligne "maintenant"
- Onglet Solaire invisible (
hasMPPT→showSolar) switchTabdésynchronisé (index hardcodé → matchingdata-tab)- Onglets vides par déséquilibre de balises HTML (40 ouvertures / 39 fermetures)
- Section MPPT visible en mode ECO+OpenDTU (masquage conditionnel)
- Option
solidflex_eco_opendtuavec badge dynamique fetchOpenDTU(): polling toutes les 30sapplyModel()détecteisEcoOpenDTUet adapte les labels- Section OpenDTU dans Paramètres avec IP configurable et test connexion
- Note nginx dans l'onglet API
- Nginx 404 : fusion
default-ORI.conf+default.confavecserver_name localhost - Erreurs TDZ (
totalSolar,cumProd) — ordre des déclarations corrigé - Proxy nginx : captures nommées
(?<devip>...)pour compatibilité
- Diagramme flux 3 colonnes avec positions calculées dynamiquement (
getBoundingClientRect) - Hub batterie agrandi (120px → 170px)
- Couleurs flux réseau : bleu
#60b0f0 - Consommation totale réelle (Sortie AC + Sortie BKP) mise en avant
- Graphique historique 4 courbes avec couleurs distinctes
- Métrique Bypass dédiée
- Nginx sécurisé SSRF (restriction
192.168.1.x) - Autonomie basée sur
totalConso - Économies avec
yieldDayOpenDTU
- Structure HTML : déséquilibres de balises résolus, isolation onglets restaurée
- Production solaire estimée et journalière calculée
- Responsive mobile (3 breakpoints : 1024/768/480px)
- Tension batterie normalisée
- Feedback connexion et gestion erreur réseau
- Cache
getElementById - Alertes hardware
- Badge mode nuit
- Tooltips interactifs sur les graphiques
- Historique 30min persisté en localStorage
- Validation IP
- Notifications push
- Vue comparative packs batterie
- Calcul économies amélioré
- Onglets : contrôle mode → tab-packs, export CSV → tab-history
- Fiche API Locale → tab-api
- Fiches batteries SolidFlex 2000 et SFA1800 dans tab-specs
- Dashboard single-file HTML (~93KB) avec 8 onglets
- Connexion API locale Indevolt via proxy nginx
- Flux d'énergie animé avec 4 nœuds (Solaire, Sortie AC, Réseau, Sortie BKP)
- Hub batterie central avec SOC en anneau, tendance 5min
- 16 metric-cards (SOC, puissance, température, réseau, etc.)
- Modes de fonctionnement (Autoconsommation, Charge, Décharge, Programmé)
- Historique 7 jours avec graphiques Chart.js
- Export CSV
- Mode nuit automatique
- Settings persistants via sidecar Python Docker
- Icônes C3 Techno SVG
- Docker Compose : nginx + settings-api Python