Lastwechsel ereignisbasiert sperren
Tests / test (push) Failing after 39s

This commit is contained in:
dh
2026-09-17 09:14:15 +00:00
parent 1b4a788f22
commit 355e7163fb
7 changed files with 100 additions and 46 deletions
+17
View File
@@ -109,6 +109,23 @@ final class WarmwasserRegler
return $bisher + $alpha * ($eingang - $bisher);
}
public static function restzeitBisLastwechsel(
int $letzterLastwechsel,
int $jetzt,
int $sperrzeitSekunden
): int {
if ($sperrzeitSekunden < 0) {
throw new InvalidArgumentException('Die Lastwechsel-Sperrzeit darf nicht negativ sein.');
}
if ($letzterLastwechsel <= 0) {
return 0;
}
$verstrichen = max(0, $jetzt - $letzterLastwechsel);
return max(0, $sperrzeitSekunden - $verstrichen);
}
public static function energieKWh(float $leistungW, int $dauerSekunden): float
{
if ($dauerSekunden < 0) {