Repository navigation
Heizstab in Stufen: Ausfälle, Neustart, PV-Flattern und Phasenstrom (Review D2, D1, D6, D11, D7, B19) - #85
Conversation
…t, Wiederholungen nur nach der Verzögerung (D2) catchUp holt nur noch bei laufendem Heizstab einen zurückgehaltenen Schritt nach. Ein fehlgeschlagenes Enable setzt die Einstellung zurück. Nach einem Fehler beginnt die Verzögerung neu, ein wiederholter Fehlertext wird nur einmal als ERROR geloggt. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…mehr lahm (D1) Der Zustand je Stufe kennt "unbekannt". Status, Enabled und das Schalten gehen von den lesbaren Stufen aus, nichts wird blind an eine unlesbare Stufe geschrieben, ihre Leistung zählt als eingeschaltet. Ein Fehler kommt nur, wenn keine Stufe lesbar ist; der Ausfall einer Stufe wird einmal als WARN geloggt. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…rom gemeldet (D6) Bricht das Schalten ab, wird die Anforderung nicht übernommen: der Charger meldet den alten Strom, der Ladepunkt setzt den neuen erneut. Nach einer Teilschaltung zählt die Stufenzahl den tatsächlichen Stand. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…einen Stufen (D11) Beim ersten Aufruf übernimmt der Charger die laufenden Stufen samt ihrem Strom, statt sie auf die Anforderung des Ladepunkts (Mindeststrom) zurückzuschalten. Der Ladepunkt liest den Strom zurück und schreibt später auch eine kleinere Anforderung. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…verzögerung (D7) Neuer custom-Hook in pvMaxCurrent: ein Heizstab in Stufen bleibt auf seinen laufenden Stufen, solange der Netzbezug unter der Abschaltschwelle des Ladepunkts liegt, und geht erst nach der Abschaltverzögerung eine Stufe herunter. Pendelt der Überschuss um eine Stufengrenze, schalten die Relais nicht mehr bei jedem Hin und Her. Grenzen des Stromkreises greifen weiter sofort. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ufe auf ihrer Phase (B19) Eine Stufe zieht ihren ganzen Strom auf einer Phase, evcc rechnete mit dem Mittel über die Phasen. Bei einer Stufe je Phase meldet SwitchStages jetzt api.PhaseCurrents (Strom einer Stufe auf jeder Phase, sobald eine Stufe läuft), und die Zuschaltprüfung des Stromkreises fragt den Strom einer Stufe ab statt des gemittelten Stroms. Passt eine Stufe nicht auf ihre Phase, bleibt der Heizstab aus. README Abschnitt 4 und Template-Hilfetext de/en. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…wieder hochgeschaltet Nach einem fehlgeschlagenen Herunterschalten (MaxCurrentMillis oder Enable(false)) blieb der alte, hoehere Strom gemeldet, damit evcc den Versuch wiederholt. Der Catch-up sah dadurch ein Level unter dem alten Ziel und schaltete nach der Verzoegerung eine Stufe wieder ein, obwohl evcc weniger verlangt hatte. Jetzt merkt sich der Charger das fehlgeschlagene Herunterschalten und schaltet nicht hoch, bis ein Schreibzugriff von evcc gelingt. Der gemeldete Strom bleibt der alte, sonst wuerde evcc den Wiederholversuch nicht mehr machen. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…Abschaltverzoegerung auf seinen Stufen Faellt der Zielstrom unter den Mindeststrom (eine Stufe), gab pvMaxCurrent im Abschaltzweig sofort den Mindeststrom zurueck, solange der Abschalttimer lief. Ein Heizstab mit drei Stufen fiel so bei jeder Wolke ohne Verzoegerung auf eine Stufe. Neuer // custom:-Hook holdRunningStages am Ende dieses Zweigs: der Heizstab behaelt seine laufenden Stufen, bis der Abschalttimer ablaeuft und evcc ihn ausschaltet; Importe unter der Abschaltschwelle werden wie bei holdStage toleriert. Stromkreis-Grenzen gelten danach weiter sofort. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ung auf eine Stufe, dann entscheidet evcc Der Hook holdRunningStages hielt alle Stufen bis zum Ablauf des Abschalt-Timers. Dessen Bezugsprüfung misst aber den Netzbezug mit allen laufenden Stufen: bei Solaranteil unter 1 oder eigener Abschaltschwelle schaltete der Heizstab ganz aus, obwohl eine Stufe weitergelaufen wäre (Stufen 3 kW, Überschuss 2 kW, Schwelle 1,5 kW). holdRunningStages und sein Hook entfallen. holdStage steht jetzt vor dem Abschaltzweig, hinter dem Rücksprung für alwaysCharge und Batterie: die Stufen gehen nach der Abschaltverzögerung auf eine Stufe zurück, danach entscheidet evcc mit dem echten Bezug bei einer Stufe, ob der Heizstab ganz ausgeht. Eine einzelne Stufe hält holdStage nicht (neuer Parameter minCurrent), sonst käme die Verzögerung doppelt. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…Stufenverzögerung Nach einem teilweise fehlgeschlagenen Herunterschalten blieb lowering gesetzt, wenn evcc danach wieder den alten Strom wollte: offeredCurrent war unverändert, evcc schrieb nichts mehr, und der Catch-up blieb gesperrt. lowering verfällt jetzt, wenn seit dem letzten fehlgeschlagenen Versuch (changed) mehr als die doppelte Stufenverzögerung vergangen ist; jeder weitere Fehlversuch startet die Zeit neu. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Opus-Nachprüfung der Review-Fixes (2026-10-12): Der Fix zum Fund hoch (fehlgeschlagenes Herunterschalten wurde vom Catch-up wieder hochgeschaltet) ist sauber. Der Fix zum Fund mittel hatte einen neuen Fehler: der Abschalt-Timer prüfte den Netzbezug mit allen laufenden Stufen, bei Solaranteil unter 1 oder eigener Abschaltschwelle ging der Heizstab ganz aus statt auf einer Stufe weiterzulaufen. Behoben in |
Behebt D1, D2 (hoch), D6, D7, D11 und B19 aus dem Architektur-Review (Paket P7). Je Fund ein Commit, dazu zwei Commits aus dem Code-Review.
catchUpnach der Rückkehr von HA alle Stufen ein, auch im Modus Aus); Wiederholungen nur nach der Verzögerung, Log einmal je Ursache.// custom:-Hooks incore/loadpoint.go(pvMaxCurrent:holdStage,holdRunningStages), Touch-Point-Tabelle,forkHooks, Vertragstests.Currents()meldet den Strom einer Stufe auf jeder Phase, sobald eine Stufe läuft – sonst leitete evcc aus einer einzelnen Stufe "1 Phase" ab und rechnete die Leistung falsch um (TestStagesPhaseCurrentKeepsPhases).Tests:
TestSwitchStagesUnreadableStage, Tests zu Fehlschlag, Neustart, pendelndem Überschuss und Phasenstrom;wsltest.sh ./charger/ ./core/grün vor und nach den Review-Fixes.Code-Review (Opus, mittel): zwei Funde (hoch, mittel) behoben; die beiden Fixes werden zusätzlich von Opus nachgeprüft, das Ergebnis folgt als Kommentar. Offen (niedrig):
stageTimerwird außerhalb vonholdStagenie zurückgesetzt.Für das Add-on (CHANGELOG): Heizstab in Stufen: schaltet bei einem nicht erreichbaren Shelly weiter ab, holt fehlgeschlagenes Einschalten nicht eigenmächtig nach, flattert im PV-Betrieb nicht mehr an einer Stufengrenze und bleibt beim Neustart auf seinen Stufen; Stromkreise rechnen mit dem echten Strom je Phase.
Überschneidung mit P2 in
core/loadpoint_lm.go(andere Funktion). Merge-Reihenfolge: … → P6 → P7 → P7a.🤖 Generated with Claude Code