Dashboard : corrige le rendu des tableaux markdown
Les cartes markdown utilisaient un bloc YAML replie (content: >), qui remplace les retours a la ligne par des espaces : les tableaux markdown perdaient leur structure et s'affichaient comme une ligne de texte avec des barres verticales. Passage en bloc litteral (content: |) sur les six cartes, et le tableau des profils emet desormais chaque ligne sur la meme ligne que la boucle, sinon Jinja intercale une ligne vide entre chaque rangee et casse le tableau. Ajout d'un repli lisible quand les profils ne sont pas encore publies. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user