From a86c8dba6649f6aa214c812b87f175c21e988031 Mon Sep 17 00:00:00 2001 From: "belevo\\mh" Date: Thu, 18 Dec 2025 11:40:52 +0100 Subject: [PATCH] no message --- Energy_Pie/module.html | 145 +++++++++++++++++++++-------------------- 1 file changed, 75 insertions(+), 70 deletions(-) diff --git a/Energy_Pie/module.html b/Energy_Pie/module.html index 7c4e9bb..09c4d11 100644 --- a/Energy_Pie/module.html +++ b/Energy_Pie/module.html @@ -109,91 +109,96 @@ return Math.ceil((((d-s)/86400000)+1)/7)+" "+y; } - function render(data){ - if(!data)return; +function render(data){ + if(!data) return; - elRange.value = data.range || 'day'; - elDate.value = data.date || ''; + elRange.value = data.range || 'day'; + elDate.value = data.date || ''; - elDate.disabled = data.range==='total'; + elDate.disabled = (data.range === 'total'); - if(data.tStart && data.tEnd){ - const s=new Date(data.tStart*1000); - const e=new Date(data.tEnd*1000-1000); + // Zeitraum-Anzeige + if (data.range === 'total') { + // ✅ Wunsch: bei Gesamt nix anzeigen + elPeriod.textContent = ''; + } else if (data.tStart && data.tEnd) { + const s = new Date(data.tStart * 1000); + const e = new Date(data.tEnd * 1000 - 1000); - if(data.range==='day') - elPeriod.textContent=`Zeitraum: ${fmt(s)}`; - else if(data.range==='week') - elPeriod.textContent=`Zeitraum: Woche ${isoWeek(s)}`; - else if(data.range==='month') - elPeriod.textContent=`Zeitraum: ${monthName(s.getMonth())} ${s.getFullYear()}`; - else if(data.range==='year') - elPeriod.textContent=`Zeitraum: ${s.getFullYear()}`; - else - elPeriod.textContent='Zeitraum: Gesamt'; - } + if (data.range === 'day') + elPeriod.textContent = `Zeitraum: ${fmt(s)}`; + else if (data.range === 'week') + elPeriod.textContent = `Zeitraum: Woche ${isoWeek(s)}`; + else if (data.range === 'month') + elPeriod.textContent = `Zeitraum: ${monthName(s.getMonth())} ${s.getFullYear()}`; + else if (data.range === 'year') + elPeriod.textContent = `Zeitraum: ${s.getFullYear()}`; + else + elPeriod.textContent = ''; // fallback: lieber leer als falsch + } else { + elPeriod.textContent = ''; + } - if(data.hasData===false){ - elHint.innerHTML=`Letzter Zeitpunkt (Keine Werte für diesen Zeitraum)`; - elGrid.innerHTML=''; - return; - } + // Keine Daten + if(data.hasData === false){ + elHint.innerHTML = `Letzter Zeitpunkt (Keine Werte für diesen Zeitraum)`; + elGrid.innerHTML = ''; + return; + } - const v=data.values||{}; - elHint.innerHTML=` - Produktion: ${v.Produktion?.toFixed(2)||0} kWh - Verbrauch: ${v.Hausverbrauch?.toFixed(2)||0} kWh - Netzbezug: ${v.Netz?.toFixed(2)||0} kWh - `; + // Werte + const v = data.values || {}; + elHint.innerHTML = ` + Produktion: ${v.Produktion?.toFixed(2) || 0} kWh + Verbrauch: ${v.Hausverbrauch?.toFixed(2) || 0} kWh + Netzbezug: ${v.Netz?.toFixed(2) || 0} kWh + `; -const donut = (t, p, c) => { - const r = 56; - const C = 2 * Math.PI * r; // Umfang - const dash = (Math.max(0, Math.min(100, p)) / 100) * C; + const donut = (t, p, c) => { + const r = 56; + const C = 2 * Math.PI * r; + const dash = (Math.max(0, Math.min(100, p)) / 100) * C; - return ` -
-
${t}
+ return ` +
+
${t}
-
- - - +
+ + - - - + + - -
- ${p.toFixed(1)}% +
+ ${Number(p).toFixed(1)}% +
-
- `; -}; + `; + }; - const prod=v.Produktion||0; - const cons=v.Hausverbrauch||0; - const grid=v.Netz||0; - const eigen=Math.max(cons-grid,0); + const prod = v.Produktion || 0; + const cons = v.Hausverbrauch || 0; + const grid = v.Netz || 0; + const eigen = Math.max(cons - grid, 0); - elGrid.innerHTML= - donut('Eigenverbrauchsquote',prod?eigen/prod*100:0,'#63B3FF')+ - donut('Autarkiegrad',cons?eigen/cons*100:0,'#A855F7'); - } + elGrid.innerHTML = + donut('Eigenverbrauchsquote', prod ? (eigen / prod * 100) : 0, '#63B3FF') + + donut('Autarkiegrad', cons ? (eigen / cons * 100) : 0, '#A855F7'); +} window.handleMessage = d=>{ try{if(typeof d==='string')d=JSON.parse(d)}catch{}