L Auto Charge Manager a enfin un filet
Troisieme workflow structurant, et le seul sans tests : c est lui qui decide ce que la batterie a le droit de prendre, donc lui qui plafonnait le parc a 93 %, et il n etait meme pas suivi dans le depot avant ce matin. Vingt scenarios sur le patron de la suite hysteresis, avec le vrai code du node dans une sandbox et un snapshot capture contre Home Assistant plutot qu invente — la lecon du 24/08, quand un fixture portait les valeurs de repli du code au lieu des seuils de production et masquait un bug de bande. Ils suivent l ordre reel des branches et enferment chaque paire dans son contrefactuel : hiver sombre contre hiver ensoleille, ete secours contre ete repos, rattrapage de midi contre midi ou le soleil revient, override actif contre override expire, et le takeover demande alors que le contacteur est ouvert. Le releve reel du maintien a 2 A de cette nuit y figure, ainsi que le topoff a 52,4 V pose ce matin. Cinq mutations, chacune tombant sur un scenario different. Suite cablee au push, bloquante comme les trois autres. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
57
HANDOFF.md
57
HANDOFF.md
@@ -4891,6 +4891,63 @@ jugement conditionne a la POINTE et non a l'energie**, parce qu'une pointe a
|
||||
2 819 W pendant deux minutes n'a rien d'anodin meme si le total reste faible —
|
||||
et les incidents techniques.
|
||||
|
||||
### Suite de tests pour l'Auto Charge Manager (0 -> 20 scenarios)
|
||||
Troisieme workflow structurant, et le seul sans filet : il decide ce que la
|
||||
BATTERIE a le droit de prendre (limites DVCC en courant et en tension), donc
|
||||
c'est lui qui plafonnait le parc a 93 % — et il n'etait meme pas suivi dans le
|
||||
depot avant ce matin.
|
||||
|
||||
`tests/golden-acm/`, sur le patron de `tests/golden-hysteresis/` : le VRAI code
|
||||
du node « Compute Charge Targets » execute dans une sandbox `vm` avec horloge
|
||||
epinglee, sur un **snapshot reel** obtenu en rendant le gabarit du node
|
||||
« HA Snapshot via Template » contre Home Assistant (20 champs). Pas de fixture
|
||||
invente : c'est la lecon du 24/08, ou le fixture de l'hysteresis portait les
|
||||
valeurs de REPLI du code (22/35) au lieu des seuils de production (20/30) et
|
||||
masquait un bug de bande.
|
||||
|
||||
Les vingt scenarios suivent l'ordre reel des branches — automatisation
|
||||
desactivee, secours SOC < 20 hors HC, takeover EVCS, hiver+HC, ete+HC, HC midi,
|
||||
fenetre jour, hors fenetre, puis l'override qui se superpose a tout :
|
||||
|
||||
- gardes : automatisation OFF (reglages conserves), secours a SOC 18 ;
|
||||
- takeover : recharge vers la cible, **maintien a 2 A (le releve reel du 06/09
|
||||
a 05:06)**, bornage d'une cible aberrante a 95 %, et le contrefactuel
|
||||
« takeover demande mais contacteur OUVERT » qui ne doit pas mordre ;
|
||||
- nuit : paire hiver sombre / hiver ensoleille (cibles 80 et 40 selon la bande
|
||||
de prevision), paire ete secours / ete repos autour du seuil de 22 % ;
|
||||
- midi : rattrapage reseau, et son contrefactuel a PV 2 000 W ou la garde
|
||||
`pvPowerW < 1500` doit couper le rattrapage ;
|
||||
- jour : boost, mid, **topoff a 52,4 V (le correctif du jour)**, et le hold
|
||||
au-dessus de 95 % qui redescend a 50,6 V — on atteint le haut, on n'y sejourne
|
||||
pas ;
|
||||
- override actif contre override expire ;
|
||||
- garde de publication : cible identique a l'existant, on n'ecrit rien.
|
||||
|
||||
Preuve par mutation, cinq directions, **chacune faisant tomber exactement UN
|
||||
scenario, different a chaque fois** : tension de topoff ramenee a 51,3 · bornage
|
||||
de la cible de takeover retire · secours SOC critique supprime · garde PV du
|
||||
rattrapage midi relachee · echeance de l'override ignoree. Restauration -> 20/20.
|
||||
|
||||
Cablee dans `tools/n8n-push.mjs` (`isAcmWorkflow`), bloquante au push comme les
|
||||
trois autres suites. Verifie : le push de l'ACM execute bien les 20 scenarios
|
||||
avant le PUT.
|
||||
|
||||
### Suivre la conversation depuis le telephone
|
||||
`claude --remote-control [nom]` est un drapeau de DEMARRAGE : une session deja
|
||||
lancee ne peut pas etre rattachee apres coup. Il existe aussi
|
||||
`claude --teleport [session]`. `ListAgents` confirme qu'une session Remote
|
||||
Control existe deja sur le compte (« Configurer alertes electriques pour demo »,
|
||||
hors ligne) — le mecanisme est donc en place cote compte.
|
||||
|
||||
Pour une session pilotable depuis le telephone, il faut donc la demarrer ainsi
|
||||
sur le poste, **dans tmux** pour qu'elle survive a la fermeture du terminal :
|
||||
`tmux new -s evcs 'claude --remote-control "EVCS"'`.
|
||||
|
||||
⚠️ La session courante n'a PAS ete demarree avec ce drapeau : elle ne sera pas
|
||||
joignable depuis le telephone. Et une session Claude, meme pilotable a distance,
|
||||
reste un poste de travail — ce n'est pas elle qui doit porter la surveillance de
|
||||
nuit, d'ou le rapport par courriel loge dans le service d'historisation.
|
||||
|
||||
### Reste ouvert
|
||||
- Detecteur de gel dans le service d'historisation : une grandeur qui ne bouge
|
||||
pas alors qu'une autre du meme bilan bouge = alerte. Non fait.
|
||||
|
||||
Reference in New Issue
Block a user