Commit Graph

7 Commits

Author SHA1 Message Date
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
63d56bf284 Agent IA planificateur EVCS en MODE OMBRE (Advisor Shadow V1)
- Workflow n8n tdfInZns7cqo8fU2 actif (15 min): snapshot HA compact -> prompt FR
  -> LLM local Spark (modèle dynamique via /v1/models) avec fallback OpenRouter
  claude-haiku-4.5 (credential chiffré, clé hors git) -> validation stricte
  (enums, bornes, rejet total si invalide) -> helpers advisor_* + divergence
  + compteurs accord/divergence + logbook.
- GARANTIE OMBRE structurelle: écritures limitées à advisor_*/logbook,
  vérifiée par tests/advisor/run.mjs (16 tests, bloquants au push).
- Kill-switch input_boolean.evcs_advisor_enabled.
- Extension R2 multi-workflows (lib-node-map WORKFLOWS[], build/extract/push
  par fichier, n8n-create.mjs, gen-advisor-workflow.mjs).
- Helpers HA via package NFS + carte dashboard EVCS Master (backup fait).
- 1re reco réelle: auto_solar_plus, cible 35%, accord avec le réel.
- Fix sécurité n8n-push: plus de fallback d'id implicite vers le workflow EVCS.
2026-08-07 22:42:06 +02:00
Tallagrand Thierry
1ae8129658 R2: git = source de vérité — src/nodes/ + build/extract intégrés au push
- src/nodes/*.js (6 nodes + template snapshot) = source de vérité unique.
- n8n-push.mjs reconstruit le JSON depuis src/ avant syntaxe+golden+PUT
  (src gagne toujours; n8n-extract.mjs pour resynchroniser si édition UI).
- n8n-build.mjs --check pour vérifier la synchro.
- Copies historiques déplacées dans archive/ (mortes, dérivées de la prod).
- .gitignore: backups locaux de rollback.
- AGENTS.md: règle R2 pour toutes les futures sessions (dont Qwen local).
- Validé: idempotence, mutation/restauration, pipeline push complet en réel.
2026-08-07 21:03:52 +02:00