fix: gridAllowedBySoc + nightTakeoverLatched - autorise HC nuit et libère takeover après charge
This commit is contained in:
64
HANDOFF.md
64
HANDOFF.md
@@ -357,6 +357,66 @@ Tous les maillons sont corrigés par P1.
|
||||
- Export du workflow dans `workflows/evcs-surplus-controller-v2.6.json`
|
||||
- Commit & push effectués
|
||||
|
||||
## 10. Session du 04/08/2026 (matin) — Fix grid HC 1h30 + libération takeover
|
||||
|
||||
### Problèmes诊断qués
|
||||
1. **Charge HC ne démarre pas à 1h30** : Le grid ne se mettait pas en route à l'ouverture de la fenêtre HC
|
||||
2. **Grid ne rend pas la main après charge** : EDF restait ON après la fin de charge (SOC 71% < 90%)
|
||||
|
||||
### Root Causes identifiées
|
||||
1. **`gridAllowedBySoc`** (BATTERY_CLOUD_LOCKS) : autorise le grid seulement si `soc <= 35%` ou `forceGridRequested`. En profile `night_hc` avec SOC > 35%, le grid était bloqué.
|
||||
2. **`nightTakeoverLatched`** (WINDOWS_SOURCEV2) : reste latché tant que `soc < 90%` (hardcodé). Pas de condition "véhicule chargé" → le takeover ne se libérait jamais.
|
||||
|
||||
### Corrections appliquées
|
||||
|
||||
#### Fix 1: `gridAllowedBySoc` — Autoriser le grid en profile night_hc
|
||||
**Node:** `BATTERY_CLOUD_LOCKS`
|
||||
```javascript
|
||||
// AVANT:
|
||||
const gridAllowedBySoc = parsed.soc <= 35 || strategy.forceGridRequested;
|
||||
|
||||
// APRÈS:
|
||||
const gridAllowedBySoc =
|
||||
strategy.forceGridRequested ||
|
||||
context.profile === 'night_hc' ||
|
||||
parsed.soc <= 35;
|
||||
```
|
||||
|
||||
#### Fix 2: `nightTakeoverLatched` — Libérer si charge terminée
|
||||
**Node:** `WINDOWS_SOURCEV2`
|
||||
```javascript
|
||||
// AVANT:
|
||||
const nightTakeoverLatched =
|
||||
nightSessionActive &&
|
||||
nightTakeoverPrev &&
|
||||
parsed.soc < NIGHT_TAKEOVER_RELEASE_SOC_PCT;
|
||||
|
||||
// APRÈS:
|
||||
const vehicleChargeCompleted =
|
||||
!parsed.evcsChargingSwitchOn &&
|
||||
parsed.soc >= 50;
|
||||
const nightTakeoverLatched =
|
||||
nightSessionActive &&
|
||||
nightTakeoverPrev &&
|
||||
(
|
||||
parsed.soc < NIGHT_TAKEOVER_RELEASE_SOC_PCT ||
|
||||
vehicleChargeCompleted
|
||||
);
|
||||
```
|
||||
|
||||
### Méthode de déploiement
|
||||
- **MCP n8n-mcp_update_workflow** : Erreur 1003 (request/body must NOT have additional properties) — bug du MCP
|
||||
- **Bypass** : Script `tools/n8n-rest-update-test.mjs` créé, utilise REST API n8n directement avec token
|
||||
- PUT réussi avec body minimal : `{name, nodes, connections, settings, staticData}`
|
||||
- Settings doit être minimal : `{"executionOrder":"v1","callerPolicy":"workflowsFromSameOwner"}`
|
||||
|
||||
### Backup
|
||||
- `backup-workflow-ATswvGfG4KJUls0K-1785849621547.json`
|
||||
|
||||
### Vérification
|
||||
- Les 2 patches sont dans le workflow en production
|
||||
- À surveiller : prochaine nuit HC (01:24-07:24) pour valider le comportement
|
||||
|
||||
---
|
||||
*Document mis à jour le : 18/07/2026 (~03:00) — corrections documentation MANUEL_COMPLET.md, probe 6A→10A, workflow exporté vers git*
|
||||
*État live à la clôture : Système fonctionnel, probe configuré à 10A*
|
||||
*Document mis à jour le : 04/08/2026 (~10:00) — Fix gridAllowedBySoc + nightTakeoverLatched via REST API*
|
||||
*État live à la clôture : Workflow patché, à tester en conditions réelles*
|
||||
|
||||
Reference in New Issue
Block a user