diff --git a/dashboards/bilan_energetique.yaml b/dashboards/bilan_energetique.yaml index 4d4e3c3..518dfc5 100644 --- a/dashboards/bilan_energetique.yaml +++ b/dashboards/bilan_energetique.yaml @@ -16,7 +16,7 @@ views: state_not: "ok" card: type: markdown - content: > + content: | ## ⚠️ Bilan indisponible {{ states('input_text.evcs_balance_reason') }} @@ -26,15 +26,11 @@ views: # --- LA comparaison qui décidera du câblage --------------------- - type: markdown title: Seuil calculé contre seuil fixe - content: > + content: | {% set req = states('input_number.evcs_balance_required_soc') | float(0) %} - {% set fixe = states('input_number.victron_grid_soc_off') | float(0) %} - {% set soc = states('sensor.victron_battery_soc') | float(0) %} - {% set ecart = req - fixe %} - | | | |---|---:| | SOC batterie **maintenant** | **{{ soc | round(0) }} %** | @@ -93,7 +89,7 @@ views: state_not: "0.0" card: type: markdown - content: > + content: | ### 🔋 Stockage insuffisant pour cette traversée Il manque **{{ states('input_number.evcs_balance_storage_shortfall_kwh') }} kWh** @@ -106,7 +102,7 @@ views: # --- Ce qu'on jette --------------------------------------------- - type: markdown title: Production - content: > + content: | {% set bride = is_state('input_boolean.evcs_balance_pv_censored', 'on') %} {% if bride %} @@ -157,21 +153,18 @@ views: - type: markdown title: Profil horaire de consommation (kWh/h, hors véhicule) - content: > + content: | {% set p50 = states('input_text.evcs_balance_consumption_p50').split(',') %} - {% set p80 = states('input_text.evcs_balance_consumption_p80').split(',') %} - {% set env = states('input_text.evcs_balance_envelope').split(',') %} - {% set cen = states('input_text.evcs_balance_censorship_rate').split(',') %} - + {% set ok = p50 | length == 24 and p80 | length == 24 and env | length == 24 and cen | length == 24 %} + {% if not ok %}Profils indisponibles — le recalcul quotidien n'a pas encore publié. + {% else %} | h | conso typique | conso prudente | production max | censure | |---:|---:|---:|---:|---:| - - {% for i in range(24) %} - | {{ '%02d' | format(i) }} | {{ p50[i] if p50 | length == 24 else '—' }} | {{ p80[i] if p80 | length == 24 else '—' }} | {{ env[i] if env | length == 24 else '—' }} | {{ (cen[i] | float(1) * 100) | round(0) if cen | length == 24 else '—' }} % | - {% endfor %} + {% for i in range(24) %}| {{ '%02d' | format(i) }} | {{ p50[i] }} | {{ p80[i] }} | {{ env[i] }} | {{ (cen[i] | float(1) * 100) | round(0) }} % | + {% endfor %}{% endif %} *La colonne « censure » indique la part des jours où la batterie était pleine à cette heure : au-delà de 25 %, la production maximale @@ -193,7 +186,7 @@ views: name: Explication - type: markdown - content: > + content: | ### À propos Ce bilan remplace des seuils fixes par des grandeurs mesurées. Il