diff --git a/Bat_EV_SDL_V4/module.php b/Bat_EV_SDL_V4/module.php index 685de36..1c8af2f 100644 --- a/Bat_EV_SDL_V4/module.php +++ b/Bat_EV_SDL_V4/module.php @@ -263,6 +263,18 @@ class Bat_EV_SDL_V4 extends IPSModule $realSocPct = $this->ReadSocPercent($socVarId); $realKWh = $capKWh * $realSocPct / 100.0; + $canSDLDischarge = + ($realKWh > $minPhysicalKWh); + + $canEVDischarge = + ($realKWh > $underKWh); + + $effectiveSDLDischargeKW = + $canSDLDischarge ? $sdlShareKW_entladen : 0.0; + + $effectiveEVDischargeKW = + $canEVDischarge ? $evShareKW_entladen : 0.0; + $bat = [ "idx" => $idx, "typ" => $typ, @@ -289,9 +301,9 @@ class Bat_EV_SDL_V4 extends IPSModule "real_kWh" => round($realKWh, 3), "SDL_Charge_kW" => $sdlShareKW_laden, - "SDL_Discharge_kW" => $sdlShareKW_entladen, + "SDL_Discharge_kW" => $effectiveSDLDischargeKW, "EV_Charge_kW" => $evShareKW_laden, - "EV_Discharge_kW" => $evShareKW_entladen, + "EV_Discharge_kW" => $effectiveEVDischargeKW, // Start-SoC für Sortier-/Verteillogik. Laufend wird später virtuell überschrieben. "SDL_SOC" => 0.0, @@ -304,9 +316,9 @@ class Bat_EV_SDL_V4 extends IPSModule $plan["total"]["EV_kWh_total"] += $EV_kWh; $plan["total"]["totalCap_kWh"] += $capKWh; $plan["total"]["SDL_Charge_kW"] += $sdlShareKW_laden; - $plan["total"]["SDL_Discharge_kW"] += $sdlShareKW_entladen; + $plan["total"]["SDL_Discharge_kW"] += $effectiveSDLDischargeKW; $plan["total"]["EV_Charge_kW"] += $evShareKW_laden; - $plan["total"]["EV_Discharge_kW"] += $evShareKW_entladen; + $plan["total"]["EV_Discharge_kW"] += $effectiveEVDischargeKW; } $this->SetBuffer("BatPlanHash", $hash);