From ad48de1c751bea592ffbb04918155b85ee000359 Mon Sep 17 00:00:00 2001 From: Tallagrand Thierry Date: Wed, 7 Oct 2026 07:27:25 +0200 Subject: [PATCH] Tableaux ECS : carte Aujourd'hui, prevision VRM, bloc jour faible ; HANDOFF --- HANDOFF.md | 31 +++++++++++++- dashboards/ECS_DEBUG_REGLAGES_PREMIUM.yaml | 49 +++++++++++++++++++--- dashboards/ECS_PILOTAGE_PREMIUM.yaml | 34 ++++++++++++++- 3 files changed, 106 insertions(+), 8 deletions(-) diff --git a/HANDOFF.md b/HANDOFF.md index d3ff57d..96cfcff 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -1954,5 +1954,34 @@ sur VRM comme le bilan, un seul workflow, securite eau chaude 1,5 kWh / 24 h. depuis le 28/09 (« tenir jusqu'a la prochaine HC ») ; le 06/10 : 43,4 % requis a 14:24, SOC 57 -> pas d'EDF, batterie arrivee a 31 % a 01:24 (> 22) : decision juste. +### 07/10 matin — Premiere decision « jour faible » en reel, mesure du chauffe-eau reparee, Grafana et tableaux ECS +- **Decision du bilan 07:25:07** : `2026-10-07|on|jour faible : batterie prevue a 44.3 % a 18 h pour 68.7 % + requis`. **07:25:15** : workflow ECS -> `jour_faible_coupe`, switch off, `off_jour_faible` on. EDF ouvert + depuis 07:24:03 : le chauffe-eau, a 2 375 W depuis 07:20, serait parti sur la batterie (SOC 37). +- **Mesure du chauffe-eau morte depuis toujours** : `parseParisStampToMs` (NORMALIZE / OBSERVATION / + OUTPUT_BUILDER) avait une expression `\\d` doublement echappee -> aucun horodatage reconnu -> + `observed_power_w` fige a 0, regime « off », detection d'ecart et protection EVCS jamais actives. + Corrige et deploye 07:18 (`c9e0e4b`) ; rejoue : 0,10 kWh / 5 min -> 1 200 W. ⚠️ La protection + « priorite EVCS -> coupure » s'exerce donc pour la premiere fois : a surveiller. +- **Besoin du proprietaire** : eau a 65 °C pour les douches de **06:00 et 20:00, tous les jours**. Couper + toute la journee laissait l'eau froide a 20 h -> regle jour faible elargie (deploye 07:23) : chauffe aussi + sur un VRAI surplus solaire (sous tension : PV >= maison ; hors tension : PV - maison >= puissance AUTO ; + reseau ouvert) et de 16 h a 20 h si < 1,5 kWh depuis 07:24 (`sensor.evcs_chauffe_eau_jour_kwh`, nouveau). + Tests ECS 12/12, mutation qui mord. ⚠️ La securite du soir peut chauffer sur la batterie : arbitrage + confort assume. ⚠️ Douche de 06:00 : la session HC commence a 01:24 (4 h 36 avant) ; pompe a chaleur + ~5 h pour 55 °C -> a observer sur les prochaines nuits (Grafana) avant de construire l'alarme « passe en + BOOST » (aucune temperature du ballon dans HA ; seule la puissance donne la phase). +- **Grafana « Le chauffe-eau »** (`evcs-chauffe-eau`, `gen-grafana-dashboards.py`) : maintenant, decisions + et etats (evenements genre `chauffe_eau`), energie par heure par contexte (EDF > 300 W / solaire si PV >= + maison / batterie), par jour, puissance mesuree. Historisation : compteur, puissance observee, 24 h dans + `mesure` ; compteur rattrape depuis le 14/08 (3 519 points HA) ; transitions switch / decision / regime. + **Constat** : 02/10 7,26 kWh sur la batterie, 03/10 5,34, 04/10 4,89 (21 h-01 h) — en AUTO le ballon + chauffait surtout sur la batterie. +- **Tableaux HA** (sauvegardes `*.bak-20261007`) : ECS Pilotage Premium, carte « Aujourd'hui » en tete + (decision et raison, alimentation reelle, regime en clair + W, kWh depuis 07:24 et 24 h, coupure jour + faible ; bloc `|` sinon le tableau markdown est replie) ; ECS Debug Premium : prevision VRM (repli + Forecast.Solar), bloc « Jour faible », historique avec jour faible / coupure / EDF. Rendus verifies par + `/api/template`. + --- -*Document mis a jour le : 07/10/2026 (~07:10) — chauffe-eau en HC de nuit les jours faibles (decision du bilan, workflow ECS sous controle du depot, VRM, V2.3 desactive) ; garde batterie reseau : voiture bridee a 6 A au lieu d'un arret ; garde-fou concierge 2 h ; allers-retours brefs de la borne retrouves dans l'historique HA (echange VW -> JEEP de 20 s), production 14,5 kWh contre 22 prevus, defaut garde batterie en mode reseau a trancher ; voiture a midi : la batterie n'est plus comptee comme du solaire (EDF automatique les jours de depart si le surplus ne couvre pas) ; nuit 05->06 : JEEP chargee sur EDF en complete (6,32 kWh), budget 0 du a la prevision, Windy/ECMWF contre VRM, a comparer ce soir ; concierge aligne sur la preuve fin de trajet ; a verifier : nuit 05->06 et mardi faible, comparaison VRM/Forecast.Solar ; JEEP identifiee aussi par sa fin de trajet, prevision de la nuit 05->06 ; identification JEEP reussie en reel, correction humaine qui prime (refus supprime), session du 04/10 coupee ; EVCS Master en quatre onglets ; Jeep lue par Uconnect et identifiee seule, capacite JEEP 10 kWh, concierge variante (a) ; releve par photo (SPARK), hass-uconnect en attente ; ecart semaine/week-end mesure (pas de profil week-end la nuit) ; nuit du budget : budget borne au plancher prudent, sans EDF = voiture bloquee meme EDF ferme (batterie seule) ; Energie : sauts corriges ; tableau Energie complete (Sud/Ouest, batterie par integration, borne ; aucun redemarrage HA) ; kilometrage des vehicules (km/kWh, capacite, releves de reference, agent cable 15/15) ; a verifier le 04/10 au matin : nuit du budget JEEP ; concierge : vehicule non confirme demande, heure de saisie ; Grafana vehicules en tableau ; Grafana vehicules : ZERO et Invite ajoutes, session 16:46 reetiquetee ZERO ; prevision SOC 10 h ~35 % ; concierge fiable : niveau note par le script, une ligne, dedoublonnage, simulation par drapeau ; agent : message incompris = question, bourse sur demande explicite (banc final 6/6) ; a verifier : nuit du samedi 03 au dimanche 04/10 (budget < besoin JEEP), cron orange-cloture lundi 05/10 apres 17:40, comparaison VRM / Forecast.Solar lundi 05/10* +*Document mis a jour le : 07/10/2026 (~07:45) — 1re decision jour faible en reel, mesure ECS reparee, douches 06:00/20:00, Grafana chauffe-eau, tableaux ECS ; chauffe-eau en HC de nuit les jours faibles (decision du bilan, workflow ECS sous controle du depot, VRM, V2.3 desactive) ; garde batterie reseau : voiture bridee a 6 A au lieu d'un arret ; garde-fou concierge 2 h ; allers-retours brefs de la borne retrouves dans l'historique HA (echange VW -> JEEP de 20 s), production 14,5 kWh contre 22 prevus, defaut garde batterie en mode reseau a trancher ; voiture a midi : la batterie n'est plus comptee comme du solaire (EDF automatique les jours de depart si le surplus ne couvre pas) ; nuit 05->06 : JEEP chargee sur EDF en complete (6,32 kWh), budget 0 du a la prevision, Windy/ECMWF contre VRM, a comparer ce soir ; concierge aligne sur la preuve fin de trajet ; a verifier : nuit 05->06 et mardi faible, comparaison VRM/Forecast.Solar ; JEEP identifiee aussi par sa fin de trajet, prevision de la nuit 05->06 ; identification JEEP reussie en reel, correction humaine qui prime (refus supprime), session du 04/10 coupee ; EVCS Master en quatre onglets ; Jeep lue par Uconnect et identifiee seule, capacite JEEP 10 kWh, concierge variante (a) ; releve par photo (SPARK), hass-uconnect en attente ; ecart semaine/week-end mesure (pas de profil week-end la nuit) ; nuit du budget : budget borne au plancher prudent, sans EDF = voiture bloquee meme EDF ferme (batterie seule) ; Energie : sauts corriges ; tableau Energie complete (Sud/Ouest, batterie par integration, borne ; aucun redemarrage HA) ; kilometrage des vehicules (km/kWh, capacite, releves de reference, agent cable 15/15) ; a verifier le 04/10 au matin : nuit du budget JEEP ; concierge : vehicule non confirme demande, heure de saisie ; Grafana vehicules en tableau ; Grafana vehicules : ZERO et Invite ajoutes, session 16:46 reetiquetee ZERO ; prevision SOC 10 h ~35 % ; concierge fiable : niveau note par le script, une ligne, dedoublonnage, simulation par drapeau ; agent : message incompris = question, bourse sur demande explicite (banc final 6/6) ; a verifier : nuit du samedi 03 au dimanche 04/10 (budget < besoin JEEP), cron orange-cloture lundi 05/10 apres 17:40, comparaison VRM / Forecast.Solar lundi 05/10* diff --git a/dashboards/ECS_DEBUG_REGLAGES_PREMIUM.yaml b/dashboards/ECS_DEBUG_REGLAGES_PREMIUM.yaml index 933f4ec..339bcdd 100755 --- a/dashboards/ECS_DEBUG_REGLAGES_PREMIUM.yaml +++ b/dashboards/ECS_DEBUG_REGLAGES_PREMIUM.yaml @@ -117,15 +117,29 @@ views: name: AC-IN dispo icon: mdi:power-plug - - type: custom:mushroom-entity-card - entity: sensor.energy_production_today_remaining - name: Prod restante jour + # 07/10/2026 : la prevision lue par le conseiller est celle du bilan + # (VRM par defaut), plus Forecast.Solar directement. + - type: custom:mushroom-template-card + primary: Prod restante jour + secondary: >- + {% set vt = states('input_text.evcs_balance_vrm_today').split(',') %} + {% set ns = namespace(r=0) %} + {% if is_state('input_select.evcs_balance_forecast_source', 'vrm') and vt | length == 24 %} + {% for i in range(now().hour, 24) %}{% set v = vt[i] | float(0) %}{% set ns.r = ns.r + (v * (1 - now().minute / 60) if i == now().hour else v) %}{% endfor %} + {{ ns.r | round(1) }} kWh (VRM) + {% else %}{{ states('sensor.energy_production_today_remaining') }} kWh (Forecast.Solar){% endif %} icon: mdi:weather-sunny + icon_color: amber - - type: custom:mushroom-entity-card - entity: sensor.energy_production_tomorrow - name: Prod demain + - type: custom:mushroom-template-card + primary: Prod demain + secondary: >- + {% set vd = states('input_text.evcs_balance_vrm_tomorrow').split(',') %} + {% if is_state('input_select.evcs_balance_forecast_source', 'vrm') and vd | length == 24 %} + {{ vd | map('float', 0) | sum | round(1) }} kWh (VRM) + {% else %}{{ states('sensor.energy_production_tomorrow') }} kWh (Forecast.Solar){% endif %} icon: mdi:weather-partly-cloudy + icon_color: amber - type: custom:mushroom-title-card title: Chauffe-eau observé @@ -292,6 +306,23 @@ views: - entity: input_number.victron_ac_loads_max_safe_w name: Charge AC max safe + # Jour faible : eau chaude en HC de nuit (07/10/2026). + - type: entities + title: Jour faible — eau chaude en heures creuses + entities: + - entity: input_boolean.evcs_balance_ecs_nuit + name: Jour faible (décision du bilan) + - entity: input_text.evcs_balance_ecs_nuit_jour + name: Décision du jour + - entity: input_boolean.victron_water_heater_off_jour_faible + name: Coupé par la règle jour faible + - entity: input_boolean.victron_evcs_night_grid_session_committed + name: Session réseau HC engagée + - entity: sensor.evcs_chauffe_eau_jour_kwh + name: Chauffe-eau depuis 07:24 + - entity: sensor.evcs_chauffe_eau_24h_kwh + name: Chauffe-eau sur 24 h + - type: custom:mushroom-title-card title: Historique subtitle: Visualisation rapide 24h @@ -321,4 +352,10 @@ views: name: Forced OFF - entity: input_boolean.victron_evcs_priority_active name: EVCS prioritaire + - entity: input_boolean.evcs_balance_ecs_nuit + name: Jour faible + - entity: input_boolean.victron_water_heater_off_jour_faible + name: Coupé jour faible + - entity: switch.edf_general_ok_switch + name: EDF diff --git a/dashboards/ECS_PILOTAGE_PREMIUM.yaml b/dashboards/ECS_PILOTAGE_PREMIUM.yaml index 632959d..6372c81 100755 --- a/dashboards/ECS_PILOTAGE_PREMIUM.yaml +++ b/dashboards/ECS_PILOTAGE_PREMIUM.yaml @@ -10,6 +10,38 @@ views: title: Chauffe-eau thermodynamique subtitle: Pilotage intelligent ECS / EVCS + # Aujourd'hui (07/10/2026) : la decision du bilan (jour faible -> eau + # chaude en HC de nuit), l'etat REEL (interrupteur), le regime mesure + # et l'energie. Lecture seule. + - type: markdown + content: | + {% set d = states('input_text.evcs_balance_ecs_nuit_jour') %} + {% set p = d.split('|') %} + {% set sw = states('switch.tt_chauffe_eau_pleumeur_switch') %} + {% set r = states('input_text.victron_water_heater_observed_regime') %} + {% set w = states('input_number.victron_water_heater_observed_power_w') | float(0) %} + {% set libr = {'off': 'arrêt', 'hp_low': 'pompe à chaleur (lent, jusqu à 55 °C)', + 'resistive_mid': 'résistance (55 → 65 °C)', 'boost_high': 'résistance forte (BOOST)'} %} + ### Aujourd'hui + {% if p | length >= 3 and p[0] == now().strftime('%Y-%m-%d') %} + **{{ '🌙 Jour faible : eau chaude en heures creuses sur EDF' if p[1] == 'on' else '☀️ Jour normal : eau chaude au solaire' }}** + *{{ p[2] }}* + {% else %} + *Décision du jour pas encore prise : elle tombe après 07:24.* + {% endif %} + + | | | + |---|---:| + | Alimentation | **{{ 'sous tension' if sw == 'on' else 'coupée' }}** | + | Régime mesuré | {{ libr.get(r, r) }} — {{ w | round(0) }} W | + | Depuis 07:24 | {{ states('sensor.evcs_chauffe_eau_jour_kwh') }} kWh | + | Sur 24 h | {{ states('sensor.evcs_chauffe_eau_24h_kwh') }} kWh | + | Coupé par la règle « jour faible » | {{ 'oui' if is_state('input_boolean.victron_water_heater_off_jour_faible', 'on') else 'non' }} | + + Douches 06:00 et 20:00 : un jour faible il chauffe en heures creuses + (EDF fermé), sur un vrai surplus solaire, et à partir de 16 h s'il a + pris moins de 1,5 kWh depuis 07:24. Détail : Grafana « Le chauffe-eau ». + - type: custom:vertical-stack-in-card cards: - type: custom:mushroom-chips-card @@ -184,7 +216,7 @@ views: cards: - type: custom:mushroom-entity-card entity: switch.tt_chauffe_eau_pleumeur_switch - name: Alimentation ECS + name: Alimentation ECS (manuel) icon: mdi:power tap_action: action: toggle