Ladefenster: eigene Abfahrtszeit lesbar und als ganzer Knopf antippbar

Das Zeitfeld im Chip war zu schmal (von 16:00 blieb die 1) und oeffnete
den Waehler nur ueber das Uhrsymbol von Chromium. Jetzt zeigt der Knopf die
Zeit und oeffnet den Waehler per showPicker(); das Feld liegt unsichtbar
darunter. Car-Zustand Complete heisst beendet, nicht voll.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 20:44:58 +02:00
co-authored by Claude Opus 5
parent b0bac3d3ba
commit 5f42309410
3 changed files with 24 additions and 7 deletions
+12 -4
View File
@@ -27,7 +27,7 @@
ampere: "wattpilot/properties/amp/state",
energie: "wattpilot/properties/fte/state", zeit: "wattpilot/properties/ftt/state",
frc: "wattpilot/properties/frc/state", frcWerte: { Neutral: 0, Off: 1, On: 2, 0: 0, 1: 1, 2: 2 },
auto: "wattpilot/properties/car/state", autoWerte: { Idle: "kein", Charging: "laedt", WaitCar: "wartet", Complete: "fertig" },
auto: "wattpilot/properties/car/state", autoWerte: { Idle: "kein", Charging: "laedt", WaitCar: "wartet", Complete: "fertig" }, // Complete = Ladevorgang beendet, nicht Akku voll
leistungKW: "solarManager/evPower", soc: "solarManager/evSOC", restMin: "solarManager/evRemChrgTime",
},
og: { // go-e Charger, direkt am Broker
@@ -139,10 +139,10 @@
setze("ringUnten", s.modus === "plan" ? (mitSoc ? "Ziel " + s.ziel + " %" : "+ " + s.ziel + " %") : mitSoc ? "Ladestand" : "Akku");
// Zustand
const zustand = laedt ? "lädt" : s.frc === 1 ? "gestoppt" : s.auto === "fertig" ? "fertig" : s.auto === "kein" ? "kein Auto" : "wartet";
const zustand = laedt ? "lädt" : s.frc === 1 ? "gestoppt" : s.auto === "fertig" ? "beendet" : s.auto === "kein" ? "kein Auto" : "wartet";
$("leistung").innerHTML = komma(s.kw) + " kW<small>" + zustand + "</small>";
const pille = $("stecker");
const pilleText = s.auto === "kein" ? "kein Auto" : s.auto === "laedt" ? "lädt" : s.auto === "fertig" ? "voll" : s.auto ? "angesteckt" : "";
const pilleText = s.auto === "kein" ? "kein Auto" : s.auto === "laedt" ? "lädt" : s.auto === "fertig" ? "beendet" : s.auto ? "angesteckt" : "";
setze("stecker", pilleText);
pille.className = "lade-pille" + (s.auto && s.auto !== "kein" ? " an" : "");
const anteil = laedt && s.kw > 0 ? Math.max(0, Math.min(1, 1 - Math.max(0, s.netz) / (s.kw * 1000))) : null;
@@ -201,8 +201,9 @@
c.setAttribute("aria-pressed", an ? "true" : "false");
});
$("chipEigen").setAttribute("aria-pressed", bekannt ? "false" : "true");
setze("chipEigenText", bekannt ? "andere" : s.zeit);
const eigen = $("zeitEigen");
if (document.activeElement !== eigen && !bekannt) eigen.value = s.zeit;
if (document.activeElement !== eigen) eigen.value = s.zeit;
}
return s;
}
@@ -245,6 +246,13 @@
merke("zeit", c.dataset.zeit);
planSchicken(stand());
}));
$("chipEigen").addEventListener("click", e => {
const feld = $("zeitEigen");
if (e.target === feld) return;
// showPicker öffnet den Wähler des Browsers; ältere Browser bekommen
// wenigstens den Fokus und damit die Eingabe per Tastatur.
try { feld.showPicker(); } catch (fehler) { feld.focus(); }
});
$("zeitEigen").addEventListener("change", e => {
if (!/^\d\d:\d\d$/.test(e.target.value)) return;
merke("zeit", e.target.value);