Skip to content
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

Easee: use start_charge when authentication required #9271

Merged
merged 11 commits into from
Sep 9, 2023

Conversation

GrimmiMeloni
Copy link
Collaborator

@GrimmiMeloni GrimmiMeloni commented Aug 6, 2023

See discussion in #9228

Note: this change is breaking with previous behavior, as it allows evcc to perform any needed authorization on behalf of the user. If users want to keep manual control of the charge start, they can do so by setting the default mode in evcc to off.

The upside of this change is, that the charger won't autostart when connecting a vehicle, giving evcc better control over the starting phase of the charge, and eliminating any maxA charging between connecting the car and the first evcc interval.

@premultiply
Copy link
Member

Riecht danach, dass damit die Session-Erzeugung der Box und somit ggf. auch sämtliche RFID-Funktionen der Box (z.B. auch Fahrzeugerkennung) ausser Kraft gesetzt werden.
Das könnte u. U. ein sehr ungewolltes Verhalten sein.

@GrimmiMeloni
Copy link
Collaborator Author

Riecht danach, dass damit die Session-Erzeugung der Box und somit ggf. auch sämtliche RFID-Funktionen der Box (z.B. auch Fahrzeugerkennung) ausser Kraft gesetzt werden.
Das könnte u. U. ein sehr ungewolltes Verhalten sein.

Ich konnte keinerlei Nebenwirkungen beim Test gestern feststellen.

@allcoolusernamesaregone
Copy link
Contributor

Riecht danach, dass damit die Session-Erzeugung der Box und somit ggf. auch sämtliche RFID-Funktionen der Box (z.B. auch Fahrzeugerkennung) ausser Kraft gesetzt werden. Das könnte u. U. ein sehr ungewolltes Verhalten sein.

Die Ladesession ist davon unabhängig, die Fahrzeugerkennung geht einwandfrei.
Aber ja, RFID Freischaltung an der Box ist damit außer Kraft.

@premultiply
Copy link
Member

Gemeint war die Fahrzeugidentifizierung via RFID. Geht die (weiterhin)?

@allcoolusernamesaregone
Copy link
Contributor

Gemeint war die Fahrzeugidentifizierung via RFID. Geht die (weiterhin)?

sofern das aktuell gehen sollte mit der Easee (tut es das?): die dürfte dann weiterhin funktionieren, wenn das Token (Easee Key?) schneller an die Easee gehalten wird, als EVCC über die API freischaltet. Ansonsten wohl eher: nein.

@GrimmiMeloni
Copy link
Collaborator Author

Gemeint war die Fahrzeugidentifizierung via RFID. Geht die (weiterhin)?

sofern das aktuell gehen sollte mit der Easee (tut es das?): die dürfte dann weiterhin funktionieren, wenn das Token (Easee Key?) schneller an die Easee gehalten wird, als EVCC über die API freischaltet. Ansonsten wohl eher: nein.

Danke für den Hinweis @premultiply. Das Feature hatte ich schon verdrängt.
Den Change können wir dann so erstmal nicht einbauen. Ich setze zurück auf Draft.

@GrimmiMeloni GrimmiMeloni marked this pull request as draft August 7, 2023 04:59
@Robbe64
Copy link

Robbe64 commented Aug 7, 2023

Gemeint war die Fahrzeugidentifizierung via RFID. Geht die (weiterhin)?

sofern das aktuell gehen sollte mit der Easee (tut es das?): die dürfte dann weiterhin funktionieren, wenn das Token (Easee Key?) schneller an die Easee gehalten wird, als EVCC über die API freischaltet. Ansonsten wohl eher: nein.

Danke für den Hinweis @premultiply. Das Feature hatte ich schon verdrängt. Den Change können wir dann so erstmal nicht einbauen. Ich setze zurück auf Draft.

Das Problem ließe sich doch umgehen, wenn man in der EVCC-Konfig so konfiguriert, dass das Fahrzeug per RFID erkannt werden soll und der Standardmodus auf "OFF" steht, sowie für das jeweilige Fahrzeug auf z.B. "PV". Dann sollte doch in diesem Szenario erst gestartet werden wenn ich per RFID melde welches Auto angesteckt ist.

Für den Standardmodus "ON" (bzw. PV etc.) würde mit dieser Änderung nun auch immer gestartet, trotz authentifizierung. Das ist zwar ein (breaking) change aber aus sicht von EVCC doch vollkommen richtig.

So die Theorie, bin mir nur nciht sicher, ob es sich in der Praxis auch so verhält.

@GrimmiMeloni
Copy link
Collaborator Author

Gemeint war die Fahrzeugidentifizierung via RFID. Geht die (weiterhin)?

sofern das aktuell gehen sollte mit der Easee (tut es das?): die dürfte dann weiterhin funktionieren, wenn das Token (Easee Key?) schneller an die Easee gehalten wird, als EVCC über die API freischaltet. Ansonsten wohl eher: nein.

Das funktioniert in jedem Fall. Denn für User die aktuell als Default Modus z.B. PV haben und bei denen es nur um die Fahrzeugzuordnung geht, ist es ja heute auch bereits ein Wettrennen zwischen Easee und dem nächsten EVCC Interval. Der Ladevorgang startet sobald das Token drangehalten wird, evcc sieht aber auch erst im nächsten Intervall den Identifier und kann dann das Fahrzeug auswählen.

Das müßten wir tatsächlich mal mit einem Token testen, denn @Robbe64 hat meiner Ansicht nach recht. Die User die heute mit RFID einen Default Modus Off übersteuern können das auch weiterhin tun und das auch ohne das die Ladung bereits startet bevor die RFID Zuordnung erfolgt.

charger/easee.go Outdated Show resolved Hide resolved
@GrimmiMeloni
Copy link
Collaborator Author

rebased to master, added configuration option.
@allcoolusernamesaregone would you mind reviewing this, to confirm it does what you were looking for?

@allcoolusernamesaregone
Copy link
Contributor

Hallo, mache ich gerne nach meinem Urlaub... nicht vor dem 30.8. "leider". Dazu noch eine Frage, das mit den Reasons ist hier raus / noch nicht drin? was genau soll ich also testen, die easee.go aus diesem Commit oder in den Master gemergt, wo ja die Reasons mit drin sind? bin mit GitHub nicht so firm.

@GrimmiMeloni
Copy link
Collaborator Author

Der Change mit den Reasons in Enabled() ist hier drin. Ich habe gestern mit Master rebased.

@allcoolusernamesaregone
Copy link
Contributor

Der Change mit den Reasons in Enabled() ist hier drin. Ich habe gestern mit Master rebased.

ah, super. Habe die 4 geänderten Dateien in meine lokale Kopie übernommen und schonmal erfolgreich kompiliert (Odroid N2+, btw, läuft prima), in 1 Woche wird getestet.. :)

@andig andig added the enhancement New feature or request label Aug 29, 2023
@allcoolusernamesaregone
Copy link
Contributor

rebased to master, added configuration option. @allcoolusernamesaregone would you mind reviewing this, to confirm it does what you were looking for?

So, nun 2 Tage lang mehrere Tests gemacht, mit commit a9e78e9 sowie 83cda25 - alles OK!
Konnte keinen Fehler bzw. Warnung (rotes/gelbes Dreieck) feststellen (ohne die beiden Commits schon...) und auch keinen unerwünschten Netzbezug feststellen!

:)

@dm82m
Copy link

dm82m commented Aug 31, 2023

Wann kommt’s ins nightly? Wär perfekt für mich!

@GrimmiMeloni
Copy link
Collaborator Author

Wann kommt’s ins nightly? Wär perfekt für mich!

@andig ich bin die nächsten 3 Tage nicht erreichbar. Vorschlag daher Sonntag.

@GrimmiMeloni GrimmiMeloni marked this pull request as ready for review September 4, 2023 13:40
@GrimmiMeloni
Copy link
Collaborator Author

This has been working without problems for the last 2 weeks for me. Also confirmed working by @allcoolusernamesaregone . Removing draft state.

@dm82m
Copy link

dm82m commented Sep 4, 2023

Will test it as soon as it is on nightly 😍

charger/easee.go Show resolved Hide resolved
charger/easee.go Outdated Show resolved Hide resolved
charger/easee.go Outdated Show resolved Hide resolved
charger/easee.go Outdated Show resolved Hide resolved
charger/easee.go Outdated Show resolved Hide resolved
templates/definition/charger/easee.yaml Show resolved Hide resolved
@andig
Copy link
Member

andig commented Sep 4, 2023

@GrimmiMeloni bitte rebasen, dann werden die docs nicht mehr erzeugt

@GrimmiMeloni
Copy link
Collaborator Author

@GrimmiMeloni bitte rebasen, dann werden die docs nicht mehr erzeugt

Sollte jetzt besser sein.

charger/easee.go Outdated Show resolved Hide resolved
@dm82m
Copy link

dm82m commented Sep 5, 2023

Schon eine Idee wann das gemerged wird?

@andig andig merged commit 68ec274 into evcc-io:master Sep 9, 2023
6 checks passed
@dm82m
Copy link

dm82m commented Sep 9, 2023

@andig könntest du noch einmal auf den nightly job drücken? das wär fantastisch :)

@andig
Copy link
Member

andig commented Sep 9, 2023

Done

@GrimmiMeloni
Copy link
Collaborator Author

GrimmiMeloni commented Sep 9, 2023

Denkt an die Konfiguration...

authorize: true

am Charger hinzufügen.

@maf-soft
Copy link

maf-soft commented Sep 9, 2023

Könnte evtl. jemand, spätestens wenn es ins Release kommt, mal zusammenfassen was geändert wurde und in welchem Fall die Verwendung wie empfohlen ist? Ich steige nicht durch.

@dm82m
Copy link

dm82m commented Sep 9, 2023

ich probiers mal:

  1. die änderung kommt mit dem nächsten release für alle.
  2. die änderung hat keinerlei auswirkungen, da du sie manuell per config aktivieren musst, falls du sie haben möchtest.
  3. die änderung bewirkt folgendes: evcc authentifiziert den ladevorgang. falls deine easee wallbox bisher keine authentifizierung hatte, ist dieser change für dich nicht relevant. für den fall, dass du deine easee wallbox z.B. mit rfid karte oder über die easee app nach dem anstecken eines fahrzeugs erst authenfizieren (also den ladevorgang freischalten) musstest hat das ohne diese änderung dazu geführt, dass die easee sofort begonnen hat zu laden und evcc erst ein paar sekunden später die steuerung übernommen hat. wenn du jetzt diese änderung in der config aktivierst (authorize: true), dann entfällt die authentifizierung über rfid bzw. handy app und evcc übernimmt die. d.h. man steckt ein fahrzeug ein, die easee wartet, da sie auf freischaltung wartet und evcc übernimmt diese freischaltung.

@maf-soft
Copy link

maf-soft commented Sep 9, 2023

Ich habe bei der Easee den Zugriff offen eingestellt und Evcc standardmäßog off und nach Erkennen des Fahrzeugs pv. Vermutlich hatte ich das genau deswegen so, weiß nicht mehr. Bedeutet das jetzt, ich kann den Zugriff wieder sperren und hätte dann aber immer noch das gleiche Verhalten?

@dm82m
Copy link

dm82m commented Sep 9, 2023

in dem von dir beschrieben szenario würde jedes andere e fahrzeug das sich an deine easee klemmt, automatisch geladen werden. da deine easee ja 'offen' ist. vmtl. zumindest kurz, bis evcc merkt, dass die easee lädt und das dann abbricht, weil der mode ja auf 'off' steht. ist aber jetzt nur eine vermutung, kann ich nicht 100% bestätigen.

ich bin mir gerade nicht sicher, wie das zusammenspiel (automatische fahrzeug erkennung + das auth feature hier) funktioniert. da müssten @allcoolusernamesaregone bzw. @GrimmiMeloni was dazu sagen.

@allcoolusernamesaregone
Copy link
Contributor

@dm82m ja, bisher dürfte es bei @maf-soft so gewesen sein, dass die Easee bei Einstecken eines Fremdfahrzeuges kurz anfängt mit maximaler Leistung zu laden, bis EVCC feststellte, dass es ein "Gast"fahrzeug ist und "off durchsetzt".
Jetzt neu mit auf "nicht offen" umgestellter Easee und "authorize: true" könnte @maf-soft kann der Default Modus weiter auf off stehen, und erst nach Erkennung des Fahrzeugs mit Modus PV würde EVCC autorisieren und der Ladevorgang starten. Gastfahrzeuge würden daher nicht geladen werden, weder ein paar Sekunden kurz, noch lang ;)

@GrimmiMeloni
Copy link
Collaborator Author

Ja, das ist alles genau so korrekt.

Wer nicht auf die Authentifizierung per RFID zur Fahrzeugerkennung angewiesen ist, sollte seine Easee ab diesem Release von Zugriff „offen“ auf „privat“ umstellen, und in der evcc Konfig den o.g. authorize Parameter eintragen.
Es wird alles wir vorher funktionieren, der Ladestart wird jetzt aber durch evcc kontrolliert. Bisher startete die Easee den Ladevorgang eigenmächtig, das macht sie dann nicht mehr.
Technischer Effekt: Kein „Überschwinger“ auf 32A beim Ladestart.
Bonus: Soundeffekt beim Ladestart. 😆

@allcoolusernamesaregone
Copy link
Contributor

Erste zwei Ladevorgänge ohne Problem, läuft soweit sauber! :)

@MaxV85
Copy link

MaxV85 commented Sep 16, 2023

Ja, das ist alles genau so korrekt.

Wer nicht auf die Authentifizierung per RFID zur Fahrzeugerkennung angewiesen ist, sollte seine Easee ab diesem Release von Zugriff „offen“ auf „privat“ umstellen, und in der evcc Konfig den o.g. authorize Parameter eintragen.

Es wird alles wir vorher funktionieren, der Ladestart wird jetzt aber durch evcc kontrolliert. Bisher startete die Easee den Ladevorgang eigenmächtig, das macht sie dann nicht mehr.

Technischer Effekt: Kein „Überschwinger“ auf 32A beim Ladestart.

Bonus: Soundeffekt beim Ladestart. 😆

Hallo,

Ich muss leider auch nachfragen, könntest du es nochmals erklären bitte?

Ich habe meine Easee offen und soll jetzt in der App von Easee (zB) auf privat umstellen, obwohl ich nicht mit RFID authentifiziere, richtig? Dazu noch authorize=True und dann geht alles wie davor, aber ohne den kurzen Ladevorgang beim Anstecken, obwohl ich PV oder off bei evcc als Standard habe?

Danke für das Aufschlauen...

@allcoolusernamesaregone
Copy link
Contributor

auf privat umstellen, obwohl ich nicht mit RFID authentifiziere, richtig? Dazu noch authorize=True und dann geht alles wie davor, aber ohne den kurzen Ladevorgang beim Anstecken, obwohl ich PV oder off

korrekt! genau so.

@MaxV85
Copy link

MaxV85 commented Sep 17, 2023

auf privat umstellen, obwohl ich nicht mit RFID authentifiziere, richtig? Dazu noch authorize=True und dann geht alles wie davor, aber ohne den kurzen Ladevorgang beim Anstecken, obwohl ich PV oder off

korrekt! genau so.

Vielen Dank. Und wenn ein Gastfahrzeug anschließt, muss ich dann in der App freischalten oder geht das auch über evcc?

@GrimmiMeloni
Copy link
Collaborator Author

Und wenn ein Gastfahrzeug anschließt, muss ich dann in der App freischalten oder geht das auch über evcc?

Über evcc. In der App freizuschalten würde lediglich dazu führen, das evcc den Ladevorgang sofort wieder unterbindet.

@MaxV85
Copy link

MaxV85 commented Sep 17, 2023

Vielen Dank. Dann ist das ja ein perfekter Patch für mich 😉

@maf-soft
Copy link

Ich habe in Slack mal einen Thread gestartet, weil ich annehme, dass es sich da besser diskutiert, vor allem wenn das Problem vielleicht an mir liegt... Das Ergebnis können wir ja hier zusammenfassen.

@sebster6
Copy link

Hi zusammen, ich habe mit dem Release auch direkt umgestellt, d.h. Easee von frei auf private umgestellt und authorize:true in der Konfiguration ergänzt.
Der Ladevorgang startet problemlos, allerdings kann evcc ihn später nicht mehr stoppen und er läuft weiter, bis ich ihn manuell über die Easee-App beende. Fehler in evcc: „charger disable: command rejected“
Kommt euch das bekannt vor oder bin ich hier ein Sonderfall?

@GrimmiMeloni
Copy link
Collaborator Author

Kommt euch das bekannt vor oder bin ich hier ein Sonderfall?

Das klingt nach Sonderfall, bzw. das habe ich so selbst noch nie gesehen.
Zur Erläuterung: Diese Meldung kommt, wenn die API in Ihrer Rückmeldung signalisiert, das der Charger den Befehl abgelehnt hat.
Wenn das nicht nur einmalig sondern dauerhaft passiert, solltest Du bei Easee ein Ticket eröffnen.

@sebster6
Copy link

Das klingt nach Sonderfall, bzw. das habe ich so selbst noch nie gesehen.

Danke dir! Nach der Erläuterung habe ich nochmal gewissenhaft die Charger auf privat geschaltet und anschließend neu gestartet. Ich weiß nicht, ob es daran lag, aber der erste Versuch mit Wechsel zwischen "Schnell" und "Aus" war erfolgreich über evcc. Ich behalte es im Auge und bin guter Hoffnung, dass es tatsächlich nur ein Sonder-/Ausnahmefall war.

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.

9 participants