Skip to content

Lastmanagement: Grenze des LM-Kreises aus der Peak-Shaving-Grenze (Schalter, Standard aus) - #86

Merged
SolarPower2024 merged 3 commits into
load-peak-featuresfrom
feature/lm-kreis-peak-grenze
Oct 12, 2026
Merged

SolarPower2024 merged 3 commits into
load-peak-featuresfrom
feature/lm-kreis-peak-grenze

Conversation

@SolarPower2024

Copy link
Copy Markdown
Owner

Neue Funktion auf Wunsch des Users (Konzept konzepte/2026-10-11-architektur-review-umsetzung.md, Entscheidungen D27 und D28, Paket P7a).

Was: Unter Lastmanagement-Details → Erweitert gibt es neben "Stromkreis Lastmanagement (Peak)" den Schalter "Grenze = Peak-Shaving-Grenze" (Standard aus). Ist er an, bekommt der gewählte LM-Kreis bei jeder Änderung und jedem Zyklus die Peak-Grenze aus dem Batterie-Reiter als Leistungsgrenze (mit Follow the Peak). "Lastmanagement aus" hebt sie wie bisher auf; ohne Peak Shaving oder ohne Peak-Grenze gilt der eingestellte Wert des Kreises; Stromgrenzen, §14a und Kreise mit Plugin-Grenze bleiben unberührt.

Warum so (D27, D28): kein Plugin und keine API-Schleife, sondern der vorhandene Mechanismus in core/site_lm_switch.go, der die Grenze schon für "Lastmanagement aus" und Follow the Peak zur Laufzeit setzt. Der gespeicherte Wert des Kreises wird nicht überschrieben (Rückfallwert; sonst schriebe jede Peak-Änderung in evccs Gerätekonfiguration).

Anzeige ohne Verwechslung: Kachel "Stromkreise" und Übersicht zeigen die wirksame Grenze; die Übersicht nennt die Quelle ("aus Peak Shaving, eingestellt …"), der Stromkreis-Dialog zeigt einen Hinweis (UI-Hook in CircuitModal.vue → CircuitPeakHint.vue, forkUiHooks, Vertragstest; der Hinweis steht im Slot nach den Feldern, weil der Dialog unter der Leistungsgrenze keinen Slot hat), die Peak-Shaving-Karte im Batterie-Reiter zeigt "Gilt auch für Stromkreis …". Texte de und en.

Tests: TestLmCircuitFromPeak, …State, …Plugin, …Restart und weitere in core/site_lm_switch_test.go, site_lm_advanced_test.go, site_restore_test.go; Vitest für utils/circuitFromPeak.ts; wsltest.sh ./core/ ./core/lm/ ./core/circuit/ und fecheck.sh grün. watch.json um dynamische Kreisgrenzen ergänzt.

Code-Review (Sonnet): ein Fund mittel (Peak-Grenze griff nach dem Neustart erst im ersten Zyklus) – behoben. Offen (niedrig): der Dialog-Hinweis sagt "ersetzt", auch wenn die Grenze gerade nicht aus Peak kommt; der Schalter bleibt angehakt, wenn er mangels Kreis deaktiviert ist.

Hinweis für deine Anlage: bei 3,5 kW Peak-Grenze passt die Mindestleistung einer dreiphasigen Wallbox (6 A × 3 ≈ 4,1 kW) nicht unter die Grenze; geladen wird dann einphasig oder mit Hilfe der Batterie bis zur Reserve. Der Schalter ist aus, bis du ihn einschaltest.

Für das Add-on (CHANGELOG / DOCS): Neu: Lastmanagement-Details → Erweitert → "Grenze = Peak-Shaving-Grenze" übernimmt die Peak-Grenze aus dem Batterie-Reiter als Grenze des Lastmanagement-Kreises (Standard aus).

🤖 Generated with Claude Code

SolarPower2024 and others added 3 commits October 12, 2026 02:33
…Schalter circuitFromPeak (P7a)

Neuer erweiterter Wert circuitFromPeak (Standard aus): bei gewähltem
Lastmanagement-Kreis und aktivem Peak Shaving ist die Leistungsgrenze des
Kreises die Peak-Grenze, mit Follow the Peak und auch unter dem eingestellten
Wert. Der eingestellte Wert bleibt unverändert und gilt wieder, wenn der
Schalter oder Peak Shaving aus ist. Lastmanagement aus hebt die Grenze wie
bisher auf. Ohne gewählten Kreis, bei Kreisen ohne Leistungsgrenze und bei
Plugin-Grenzen keine Wirkung. lmOff.fromPeak sagt der UI, ob die Grenze gerade
aus der Peak-Grenze kommt. Setter von Peak-Grenze und Peak Shaving wenden die
Kreisgrenzen sofort an. README Abschnitt 7 und 17, watch.json.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e der Quelle (P7a)

Schalter unter Lastmanagement-Details, Erweitert, direkt unter dem Stromkreis
Lastmanagement (Peak), nur aktiv mit gewähltem Kreis. Die Quelle der Grenze
bleibt sichtbar, der gespeicherte Wert des Kreises wird nicht überschrieben:
Übersicht zeigt "aus Peak Shaving, eingestellt ...", der Stromkreis-Dialog einen
Hinweis unter den Feldern (neuer UI-Hook CircuitPeakHint in CircuitModal.vue,
Eintrag in forkUiHooks und Touch-Point-Tabelle, Vertragstest in
circuitFromPeak.test.ts), die Peak-Shaving-Karte im Batterie-Reiter nennt den
Kreis. Texte de und en.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
restoreCustom stellte die Lastmanagement-Einstellungen vor den Peak-Einstellungen
wieder her. Beim ersten applyCircuitLimits war Peak Shaving noch aus, die
Kreisgrenze blieb auf dem eingestellten Wert und die Peak-Grenze griff erst in
updateCustom des ersten Zyklus. Jetzt ruft restoreCustom nach
restorePeakSettings applyCircuitLimits auf.

Der Neustart-Test ruft restoreCustom mit gespeicherten Peak-Einstellungen in der
echten Reihenfolge auf und prueft die Kreisgrenze sofort danach.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@SolarPower2024
SolarPower2024 merged commit 32923f8 into load-peak-features Oct 12, 2026
6 checks passed
@SolarPower2024
SolarPower2024 deleted the feature/lm-kreis-peak-grenze branch October 12, 2026 16:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant