no message
This commit is contained in:
@@ -93,6 +93,19 @@
|
|||||||
"edit": {
|
"edit": {
|
||||||
"type": "SelectVariable"
|
"type": "SelectVariable"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"caption": "Min. SoC",
|
||||||
|
"name": "minPhysicalSocPct",
|
||||||
|
"width": "100px",
|
||||||
|
"suffix": " %",
|
||||||
|
"add": 5,
|
||||||
|
"edit": {
|
||||||
|
"type": "NumberSpinner",
|
||||||
|
"minimum": 0,
|
||||||
|
"maximum": 30,
|
||||||
|
"digits": 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"values": []
|
"values": []
|
||||||
|
|||||||
@@ -225,6 +225,8 @@ class Bat_EV_SDL_V4 extends IPSModule
|
|||||||
$pBatW = max(0.0, (float)($b["powerbat"] ?? 0));
|
$pBatW = max(0.0, (float)($b["powerbat"] ?? 0));
|
||||||
$pBatKW = $pBatW / 1000.0;
|
$pBatKW = $pBatW / 1000.0;
|
||||||
$capKWh = max(0.0, (float)($b["capazity"] ?? 0));
|
$capKWh = max(0.0, (float)($b["capazity"] ?? 0));
|
||||||
|
$minPhysicalSocPct = max(0.0, min(100.0, (float)($b["minPhysicalSocPct"] ?? 5.0)));
|
||||||
|
$minPhysicalKWh = $capKWh * $minPhysicalSocPct / 100.0;
|
||||||
|
|
||||||
if ($capKWh <= 0.0 || $pBatKW <= 0.0) {
|
if ($capKWh <= 0.0 || $pBatKW <= 0.0) {
|
||||||
continue;
|
continue;
|
||||||
@@ -239,12 +241,14 @@ class Bat_EV_SDL_V4 extends IPSModule
|
|||||||
$evShareKW_laden = max(0.0, $pBatKW - $sdlShareKW_laden);
|
$evShareKW_laden = max(0.0, $pBatKW - $sdlShareKW_laden);
|
||||||
$evShareKW_entladen = max(0.0, $pBatKW - $sdlShareKW_entladen);
|
$evShareKW_entladen = max(0.0, $pBatKW - $sdlShareKW_entladen);
|
||||||
|
|
||||||
// Grenzen: individuell nach Reservezeit.
|
$sdlLowerKWh = $sdlShareKW_entladen * $reserveH;
|
||||||
$underKWh = $sdlShareKW_entladen * $reserveH;
|
$sdlUpperKWh = $sdlShareKW_laden * $reserveH;
|
||||||
$upKWh = $capKWh - ($sdlShareKW_laden * $reserveH);
|
|
||||||
|
|
||||||
$underKWh = max(0.0, min($capKWh, $underKWh));
|
$underKWh = $minPhysicalKWh + $sdlLowerKWh;
|
||||||
$upKWh = max(0.0, min($capKWh, $upKWh));
|
$upKWh = $capKWh - $sdlUpperKWh;
|
||||||
|
|
||||||
|
$underKWh = max($minPhysicalKWh, min($capKWh, $underKWh));
|
||||||
|
$upKWh = max($minPhysicalKWh, min($capKWh, $upKWh));
|
||||||
|
|
||||||
// Falls Reserve zu groß ist, EV-Fenster sauber auf 0 setzen.
|
// Falls Reserve zu groß ist, EV-Fenster sauber auf 0 setzen.
|
||||||
if ($upKWh < $underKWh) {
|
if ($upKWh < $underKWh) {
|
||||||
@@ -253,10 +257,8 @@ class Bat_EV_SDL_V4 extends IPSModule
|
|||||||
$upKWh = $mid;
|
$upKWh = $mid;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sdlLowerKWh = $underKWh;
|
|
||||||
$sdlUpperKWh = $capKWh - $upKWh;
|
|
||||||
$SDL_kWh = max(0.0, $sdlLowerKWh + $sdlUpperKWh);
|
$SDL_kWh = max(0.0, $sdlLowerKWh + $sdlUpperKWh);
|
||||||
$EV_kWh = max(0.0, $capKWh - $SDL_kWh);
|
$EV_kWh = max(0.0, $upKWh - $underKWh);
|
||||||
|
|
||||||
$realSocPct = $this->ReadSocPercent($socVarId);
|
$realSocPct = $this->ReadSocPercent($socVarId);
|
||||||
$realKWh = $capKWh * $realSocPct / 100.0;
|
$realKWh = $capKWh * $realSocPct / 100.0;
|
||||||
@@ -268,6 +270,11 @@ class Bat_EV_SDL_V4 extends IPSModule
|
|||||||
"capKWh" => $capKWh,
|
"capKWh" => $capKWh,
|
||||||
"pBatW" => $pBatW,
|
"pBatW" => $pBatW,
|
||||||
|
|
||||||
|
"minPhysicalSocPct" => $minPhysicalSocPct,
|
||||||
|
"minPhysicalKWh" => $minPhysicalKWh,
|
||||||
|
"sdlLowerKWh" => $sdlLowerKWh,
|
||||||
|
"sdlUpperKWh" => $sdlUpperKWh,
|
||||||
|
|
||||||
"underKWh" => $underKWh,
|
"underKWh" => $underKWh,
|
||||||
"upKWh" => $upKWh,
|
"upKWh" => $upKWh,
|
||||||
"SDL_kWh_total" => $SDL_kWh,
|
"SDL_kWh_total" => $SDL_kWh,
|
||||||
|
|||||||
Reference in New Issue
Block a user