3, // Immer laden "eco" => 4, // Ueberschuss (Awattar) "NextTrip" => 5, // Ladeplanung (AutomaticStop) ]; $close = 0; if (checkLogin()) { $konf = wallboxen()[$wallbox]; if (isset($_POST["evStart/Stop"])) { // frc: 2 gibt das Laden frei, 1 sperrt es, 0 waere "die Wallbox // entscheidet". if ($_POST["evStart/Stop"] === "Laden starten") { wallboxSetzen($wallbox, ["frc" => 2]); } elseif ($_POST["evStart/Stop"] === "Laden stoppen") { wallboxSetzen($wallbox, ["frc" => 1]); } $close = 1; } elseif (isset($_POST["evMode"])) { $modus = CAR_MODI[$_POST["evMode"]] ?? null; if ($modus !== null) { // Der Schieberegler liefert Prozent zusaetzlich benoetigter // Ladung; die Wallbox will Wattstunden. Der Faktor haengt am // Auto und steht deshalb in restricted/config.php. $prozent = min(100, max(0, intval($_POST["fte"] ?? 0))); $energie = $prozent * wallboxWhProProzent($wallbox); $strom = min(16, max(6, intval($_POST["evAmp"] ?? 6))); // Das Formularfeld ist ein , liefert also // HH:MM. Alles andere gilt als "keine Ladeplanung" und laesst // Zielzeit und Zielenergie unangetastet. Geprueft wird hier // weiterhin streng: der Wert ging frueher in eine Kommandozeile // und liess sich mit "12:00; befehl" missbrauchen. $sekunden = null; if (isset($_POST["ftt"]) && preg_match('/^([01][0-9]|2[0-3]):([0-5][0-9])$/', $_POST["ftt"], $teile)) { $sekunden = intval($teile[1]) * 3600 + intval($teile[2]) * 60; } // Reihenfolge zaehlt: Ziel zuerst, Modus zuletzt. $werte = []; if (!empty($konf["uhrStellen"])) { $werte["utc"] = gmdate("Y-m-d\TH:i:s") . ".000"; } if ($sekunden !== null && $energie > 0) { $werte["fte"] = $energie; $werte["ftt"] = $sekunden; } $werte["amp"] = $strom; $werte["fup"] = true; $werte["lmo"] = $modus; wallboxSetzen($wallbox, $werte); } $close = 1; } } else { $close = 1; } if (!$close) { include __DIR__ . "/carForm.php"; }