Chantier : la nuit du 25/08, le quatrieme oscillateur et son diagnostic
Journal de la premiere nuit observee avec le bilan en service : 12,30 kWh importes, dont 1,19 kWh entre 06 h et 07 h sans aucun vehicule en charge, en deux cycles EDF de ~25 min. Cause : la cible SOC du matin (35 %, valeur de table) avec liberation a `SOC > cible` et rearmement a `SOC <= cible - 2` — meme pathologie que les trois oscillateurs du 24/08, sur un autre seuil. Corrige aussi le chiffre de la part matinale de production, une troisieme fois : l'enveloppe subissait le meme decalage d'une heure. Le « 39,3 % du matin » est abandonne dans le manuel comme dans le journal de chantier. Ajoute la note sur `initial: off` du toggle advisor : tout redemarrage de Home Assistant le repositionne a OFF. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
@@ -315,6 +315,116 @@ a servi (`courbe_horaire_api` ou `repli_enveloppe`). Elle garde par ailleurs un
|
|||||||
rôle de repère de vraisemblance, **sans écrêtage** : étant minorée l'après-midi,
|
rôle de repère de vraisemblance, **sans écrêtage** : étant minorée l'après-midi,
|
||||||
elle tronquerait à tort une prévision correcte.
|
elle tronquerait à tort une prévision correcte.
|
||||||
|
|
||||||
|
## 25/08/2026 — Première nuit observée, et le défaut qu'elle a révélé
|
||||||
|
|
||||||
|
### Ce que la nuit a fait
|
||||||
|
|
||||||
|
| Heure | Événement |
|
||||||
|
|---|---|
|
||||||
|
| 01:24 | Fenêtre HC : EDF ON, charge du véhicule (P7) |
|
||||||
|
| 02:42 | Fin de charge détectée → `night_recovery_done_idle`, EDF coupé en 3 s |
|
||||||
|
| 02:44 → 02:45 | Véhicule débranché puis rebranché (93 s) |
|
||||||
|
| 02:47 → 04:25 | Seconde charge, 98 min ; puis EDF coupé |
|
||||||
|
| 06:22 → 06:49 | **EDF rallumé**, batterie 33 → 35 %, coupé |
|
||||||
|
| 07:02 → 07:27 | **EDF rallumé**, batterie 33 → 35 %, coupé |
|
||||||
|
|
||||||
|
Import réseau : **12,30 kWh**, dont 11,11 kWh entre 01 h et 04 h pour les
|
||||||
|
véhicules (l'EVCS en a pris 9,57) et **1,19 kWh entre 06 h et 07 h sans aucun
|
||||||
|
véhicule en charge**.
|
||||||
|
|
||||||
|
Les mécanismes de fin de charge ont fonctionné : détection franche à 02:42,
|
||||||
|
coupure immédiate, et P11 a correctement remis à zéro la mémoire « plein » au
|
||||||
|
rebranchement de 02:45 — le second véhicule a bien été rechargé.
|
||||||
|
|
||||||
|
### Le quatrième oscillateur
|
||||||
|
|
||||||
|
Les deux cycles de 06:22 et 07:02 sont un oscillateur de plus, de la même
|
||||||
|
famille que les trois du 24/08. La cible du matin
|
||||||
|
(`batteryMorningTargetPct` = 35 %) libère le takeover à `SOC > cible` et le
|
||||||
|
réarme à `SOC ≤ cible − 2`. Entre 33 et 35 %, avec une maison qui tire ~0,7 kWh/h
|
||||||
|
et une production encore nulle, la batterie traverse la bande en une vingtaine
|
||||||
|
de minutes : période mesurée ~35 min, deux cycles complets.
|
||||||
|
|
||||||
|
Ce n'est **pas** le seuil `grid_soc_off` de l'hystérésis (30 %) : à 33 % il
|
||||||
|
n'était pas en cause. C'est la cible du matin de l'EVCS. Et 35 % est une valeur
|
||||||
|
de table (règle « prévision forte → 35 »), pas un besoin calculé — le bilan,
|
||||||
|
une fois corrigé, demandait **31 %**.
|
||||||
|
|
||||||
|
### Le défaut de mesure que cette nuit a mis au jour
|
||||||
|
|
||||||
|
Le bilan annonçait à 06 h qu'il fallait **3,37 kWh** pour tenir jusqu'au
|
||||||
|
croisement. La consommation réelle sur cette tranche a été de 2,2 kWh, la
|
||||||
|
production de 0,85 : **1,35 kWh**. Deux fois et demie trop.
|
||||||
|
|
||||||
|
L'erreur ne venait pas du modèle mais de l'attribution horaire.
|
||||||
|
`bucketHourly` garde la dernière valeur de chaque heure ; le delta entre H−1 et
|
||||||
|
H est donc l'énergie dépensée **pendant H**. `deltaSeries` le rangeait sous
|
||||||
|
H−1.
|
||||||
|
|
||||||
|
Sur un compteur qui émet en continu, cela décale le profil d'une heure — gênant,
|
||||||
|
pas grave. Mais **les compteurs de cette installation sont épars** :
|
||||||
|
`ac_in_1_to_ac_out` ne peuple que **57 heures sur 267**, `evcs_total` 57 sur 264,
|
||||||
|
parce qu'ils n'émettent que lorsqu'ils avancent. Une heure vide veut dire
|
||||||
|
« valeur inchangée », donc zéro énergie : toute l'énergie d'un intervalle à trou
|
||||||
|
a été consommée pendant l'heure **finale**, celle qui a réveillé le compteur.
|
||||||
|
Rangée sous l'heure initiale, elle atterrissait n'importe où.
|
||||||
|
|
||||||
|
Mesuré : `consumption_p50[8] = 2,90 kWh/h` pour 0,80 réellement consommé. Six
|
||||||
|
échantillons sur douze portaient un delta étalé sur **17 heures** — l'import
|
||||||
|
réseau de la nuit suivante, déposé sur la dernière heure de la nuit précédente.
|
||||||
|
Le profil du matin était ainsi gonflé de l'import qu'il servait justement à
|
||||||
|
éviter : le bilan réclamait du réseau parce qu'il avait pris du réseau la veille.
|
||||||
|
|
||||||
|
Corrigé : le delta se range sous `hours[i]`. Profil du matin après correction —
|
||||||
|
0,7 kWh/h de 01 h à 07 h, 0,8 à 08 h — conforme aux 0,74 kWh/h mesurés ce
|
||||||
|
matin-là. Avec ce profil, le bilan aurait demandé **31 % à 06 h** contre 34 %
|
||||||
|
réels : pas de réseau. Sans les 1,19 kWh importés, la batterie serait descendue
|
||||||
|
à ~24 %, au-dessus du plancher dur de 22 % — mais de 2 points seulement.
|
||||||
|
|
||||||
|
**Troisième correction du même chiffre.** L'enveloppe de production subissait le
|
||||||
|
même décalage : la part matinale de la production était donc surestimée une
|
||||||
|
troisième fois, après le plafond `inverter_size` et après le biais max/moyenne
|
||||||
|
de l'enveloppe. Le pic de l'enveloppe passe de 11 h à 12 h. Aucune conclusion du
|
||||||
|
chantier ne change, mais le chiffre « 39,3 % du matin » doit être considéré comme
|
||||||
|
définitivement abandonné.
|
||||||
|
|
||||||
|
### Statut `degrade`
|
||||||
|
|
||||||
|
La nuit précédant la mise en service de la courbe horaire, le bilan a publié un
|
||||||
|
SOC requis de **100 %** avec un statut `ok`, faute de croisement trouvé sur
|
||||||
|
l'horizon. Il publie désormais `degrade` dans ce cas et quand les heures de
|
||||||
|
déficit reposent sur une forme minorée : les chiffres restent visibles, mais
|
||||||
|
plus présentés comme fiables. Un futur câblage ne pourra pas s'y fier par
|
||||||
|
inadvertance.
|
||||||
|
|
||||||
|
### Ce que la prévision, elle, a très bien fait
|
||||||
|
|
||||||
|
Courbe horaire Forecast.Solar contre production mesurée, ce matin :
|
||||||
|
|
||||||
|
| Heure | Prévu | Mesuré |
|
||||||
|
|---|---:|---:|
|
||||||
|
| 07 h | 0,08 kWh | 0,10 kWh |
|
||||||
|
| 08 h | 0,85 kWh | 0,75 kWh |
|
||||||
|
| 09 h | 3,07 kWh | 2,72 kWh |
|
||||||
|
|
||||||
|
Les trois plans réels et l'abonnement Professional donnent une ressource
|
||||||
|
utilisable telle quelle. **Le côté production du bilan est fiable ; c'était le
|
||||||
|
côté consommation qui mentait.**
|
||||||
|
|
||||||
|
### Suite
|
||||||
|
|
||||||
|
Le candidat évident au prochain câblage réel n'est plus l'hystérésis mais la
|
||||||
|
**cible SOC du matin** : c'est elle qui a coûté 1,19 kWh cette nuit, et le
|
||||||
|
toggle qui permettrait de la piloter existe déjà
|
||||||
|
(`input_boolean.evcs_advisor_apply_night_target`). À décider après quelques
|
||||||
|
nuits d'observation du seuil calculé contre le seuil de table.
|
||||||
|
|
||||||
|
⚠️ Ce toggle porte `initial: off` dans son package : **tout redémarrage de Home
|
||||||
|
Assistant le repositionne à OFF**, quelle que soit la valeur choisie par
|
||||||
|
l'utilisateur. C'est voulu pour un câblage réel en période d'essai, mais il faut
|
||||||
|
le savoir — et le retirer le jour où le câblage sera adopté.
|
||||||
|
|
||||||
|
|
||||||
## Backlog
|
## Backlog
|
||||||
|
|
||||||
- [ ] **Doublon `unique_id: victron_vebus_dc_power`** — déclaré deux fois, avec
|
- [ ] **Doublon `unique_id: victron_vebus_dc_power`** — déclaré deux fois, avec
|
||||||
|
|||||||
@@ -57,7 +57,11 @@ inclinaison 25°, 15 000 Wc, et un `inverter_size` de 8 000 W alors que
|
|||||||
l'installation a déjà produit **10 770 W** mesurés — le plafond tronque donc
|
l'installation a déjà produit **10 770 W** mesurés — le plafond tronque donc
|
||||||
toute prévision. Résultat : la prévision attend une journée orientée
|
toute prévision. Résultat : la prévision attend une journée orientée
|
||||||
l'après-midi (15,1 % de l'énergie entre 7 h et 11 h) là où l'installation
|
l'après-midi (15,1 % de l'énergie entre 7 h et 11 h) là où l'installation
|
||||||
produit le matin (39,3 % mesurés).
|
produit le matin. ⚠️ Le chiffre de « 39,3 % mesurés » cité dans les premières
|
||||||
|
versions de cette section est **abandonné** : il reposait sur une enveloppe qui
|
||||||
|
surpondère structurellement le matin, et sur une attribution horaire décalée
|
||||||
|
d'une heure (corrigée le 25/08, voir `docs/CHANTIER_BILAN_ENERGETIQUE.md`). Le
|
||||||
|
défaut de configuration était réel, son ampleur a été surestimée.
|
||||||
|
|
||||||
**Correction à appliquer** (interface HA, voir §0bis) : quatre plans.
|
**Correction à appliquer** (interface HA, voir §0bis) : quatre plans.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user