From ff747d1f04838f801f9b5dffca0d0e31739a5460 Mon Sep 17 00:00:00 2001 From: "belevo\\mh" Date: Thu, 18 Dec 2025 08:54:15 +0100 Subject: [PATCH] no message --- Energy_Pie/module.html | 20 ++++++++++++++++---- Energy_Pie/module.php | 17 ++++------------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/Energy_Pie/module.html b/Energy_Pie/module.html index 3a1ad84..e347aec 100644 --- a/Energy_Pie/module.html +++ b/Energy_Pie/module.html @@ -16,7 +16,7 @@ - +
@@ -240,6 +240,7 @@ return ` if (data?.date) elDate.value = data.date; const isTotal = (data?.range === 'total'); elDate.disabled = isTotal; + if (data?.tStart && data?.tEnd) { const s = new Date(data.tStart * 1000); const e = new Date(data.tEnd * 1000); @@ -249,16 +250,27 @@ return ` } else { elPeriod.textContent = ''; } + + if (data?.hasData === false) { - elHint.textContent = 'Keine Logdaten für den gewählten Zeitraum.'; + elHint.innerHTML = ` + + ${escapeHtml(data?.noDataHint || 'Letzter Zeitpunkt')} + + + (Keine Werte für diesen Zeitraum) + + `; } else { - elHint.innerHTML = ` + elHint.innerHTML = ` Produktion: ${escapeHtml(prod.toFixed(2))} kWh Verbrauch: ${escapeHtml(cons.toFixed(2))} kWh Netzbezug: ${escapeHtml(grid.toFixed(2))} kWh Eigenverbrauch: ${escapeHtml(eigenClamped.toFixed(2))} kWh - `; + `; } + + elGrid.innerHTML = [ donutCard({ title: 'Eigenverbrauchsquote', diff --git a/Energy_Pie/module.php b/Energy_Pie/module.php index f385143..fe878c3 100644 --- a/Energy_Pie/module.php +++ b/Energy_Pie/module.php @@ -91,19 +91,9 @@ class Energy_Pie extends IPSModule $feed = $this->readDelta($this->ReadPropertyInteger('VarFeedIn'), $tStart, $tEnd, $dbgFeed); $grid = $this->readDelta($this->ReadPropertyInteger('VarGrid'), $tStart, $tEnd, $dbgGrid); $hasData = (($dbgProd['count'] ?? 0) > 0) || (($dbgFeed['count'] ?? 0) > 0) || (($dbgGrid['count'] ?? 0) > 0); - // Auto-jump to last log day if none found - if (!$hasData && $range !== 'total') { - $lastTs = $this->getLastLogTimestamp($this->ReadPropertyInteger('VarProduction')); - if ($lastTs > 0) { - $this->WriteAttributeString(self::ATTR_DATE, date('Y-m-d', $lastTs)); - $date = $this->ReadAttributeString(self::ATTR_DATE); - [$tStart, $tEnd] = $this->getRange($range, $date); - $prod = $this->readDelta($this->ReadPropertyInteger('VarProduction'), $tStart, $tEnd, $dbgProd); - $feed = $this->readDelta($this->ReadPropertyInteger('VarFeedIn'), $tStart, $tEnd, $dbgFeed); - $grid = $this->readDelta($this->ReadPropertyInteger('VarGrid'), $tStart, $tEnd, $dbgGrid); - $hasData = (($dbgProd['count'] ?? 0) > 0) || (($dbgFeed['count'] ?? 0) > 0) || (($dbgGrid['count'] ?? 0) > 0); - } - } + $noDataHint = (!$hasData && $range !== 'total') ? 'Letzter Zeitpunkt' : ''; + + // House = Prod - Feed + Grid $house = $prod - $feed + $grid; if ($house < 0) $house = 0.0; @@ -113,6 +103,7 @@ class Energy_Pie extends IPSModule 'tStart' => $tStart, 'tEnd' => $tEnd, 'hasData' => $hasData, + 'noDataHint' => $noDataHint, 'values' => [ 'Produktion' => (float)$prod, 'Einspeisung' => (float)$feed,