Haltezeit: Stufe 3,5 Std. und lesbare Angabe in Stunden

Die 3,5 Stunden fallen aus der Reihe, weil sie aus einem konkreten Fall
stammen: dauerhafter Wasserverbrauch. Kuerzer waere Fehlalarm (eine lange
Dusche, eine Waschmaschine), laenger liefe ein offener Hahn eine halbe
Nacht. Die 3 Std. weichen dafuer - niemand hat sie benutzt.

Dazu haltezeitKurz(): ab einer Stunde in Stunden statt in Minuten. "210
Min." muss man umrechnen, "3,5 Std." nicht. Die Beschriftungen der
Auswahlliste kommen jetzt aus derselben Funktion wie die Uebersichtszeile,
das JavaScript hat eine gleichlautende.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 09:10:55 +02:00
co-authored by Claude Opus 5
parent 01d04e8f56
commit e3ac9bad37
3 changed files with 37 additions and 12 deletions
+1 -1
View File
@@ -232,7 +232,7 @@ if ($action === "list") {
// die Bedingung stehen bleiben, dann wird ausgeloest. // die Bedingung stehen bleiben, dann wird ausgeloest.
if (!empty($a["hold_secs"])) { if (!empty($a["hold_secs"])) {
$wann .= ", erst nach " $wann .= ", erst nach "
. intdiv($a["hold_secs"], 60) . " Min. ununterbrochen"; . haltezeitKurz($a["hold_secs"]) . " ununterbrochen";
} }
if ($a["lockout_secs"] > 0) { if ($a["lockout_secs"] > 0) {
$wann .= ", frühestens alle " $wann .= ", frühestens alle "
+7 -3
View File
@@ -1126,9 +1126,7 @@ function rahmenKurzText() {
teile.push(autoModel.window_from === "00:00" && autoModel.window_to === "23:59" teile.push(autoModel.window_from === "00:00" && autoModel.window_to === "23:59"
? "rund um die Uhr" ? "rund um die Uhr"
: autoModel.window_from + "" + autoModel.window_to); : autoModel.window_from + "" + autoModel.window_to);
if (autoModel.hold_secs > 0) { if (autoModel.hold_secs > 0) teile.push("erst nach " + haltezeitKurz(autoModel.hold_secs));
teile.push("erst nach " + Math.floor(autoModel.hold_secs / 60) + " Min.");
}
if (autoModel.lockout_secs > 0) { if (autoModel.lockout_secs > 0) {
teile.push("Sperre " + (autoModel.lockout_secs >= 60 teile.push("Sperre " + (autoModel.lockout_secs >= 60
? Math.floor(autoModel.lockout_secs / 60) + " Min." ? Math.floor(autoModel.lockout_secs / 60) + " Min."
@@ -1139,6 +1137,12 @@ function rahmenKurzText() {
return teile.join(" · "); return teile.join(" · ");
} }
/** Wie haltezeitKurz() in automations.php: Minuten bis eine Stunde, dann Stunden. */
function haltezeitKurz(sekunden) {
if (sekunden < 3600) return Math.floor(sekunden / 60) + " Min.";
return (sekunden / 3600).toFixed(1).replace(/[.,]0$/, "").replace(".", ",") + " Std.";
}
function rahmenIstVorgabe() { function rahmenIstVorgabe() {
return autoModel.weekdays === 127 return autoModel.weekdays === 127
&& autoModel.on_vacation === 1 && autoModel.on_vacation === 1
+28 -7
View File
@@ -226,14 +226,35 @@ function lockoutChoices()
*/ */
function haltezeitChoices() function haltezeitChoices()
{ {
return [ // Die 3,5 Stunden fallen aus der Reihe, weil sie aus einem konkreten Fall
["value" => 0, "label" => "sofort"], // stammen: dauerhafter Wasserverbrauch. Kuerzer waere Fehlalarm (eine
["value" => 300, "label" => "nach 5 Min. ununterbrochen"], // lange Dusche, eine Waschmaschine), laenger liefe ein offener Hahn eine
["value" => 900, "label" => "nach 15 Min. ununterbrochen"], // halbe Nacht.
["value" => 1800, "label" => "nach 30 Min. ununterbrochen"], $stufen = [0, 300, 900, 1800, 3600, 7200, 12600];
["value" => 3600, "label" => "nach 1 Std. ununterbrochen"], $aus = [];
["value" => 10800, "label" => "nach 3 Std. ununterbrochen"], foreach ($stufen as $sek) {
$aus[] = [
"value" => $sek,
"label" => $sek ? "nach " . haltezeitKurz($sek) . " ununterbrochen" : "sofort",
]; ];
}
return $aus;
}
/**
* Eine Haltezeit in Worten - "45 Min.", "1 Std.", "3,5 Std."
*
* Minuten bis eine Stunde, darueber Stunden: "210 Min." muss man umrechnen,
* "3,5 Std." nicht. Die Nachkommastelle faellt weg, wenn sie null ist.
*/
function haltezeitKurz($sekunden)
{
$sekunden = intval($sekunden);
if ($sekunden < 3600) {
return intdiv($sekunden, 60) . " Min.";
}
$zahl = number_format($sekunden / 3600, 1, ",", "");
return rtrim(rtrim($zahl, "0"), ",") . " Std.";
} }
/** /**