HANDOFF §81 : VRM remplace Forecast.Solar, tenir jusqu'a la prochaine HC, prevision de nuit
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011uJ47NxgfpGnuuMr3f2n7Z
This commit is contained in:
87
HANDOFF.md
87
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*
|
*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*
|
||||||
|
|||||||
Reference in New Issue
Block a user