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