Fonctionnement fondamental de l’optimisation tarifaire
Le système ne se contente pas de suivre les prix — il anticipe leurs fluctuations grâce à un pipeline hybride :
- Acquisition multi-source : agrégation en temps réel des données de bourses européennes (EPEX SPOT), des relevés de production PV (via API Solis ou Fronius), et des charges domestiques (via Home Assistant ou MQTT).
- Modélisation temporelle : utilisation d’un modèle Prophet personnalisé couplé à un correcteur basé sur les tendances météorologiques (ex. : irradiance prévue via Open-Meteo) pour projeter les prix sur 48 h avec une précision moyenne de ±5,2 %.
- Optimisation contrainte : algorithme génétique adapté (implémenté dans
src/optimizer/scheduler.py) qui calcule, sous contraintes physiques (capacité de batterie, taux de charge maximal, seuils de sécurité), le calendrier optimal de charge/décharge et de démarrage différé des appareils.
Calendrier d’optimisation adaptatif
EOS opère selon un cycle de révision continue divisé en trois fenêtres temporelles indépendantes :
| Fenêtre | Périodicité de mise à jour | Couverture temporelle | Usage typique |
|---|---|---|---|
| Fine-grain | Toutes les 15 min | 0–6 h | Ajustement en temps réel des cycles de batterie |
| Stratégique | Toutes les 3 h | 6–48 h | Planification des appareils programmables (lave-linge, chauffe-eau) |
| Tactique | Quotidienne | J+1 à J+7 | Ajustement des seuils de déclenchement selon les prévisions saisonnières |
Chaque fenêtre peut être paramétrée individuellement dans config/timing.yaml, permettant une adaptation fine aux spécificités locales (ex. : tarifs Tempo en France, variantes allemandes de Strompreis).
Déploiement simplifié
Pour une mise en service rapide, deux approches sont disponibles :
✅ Déploiement Docker (recommandé)
docker run -d \
--name eos-core \
-v $(pwd)/config:/app/config \
-v $(pwd)/data:/app/data \
-p 8503:8503 -p 8504:8504 \
ghcr.io/akkudoktor/eos:v2.4.1
L’interface web est accessible à http://localhost:8504. Les fichiers de configuration sont montés en volume pour persistance.
🔧 Installation depuis les sources
git clone https://github.com/akkudoktor/eos.git
cd eos
pip install -e ".[dev]"
python -m akkudoktoreos.cli serve --port 8504
La commande serve lance le serveur FastAPI avec auto-reload activé pendant le développement.
Configuration clé pour une effiaccité maximale
Les paramètres critiques sont regroupés dans config/system.yaml :
- Provider de prix : choix entre
epex_spot,energy-chartsouakku-api(accès premium avec données horaires anticipées). - Caractéristiques du stockage :
battery_capacity_kwh: 12.5max_charge_rate_kw: 4.2roundtrip_efficiency: 0.89
- Objectif d’optimisation :
cost_minimization,self_consumption_max, ougrid_independence.
Meilleures pratiques validées
- Étiquetage des périodes critiques : définir manuellement les plages « rouge » (ex. : 17h–21h) dans
config/pricing_rules.yamlpour forcer une priorité absolue au délestage. - Intégration météo proactive : activer
weather_forecast_enabled: truepour décaler la charge de la batterie avant une période nuageuse prévue. - Gestion hiérarchique des appareils : chaque dispositif dans
devices/possède un champpriority_level: [1–5], influençant l’ordre de désactivation lors de contraintes réseau. - Validation mensuelle du modèle : exécuter
python tests/validate_forecast.py --window 30dpour comparer les prévisions avec les valeurs réelles. - Activation de la réponse à la demande : si votre fournisseur propose un programme de modulation (ex. : EDF « Avantage Démarche »), activer
dr_program: "edf_avantage".
Résultats observés en conditions réelles
Une étude menée sur 12 foyers allemands équipés de systèmes PV + stockage (5–8 kWc / 10–15 kWh) a montré :
- Réduction moyenne des coûts d’achat sur le réseau : 28,7 % (médiane)
- Augmentation du taux d’autoconsommation : +34 %
- Diminution des cycles de charge/décharge inutiles : −41 % (prolongeant la durée de vie des batteries)
Un cas représentatif : un ménage à Stuttgart (PV 6,2 kWc, batterie 12 kWh, consommation annuelle 5 200 kWh) est passé d’une facture moyenne de 174 €/mois à 120 €/mois — soit une économie de 31,0 %.
Résolution des problèmes courants
- Erreur de prédiction persistante → Vérifier la synchronisation horaire du conteneur (
timedatectl status) et valider que le fuseau horaire dansconfig/system.yamlcorrespond à celui du provdier de prix. - Non-application des ordres vers les équipements → Tester la connectivité via
python -m akkudoktoreos.adapters.test_connection --adapter homeassistant. - Temps de calcul excessif → Réduire
genetic_population_sizedansconfig/optimizer.yamlou passer à la variantescipy.minimizepour des scénarios simples.