Skip to content

evcc master 12.10. übernehmen (Automatik-Modus) - #87

Merged
SolarPower2024 merged 62 commits into
load-peak-featuresfrom
evcc-update/2026-10-12
Oct 12, 2026
Merged

SolarPower2024 merged 62 commits into
load-peak-featuresfrom
evcc-update/2026-10-12

Conversation

@SolarPower2024

@SolarPower2024 SolarPower2024 commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Worum es geht

evcc master bis ed7828c (55 Commits seit 0.317.1) übernehmen. Ausnahme von der Release-Regel, freigegeben am 12.10.: der Automatik-Modus des Optimizers (evcc PR 32881) ist gemergt, aber in keinem Release.

Was evcc mitbringt (für den Fork wichtig)

  • Optimizer: Automatik-Modus (Aus / nur Batterie / Batterie und Ladepunkte), Lauf alle 5 min im Automatikbetrieb (evcc PR 32881), dazu evcc PR 34644, 34678, 34689, 34738
  • Phasen: 3p-Mindestladen endet nach einer Abschaltverzögerung, wenn 1p nicht reicht; 1p-Projektion aus dem gemessenen Strom (evcc PR 34752, 34755)
  • Stromkreis: gebrochener Mindeststrom (evcc PR 34750)
  • Marstek lädt im Haltemodus (evcc PR 34497), Entladen ins Netz nur bei fähigen Batterien (evcc PR 34685), Temperatur-Entität für Heizgeräte am HA-Charger (evcc PR 34614)

Konflikte und wie gelöst

  • core/loadpoint.go setLimit: evccs requestedPower übernommen, unser lmCircuit() bleibt
  • core/loadpoint.go pvScalePhases: evccs neue disable-Logik übernommen; unsere Hooks bleiben (min1pCurrentOr für die 1p-Schwelle, phaseScaleDelay(1) statt der Abschaltverzögerung). Ohne eigene Verzögerung verhält es sich wie evcc
  • core/loadpoint/config.go: applyPhaseSwitch vor evccs cmp.Or(err, limitErr)
  • i18n/de.json: evcc-Text („PV & Speicher“), eigener Key peakshaving bleibt

Ohne Konflikt angepasst: optimizerUpdateAsync nimmt jetzt force bool statt minAge. lmOptimizeLater und die eigenen Aufrufe (Reserve-Lauf, Schnee) folgen.

Upstream zuerst

  • Automatik-Modus: ersetzt keinen Fork-Code direkt. Unsere Optimizer-Eingaben (Peak-Grenze, Reserve, SoC-Netzladen) bleiben. Der Umbau von PR 3 (Vorschau) auf den echten Modus folgt als eigener PR
  • Batterie-Vermessung: Fehlalarm, watch.json geschärft

Entscheidung nötig / bekannt

Der Automatik-Modus ist standardmäßig aus, der Fork verhält sich dann wie bisher. Eingeschaltet gilt bis zum Umbau von PR 3:

  • bei aktivem Peak Shaving (Reserve) setzt der Fork die Batterie weiter auf normal, er hat Vorrang vor dem Optimizer
  • SoC-Netzladen und einmaliges Netzladen des Forks greifen nicht, evcc prüft Automatik vor dem Netzladen
  • Batterieprofile mit Entlade-Sperre melden einen Fehler (evcc sperrt das in Automatik)
    → Automatik bis zum PR-3-Umbau nicht einschalten.

Code-Review (Opus, Aufwand mittel)

Behoben in eigenen Commits:

  • Reicht 1p nicht, schaltet evcc ab statt umzuschalten; dafür gilt jetzt die Abschaltverzögerung, nicht unsere 1p-Verzögerung (phaseScaleDelay1p)
  • batterySupported rechnet einen anstehenden Wechsel auf 1p mit dem 1p-Minimum (projectPhaseSwitch1p), neuer Hook mit Vertragstest
  • Netzladeziele des Forks folgen den Stunden-Slots des gehosteten Optimizers nach 48 h (lmPlan.coarse)
  • watch.json: weitere Schreibweisen

Offen bis PR 88 (geparkt): mit eingeschalteter evcc-Automatik greifen Fork-Netzladen und Stromkreisschutz beim Optimizer-Laden nicht, Peak-Shaving-Reserve übersteuert den Optimizer, Profile mit Entlade-Sperre scheitern. Automatik nicht einschalten, bis PR 88 gemergt ist.

Tests

  • wsltest: 85 Pakete ok, inklusive core, core/lm, core/peak, core/loadpoint, core/circuit, server, tariff, util, charger, cmd. vehicle/toyota hat nur Integrationstests und wird ohne Tag nicht gebaut, deshalb meldet das Skript FAIL – das Paket ist unverändert
  • TestForkHooksInPlace grün
  • Optimizer-Szenarien gegen den Optimizer auf .107 grün
  • nach den Review-Fixes: core, core/lm, core/peak, core/loadpoint, server, cmd ok; Optimizer-Szenarien 64/64
  • Frontend: vue-tsc, vitest 248/248, i18n, Lint der 33 geänderten Dateien grün

Für das Add-on

CHANGELOG: „evcc-Stand vom 12.10. (nach 0.317.1): Optimizer-Automatik (vorerst nicht einschalten), Phasenumschaltung beendet 3p-Mindestladen schneller, wenn 1p nicht reicht, Marstek lädt im Haltemodus.“

🤖 Generated with Claude Code

naltatis and others added 30 commits October 9, 2026 12:06
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…4588)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: FraBoCH <19388397+FraBoCH@users.noreply.github.com>
Co-authored-by: Filipe Lima <filipe.limadacunha@outlook.com>
Co-authored-by: shpokas <ivars.strazdins@gmail.com>
Co-authored-by: aerucu <abdulkadir@erucu.de>
Co-authored-by: amtssp <amtssp@gmail.com>
Co-authored-by: markus-steffen <steffen@grosconnection.de>
Co-authored-by: Martin Schmiedel Dopke <martin.schmiedel@gmail.com>
Co-authored-by: aaronchase64 <kiko64@gmail.com>
Co-authored-by: Clark2309 <christof@hurstweb.de>
Co-authored-by: Nicola Corna <nicola@corna.info>
Co-authored-by: Richard E <richard@ebbersonline.nl>
Co-authored-by: Frank van der Aa <frank@van-der-aa.net>
Co-authored-by: RTTTC <94727758+RTTTC@users.noreply.github.com>
Co-authored-by: andig <cpuidle@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Michael Geers <michael@geers.tv>
Co-authored-by: Fabian Pittroff <39737699+cp-fabian-pittroff@users.noreply.github.com>
Co-authored-by: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com>
Co-authored-by: Ingo <71161062+iseeberg79@users.noreply.github.com>
naltatis and others added 28 commits October 11, 2026 14:34
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Michael Geers <michael@geers.tv>
…evcc-io#34717)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
…#34737)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Michael Geers <michael@geers.tv>
Ausnahme von der Release-Regel, vom User am 2026-10-12 freigegeben.

Konflikte:
- core/loadpoint.go: setLimit nimmt evccs requestedPower (evcc PR 34750)
  und behält lmCircuit; pvScalePhases nimmt evccs disable-Logik
  (evcc PR 34752) mit min1pCurrentOr und phaseScaleDelay(1)
- core/loadpoint/config.go: applyPhaseSwitch vor cmp.Or(err, limitErr)
- i18n/de.json: evcc-Text, eigener Key peakshaving bleibt

optimizerUpdateAsync nimmt jetzt force statt minAge: lmOptimizeLater und
die eigenen Aufrufe angepasst.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
"round trip" traf auch einen evcc-Kommentar zur Stromkreis-Rundung.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mizers

evcc fasst beim gehosteten Optimizer die Slots nach 48 Stunden zu
Stunden zusammen (evcc PR 34738). Die Netzladeziele des Forks zählen in
Viertelstunden und zeigten dort auf einen zu späten Slot. Sie werden vor
den Durchläufen auf die Slots der Anfrage umgerechnet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Reicht 1p nicht, schaltet evcc jetzt ab statt umzuschalten (evcc PR
  34752). Dafür gilt die Abschaltverzögerung, nicht unsere 1p-Verzögerung
  (phaseScaleDelay1p).
- batterySupported rechnet einen anstehenden Wechsel auf 1p wie
  pvMaxCurrent mit dem 1p-Minimum (projectPhaseSwitch1p), neuer Hook mit
  Vertragstest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review.mjs vergleicht Groß-/Kleinschreibung genau; round-trip und
camelCase-Varianten ergänzt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
evccs Test-Helfer enableAutomatic schreibt sponsor.Subject, während ein
von einem früheren evcc-Test angestoßener Optimizer-Lauf es noch liest.
evcc testet ohne Race-Detector. Die zehn Tests laufen im normalen
Testschritt weiter, nur nicht mit -race (wie TestTemplates bei charger).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SolarPower2024
SolarPower2024 merged commit 0d3fb9f into load-peak-features Oct 12, 2026
3 checks passed
@SolarPower2024
SolarPower2024 deleted the evcc-update/2026-10-12 branch October 12, 2026 17:25
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.

8 participants