no message
This commit is contained in:
@@ -70,6 +70,18 @@
|
||||
"caption": "SDL_Leistung",
|
||||
"suffix": "W"
|
||||
},
|
||||
{
|
||||
"type": "NumberSpinner",
|
||||
"name": "SDL_Leistung_Laden",
|
||||
"caption": "SDL_Leistung_Laden",
|
||||
"suffix": "W"
|
||||
},
|
||||
{
|
||||
"type": "NumberSpinner",
|
||||
"name": "SDL_Leistung_Entladen",
|
||||
"caption": "SDL_Leistung_Entladen",
|
||||
"suffix": "W"
|
||||
},
|
||||
{
|
||||
"type": "NumberSpinner",
|
||||
"name": "UpdateInterval",
|
||||
|
||||
@@ -10,7 +10,9 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
|
||||
// Properties
|
||||
$this->RegisterPropertyString("Batteries", "[]");
|
||||
$this->RegisterPropertyInteger("SDL_Leistung", 0); // W
|
||||
$this->RegisterPropertyInteger("SDL_Leistung", 0);
|
||||
$this->RegisterPropertyInteger("SDL_Leistung_Laden", 0);
|
||||
$this->RegisterPropertyInteger("SDL_Leistung_Entladen", 0); // W
|
||||
$this->RegisterPropertyInteger("UpdateInterval", 5); // Minuten
|
||||
|
||||
// Status
|
||||
@@ -118,8 +120,12 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
$SDL_kWh = (float)($c["SDL_kWh_total"] ?? 0.0);
|
||||
$EV_kWh = (float)($c["EV_kWh_total"] ?? 0.0);
|
||||
|
||||
$sdlShareKW = (float)($c["sdlShareKW"] ?? 0.0);
|
||||
$evShareKW = (float)($c["evShareKW"] ?? 0.0);
|
||||
$sdlShareKW_laden = (float)($c["sdlShareKW laden"] ?? 0.0);
|
||||
$sdlShareKW_entladen = (float)($c["sdlShareKW entladen"] ?? 0.0);
|
||||
$evShareKW_laden = (float)($c["evShareKW laden"] ?? 0.0);
|
||||
$evShareKW_entladen = (float)($c["evShareKW entladen"] ?? 0.0);
|
||||
|
||||
|
||||
|
||||
// Defaults
|
||||
$EV_SOC = 0.0;
|
||||
@@ -137,10 +143,10 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
$SDL_SOC = 50.0;
|
||||
$EV_SOC = ($capKWh > 0.0) ? (($real_kWh - $underKWh) * 100.0 / $capKWh) : 0.0;
|
||||
|
||||
$sdlDisKW = $sdlShareKW;
|
||||
$evDisKW = $evShareKW;
|
||||
$sdlChKW = $sdlShareKW;
|
||||
$evChKW = $evShareKW;
|
||||
$sdlDisKW = $sdlShareKW_entladen;
|
||||
$evDisKW = $evShareKW_entladen;
|
||||
$sdlChKW = $sdlShareKW_laden;
|
||||
$evChKW = $evShareKW_laden;
|
||||
|
||||
$real_kWh_ev = $real_kWh - $underKWh;
|
||||
$real_kWh_sdl = $underKWh;
|
||||
@@ -152,25 +158,25 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
$den = ($capKWh - $real_kWh + $underKWh);
|
||||
$SDL_SOC = ($den > 0.0 && $underKWh > 0.0) ? ($den / (2.0 * $underKWh) * 100.0) : 0.0;
|
||||
|
||||
$sdlDisKW = $sdlShareKW;
|
||||
$evDisKW = $evShareKW;
|
||||
$sdlChKW = $sdlShareKW;
|
||||
$sdlDisKW = $sdlShareKW_entladen;
|
||||
$evDisKW = $evShareKW_entladen;
|
||||
$sdlChKW = $sdlShareKW_laden;
|
||||
$evChKW = 0.0;
|
||||
|
||||
$real_kWh_ev = $capKWh - 2.0 * $underKWh;
|
||||
$real_kWh_sdl = (2.0 * $underKWh) - ($capKWh - $real_kWh);
|
||||
$real_kWh_ev = $capKWh - ($upKWh + $underKWh);
|
||||
$real_kWh_sdl = ($upKWh + $underKWh) - ($capKWh - $real_kWh);
|
||||
|
||||
} elseif ($underKWh > $real_kWh) {
|
||||
|
||||
$EV_SOC = 0.0;
|
||||
|
||||
$den = 2.0 * $underKWh;
|
||||
$den = $upKWh + $underKWh;
|
||||
$SDL_SOC = ($den > 0.0) ? ($real_kWh * 100.0 / $den) : 0.0;
|
||||
|
||||
$sdlDisKW = $sdlShareKW;
|
||||
$sdlDisKW = $sdlShareKW_entladen;
|
||||
$evDisKW = 0.0;
|
||||
$sdlChKW = $sdlShareKW;
|
||||
$evChKW = $evShareKW;
|
||||
$sdlChKW = $sdlShareKW_laden;
|
||||
$evChKW = $evShareKW_laden;
|
||||
|
||||
$real_kWh_ev = 0.0;
|
||||
$real_kWh_sdl = $real_kWh;
|
||||
@@ -183,8 +189,8 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
$real_kWh_sdl = 0.0;
|
||||
} elseif ($real_kWh >= $capKWh) {
|
||||
$sdlChKW = 0.0;
|
||||
$real_kWh_ev = $capKWh - 2.0 * $underKWh;
|
||||
$real_kWh_sdl = 2.0 * $underKWh;
|
||||
$real_kWh_ev = $capKWh - ($upKWh + $underKWh);
|
||||
$real_kWh_sdl = $upKWh + $underKWh;
|
||||
}
|
||||
|
||||
$real_kWh_ev = max(0.0, $real_kWh_ev);
|
||||
@@ -268,11 +274,15 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
{
|
||||
$batteriesRaw = $this->ReadPropertyString("Batteries");
|
||||
$sdlTotalW = max(0, (int)$this->ReadPropertyInteger("SDL_Leistung"));
|
||||
$sdlTotalW_laden = max(0, (int)$this->ReadPropertyInteger("SDL_Leistung_Laden"));
|
||||
$sdlTotalW_entladen = max(0, (int)$this->ReadPropertyInteger("SDL_Leistung_Entladen"));
|
||||
$hours = self::HOURS;
|
||||
|
||||
$hash = md5(json_encode([
|
||||
"Batteries" => $batteriesRaw,
|
||||
"SDL_W" => $sdlTotalW,
|
||||
"SDL_W_Laden" => $sdlTotalW_laden,
|
||||
"SDL_W_Entladen" => $sdlTotalW_entladen,
|
||||
"hours" => $hours
|
||||
]));
|
||||
|
||||
@@ -293,6 +303,8 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
$cache = [
|
||||
"inputs" => [
|
||||
"SDL_Leistung_W" => $sdlTotalW,
|
||||
"SDL_Leistung_W_laden" => $sdlTotalW_laden,
|
||||
"SDL_Leistung_W_entladen" => $sdlTotalW_entladen,
|
||||
"SumBatPower_W" => round($sumBatPowerW, 0),
|
||||
"hours" => $hours
|
||||
],
|
||||
@@ -309,6 +321,9 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
$sumBatPowerkW = $sumBatPowerW / 1000.0;
|
||||
$sdlTotalkW = $sdlTotalW / 1000.0;
|
||||
|
||||
$sdlTotalkW_laden = $sdlTotalW_laden / 1000.0;
|
||||
$sdlTotalkW_entladen = $sdlTotalW_entladen / 1000.0;
|
||||
|
||||
foreach ($batteries as $idx => $b) {
|
||||
|
||||
$pBatW = max(0.0, (float)($b["powerbat"] ?? 0));
|
||||
@@ -320,6 +335,7 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
$socVarId = (int)($b["soc"] ?? 0);
|
||||
$typ = (string)($b["typ"] ?? ("Bat " . ($idx + 1)));
|
||||
|
||||
/*
|
||||
$sdlShareKW = ($sumBatPowerkW > 0.0) ? ($sdlTotalkW / $sumBatPowerkW * $pBatkW) : 0.0;
|
||||
$evShareKW = $pBatkW - $sdlShareKW;
|
||||
|
||||
@@ -329,6 +345,19 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
$upKWh = $capKWh - $underKWh;
|
||||
$SDL_kWh = 2.0 * $underKWh;
|
||||
$EV_kWh = max(0.0, $capKWh - $SDL_kWh);
|
||||
*/
|
||||
|
||||
// Mit laden und entladen unterschiedlich
|
||||
//----------------------------------------------------
|
||||
$sdlShareKW_laden = ($sumBatPowerkW > 0.0) ? ($sdlTotalkW_laden / $sumBatPowerkW * $pBatkW) : 0.0;
|
||||
$evShareKW_laden = $pBatkW - $sdlShareKW_laden;
|
||||
$upKWh = $capKWh - $sdlShareKW_laden * 0.5;
|
||||
$sdlShareKW_entladen = ($sumBatPowerkW > 0.0) ? ($sdlTotalkW_entladen / $sumBatPowerkW * $pBatkW) : 0.0;
|
||||
$evShareKW_entladen = $pBatkW - $sdlShareKW_entladen;
|
||||
$underKWh = $sdlShareKW_entladen * 0.5;
|
||||
$SDL_kW = $underKWh + $upKWh;
|
||||
$EV_kWh = $capKWh - $SDL_kW;
|
||||
//----------------------------------------------------
|
||||
|
||||
$cache["bats"][] = [
|
||||
"idx" => $idx,
|
||||
@@ -338,8 +367,10 @@ class Bat_EV_SDL_V2 extends IPSModule
|
||||
"capKWh" => $capKWh,
|
||||
|
||||
"pBatW" => $pBatW,
|
||||
"sdlShareKW" => $sdlShareKW,
|
||||
"evShareKW" => $evShareKW,
|
||||
"sdlShareKW laden" => $sdlShareKW_laden,
|
||||
"sdlShareKW entladen" => $sdlShareKW_entladen,
|
||||
"evShareKW laden" => $evShareKW_laden,
|
||||
"evShareKW entladen" => $evShareKW_entladen,
|
||||
|
||||
"underKWh" => $underKWh,
|
||||
"upKWh" => $upKWh,
|
||||
|
||||
Reference in New Issue
Block a user