193 lines
9.8 KiB
Markdown
193 lines
9.8 KiB
Markdown
# MEMORY.md — Session du 13/06/2026
|
|
|
|
> Ce document résume l'analyse effectuée lors de la session précédente pour servir de mémoire pour la suite.
|
|
|
|
---
|
|
|
|
## 1. Workflows n8n pilotables par MCP (liés au projet EVCS/Victron)
|
|
|
|
Liste des workflows directement liés au projet EVCS/Victron dans `/mnt/projects/EVCS/EVCS` :
|
|
|
|
| Workflow | ID | Statut | Fonction |
|
|
|----------|-----|--------|----------|
|
|
| **HA Snapshot EVCS Surplus Controller V2.6** | `ATswvGfG4KJUls0K` | **Actif** | Workflow principal. Récupère snapshot HA → parse inputs → calcule fenêtres/batteries → prend décision de charge → exécute appels service HA. |
|
|
| HA Snapshot EVCS Surplus Controller V2.0 | `Y4U0g0f6CsZhfhCc` | Inactif | Version précédente (avant upgrade V2.6). |
|
|
| HA Snapshot EVCS Surplus Controller V1.2 | `xi9DyQKqF6p01lNy` | Inactif | Version legacy. |
|
|
| Victron - EVCS Surplus Controller V1 | `XDIbH81MPoI8MWR4` | Inactif | Première version du contrôleur. |
|
|
| **Victron - PV Surplus Advisor V1** | `U0nRmdS9Pa0qzpWm` | **Actif** | Conseiller de surplus PV. |
|
|
| **Victron - Auto Charge Manager V1.2** | `cTeeHy4ePiVeELLh` | **Actif** | Gestionnaire de charge automatique Victron. |
|
|
| **Victron - Battery / Grid Hysteresis Fix V1** | `7iIlu7LLTW7TZA8o` | **Actif** | Correctif d'hystérésis batterie/réseau. |
|
|
| **Victron - Garage Thermal Surplus Manager V2.2** | `FtPVF7byhtu4o6Oh` | **Actif** | Gestionnaire de surplus thermique garage. |
|
|
| **SDB Climate & Surplus Manager V2.2** | `2NhrfxuGm4pTUNs9` | **Actif** | Gestionnaire climat/surplus SDB. |
|
|
| **Water Heater Advisor V2.3** | `A11aOb50cGtpJmvn` | **Actif** | Conseiller chauffe-eau. |
|
|
| **Water Heater Advisor ECS 6 Nodes + Build + Execute** | `yX2j8m04e3pxaoQq` | **Actif** | Version 6 nœuds du conseiller ECS. |
|
|
| **Victron - Flexible Load Advisor V1** | `YjiNCpEoVhPT8JMw` | **Actif** | Conseiller de charge flexible. |
|
|
|
|
**Actions MCP disponibles** : Activer/Désactiver, Mettre à jour, Exécuter, Supprimer, Consulter les exécutions.
|
|
|
|
---
|
|
|
|
## 2. Analyse de HANDOFF.md
|
|
|
|
Fichier lu : `/mnt/projects/EVCS/EVCS/HANDOFF.md`
|
|
|
|
### Contexte Projet
|
|
- Installation **Victron ESS sans injection réseau**, batterie 17,5 kWh.
|
|
- Workflow actif : `HA Snapshot EVCS Surplus Controller V2.6`.
|
|
- Code source modulaire dans `/mnt/projects/EVCS/EVCS/decoupesurplus/`.
|
|
|
|
### Problème historique documenté (Outside-Window Solar Charging Block)
|
|
L'après-midi, même avec **fort ensoleillement et SOC élevé (> 85%)**, l'EVCS restait bloqué en :
|
|
- **Profil** : `outside_window`
|
|
- **Décision** : `stop_hard` / `blocked`
|
|
- **Source** : `Bloqué`
|
|
|
|
### Root Cause identifiée dans HANDOFF.md
|
|
1. **Seuils PV trop élevés** : `pvStartMinW = 1800W`, `pvHoldMinW = 1200W`. Sans injection, MPPT régule PV à la charge maison (~800W) → seuils jamais atteints.
|
|
2. **Cloud Debt bloquant** : `cloudDebtPrevKwh = 1.66 kWh` > `cloudDebtMaxKwh = 1.2 kWh` → `cloudDebtOkForPotential = false`.
|
|
3. **Aucune probe en `outside_window`** : Sondes uniquement pour `morning_solar` et `midday_hc_or_solar`. Trou de 14:24→17:00 sans mécanisme de test.
|
|
|
|
### Corrections déjà déployées en V2.6
|
|
- **Bug EDF corrigé** : Switch `edf_general_ok_switch` clignotait ON/OFF toutes les 30s. Fix=conditionner l'appel au `sourceMode`.
|
|
- **Feature `afternoon_probe` déployée** : Nouvelle sonde pour l'après-midi.
|
|
|
|
### Workflows MCP tests
|
|
- `TEST - Tous les appels HA (complet)` (ID: `18dOsLJmqtSo3Nek`) — Inactif
|
|
- `TEST - Tous les appels HA` (ID: `QtWF02XU5e6cHFTk`) — Inactif
|
|
- `MCP - ha.get_state` (ID: `76hHlVYIgt1lEHyR`) — Inactif
|
|
- `MCP - ha.set_helper` (ID: `eeDmEICJ3ArjwpCt`) — Inactif
|
|
- `MCP - ha.call_service` (ID: `tZSzbVG1dxBkYT4y`) — Inactif
|
|
- `MCP - grid.set_state` (ID: `uGZAOJjKegRuRNyb`) — Inactif
|
|
- `MCP - pv.get_forecast` (ID: `RVTMdsvR4i8wSc18`) — Inactif
|
|
- `MCP - victron.set_charge_limits` (ID: `a92quWH4pokpIqdn`) — Inactif
|
|
|
|
---
|
|
|
|
## 3. Description des captures d'écran analysées
|
|
|
|
### Image 1 : Vue exécution nœud `Build EVCS Surplus Controller V2.0 Actions` (onglet Output)
|
|
- **Workflow** : `HA Snapshot EVCS Surplus Controller V2.6`
|
|
- **Pipeline visible** : `Schedule Trigger` → `HA Snapshot` → `INPUT_PARSE` → `WINDOWS_SOURCEV2` → `BATTERY_CLOUD_LOCKS` → `DECISION_ENGIN` → `HA_SERVICE_CALLS_OUTPUT` → `Build EVCS...` → `Execute HA Service`
|
|
- **Nœud sélectionné** : `Build EVCS Surplus Controller V2.0 Actions` — Success in 13ms, 27 items output.
|
|
- **Timestamp** : `2026-06-13 00:05:30`
|
|
- **État observé** :
|
|
- `helper_state` = `vehicle_not_connected`
|
|
- `helper_current_decision` = `stop_not_connected`
|
|
- `helper_reason` = `Véhicule ou borne non connecté | ... | Stratégie=auto_solar_plus | Profil=outside_window | Source=blocked | Mode=battery_priority_mod`
|
|
- `helper_operating_mode` = `outside_window`
|
|
- `helper_source_mode` = `Bloqué`
|
|
- `helper_target_current` = `6 A`
|
|
|
|
### Image 2 : Vue détaillée Input/Output du même nœud
|
|
- **Section `computed`** :
|
|
- `operating_mode` : `outside_window`
|
|
- `profile` : `outside_window`
|
|
- `source_mode` : `blocked`
|
|
- `source_mode_label` : `Bloqué`
|
|
- `user_strategy` : `auto_solar_plus`
|
|
- `in_night_hc_window` : `false`
|
|
- `in_morning_window` : `false`
|
|
- `in_midday_window` : `false`
|
|
- `in_evening_window` : `false`
|
|
- `departure_priority_active` : `false`
|
|
- `minutes_until_departure` : `525`
|
|
- `battery_priority_mode` : `true`
|
|
- `physical_cap_current_a` : `19`
|
|
- `can_run_at_min_current` : `true`
|
|
- `forecast_buffer_kwh` : `-15`
|
|
- `projected_end_soc_after_charge` : `0`
|
|
- `cloud_debt_next_kwh` : `0`
|
|
- `cloud_debt_duration_minutes` : `0`
|
|
- `cloud_debt_active` : `false`
|
|
- `cloud_tolerance_ok` : `true`
|
|
- `probe_window_active` : `false`
|
|
- **Section `decision`** :
|
|
- `state` : `vehicle_not_connected`
|
|
- `current_decision` : `stop_not_connected`
|
|
- `desired_charging` : `false`
|
|
- `desired_permission` : `false`
|
|
- `desired_current_a` : `6`
|
|
- `charging_action` : `none`
|
|
- `permission_action` : `none`
|
|
- `current_action` : `none`
|
|
- `block_reason` : `vehicle_not_connected`
|
|
- `blocked_until` : `2026-06-13 00:05:30`
|
|
- `dynamic_ok` : `false`
|
|
- `must_stop` : `false`
|
|
|
|
---
|
|
|
|
## 4. Synthèse de la situation observée
|
|
|
|
Les captures montrent une exécution **nocturne** (`00:05:30`) :
|
|
- Véhicule **non connecté**.
|
|
- Système en `outside_window` (normal à minuit).
|
|
- Source `blocked` / `Bloqué`.
|
|
- Décision `stop_not_connected`.
|
|
|
|
**Verdict** : C'est un état **attendu et normal** pour cette heure sans véhicule branché.
|
|
|
|
### Point d'attention issu de HANDOFF.md
|
|
Le problème documenté concernait le **même état mais l'après-midi avec véhicule branché et soleil disponible**. Ce cas problématique semble avoir été adressé par le déploiement de la feature `afternoon_probe` en V2.6. À surveiller.
|
|
|
|
---
|
|
|
|
## 5. Fichiers critiques du projet (à connaître)
|
|
|
|
| Fichier | Chemin | Rôle |
|
|
|---------|--------|------|
|
|
| `WINDOWS/WINDOW_SOURCEV2.js` | `/mnt/projects/EVCS/EVCS/decoupesurplus/WINDOWS/WINDOW_SOURCEV2.js` | Détermine `profile` et `sourceMode` |
|
|
| `BATTERY/BATTERY_CLOUD_LOCKS.js` | `/mnt/projects/EVCS/EVCS/decoupesurplus/BATTERY/BATTERY_CLOUD_LOCKS.js` | Calcule `cloudDebt`, `cloudToleranceOk` |
|
|
| `snapshot.js` | `/mnt/projects/EVCS/EVCS/decoupesurplus/snapshot.js` | Récupération des helpers HA |
|
|
| `EVCS_V2.5_PATCHED.json` | `/mnt/projects/EVCS/EVCS/modified/EVCS_V2.5_PATCHED.json` | Export n8n de référence (rollback) |
|
|
| `HANDOFF.md` | `/mnt/projects/EVCS/EVCS/HANDOFF.md` | Rapport de transfert technique session précédente |
|
|
| `MEMORY.md` | `/mnt/projects/EVCS/EVCS/MEMORY.md` | Ce fichier (mémoire de session) |
|
|
|
|
---
|
|
|
|
## 6. Paramètres clés Home Assistant (à vérifier si besoin)
|
|
|
|
| Paramètre | Entité typique | Valeur défaut | Notes |
|
|
|-----------|----------------|---------------|-------|
|
|
| `pv_start_min_w` | `input_number.victron_pv_start_min_w` | 1800 W | Seuil démarrage PV |
|
|
| `pv_hold_min_w` | `input_number.victron_pv_hold_min_w` | 1200 W | Seuil maintien PV |
|
|
| `cloud_debt_max_kwh` | `input_number.victron_cloud_debt_max_kwh` | 1.2 kWh | Dette nuage max |
|
|
| `battery_neutral_band_a` | `input_number.victron_battery_neutral_band_a` | 3 A | Bande neutre batterie |
|
|
| `allow_grid_hc_midday` | `input_boolean.victron_allow_grid_hc_midday` | OFF | ON actif |
|
|
| `allow_grid_hc_night` | `input_boolean.victron_allow_grid_hc_night` | OFF | ON actif |
|
|
|
|
---
|
|
|
|
## 7. Prochaines étapes possibles (à discuter avec l'utilisateur)
|
|
|
|
1. **Observer** le comportement en afternoon avec la nouvelle V2.6 / `afternoon_probe`.
|
|
2. **Ajuster** les seuils des helpers HA si nécessaire (`pv_start_min_w`, `pv_hold_min_w`, etc.).
|
|
3. **Modifier** un workflow n8n via MCP (activer/désactiver/exécuter).
|
|
4. **Modifier** le code source dans `decoupesurplus/` si un ajustement de logique est nécessaire.
|
|
5. **Relire** les exécutions récentes du workflow V2.6 via `n8n-mcp_list_executions` pour vérifier le comportement.
|
|
|
|
---
|
|
|
|
*Document créé par l'IA le : 13/06/2026*
|
|
*Session précédente terminée : sauvegarde mémoire pour session suivante.*
|
|
|
|
---
|
|
|
|
## 8. Mise à jour du 09/08/2026 (voir HANDOFF §17-21 pour le détail)
|
|
|
|
⚠ La section 4 ci-dessus (decoupesurplus/) est OBSOLÈTE depuis R2 :
|
|
la source de vérité est **src/nodes/*.js** + `tools/n8n-push.mjs` (build +
|
|
golden 33 scénarios bloquants + backup + PUT). Voir MANUEL_COMPLET §13.1.
|
|
|
|
État du système :
|
|
- Fixes anti-rebond EDF **A→F** déployés (états collants night_recovery_done_idle
|
|
/ departure_done_idle, coupures immédiates hystérésis, mémoire prioritaire
|
|
sur les gardes) — incidents des nuits 07-09/08 résolus.
|
|
- **Conseiller IA** : mode ombre (workflow tdfInZns7cqo8fU2, 15 min) +
|
|
premier câblage réel = cible SOC matin (toggle evcs_advisor_apply_night_target).
|
|
- **P9** : charge réseau avant départ hors HC (toggle allow_grid_departure_urgent)
|
|
+ sélecteur véhicule VW (départ 08:50) / JEEP (départ 06:30).
|
|
- Workflow hystérésis suivi en local : workflows/victron-grid-hysteresis-v1.json.
|
|
|
|
*Mis à jour le : 09/08/2026*
|