Haltezeit im Rahmen: "Auslösen erst nach X ununterbrochen"

Der Gegenspieler zur Sperre, direkt daneben: die bremst die Wiederholung,
die Haltezeit den ersten Lauf. Damit lassen sich Dauerzustände abfragen,
die in einem einzelnen Messwert nicht zu sehen sind - "der Wasserzähler
läuft seit einer halben Stunde ohne Pause".

Gespeichert wird in automations.hold_secs (haltezeit.sql im SolarManager),
gezählt wird im Runner. Angeboten werden feste Stufen, wie bei der Sperre:
eine weitere ist eine Zeile in haltezeitChoices().

0 ist die Vorgabe und heißt "sofort" - vorhandene Automatiken ändern sich
nicht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 08:57:27 +02:00
co-authored by Claude Opus 5
parent d3ff959574
commit 01d04e8f56
4 changed files with 120 additions and 13 deletions
+19
View File
@@ -228,6 +228,12 @@ if ($action === "list") {
if ($a["once_per_day"]) {
$wann .= ", nur einmal am Tag";
}
// Vor der Sperre, weil es auch zeitlich davor liegt: erst muss
// die Bedingung stehen bleiben, dann wird ausgeloest.
if (!empty($a["hold_secs"])) {
$wann .= ", erst nach "
. intdiv($a["hold_secs"], 60) . " Min. ununterbrochen";
}
if ($a["lockout_secs"] > 0) {
$wann .= ", frühestens alle "
. ($a["lockout_secs"] >= 60
@@ -306,6 +312,7 @@ $nutzdaten = json_encode([
"automation" => $auto,
"devices" => deviceCatalog(),
"lockouts" => lockoutChoices(),
"haltezeiten" => haltezeitChoices(),
"ferien" => kalendertagChoices("Ferien", "in den Ferien"),
"feiertage" => kalendertagChoices("Feiertage", "an Feiertagen"),
"tagvorlagen" => tagVorlagen(),
@@ -458,6 +465,18 @@ $nutzdaten = json_encode([
<select class="form-select" id="lockoutSecs"></select>
</div>
</div>
<!--
Haltezeit. Sie steht neben der Sperre, weil beide dasselbe Mittel
benutzen - Sekunden - und trotzdem entgegengesetzt wirken: die
Sperre bremst die Wiederholung, die Haltezeit den ersten Lauf.
"Auslösen" davor gelesen ergibt den Satz.
-->
<div class="col-sm-6">
<div class="input-group input-group-sm">
<span class="input-group-text">Auslösen</span>
<select class="form-select" id="holdSecs"></select>
</div>
</div>
</div>
<div class="form-check">