-
-
Notifications
You must be signed in to change notification settings - Fork 686
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
BMW/Mini hcaptcha integration #17445
Conversation
Lgtm. Ok to merge? |
Yes from my side. |
I have successfully built and tested your fix on Raspberry Pi4. Please go ahead with merging. I suggest some script wizard implementing a shell script to automate the captcha generation and transfer to evcc.yaml process. Testing: Not having hcatcha defined in evcc.yaml throws a "missing credentials" error as expected.
Vehicle config:
|
I tried type: template and got this: main ] FATAL 2024/11/26 10:48:17 cannot create vehicle 'ev4': cannot create vehicle type 'template': invalid key: hcaptcha Do I need to enter my VIN? Side note: I there a reason why my evcc logs under "add ons" no longer update or only update like every 10 minutes? If not, is there a fix? |
Are you sure you ran the newly compiled executable? Also, when I generate an hcptcha code it always starts with "P1_...". Are you sure you got it right? |
Of course I did not....I am afraid I need to be told every step.... What do I need to do? |
Just wait for the next release of evcc and make an update. The fix will be included then. |
Will do. Thank you! |
@BrickTop87 |
I guess the sqlite database your evcc normally uses isn't located at |
Same thing calling it without sudo. And it does get fed /etc/evcc.yaml which contains the token. |
Did you renew the Just tried, works as expected:
|
No, evcc was running normally in parallel. Does |
The But after successfully logging in with user, password and hcaptcha, we get another set of tokens from BMW (access token and refresh token) and store them in the sqlite database My guess in your case is that evcc normally uses the database |
Thanks for taking the time to look into this. You are right But why doesn't the debug command use |
When running as a service, the database path is defined in the unit configuration file as |
@BrickTop87 mir fällt grad auf dass 9754bb9#diff-043b7389199df70a93120e91d23de8e2670cbc95f0cbe61859be4818444e4cb4R174 Den err von drüber überschreibt, da fehlt also eine Fehlerbehandlung. Dem Code fehlt auch die Formatierung mit gofmt. Deshalb baut gerade kein Nightly. Willst Du es nochmal anschauen? |
Sieht so aus 👍🏻 |
Mich hat der Timeout für das Captcha jetzt auch interessiert. Deswegen habe ich es mal ausprobiert. Bei meinen Versuchen:
Irgendwo zwischen 1:45 min und 2:00 min ist der Timeout. Nicht üppig, aber eigentlich ausreichend für Kopieren und evcc neustarten. |
…zumal wenn man es über das UI macht?! |
Normalerweise sollte das ausreichen. Da es bei mir dann funktioniert hat, sehe ich da auch absolut keine Notwendigkeit tiefer zu forschen. Nur wenn mehr User damit ein Problem haben, wollte ich es einmal dokumentieren. |
Noch zum Thema andere Fehlermeldungen: BMW gibt im Nichterfolgsfall nur Mir würde jetzt nur noch eine Abfrage auf Zeichenzahl des Captchas und evtl. erste x Zeichen einfallen, um zumindest die gröbsten Fehler vorher abzufangen. Andererseits sind wir dann unflexibel, wenn sich an einem der Parameter etwas BMW-seitig ändert. Würde ich nur machen, wenn es bei sehr vielen Leuten jetzt zu Problemen führt. |
This comment was marked as off-topic.
This comment was marked as off-topic.
OT: Es wäre wunderbar wenn diese Frage nicht in jedem einzelnen PR auftauchen würde. Danke. |
Ich habe gerade das Update 0.131.8 eingespielt, die evcc.yaml wie beschrieben geändert (hcaptcha) und jetzt funktioniert wieder alles. Vielen Dank! |
Hat das schon jemand unter Homeassistant zum Laufen bekommen? Bei mir sieht das dann so aus: [main ] INFO 2024/11/30 10:29:44 evcc 0.131.8 Ich befürchte, das EVCC Add-On braucht einfach so lange zum Starten, dass der Token schon abgelaufen ist, wenn nach ca. 5 Minuten nach dem Start die Daten erstmals an die BMW-Server geschickt werden... Übrigens sind meine Logs beim Starten auch immer so 8 bis 10 Minuten hinterher. Das heißt, ich kann leider auch nicht in Echtzeit sehen, was da gerade versucht wird und ggf. schied geht. Haben das andere auch? Irgendwelche Ideen? Nachtrag: starting evcc: 'EVCC_DATABASE_DSN=/data/evcc.db evcc --config /config/evcc.yaml' Nächstes Edit: Jetzt habe ich es geschafft, zwischen Abruf Token und Abfrage EVCC nur ca. eine Minute zu haben. Ergebnis aber weiterhin die gleiche Fehlermeldung. Es liegt wohl doch nicht an der Zeit starting evcc: 'EVCC_DATABASE_DSN=/data/evcc.db evcc --config /config/evcc.yaml' Edit 3: Weitere Versuche, neue Fehlermeldung: Using config file: /config/evcc.yaml |
@andig v0.131.8 ist bei mir installiert, hacaptcha für meinen Mini ist gesetzt und der SoC wird wieder ausgelesen. Vielen Dank ans ganze Team für die tolle Arbeit. |
Bei mir will es noch nicht so, aber da kann auch BMW schuld dran sein: |
Selber Fehler wie bei mir... |
Hi, ich hatte die gleichen (bzw. ähnliche) Fehlermeldungen aber nach einem Passwortreset bei BMW sind nun meine beiden Fahrzeuge wieder online. Bevor es geklappt hat, musste ich auch mehrfach neu starten. Bei ersten Mal hatte ich ein 401-Fehler bekommen. |
Leider läuft es bei mir nicht so rund wie bei anderen. Ich habe trotz Update auf die 0.131.8 Probleme meinen Mini wieder online zu bekommen. Jemand eine Idee? |
Hallo Zusammen, |
Bei mir hat auch geklappt. Danke! |
Mehrfach neu starten und jedes Mal neuen Captcha einfügen oder einfach so? Hat irgend jemand es unter Home Assistant zum Laufen bekommen? Ich habe es gefühlt 100 Mal versucht, auch mit geändertem Passwort. "creating vehicle ev4 failed: cannot create vehicle type 'template': cannot create vehicle type 'bmw': Client authentication failed (e.g., login failure, unknown client, no client authentication included or unsupported authentication method): unexpected status: 401 (Unauthorized)" Nachtrag: Neues Ergebnis: Nächster Edit: Nächster Edit: |
Do you use the same hcaptcha for both cars ? thx! |
Hi, yes both the same. Best regards |
Hi, bei mir war captcha in der Datenbank und dann habe ich mehrfach gestartet ohne etwas zu ändern. Läuft unter Home Assistant. Viel Erfolg. |
Funktioniert hier, mit Home Assistant. |
Ich bekomme keinen Fehler 401, sondern 403: Hat sonst auch noch jemand das Problem? |
Hey, |
Bei mir hat es direkt unter HA funktioniert. Fahrzeug wurde direkt erkannt. Ich habe irgendwo gelesen, dass das hcaptcha nur kurze Zeit gültig ist. Danke an allen die die Losung getestet und umgesetzt haben. |
@blenni und @cmayr123: Bei euch klingt es als würde BMW wegen zu vielen Zugriffen den Zugang temporär blockieren. Habt ihr sonst noch was parallel am laufen, was auf die BMW Dienste zugreift? |
I had to comment out the loadpoints and chargers section in my evcc.yaml to disable my charger so that EVCC started up quick enough to avoid the hcaptcha token from expiring. Once it had got the token I re-enabled the charger and started the evcc service again. |
I didn't realize that there are setups where evcc needs a lot of time to start up. |
Bei mir unter Home Assistant immer der 401er Fehler. Identische evcc.yaml hat unter Windows eine Minute vorher funktioniert... Ist es bei euch eigentlich auch so, dass ihr unter HA beim Starten die Logs nicht seht? Die Logs kommen erst, wenn er entweder verbunden ist oder aber, wenn er wegen FATAL abgebrochen hat - sprich, man sieht immer erst nach 5 bis 10 Minuten, was Sache ist. Vielleicht sollte ich einfach mal mein EVCC auf dem HA neu installieren... Edit: Ergebnis weiterhin: Bei den Protokollen bekomme ich übrigens bisweilen: Weiterer Nachtrag: |
I struggled a bit to get my existing configuration running with the hcaptcha, adding the car and captcha in the web-configuration would work, but not in the yaml config. What fixed it for me was use to "evcc migrate" and adding a fresh captcha in the yaml to get the existing configuration running. |
Bei mir geht es inzwischen. |
Minimally invasive fix for broken BMW/Mini API #17332
hcaptcha must be generated once using https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html and copied to evcc.yaml
Refresh tokens received after first login are persisted in the database and get refreshed every time the token is refreshed.