Feature: EMS Aktiv-Checkbox pro Kathrein-Wallbox-Gerät (v1.8.4)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -254,7 +254,7 @@ def _poll_loop(inv_cfg: Dict[str, Any], stop: threading.Event):
|
||||
values["grid_power"] = values["total_power"]
|
||||
|
||||
# EMS: PV-Überschuss aus anderen Geräten holen und Ladestrom regeln
|
||||
if ems is not None and values is not None:
|
||||
if ems is not None and values is not None and inv_cfg.get("ems_enabled", True):
|
||||
pv_surplus = _get_pv_surplus()
|
||||
# 0x0060 manchmal nicht lesbar → 1 (EV Connected) annehmen,
|
||||
# damit EMS aktiviert; Wallbox ignoriert Befehle wenn kein Auto da
|
||||
|
||||
@@ -290,7 +290,12 @@
|
||||
<input type="number" id="modal-interval" value="30" min="5"></div>
|
||||
|
||||
<div id="ems-section" style="display:none; border-top:1px solid var(--border); margin-top:14px; padding-top:14px;">
|
||||
<div style="font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--accent); margin-bottom:12px;">EMS — Ladesteuerung</div>
|
||||
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;">
|
||||
<div style="font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--accent);">EMS — Ladesteuerung</div>
|
||||
<label style="cursor:pointer;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim)">
|
||||
<input type="checkbox" id="ems-enabled" checked style="width:auto;margin:0"> Aktiv
|
||||
</label>
|
||||
</div>
|
||||
<div class="field"><label>Mindest-PV-Überschuss (W)</label>
|
||||
<input type="number" id="ems-min-pv" value="1400" min="100" step="100">
|
||||
<div style="font-size:11px;color:var(--muted);margin-top:3px">Mindestleistung für PV-Laden (min. 6A × 230V = 1380W)</div></div>
|
||||
@@ -781,6 +786,7 @@ async function openModal(invId) {
|
||||
document.getElementById("ems-timeout").value = inv.ems_timeout ?? 4;
|
||||
document.getElementById("ems-target-hour").value = inv.ems_target_hour ?? 6;
|
||||
document.getElementById("ems-phases").value = inv.ems_phases ?? 3;
|
||||
document.getElementById("ems-enabled").checked = inv.ems_enabled ?? true;
|
||||
} else {
|
||||
document.getElementById("modal-title").textContent = "Gerät hinzufügen";
|
||||
document.getElementById("modal-id").value = "";
|
||||
@@ -828,6 +834,7 @@ async function saveInverter() {
|
||||
inv.ems_timeout = parseFloat(document.getElementById("ems-timeout").value);
|
||||
inv.ems_target_hour = parseInt(document.getElementById("ems-target-hour").value);
|
||||
inv.ems_phases = parseInt(document.getElementById("ems-phases").value);
|
||||
inv.ems_enabled = document.getElementById("ems-enabled").checked;
|
||||
}
|
||||
const idx = invertersList.findIndex(i => i.id === id);
|
||||
if (idx >= 0) invertersList[idx] = inv; else invertersList.push(inv);
|
||||
|
||||
Reference in New Issue
Block a user