Aller au contenu principal

Production

Visualisation et analyse de la production d'énergie solaire avec graphiques détaillés et statistiques.

Features​

FeatureStatutMode
Données journalières (3 ans max)FAITServeur+Client
Données détaillées 30min (2 ans max)FAITServeur+Client
Graphiques production par annéeFAITServeur+Client
Courbe de charge détaillée par jourFAITServeur+Client
Cache day-by-dayFAITServeur+Client
Auto-load pour compte démoFAITServeur+Client
Sections always-visibleFAITServeur+Client
Gestion PDLs liés conso-productionFAITServeur+Client
Carousel responsive (3-14 jours)FAITServeur+Client
Comparaisons temporelles (S-1, A-1)FAITServeur+Client
Calendrier interactifFAITServeur+Client
Bannière PDL liéFAITServeur+Client

Différences avec /consumption​

ÉlémentConsumptionProduction
Puissance maximum✅❌
HC/HP✅❌
Section PowerPeaks✅❌
HcHpDistribution✅❌
MonthlyHcHp✅❌
Données journalières✅✅
Données détaillées✅✅
Graphiques annuels✅✅
Courbe détaillée✅✅

Fichiers​

TypeFichier
Pageapps/web/src/pages/Production/index.tsx
Composantsapps/web/src/pages/Production/components/*.tsx
Hooksapps/web/src/pages/Production/hooks/*.ts
APIapps/web/src/api/enedis.ts
Backendapps/api/src/routers/enedis.py

Composants​

ComposantRôle
YearlyProductionCardsCartes statistiques annuelles
YearlyProductionGraphique production annuelle
AnnualProductionCurveCourbe de production annuelle
DataFetchSectionSection récupération données
PDLSelectorSélecteur de PDL
LoadingProgressIndicateur de progression
ModernButtonBouton stylisé glassmorphism

Hooks​

HookRôle
useProductionDataGestion données production
useProductionFetchRécupération données API
useProductionCalcsCalculs statistiques

API Endpoints​

Production journalière​

GET /api/enedis/production/daily/{pdl}?start={date}&end={date}

Paramètres :

  • pdl : Numéro du point de livraison (14 chiffres)
  • start : Date début (YYYY-MM-DD)
  • end : Date fin (YYYY-MM-DD)

Production détaillée (30 min)​

GET /api/enedis/production/load-curve/{pdl}?start={date}&end={date}

Limites Enedis :

  • Données journalières : 1095 jours (3 ans)
  • Données détaillées : 730 jours (2 ans)
  • Données disponibles : J-1 uniquement

Mode client : ces limites ne bornent que ce que la passerelle est interrogée pour combler. La page affiche tout l'historique déjà stocké en base locale (import V1 compris), avec une période glissante d'un an par année disponible (MED-64). Le mode serveur garde les fenêtres Enedis.


Interface utilisateur​

Sections de la page​

SectionIcôneCollapsible
Statistiques de productionZapOui
Graphiques de productionBarChart3Oui
Courbe de production détailléeLineChartOui
Informations importantesInfoOui

États de la page​

ÉtatComportement
Sans donnéesEmpty state avec instructions
Chargement cacheLoadingOverlay + LoadingPlaceholder flou
Données disponiblesSections expanded, graphiques visibles
PDL sans productionBannière info bleue avec instructions
PDL liéBannière verte "Production liée affichée"

Gestion des PDLs liés​

Sélecteur de PDL​

Type de PDLVisibleDonnées affichées
Consommation avec linked_production_pdl_id✅PDL lié
Production standalone✅Lui-même
Production lié à une consommation❌Via conso

Exemple de liaison​

// PDL Consommation
{
usage_point_id: "00987654321098",
has_consumption: true,
has_production: false,
linked_production_pdl_id: "uuid-production"
}

// PDL Production (masqué du sélecteur)
{
id: "uuid-production",
usage_point_id: "00123456789012",
has_production: true
}

// Résultat : Sélectionner "Maison" affiche les données de "00123456789012"

Conversion ID → usage_point_id​

// linked_production_pdl_id contient l'UUID, pas le usage_point_id
const linkedPdl = pdls.find(p => p.id === pdlDetails.linked_production_pdl_id)
const actualProductionPDL = linkedPdl.usage_point_id

Design​

Boutons ModernButton​

VariantUsageStyle
primaryRécupérer historiqueGradient bleu
secondaryAccès rapide (Hier, S-1, A-1)Glassmorphism transparent
tabSélection annéesActif/inactif
gradientExportBleu → Indigo → Violet

Caractéristiques design​

  • Glassmorphism avec backdrop-blur
  • Gradients animés (shine effect au hover)
  • Animations GPU-accelerated
  • Support complet dark mode
  • Responsive mobile-first

Notes techniques​

  • Cache : Granulaire par jour avec TTL 24h
  • Chiffrement : Fernet avec client_secret utilisateur
  • Rate limiting : 5 req/s niveau adapter, 50 req/jour non-caché
  • Auto-load démo : Déclenché si isDemo et pas de cache
  • Sections : Pattern AnimatedSection pour animations fluides