Journal leger pour ne rien perdre en route (documentation definitive a la fin, comme convenu) : decisions actees, sorties attendues du bilan, et backlog des defauts releves en chemin — doublon unique_id victron_vebus_dc_power, evcsDedicatedMaxW code en dur, alarmes et etats MPPT jamais lus, controle de vraisemblance PV + VE.Bus = batterie, etats zombies source_lost. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
4.3 KiB
Chantier — Bilan énergétique partagé
Journal de bord du chantier ouvert le 24/08/2026. Documentation définitive à écrire à la fin ; ce fichier ne sert qu'à ne rien perdre en route.
Pourquoi ce chantier
Constat du propriétaire, 24/08/2026 : « nous avons essayé de résoudre un défaut de stratégie par une suite de solutions tactiques ». Trois oscillateurs identifiés le même jour (règle de coupure EDF « Fix G », override d'abondance P6 qui détruisait sa propre condition d'autorisation, inversion des planchers de démarrage et de maintien) — tous de la même nature : des seuils empilés par couches successives, chacun défendable isolément, dont personne ne vérifiait la cohérence d'ensemble. Chaque correctif créait l'oscillateur suivant.
Toute valeur fixe est traitée comme une erreur de conception, pas comme un réglage à affiner.
Décisions actées
| Sujet | Décision |
|---|---|
| Profil horaire | Recalculé une fois par jour, publié dans des helpers. Pas de recalcul dans la boucle 30 s. |
| Prudence | Percentile 20, appliqué une seule fois sur le bilan net (PV − conso par heure et par jour), jamais séparément sur chaque terme — sinon on cumule deux pessimismes et le déficit passe à 109 % de la batterie, système inutilisable. |
| SOC | Lissé pour les décisions de pilotage, valeur instantanée conservée pour les planchers de sécurité. |
| Consommation | Mesurée, jamais supposée. Filtrage contextuel. Mesure non biaisée. |
| Production PV | Jamais la mesure brute. Sans injection, PV_mesurée = min(ressource, conso + absorption batterie) : observation censurée dès que la batterie est pleine. Estimateur = prévision, recalée uniquement sur les heures non censurées. |
| Rétention historique | recorder.purge_keep_days = 90 (appliqué le 24/08, redémarrage HA fait). Les statistiques long terme étaient déjà sans limite. |
| Conseiller IA | Les faits restent arithmétiques et déterministes ; l'advisor traite les hypothèses (facteur de confiance sur la prévision, lecture des états et alarmes, explication). Montée en pouvoir en trois paliers, sur un score de prédiction vérifié contre la mesure. |
Sorties attendues du bilan
Heure de croisement PV/conso · énergie à couvrir d'ici là · niveau de batterie
requis (remplace grid_soc_off fixe) · marge disponible pour le véhicule ·
drapeau « production actuellement bridée » · drapeau de santé des mesures.
Backlog
- Doublon
unique_id: victron_vebus_dc_power— déclaré deux fois, avec deux topics différents :configuration.yaml:99(system/0/Dc/Vebus/Power) etpackages/victron_vebus_mqtt.yaml:63(vebus/276/Dc/0/Power). Vérifié le 24/08 : les deux publient la même grandeur — un système VE.Bus en parallèle n'expose qu'une seule instance D-Bus couvrant les deux onduleurs. Ce n'est donc pas un défaut de données, seulement une ligneERRORà chaque démarrage et un fichier qui ment sur ce qu'il fait. Supprimer les lignes 62-68 du package, garder celle deconfiguration.yaml(nom conforme à l'entity_idutilisé parINPUT_PARSE), puismqtt.reload— pas besoin de redémarrer. evcsDedicatedMaxW: 4900codé en dur dansINPUT_PARSE.js, appliqué dès qu'EDF est absent (plafond ~20 A). Encore une valeur au jugé : à confronter à la réalité du câblage du circuit dédié avant de la garder ou de la remplacer par un helper.- Alarmes jamais lues :
sensor.airtria_mpii_v1_overload_alarm, alarme « High charge current » du Battery Monitor (observée active le 24/08),sensor.gx_device_ess_batterylife_state(peut imposer sa propre limite de décharge à l'insu du contrôleur),sensor.evcs_hq2239dnt7p_status. - États MPPT jamais lus (
sensor.airtria_mppt1_state,sensor.mppt_450_200_hq2449yr9pt_state) — indispensables : ils disent si un échantillon de production est exploitable ou censuré. - Contrôle de vraisemblance
PV + VE.Bus = batterie— vérifié à 95 W près le 24/08 (~9 %). À intégrer comme drapeau de santé permanent : le jour où l'identité diverge, un capteur ment. - États zombies
stop_source_lost/idle_wait_source— noms transitoires peu lisibles dans le journal et le tableau de bord (cf. HANDOFF §24, hors périmètre à l'époque).