diff --git a/HANDOFF.md b/HANDOFF.md index 27036ec..53833ba 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -887,3 +887,90 @@ par chargeur), consommation, reseau, batterie. Valide par le proprietaire. --- *Document mis a jour le : 26/09/2026 (~17:30) — acces HA, Gmail de l'agent, plugins desactives, Samsung appaire, consommation du jour pour le rapport solaire* + +## 81. Nuit du 27 au 28/09/2026 — VRM remplace Forecast.Solar, et la batterie doit tenir jusqu'a la prochaine HC + +### L'agent vocal : trois capteurs de plus, pour qu'il cesse d'inventer +- **`sensor.evcs_consommation_jour_kwh`** (26/09, §80) : integre au rapport solaire. +- **`sensor.evcs_batterie_projection_soir`** (27/09) : VOLONTAIREMENT `indetermine` + (decision du proprietaire) tant que la prevision n'est pas fiable. L'agent avait + annonce « vers 90 % » de tete (SOC 42 % + 6,8 kWh restants). Attributs de faits + seulement (SOC actuel, reste prevu brut, ecart de prevision). +- **`sensor.evcs_prevision_nuit`** (28/09) : symetrique de `evcs_bilan_nuit`, construit + UNIQUEMENT sur le bilan + etats lus (kWh EDF a prendre, maison a couvrir, heure de + retour du solaire, contacteur, session engagee, voiture branchee ou non, + `texte_rapport`). Bilan > 30 min -> `indisponible`. Tests 65/65 -> 69/69. +- ⚠️ **Deux helpers mal lus par l'agent**, a ne JAMAIS lui faire lire comme de + l'energie batterie : `evcs_balance_vehicle_surplus_kwh` = surplus SOLAIRE attendu + APRES le croisement (demain), pas de la batterie ; `victron_evcs_projected_end_soc_after_charge` + (et `budget_remaining_kwh`) = variables internes de JOUR du controleur — apres minuit + elles integrent toute la production du lendemain. SPARK a retire son garde-fou + « surplus > 23 kWh = impossible », fonde sur ce contresens. + +### La nuit du 26-27/09 : pourquoi la batterie etait a 22 % le 27 au soir +JEEP chargee 01:25-05:59 en `battery_assist_night` (P12) : **5,70 kWh, 0 reseau**, +batterie 72 -> 44 %. Le 27, journee sombre : **22 kWh** reels (Forecast.Solar +annoncait 25,1, VRM 18). Batterie plafonnee a 46 %, plancher touche vers 01:00 le 28. +Le bilan annoncait pourtant a 01:20 le 27 : « prochaine traversee 17,35 kWh des 18 h +-> SOC requis 79,8 % ». **P12 ne regardait que le croisement du matin**, pas la nuit +suivante. Une petite charge solaire a 15:03 (0,8 kWh, SOC 41 %) releve du meme angle +mort (le plancher du bilan ne s'applique au demarrage qu'en fenetre du soir). + +### Nuit du 27-28/09 : le relais reseau a fonctionne +01:15 : l'hysteresis ferme le contacteur (SOC 21). **Hors session, la consigne reste +au repos (700 W)** : le reseau fournit ~650 W et la batterie complete — c'est ce que +le proprietaire a vu, et c'est voulu. 01:24:00 : session de nuit engagee SANS vehicule +(correctif du 12/09), consigne GX 2206 W ; 01:25:10 reseau 1853 W, batterie +12,7 A. + +### Prevision : bascule sur VRM (decision du proprietaire) +- **Diagnostic Forecast.Solar** : la config est JUSTE (3 plans, 16,12 kWc, dans HA + comme dans l'appel du bilan ; API publique interrogee plan par plan = memes + chiffres). C'est la SOURCE qui est degradee : totaux quasi constants depuis le + 18/09 (26-29 kWh, deux jours identiques a 0,5 % pres = climatologie, pas meteo). +- **Comparaison 17-26/09** (reel = minimum, bride) : erreur moyenne VRM **21 %**, + Forecast.Solar **32 %** ; 5 derniers jours **14 % contre 36 %**. Reserve : on ne + sait pas si les previsions passees de VRM sont celles du matin. +- **Mis en place** (commits `5a8e4af`, `72c1f60`) : jeton `VRM_TOKEN` dans `.env` + (jamais dans HA : droits du compte VRM), site **298009** ; le service + d'historisation lit `…/v2/installations/298009/stats?type=forecast&interval=hours` + toutes les 15 min, ecrit `input_text.evcs_balance_vrm_*` au format du bilan et + enregistre chaque publication dans `prevision` avec `source='vrm'` (cle etendue a + la source). **`input_select.evcs_balance_forecast_source`** (vrm | forecast_solar) + choisit la courbe lue par le bilan = retour arriere en un geste ; carte en tete de + l'onglet « Production » du tableau Bilan energetique. `evcs_prevision_contre_reel` + porte sur la source active. VRM donne aussi la conso prevue (et la part borne). +- ⚠️ **COMPARAISON A FAIRE LE LUNDI 05/10** : prevision DU MATIN de chaque source + contre le reel, jour par jour, heures bridees ecartees ; on garde VRM ou on + remet le selecteur. +- Reste sur Forecast.Solar : le palier de secours de la cible du matin du + controleur (total de demain). Le bilan garde le dernier mot (`max`). + +### Tenir jusqu'a la prochaine fenetre HC (strategie du proprietaire, commit `8de284c`) +Regle : **voiture branchee = charge en HC sur le reseau ; la batterie tient jusqu'a +la prochaine HC (01:24) ; sinon la HC de midi la complete, voiture comprise.** +- HA transmet au bilan (modele du snapshot, Jinja sur les `victron_evcs_hc_*`) la + fin de la fenetre HC en cours, le debut de la suivante et celui de la prochaine + fenetre de NUIT. Le calendrier reste dans HA (§73). +- **Pendant une fenetre HC**, dans `coverage()` (comme le plancher manuel : cible ET + manque bougent ensemble) : `required_soc` >= SOC a avoir en fin de fenetre pour + atteindre la PROCHAINE HC (nuit -> midi, midi -> 01:24) ; + `required_soc_prudent` (plancher de P12, profil p80) >= SOC pour atteindre la NUIT + SUIVANTE. Parcours a rebours des tranches horaires (un surplus ne rembourse qu'un + deficit posterieur). Hors fenetre HC : rien ne change. +- Midi : la session s'engage si `SOC < required_soc` ; la voiture passe en + `grid_hc_allowed` (`allow_grid_hc_midday` = on) des que le contacteur est ferme — + **batterie et voiture ensemble, sans changer le controleur**. +- Rejeu du 27/09 : avec la prevision de l'epoque (25,1 kWh) le plancher P12 n'aurait + bouge que de 47,1 a **48,4 %** (calcul juste a zero marge) ; avec une journee + annoncee a 18 kWh (VRM) il monte a **72,1 %** > SOC 72 -> voiture sur le reseau. + **La regle ne vaut que ce que vaut la prevision.** Midi sombre SOC 30 : cible + 38,1 %, manque 2,42 kWh (= 8,1 pts x 0,30, verifie a la main). Bilan 54/54, deux + mutations qui mordent. Deploye le 28/09 ~02:05. +- ⚠️ **A VERIFIER en reel** : premier calcul du bilan apres deploiement, puis les + deux ou trois prochaines nuits (P12 bloque les jours sombres ? session de midi ?). +- ⚠️ **Non couvert** : un demarrage solaire L'APRES-MIDI (cas du 27/09 15:03) ne + consulte pas le besoin de la nuit ; le plancher du bilan n'agit au demarrage que + dans la fenetre du soir. + +--- +*Document mis a jour le : 28/09/2026 (~02:15) — VRM remplace Forecast.Solar (comparaison le 05/10), tenir jusqu'a la prochaine HC, prevision de nuit pour l'agent*