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