Commit Graph

11 Commits

Author SHA1 Message Date
Tallagrand Thierry
819eafd4d4 P10: mémoire 'véhicule plein' en journée (collant jusqu'au débranchement)
- WINDOWS: dayVehicleFullIdle (statut 3 ou VDF, héritages jour<->nuit),
  sourceMode blocked même face au solaire
- DECISION: branche collante day_vehicle_full_idle au-dessus des gardes
- échappatoires force_charge_now/force_grid_now (golden)
- golden 33->36, validé live 10:04:30 (latch en 16 s sur la VW pleine)
- HANDOFF §22 + MANUEL états collants
2026-08-09 10:06:25 +02:00
Tallagrand Thierry
0419c741de P9: charge réseau avant départ (hors HC) + sélecteur véhicule VW/JEEP
- helpers: input_select.victron_evcs_vehicle, departure_time_jeep (06:30),
  toggle allow_grid_departure_urgent (OFF) — package victron_evcs_vehicles.yaml
- INPUT_PARSE: departureTimeMin par véhicule sélectionné
- WINDOWS: fenêtre départ ≤120min hors HC → grid_hc_allowed (solar_only prioritaire),
  état collant departure_done_idle à la fin de charge
- BCL: gridAllowedBySoc += departureUrgentActive
- DECISION: branche collante departure_done_idle au-dessus des gardes
- HA_SERVICE_CALLS: takeover helper tenu pendant P9 (ACM + hystérésis)
- hystérésis: cut immédiat étendu à departure_done_idle (patch rejouable)
- golden 29→33, HANDOFF §21
2026-08-09 08:27:24 +02:00
Tallagrand Thierry
98c9202bad Advisor: premier câblage réel — cible SOC matin (toggle, bornes, fraîcheur 120min)
- nouveau toggle input_boolean.evcs_advisor_apply_night_target (package + carte, OFF par défaut)
- snapshot/INPUT_PARSE: advisor_apply/target/status/last_run (+parseAdvisorRunToMs DD/MM HH:mm)
- WINDOWS: batteryMorningTargetPct = advisor si ON+ok+frais, clamp [max(22,hardFloor),90],
  sinon règles forecast; traçabilité '(ADVISOR)' dans la reason DECISION
- golden 26→29 (appliqué / stale / toggle off)
- HANDOFF §20 (surveillance + rollback 3 niveaux)
2026-08-09 07:32:46 +02:00
Tallagrand Thierry
6ca6ea99de Fix F: mémoire 'charge terminée' prioritaire sur les gardes (rebond rebranchement 09/08)
- DECISION: branche done/recovery_done remontée dans la cascade principale
  (avant mustStopHard) → le collant se réécrit chaque cycle, survit aux
  micro-charges de la VW et aux hard stops batterie
- branche Fix E interne supprimée (remplacée par la branche haute)
- golden 25→26 (night-hard-stop-necrase-pas-done)
- HANDOFF §19
2026-08-09 07:03:19 +02:00
Tallagrand Thierry
b287e5ba73 Fix E: latch 'charge terminée' en session active + coupure recovery_done (incident rebond 08-09/08)
- DECISION: branche completed prioritaire dans la session active (avant VDF/source-lost)
  → état collant écrit au 1er cycle status=3, relais encore fermé
- WINDOWS: garde puissance <=300W sur Fix D (anti-glitch)
- Hystérésis: turn_off_recovery_done (bypass min_on, dry-run 5 cas)
- golden 23→25 (session armée status 3, flap statut post-latch)
- HANDOFF §18
2026-08-09 06:31:33 +02:00
Tallagrand Thierry
9bc4af0ea1 Fixes A/B/C/D incident rebond EDF nuit 07-08/08 + GRAFCET doc
- A: état collant night_recovery_done_idle + bande cible−2 (anti-rebond takeover)
- B: snapshot relit night_session_start_soc/at (fin des réécritures 30s)
- C: hystérésis grid — turn_off_vehicle_unplugged (coupure immédiate, bypass min_on)
- D: evcs_status_raw==3 (charged) = fin de charge immédiate
- golden 19→23 scénarios (2 attendus mis à jour, 4 nouveaux)
- MANUEL_COMPLET §11.6 GRAFCET cycle nuit, HANDOFF §17, vision-notes incident
2026-08-08 14:20:21 +02:00
Tallagrand Thierry
b10c90c74f P8: libération EDF quand véhicule plein (nuit HC) + fix latch inversé du 04/08
- vehicleChargeCompleted COLLANT via prev_surplus_state (nouveau champ snapshot):
  vehicle_full_or_paused -> night_session_done_idle auto-entretenu jusqu'au
  débranchement ou fin de fenêtre.
- Fix inversion 04/08: le latch takeover se libère à la fin de charge
  (était: || vehicleChargeCompleted qui le GARDAIT).
- P7 relâché quand charge finie; sourceMode nuit -> blocked (zéro retry).
- SOC > cible: takeover OFF -> hystérésis coupe EDF. SOC <= cible: takeover ON
  -> EDF maintenu + ACM recharge batterie (spec 'sauf si sous seuil').
- night_session_done_idle ne matche aucun pattern no-demand de l'hystérésis
  (condition de fonctionnement de l'override batterie basse).
- Golden: 19/19 (3 nouveaux scénarios P8, 16 existants inchangés).
2026-08-07 19:40:30 +02:00
Tallagrand Thierry
9c3a0a9c6e R1: déduplication du moteur nuit — WINDOWS_SOURCEV2 unique calculateur
- Le moteur nuit (161 lignes) était calculé 2x (WINDOWS + BCL), chaque patch
  nuit devait être appliqué 2x (P2, 04/08, P7) -> risque de divergence.
- WINDOWS calcule tout (+ startMs, needsCapture strict, recoveryAllowedNow,
  targetReached) et exporte nightEvcsPreview étendu.
- BCL consomme prev.nightEvcsPreview avec fallbacks sûrs (preview absent ->
  'blocked'). Export nightEvcs inchangé pour DECISION/HA_SERVICE.
- A/B git HEAD vs patché : 7 scénarios + 2 cas limites, sorties strictement
  identiques. Déployé en production, exécutions vérifiées success.
2026-08-07 19:05:21 +02:00
Tallagrand Thierry
9592ac94ea P7: charge HC nuit automatique si véhicule branché + toggle 'Réseau HC nuit' ON
- Root cause 1: battery_assist_night ne démarrait jamais (floor décharge 0A
  impossible la nuit) -> idle_wait_conditions jusqu'à dérive du SOC au trigger.
- Root cause 2: allow_grid_hc_night parsé mais jamais utilisé.
- Fix: nightGridHcPreferred dans WINDOWS_SOURCEV2 + BATTERY_CLOUD_LOCKS ->
  grid_hc_allowed dès l'ouverture de la fenêtre HC (EDF ON auto, ACM hold 2A).
- Toggle OFF = comportement historique. Dry-run 7 scénarios validés.
- Outils: n8n-pull/n8n-push (push REST direct, backup auto, node --check).
- Déployé en production le 07/08/2026 15:45, exécutions vérifiées success.
2026-08-07 15:46:49 +02:00
Tallagrand Thierry
1debfe3c0e backup: workflow V2.6 production (avant patch charge HC auto) + outils n8n-pull/n8n-push 2026-08-07 15:17:47 +02:00
Tallagrand Thierry
a4c6df30ed Export EVCS Surplus Controller V2.6 workflow to git for version control 2026-07-18 02:15:58 +02:00