Les fantomes du conseiller sont retires

Six helpers que plus personne n ecrivait depuis la specialisation du 12/09
restaient affiches sur la carte du tableau EVCS Master comme des
recommandations courantes : strategie, charge du soir, divergence, cible SOC
matin figee a 55 %, plafond courant, et le toggle qui appliquait la cible.
C est exactement ce fantome qui a rendu le cablage dangereux — la garde de
fraicheur datait le run, pas la valeur.

Retires du paquet et de la carte, sauvegardes dans SAVE/. La carte est
reecrite pour ce que le conseiller fait desormais : gravite, ce qu il voit,
ce qui cloche, la piste et sa confiance.

Le conseiller relisait aussi SA PROPRE strategie precedente — figee depuis
le 12/09, et parsee sans jamais servir dans le prompt. Retiree de son
snapshot et de BUILD_PROMPT.

Apres rechargement des trois domaines : dix helpers restants, exactement
ceux que l observateur ecrit. Les compteurs ont survecu (8 cycles calmes,
0 signalement), ce qui valide la suppression des `initial:` du matin meme.

Gabarit du conseiller re-rendu contre Home Assistant : 48 champs, JSON
valide, aucun null. Pousse.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
Tallagrand Thierry
2026-09-13 12:39:39 +02:00
parent 4fb401be96
commit bfa8a5ffd8
6 changed files with 22 additions and 11 deletions

View File

@@ -5983,11 +5983,25 @@ tombe avec `target=22% (ADVISOR)` dans la raison ; retire → 96/96.
Gabarit re-rendu contre Home Assistant : 196 champs, JSON valide, aucun null, Gabarit re-rendu contre Home Assistant : 196 champs, JSON valide, aucun null,
plus aucun champ advisor. plus aucun champ advisor.
⚠️ RESTE : les cinq helpers eux-memes existent toujours cote Home Assistant et ### Les fantomes sont retires aussi (meme jour)
la carte « Conseiller IA » affiche encore « Cible SOC matin (agent) : 55 % », Un helper que plus personne n ecrit, affiche comme une recommandation
figee depuis le 12/09. Plus rien ne la lit, mais un chiffre fige affiche comme courante, EST le piege — c est lui qui a rendu le cablage dangereux. Retires
une recommandation courante est exactement le fantome qui a cree le danger du paquet `evcs_advisor_shadow.yaml` (sauvegarde `SAVE/*.bak.20260913-123734`)
ci-dessus. A nettoyer (paquet + carte). et de la carte du tableau EVCS Master :
`evcs_advisor_strategy` · `_ev_charge_tonight` · `_divergence` ·
`_night_target_soc` · `_current_max_a` · et le toggle `_apply_night_target`.
Le conseiller relisait en plus SA PROPRE strategie precedente
(`advisor_prev_strategy` dans son snapshot, `prevAdvisorStrategy` dans
BUILD_PROMPT) : figee depuis le 12/09, et parsee sans jamais servir dans le
prompt. Retiree des deux.
Carte reecrite pour ce qu il fait desormais — gravite, ce qu il voit, ce qui
cloche, la piste et sa confiance — au lieu de « Recommandation vs reel ».
Apres `input_boolean/text/number.reload` : **dix helpers restants, exactement
ceux que l observateur ecrit**. Les compteurs ont survecu au rechargement
(8 cycles calmes, 0 signalement), ce qui valide au passage la suppression des
`initial:` du matin meme.
--- ---
*Document mis a jour le : 13/09/2026 — campagne conseiller : quatre defauts du prompt corriges, incidents 39/40, table `observation`* *Document mis a jour le : 13/09/2026 — campagne conseiller : quatre defauts du prompt corriges, incidents 39/40, table `observation`*

View File

@@ -19,7 +19,6 @@ const ctx = {
advisorEnabled: onOff(input.advisor_enabled), advisorEnabled: onOff(input.advisor_enabled),
agreeCount: num(input.advisor_agree_count, 0), agreeCount: num(input.advisor_agree_count, 0),
divergeCount: num(input.advisor_diverge_count, 0), divergeCount: num(input.advisor_diverge_count, 0),
prevAdvisorStrategy: (input.advisor_prev_strategy || 'unknown').toString(),
soc: num(input.soc_percent, NaN), soc: num(input.soc_percent, NaN),
batteryCurrentA: num(input.battery_current_a, NaN), batteryCurrentA: num(input.battery_current_a, NaN),

View File

@@ -2,7 +2,6 @@
"advisor_enabled": states("input_boolean.evcs_advisor_enabled"), "advisor_enabled": states("input_boolean.evcs_advisor_enabled"),
"advisor_agree_count": states("input_number.evcs_advisor_agree_count"), "advisor_agree_count": states("input_number.evcs_advisor_agree_count"),
"advisor_diverge_count": states("input_number.evcs_advisor_diverge_count"), "advisor_diverge_count": states("input_number.evcs_advisor_diverge_count"),
"advisor_prev_strategy": states("input_text.evcs_advisor_strategy"),
"soc_percent": states("sensor.victron_battery_soc"), "soc_percent": states("sensor.victron_battery_soc"),
"battery_current_a": states("sensor.victron_battery_current"), "battery_current_a": states("sensor.victron_battery_current"),

View File

@@ -22,7 +22,6 @@ function buildPrompt(snapshot, nowIso) {
const BASE = { const BASE = {
advisor_enabled: 'on', advisor_agree_count: '0', advisor_diverge_count: '0', advisor_enabled: 'on', advisor_agree_count: '0', advisor_diverge_count: '0',
advisor_prev_strategy: 'auto_solar_plus',
soc_percent: '50', battery_current_a: '0', soc_percent: '50', battery_current_a: '0',
pv_power_w: '0', pv_power_10m_avg_w: '0', house_ac_power_w: '700', pv_power_w: '0', pv_power_10m_avg_w: '0', house_ac_power_w: '700',
grid_state: 'off', acin1_available: '0', grid_state: 'off', acin1_available: '0',

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env node #!/usr/bin/env node
// Usage: node tools/ha-history.mjs <entity_id>[,<entity_id>...] [debut] [fin] // Usage: node tools/ha-history.mjs <entity_id>[,<entity_id>...] [debut] [fin]
// node tools/ha-history.mjs sensor.victron_battery_soc 2026-08-25T00:00 2026-08-25T10:00 // node tools/ha-history.mjs sensor.victron_battery_soc 2026-08-25T00:00 2026-08-25T10:00
// node tools/ha-history.mjs input_boolean.evcs_advisor_apply_night_target -48h // node tools/ha-history.mjs input_boolean.evcs_advisor_enabled -48h
// //
// Lit l'historique d'états via l'API REST de Home Assistant (jeton dans .env, // Lit l'historique d'états via l'API REST de Home Assistant (jeton dans .env,
// même mécanique que tools/ha-service.mjs). // même mécanique que tools/ha-service.mjs).

File diff suppressed because one or more lines are too long