diff --git a/dashboards/bilan_energetique.yaml b/dashboards/bilan_energetique.yaml index 9ebe6e6..0aecb4a 100644 --- a/dashboards/bilan_energetique.yaml +++ b/dashboards/bilan_energetique.yaml @@ -247,80 +247,14 @@ views: pleine à cette heure : au-delà de 25 %, la production maximale observée est minorée et le bilan le signale.* - # Nuage soiree / nuit (28/09/2026) : meme donnees que Grafana « La nuit », - # publiees par le service d'historisation dans sensor.evcs_nuit_maison_prevue_kwh - # (attribut `nuage` = [soiree, nuit, voiture 0/1]). Graphique « ligne » a trait - # nul + marqueurs = nuage de points ; axe X numerique (kWh), pas le temps. - - type: custom:apexcharts-card - header: - show: true - title: Soirée contre nuit — la soirée annonce la nuit - show_states: false - graph_span: 1d - apex_config: - chart: - height: 300 - zoom: {enabled: false} - xaxis: - type: numeric - min: 2 - max: 10.5 - tickAmount: 8 - decimalsInFloat: 1 - title: {text: 'Soirée 18:00-21:30 (kWh, voiture exclue)'} - yaxis: - - min: 7 - max: 16 - decimalsInFloat: 0 - title: {text: 'Nuit 21:30-09:00 (kWh)'} - markers: - size: [6, 6, 0, 11] - tooltip: - x: - formatter: 'EVAL:function(v) { return "soirée " + v.toFixed(2) + " kWh"; }' - legend: - show: true - series: - - entity: sensor.evcs_nuit_maison_prevue_kwh - name: Nuit sans voiture - type: line - stroke_width: 0 - color: '#4caf50' - data_generator: | - return (entity.attributes.nuage || []).filter(p => !p[2]) - .map(p => [p[0], p[1]]).sort((a, b) => a[0] - b[0]); - - entity: sensor.evcs_nuit_maison_prevue_kwh - name: Nuit avec voiture - type: line - stroke_width: 0 - color: '#2196f3' - data_generator: | - return (entity.attributes.nuage || []).filter(p => p[2]) - .map(p => [p[0], p[1]]).sort((a, b) => a[0] - b[0]); - - entity: sensor.evcs_nuit_maison_prevue_kwh - name: Régression - type: line - stroke_width: 2 - color: '#ff9800' - data_generator: | - const a = entity.attributes.a, b = entity.attributes.b, n = entity.attributes.nuage || []; - if (a === null || b === null || !n.length) return []; - const xs = n.map(p => p[0]), lo = Math.min(...xs), hi = Math.max(...xs); - return [[lo, a + b * lo], [hi, a + b * hi]]; - - entity: sensor.evcs_nuit_maison_prevue_kwh - name: Ce soir (prévu) - type: line - stroke_width: 0 - color: '#f44336' - data_generator: | - const s = entity.attributes.soiree_kwh, v = parseFloat(entity.state); - return (s !== null && s !== undefined && !isNaN(v)) ? [[s, v]] : []; - + # Nuage soiree / nuit : essaye en ApexCharts le 29/09 et RETIRE — la carte + # impose un axe X en temps et ignore un axe numerique (kWh affiches comme + # des dates). Le nuage vit dans Grafana « La nuit ». - type: markdown content: | {% set s = 'sensor.evcs_nuit_maison_prevue_kwh' %} {% if is_number(states(s)) %}**Cette nuit** : soirée {{ state_attr(s, 'soiree_kwh') }} kWh → nuit prévue **{{ states(s) }} kWh** (moyenne {{ state_attr(s, 'nuit_moyenne_kwh') }}), soit **×{{ state_attr(s, 'facteur') }}** sur le profil du bilan.{% else %}Hors de la fenêtre 21:30 → 09:00 : pas de prévision de nuit en cours.{% endif %} - Modèle sur {{ state_attr(s, 'nuits') }} nuits : nuit = {{ state_attr(s, 'a') }} + {{ state_attr(s, 'b') }} × soirée (r² {{ state_attr(s, 'r2') }}). + Modèle sur {{ state_attr(s, 'nuits') }} nuits : nuit = {{ state_attr(s, 'a') }} + {{ state_attr(s, 'b') }} × soirée (r² {{ state_attr(s, 'r2') }}). Le nuage de points est dans Grafana, tableau « La nuit ». - type: markdown content: |