Skip to content

Loadpoint: readjust guard publishing #12001

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 18 commits into from

Conversation

GrimmiMeloni
Copy link
Collaborator

fix #11953

@andig / @naltatis - Tests sind weiterhin grün. Szenario das Volker beschreibt ist jetzt auch weg.
Einzige grobe Kante hierbei ist, daß ich jetzt als action beim publish weder enabled noch inactive, sondern silent verwende. Diese Action wird weder vom Server noch von der UI gesondert behandelt, d.h. der Server logged den GuardTimer während er runter läuft, und gleichzeitig zeigt die UI die Schaltschutz Meldung nicht mehr an.

MarkusGH and others added 12 commits January 26, 2024 19:59
Improve switching off in pv mode when phase timer is active
Fix type error
Fixed calculation error, cleared up disable rules
Fixed formatting
Clarifiy calculation
Fix formatting
Fixed power calculation
Fix calculation
@andig andig added the enhancement New feature or request label Feb 2, 2024
Improved calculation and debug message
Fixed formatting
@andig andig marked this pull request as draft February 2, 2024 13:12
@andig
Copy link
Member

andig commented Feb 2, 2024

Ich werde damit nicht glücklich. Der Code wird immer komplexer um Sonderfälle zu erfüllen. Warum sollte der Fall aus dem Issue kein Guard auslösen? Ich fürchte an der Stelle haben wir kein sauberes Design. Im Zweifel würde ich lieber den alten Commit zurück drehen?

@GrimmiMeloni
Copy link
Collaborator Author

Warum sollte der Fall aus dem Issue kein Guard auslösen?

Der Guard wird ausgelöst und arbeitet auch korrekt. Serverseitig ist das Verhalten wie gewohnt.
Es ändert sich lediglich wann wir den Guard publishen, und ggf. wie.

Der Code wird immer komplexer um Sonderfälle zu erfüllen.

Fairerweise der Hinweis: Dieser Change enthält bereits effektiv einen revert vom #11926. Ich vergleich zu pre-11926 ist hier nur noch der Else-Zweig neu.

Ich bin aber bei Dir - es wird komplizierter und das nur für geringen Benefit.
Wenn wir wirklich zurück wollen, dann zumindest logisch auf den Stand vor #11926.
Ich würde vorschlagen zumindest die neuen Tests (dann nochmal angepasst auf das Verhalten) mit rüber zu retten.

Das bedeutet dann, das wir #11123 als "known bug, won't fix" akzeptieren. Es ist auch dann weiterhin rein kosmetisch.

@naltatis
Copy link
Member

naltatis commented Feb 3, 2024

Ich stell mal kätzerisch die Frage ob wir den Guard nicht vielleicht komplett entfernen können/sollte?

Der wurde mal angeführt um die Hardware für exzessiven Schaltvorgängen durch externe API Clients zu schützen. Beim Schalten über die UI will der Nutzer ja eigentlich immer Instant Feedback. Da fühlt sich dieser Schutz immer wie ne Bevormundung an.

Im Alltag ohne Interaktion von außen tun die Enable/Disable Timer ja brav ihren Job. Da fällt der Guard Timer nur dann negativ auf wenn der höher konfiguriert ist.

Wir könnten alternativ sowas machen wie dem Modus-Ändern Endpunkt ein einfaches Rate Limiting verpassen sodass er mit nem HTTP Fehler (429) antwortet wenn man innerhalb einer Minute mehr als zehn Umschalteversuche unternommen hat. Das wäre dann immer noch ein Timer aber lokal im Modus Umschalten Handler und nicht tief in der Regellogik.

@GrimmiMeloni
Copy link
Collaborator Author

So ketzerisch ist das gar nicht. @andig hat das erst vor ein paar Tagen ebenfalls vorgeschlagen.

Dann hier am besten einfach nur noch revert, und dann machen wir ein Issue/Feature auf für Ersetzung von Guard durch einen Rate Limiter.

@GrimmiMeloni GrimmiMeloni deleted the fix/issue11953 branch February 3, 2024 09:41
@andig
Copy link
Member

andig commented Feb 3, 2024

Wenn wir wirklich zurück wollen, dann zumindest logisch auf den Stand vor #11926.

Ja, sehe ich auch so.

So ketzerisch ist das gar nicht. @andig hat das erst vor ein paar Tagen ebenfalls vorgeschlagen.

Wäre schön!

Wir könnten alternativ sowas machen wie dem Modus-Ändern Endpunkt ein einfaches Rate Limiting verpassen sodass er mit nem HTTP Fehler (429) antwortet wenn man innerhalb einer Minute mehr als zehn Umschalteversuche unternommen hat. Das wäre dann immer noch ein Timer aber lokal im Modus Umschalten Handler und nicht tief in der Regellogik.

Tja. Schlimm ist ja nicht die Modusänderung sondern das Schalten am Charger. Welche Quellen dafür gibt es:

  • massive Fehler in evcc- über die Stufe sind wir hinaus
  • Client-Fehler; wie können diese interagieren- nur über den Modus?
  • Config-Fehler; z.B. fehlende Hysterese- müssten wir da noch was abfangen?

@VolkerK62
Copy link
Contributor

sorry, dass ich mit meinen Beobachtungen so einen trouble verursacht habe.

wenn man innerhalb einer Minute mehr als zehn Umschalteversuche unternommen hat

Was ist hier mit "Umschaltung" gemeint. Auch Änderung von z.B. PV auf Min+PV?

@GrimmiMeloni
Copy link
Collaborator Author

Was ist hier mit "Umschaltung" gemeint. Auch Änderung von z.B. PV auf Min+PV?

Nein, nur Phasenwechsel und tatsächlicher Ladestart beziehungsweise -stop.

@andig andig mentioned this pull request Feb 4, 2024
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

manuelles Schalten aktiviert guardduration
5 participants