no message
This commit is contained in:
+26
-6
@@ -180,7 +180,11 @@ class Energy_Pie extends IPSModule
|
||||
if ($archiveID <= 0) {
|
||||
return 0.0;
|
||||
}
|
||||
$values = @AC_GetLoggedValues($archiveID, $varId, max(0, $tStart - 86400), $tEnd, 0);
|
||||
$tCalcEnd = min($tEnd, time());
|
||||
if ($tCalcEnd <= $tStart) {
|
||||
return 0.0;
|
||||
}
|
||||
$values = @AC_GetLoggedValues($archiveID, $varId, max(0, $tStart - 86400), $tCalcEnd, 0);
|
||||
if (empty($values)) {
|
||||
return 0.0;
|
||||
}
|
||||
@@ -194,14 +198,31 @@ class Energy_Pie extends IPSModule
|
||||
$dbg['last'] = (float)$values[count($values) - 1]['Value'];
|
||||
$vStart = null;
|
||||
$vEnd = null;
|
||||
$prev = null;
|
||||
$sum = 0.0;
|
||||
foreach ($values as $v) {
|
||||
$ts = (int)$v['TimeStamp'];
|
||||
$val = (float)$v['Value'];
|
||||
|
||||
if ($ts <= $tStart) {
|
||||
$vStart = $val;
|
||||
$prev = $val;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($ts > $tCalcEnd) break;
|
||||
|
||||
if ($ts >= $tStart && $ts < $tEnd) {
|
||||
$dbg['inRange']++;
|
||||
}
|
||||
if ($ts <= $tStart) $vStart = (float)$v['Value'];
|
||||
if ($ts <= $tEnd) $vEnd = (float)$v['Value'];
|
||||
if ($ts > $tEnd) break;
|
||||
|
||||
if ($prev !== null) {
|
||||
$diff = $val - $prev;
|
||||
$sum += ($diff >= 0) ? $diff : max($val, 0.0);
|
||||
}
|
||||
|
||||
$prev = $val;
|
||||
$vEnd = $val;
|
||||
}
|
||||
if ($dbg['inRange'] === 0) {
|
||||
return 0.0;
|
||||
@@ -210,8 +231,7 @@ class Energy_Pie extends IPSModule
|
||||
if ($vEnd === null) $vEnd = $dbg['last'];
|
||||
$dbg['vStart'] = $vStart;
|
||||
$dbg['vEnd'] = $vEnd;
|
||||
$diff = $vEnd - $vStart;
|
||||
return ($diff < 0) ? 0.0 : (float)$diff;
|
||||
return $sum;
|
||||
}
|
||||
private function getLastLogTimestamp(int $varId): int
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user