From 270b6ce6710d2d59c3c28ad0a11cc6e737fdc3f5 Mon Sep 17 00:00:00 2001 From: SolarPower2024 Date: Mon, 12 Oct 2026 19:53:12 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Batterieseite:=20Hinweis=20'Gilt=20auch=20f?= =?UTF-8?q?=C3=BCr=20Stromkreis'=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wunsch des Users: die Peak-Shaving-Karte bleibt ohne den Zusatz. Die Lastmanagement-Übersicht und der Stromkreis-Dialog zeigen die Quelle der Grenze weiterhin. Co-Authored-By: Claude Opus 5.5 --- .../Battery/BatteryPeakShavingCard.vue | 14 ----------- assets/js/utils/circuitFromPeak.test.ts | 25 +------------------ assets/js/utils/circuitFromPeak.ts | 7 ------ i18n/de.json | 1 - i18n/en.json | 1 - 5 files changed, 1 insertion(+), 47 deletions(-) diff --git a/assets/js/components/Battery/BatteryPeakShavingCard.vue b/assets/js/components/Battery/BatteryPeakShavingCard.vue index ef02757ec8..1440124a38 100644 --- a/assets/js/components/Battery/BatteryPeakShavingCard.vue +++ b/assets/js/components/Battery/BatteryPeakShavingCard.vue @@ -44,15 +44,6 @@ - -

- {{ $t("battery.peakShaving.alsoCircuit", { name: alsoCircuit }) }} -

-
{{ error }}
{ const on = { @@ -25,26 +25,3 @@ describe("circuitPeakHintLimit", () => { expect(circuitPeakHintLimit({}, "main")).toBeUndefined(); }); }); - -describe("peakShavingCircuitTitle", () => { - const on = { - lmOff: { circuit: "main", fromPeak: true }, - peakShaving: true, - circuits: { main: { title: "Hausanschluss" } }, - }; - - test("names the circuit whose limit is the peak limit right now", () => { - expect(peakShavingCircuitTitle(on)).toBe("Hausanschluss"); - expect(peakShavingCircuitTitle({ ...on, circuits: {} })).toBe("main"); - }); - - test("empty otherwise", () => { - expect(peakShavingCircuitTitle({ ...on, lmOff: { circuit: "main", fromPeak: false } })).toBe( - "" - ); - expect(peakShavingCircuitTitle({ ...on, lmOff: { fromPeak: true } })).toBe(""); - expect(peakShavingCircuitTitle({ ...on, peakShaving: false })).toBe(""); - expect(peakShavingCircuitTitle(undefined)).toBe(""); - expect(peakShavingCircuitTitle({})).toBe(""); - }); -}); diff --git a/assets/js/utils/circuitFromPeak.ts b/assets/js/utils/circuitFromPeak.ts index aaf04a8b56..2356e80eb0 100644 --- a/assets/js/utils/circuitFromPeak.ts +++ b/assets/js/utils/circuitFromPeak.ts @@ -19,10 +19,3 @@ export function circuitPeakHintLimit( return state.peakShavingLimit || 0; } -// The circuit the peak shaving card names: the one whose limit is the peak limit -// right now, empty otherwise. -export function peakShavingCircuitTitle(state: CircuitFromPeakState | undefined): string { - const name = state?.lmOff?.circuit; - if (!name || !state?.lmOff?.fromPeak || !state.peakShaving) return ""; - return state.circuits?.[name]?.title || name; -} diff --git a/i18n/de.json b/i18n/de.json index ebbb5db8d6..da94cd38cc 100644 --- a/i18n/de.json +++ b/i18n/de.json @@ -82,7 +82,6 @@ "suggestion": "Vorschlag" }, "peakShaving": { - "alsoCircuit": "Gilt auch für Stromkreis {name}", "description": "Unter {reserve} deckt die Batterie nur, was das 15-Minuten-Mittel über {limit} heben würde. Darüber normaler Eigenverbrauch.", "enable": "Untere Batteriereserve für Lastspitzen zurückhalten.", "noEntity": "Keine Zielentität hinterlegt (Konfiguration → Lastmanagement-Details → Peak Shaving).", diff --git a/i18n/en.json b/i18n/en.json index 15635f78f0..dda652c5dc 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -82,7 +82,6 @@ "suggestion": "Suggestion" }, "peakShaving": { - "alsoCircuit": "Also applies to circuit {name}", "description": "Below {reserve}, the battery only covers what would lift the 15 minute average above {limit}. Above it, normal self-consumption.", "enable": "Hold the lower battery range back for demand peaks.", "noEntity": "No target entity set (Configuration → Load management details → Peak Shaving).", From 7d003848997c1ad33e7fb3ed8eafd4d40985f9cb Mon Sep 17 00:00:00 2001 From: SolarPower2024 Date: Mon, 12 Oct 2026 19:54:08 +0200 Subject: [PATCH 2/3] Einmalig laden: Standard-Schalter vor dem Satz statt rundem Knopf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wunsch des Users: wie beim Netzladen nach SoC ein Schalter vor dem Text. An startet, aus beendet; der Schalter folgt dem Stand vom Server. PowerIcon entfällt. Co-Authored-By: Claude Opus 5.5 --- .../Battery/BatteryGridChargeOnce.vue | 187 +++++++++--------- assets/js/components/Battery/PowerIcon.vue | 24 --- core/lm/README.md | 2 +- 3 files changed, 90 insertions(+), 123 deletions(-) delete mode 100644 assets/js/components/Battery/PowerIcon.vue diff --git a/assets/js/components/Battery/BatteryGridChargeOnce.vue b/assets/js/components/Battery/BatteryGridChargeOnce.vue index 6c53462e3f..e549e40299 100644 --- a/assets/js/components/Battery/BatteryGridChargeOnce.vue +++ b/assets/js/components/Battery/BatteryGridChargeOnce.vue @@ -1,90 +1,90 @@