"Konnte die Anfrage nicht lesen."], 400); } try { switch ($action) { case "save": $id = saveAutomation($body); jsonAntwort(["id" => $id]); case "delete": // Der Modus kommt aus der Rueckfrage im Browser. Unbekanntes // faellt auf das schonendere "abhaengen" zurueck - lieber eine // pausierte Automatik zu viel als eine geloeschte zu viel. $modus = ($body["mode"] ?? "") === "mitloeschen" ? "mitloeschen" : "abhaengen"; deleteAutomation(intval($body["id"] ?? 0), $modus); jsonAntwort(["ok" => true]); case "toggle": jsonAntwort(["enabled" => toggleAutomation(intval($body["id"] ?? 0))]); default: jsonAntwort(["error" => "Unbekannte Aktion."], 400); } } catch (InvalidArgumentException $e) { jsonAntwort(["error" => $e->getMessage()], 400); } catch (Throwable $e) { jsonAntwort(["error" => "Speichern fehlgeschlagen: " . $e->getMessage()], 500); } } // --- Wer haengt an dieser Automatik? ------------------------------------- // Wird vor dem Loeschen gefragt, damit die Rueckfrage im Browser die Namen // nennen kann und nicht nur eine Zahl. if ($action === "followers") { jsonAntwort(["followers" => automationFollowers(intval($_GET["id"] ?? 0))]); } // --- Was sagen diese Messwerte gerade? ----------------------------------- // Der offene Editor fragt das im Takt nach, damit neben jeder Bedingung der // laufende Wert steht. Absichtlich ein eigener, winziger Endpunkt: den // ganzen Geraetekatalog neu zu holen waeren je Runde ueber hundert // Kilobyte fuer ein paar Zahlen. if ($action === "werte") { $ids = array_slice(explode(",", $_GET["ids"] ?? ""), 0, 200); jsonAntwort(["werte" => stateValues($ids)]); } // --- Uebersichtstabelle -------------------------------------------------- if ($action === "list") { $tage = ["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"]; $list = listAutomations($floor); if (!$list) { echo "
Für diese Etage ist noch nichts eingerichtet.
"; } else { echo "| Name | Auslöser | " . "Aktion | " . "Wann | " . "Zuletzt | |
|---|---|---|---|---|---|
| " . $einzug . $griff . htmlspecialchars($a["name"]) . " | "; echo "" . htmlspecialchars($a["conditionText"]) . " | "; echo "" . htmlspecialchars($a["actionText"]) . " | "; echo "" . htmlspecialchars($wann) . " | "; echo "" . $zuletzt . " | "; echo "" . " " . " " . "" . " |