no message
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
<input id="date" type="date" />
|
||||
</label>
|
||||
<button id="prev" type="button">◀</button>
|
||||
<button id="today" type="button">Letzter Zeitpunkt</button>
|
||||
<button id="today" type="button">Heute</button>
|
||||
<button id="next" type="button">▶</button>
|
||||
</div>
|
||||
<div id="period" style="margin-top:10px;font-size:12px;opacity:0.75;"></div>
|
||||
@@ -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 = `
|
||||
<span style="font-weight:900; font-size:16px;">
|
||||
${escapeHtml(data?.noDataHint || 'Letzter Zeitpunkt')}
|
||||
</span>
|
||||
<span style="opacity:.8; margin-left:10px;">
|
||||
(Keine Werte für diesen Zeitraum)
|
||||
</span>
|
||||
`;
|
||||
} else {
|
||||
elHint.innerHTML = `
|
||||
elHint.innerHTML = `
|
||||
<span class="kv"><b>Produktion:</b> ${escapeHtml(prod.toFixed(2))} kWh</span>
|
||||
<span class="kv"><b>Verbrauch:</b> ${escapeHtml(cons.toFixed(2))} kWh</span>
|
||||
<span class="kv"><b>Netzbezug:</b> ${escapeHtml(grid.toFixed(2))} kWh</span>
|
||||
<span class="kv"><b>Eigenverbrauch:</b> ${escapeHtml(eigenClamped.toFixed(2))} kWh</span>
|
||||
`;
|
||||
`;
|
||||
}
|
||||
|
||||
|
||||
elGrid.innerHTML = [
|
||||
donutCard({
|
||||
title: 'Eigenverbrauchsquote',
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user