Ladefenster neu: Zustand zuerst, Modus als Karten, Aenderungen sofort
Nach dem abgestimmten Entwurf: Ladestand als Ring mit Ziel, Leistung, Sonnenanteil und fertig um; ein grosser Knopf, der sich nach der gemeldeten Freigabe (frc) richtet - "Laden stoppen", "Ladung freigeben" (zurueck zum Modus statt dauerhaft gesperrt), "Jetzt laden", ohne Auto ausgegraut. Modus als Karten (Sofort, Sonne, Geplant), Planung nur bei "Geplant": mit Ladestand des Autos als Ziel-Ladestand, sonst als zusaetzliche Prozent; Abfahrt per Schnellwahl. Ladestrom als Segmente mit kW. Jede Aenderung geht sofort als JSON an carSteuerung.php (frc, modus, strom, plan) statt ueber "Save changes"; die Logik steht in js/solar/ladefenster.js. Am 800er-Display zweispaltig ohne Scrollen. Nebenbei: die Uebersicht las die Restladezeit aus carRemChrg, das der Manager nicht mehr schickt - jetzt evRemChrgTime. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+5
-60
@@ -442,17 +442,10 @@ var chartSettings = {
|
||||
|
||||
|
||||
|
||||
// Setzt den Schieberegler aus den Wattstunden, die die Wallbox meldet.
|
||||
function setzeLadeRegler(wattstunden) {
|
||||
const regler = document.getElementById("modal-slider");
|
||||
const whProProzent = Number(regler.dataset.whProProzent);
|
||||
if (whProProzent > 0) {
|
||||
regler.value = Math.round(Number(String(wattstunden)) / whProProzent);
|
||||
}
|
||||
}
|
||||
|
||||
function openModal(type) {
|
||||
document.getElementById("modalSaveBtn").style.display = type === "watering" ? "none" : "";
|
||||
// Das Ladefenster und die Bewaesserung uebernehmen jede Aenderung sofort -
|
||||
// "Save changes" braucht nur noch der Heizstab.
|
||||
document.getElementById("modalSaveBtn").style.display = type === "heater" ? "" : "none";
|
||||
switch(type){
|
||||
case "CarEG":
|
||||
document.getElementById("modal-title").innerHTML = "Autoladung EG";
|
||||
@@ -496,57 +489,9 @@ var chartSettings = {
|
||||
var span = document.getElementById("modal-slider-label");
|
||||
switch(type){
|
||||
case "CarEG":
|
||||
bindModalSlider(slider, span, value => value + "%");
|
||||
document.getElementById("evStart/Stop").addEventListener("click", submitFormAjax);
|
||||
document.getElementById("evStart/Stop").contentURL = contentURL;
|
||||
mode = new TextDecoder().decode(mqttData["wattpilot/properties/lmo/state"]);
|
||||
time = String(mqttData["wattpilot/properties/ftt/state"]);
|
||||
energy = mqttData["wattpilot/properties/fte/state"];
|
||||
amp = new TextDecoder().decode(mqttData["wattpilot/properties/amp/state"]);
|
||||
car = new TextDecoder().decode(mqttData["wattpilot/properties/car/state"]);
|
||||
charge = Number(mqttData["solarManager/p_l1ev"])+Number(mqttData["solarManager/p_l2ev"])+Number(mqttData["solarManager/p_l3ev"])
|
||||
if (charge < 0.2) { document.getElementById("evStart/Stop").innerHTML = 'Laden starten' }
|
||||
else { document.getElementById("evStart/Stop").innerHTML = 'Laden stoppen' }
|
||||
if (mode == "Awattar") { document.getElementById("EV_Eco").click(); }
|
||||
else if (mode == "Default") { document.getElementById("EV_Default").click(); }
|
||||
else if (mode == "AutomaticStop") { document.getElementById("EV_NextTrip").click(); }
|
||||
else { alert(mode); }
|
||||
document.getElementById("EV_NextTripTime").value = time.toHHMM();
|
||||
// Wattstunden je Prozent liefert das Formular mit (carForm.php);
|
||||
// die Akkugroesse steht in restricted/config.php. Frueher standen
|
||||
// hier feste 14000 Wh - fuer beide Autos dasselbe, und fuer keines
|
||||
// von beiden richtig.
|
||||
setzeLadeRegler(energy);
|
||||
document.getElementById("modal-slider").dispatchEvent(new Event('input'));
|
||||
if (amp == "16") { document.getElementById("EV_16A").click(); }
|
||||
else if (amp == "10") { document.getElementById("EV_10A").click(); }
|
||||
else if (amp == "6") { document.getElementById("EV_6A").click(); }
|
||||
break;
|
||||
case "CarOG":
|
||||
bindModalSlider(slider, span, value => value + "%");
|
||||
document.getElementById("evStart/Stop").addEventListener("click", submitFormAjax);
|
||||
document.getElementById("evStart/Stop").contentURL = contentURL;
|
||||
mode = mqttData["go-eCharger/270003/lmo"];
|
||||
time = String(mqttData["go-eCharger/270003/att"]);
|
||||
energy = mqttData["go-eCharger/270003/ate"];
|
||||
amp = mqttData["go-eCharger/270003/amp"];
|
||||
car = mqttData["go-eCharger/270003/car"];
|
||||
if (car != "2") { document.getElementById("evStart/Stop").innerHTML = 'Laden starten' }
|
||||
else { document.getElementById("evStart/Stop").innerHTML = 'Laden stoppen' }
|
||||
if (mode == "4") { document.getElementById("EV_Eco").click(); }
|
||||
else if (mode == "3") { document.getElementById("EV_Default").click(); }
|
||||
else if (mode == "5") { document.getElementById("EV_NextTrip").click(); }
|
||||
else { alert(mode); }
|
||||
document.getElementById("EV_NextTripTime").value = time.toHHMM();
|
||||
// Wattstunden je Prozent liefert das Formular mit (carForm.php);
|
||||
// die Akkugroesse steht in restricted/config.php. Frueher standen
|
||||
// hier feste 14000 Wh - fuer beide Autos dasselbe, und fuer keines
|
||||
// von beiden richtig.
|
||||
setzeLadeRegler(energy);
|
||||
document.getElementById("modal-slider").dispatchEvent(new Event('input'));
|
||||
if (amp == "16") { document.getElementById("EV_16A").click(); }
|
||||
else if (amp == "10") { document.getElementById("EV_10A").click(); }
|
||||
else if (amp == "6") { document.getElementById("EV_6A").click(); }
|
||||
// Alles Weitere in js/solar/ladefenster.js.
|
||||
ladefensterStarten(modalBodyElement.querySelector(".lade"), contentURL);
|
||||
break;
|
||||
case "heater":
|
||||
bindModalSlider(slider, span, value => value == 0 ? "Automatik" : (value / 10) + " kW");
|
||||
|
||||
Reference in New Issue
Block a user