/// Modèles du tableau de bord. /// /// 🔴 `HourlyFlow`, `WeatherPoint` et `DayPlan` ont été **supprimés** le 2026-09-08 avec la /// carte « Plan de la journée » qu'ils alimentaient. `DayPlan.demo()` fabriquait vingt-quatre /// heures de flux à partir d'une gaussienne et de coefficients écrits en dur, présentées sans /// mention comme la journée en cours. /// /// Le code part **avec** la carte, délibérément : un générateur de données plausibles laissé /// dans le dépôt se rebranche — c'est ce qui s'était passé pour les deux MPPT, les 38 % de /// PAC, les 82 % de part solaire et le SOC à 62 %. Un plan reviendra quand il y aura une /// prévision PV et une source tarifaire ; il se réécrira sur des données, pas sur celles-ci. library; class HeosAction { final String iconKey; final String title; final String why; final double powerKw; const HeosAction({ required this.iconKey, required this.title, required this.why, required this.powerKw, }); } class HeosDecision { final String summary; final String highlight; final List actions; final DateTime updatedAt; const HeosDecision({ required this.summary, required this.highlight, required this.actions, required this.updatedAt, }); static HeosDecision demo() => HeosDecision( summary: 'Le surplus solaire part dans l\'eau chaude et la voiture ' 'plutôt que d\'être revendu à bas prix.', highlight: 'plutôt que d\'être revendu à bas prix', actions: [ const HeosAction( iconKey: 'water', title: 'Chauffe-eau', why: 'Surplus PV disponible · coût réseau ce soir 0,22 €/kWh', powerKw: 2.0, ), const HeosAction( iconKey: 'ev', title: 'Voiture — mode Éco', why: 'Charge à partir du surplus · objectif 80 % pour 18h', powerKw: 3.6, ), const HeosAction( iconKey: 'battery', title: 'Batterie en charge', why: 'Stockage pour couvrir le pic 18h–21h', powerKw: 0.8, ), ], updatedAt: DateTime.now(), ); }