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

BMW/Mini api broken #17332

Closed
1 task done
Marc2480 opened this issue Nov 18, 2024 · 98 comments
Closed
1 task done

BMW/Mini api broken #17332

Marc2480 opened this issue Nov 18, 2024 · 98 comments
Labels
bug Something isn't working vehicles Specific vehicle support

Comments

@Marc2480
Copy link

Marc2480 commented Nov 18, 2024

Describe the bug

Just updated to 0.131.6 and the car shows as disconnected, didn't change anything in the yaml config, has been working seamlessly in many previous builds ...

Steps to reproduce

...

Configuration details

vehicles:
- type: template
  template: bmw 
  title: BMW i4M50  
  user: ***** 
  password: ******
  vin: ****** 
  capacity: 80  
  name: ev2

Log details

[main ] INFO 2024/11/18 16:40:48 evcc 0.131.6
[main ] INFO 2024/11/18 16:40:48 using config file: /etc/evcc.yaml
[db ] INFO 2024/11/18 16:40:48 using sqlite database: /var/lib/evcc/evcc.db
[main ] INFO 2024/11/18 16:40:48 listening at :7070
[alfen ] DEBUG 2024/11/18 16:40:49 detected 1p alfen
[main ] ERROR 2024/11/18 16:40:49 creating vehicle ev2 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)

What type of operating system are you running?

Linux

Nightly build

  • I have verified that the issue is reproducible with the latest nightly build

Version

0.131.6

@mikeungers
Copy link

mikeungers commented Nov 18, 2024

Same for me...
Downgrade to 0.131.5 not helps in my case.
Maybe some API change from BMW?

@Marc2480
Copy link
Author

also tried to downgrade ... no fix ...

logged in to my bmw garage to verify if my credentials are still ok, login is ok ...

@andig andig added the vehicles Specific vehicle support label Nov 18, 2024
@andig
Copy link
Member

andig commented Nov 18, 2024

also tried to downgrade ... no fix ...

Also hat BMW etwas geändert. Was? Funktionier ioBroker?

@sfranzis
Copy link

Same for me with an i3.
I updated on Saturday to 0.131.6 and then everything was fine.
Today I restarted because of config change and now I get http 401 from BMW api.

@mfuchs1984
Copy link
Contributor

mfuchs1984 commented Nov 18, 2024

Same issues with our BMW i4. But it is not related to the EVCC update since 3 hours ago, it worked.

Home assistant integration reports the same error

Logger: bimmer_connected.api.authentication
Quelle: components/bmw_connected_drive/config_flow.py:60
Erstmals aufgetreten: 21:01:04 (2 Vorkommnisse)
Zuletzt protokolliert: 21:01:42

MyBMWAuthError due to HTTPStatusError: invalid_client - Client authentication failed (e.g., login failure, unknown client, no client authentication included or unsupported authentication method)

My BMW app works.

@mfuchs1984
Copy link
Contributor

mfuchs1984 commented Nov 18, 2024

See bimmerconnected/bimmer_connected#671

According to this and
home-assistant/core#128598 (comment), a captcha is now needed for the first login. After this, a token can be used.

Was already needed for a while in North America
home-assistant/core#129667
bimmerconnected/bimmer_connected#665

@SEFNSRL
Copy link

SEFNSRL commented Nov 19, 2024

Ich habe auch nach dem Update auf. 0.131.6 Probleme mit unserem MINI. Downgrade hat ebenfalls nicht funktioniert.

@sfranzis
Copy link

Ich habe auch nach dem Update auf. 0.131.6 Probleme mit unserem MINI. Downgrade hat ebenfalls nicht funktioniert.

Es liegt nicht am Update. BMW hat die API bzw den Login-Prozess geändert.

@Expalmi
Copy link

Expalmi commented Nov 19, 2024

Meine beiden, iX3 und Cooper SE, werden auch nicht mehr erkannt.

Seit kurzem erlaubt BMW bei den Autos mit OS7 das einrichten von Mitbenutzern, vorher ging nur ein Benutzer. Evtl. wurde daher der Login Vorgang angepasst.

@SEFNSRL
Copy link

SEFNSRL commented Nov 19, 2024

Ich habe auch nach dem Update auf. 0.131.6 Probleme mit unserem MINI. Downgrade hat ebenfalls nicht funktioniert.

Es liegt nicht am Update. BMW hat die API bzw den Login-Prozess geändert.

War bei mir wohl eher ein Zusammentreffen von 2 Ereignissen ich mache ein Update und BMW ändert die Anmeldung. Danke für die Rückmeldung.

@docolli
Copy link
Contributor

docolli commented Nov 19, 2024

Bin auch schon auf 0.131.6, aber als ich eben evcc auf meinen iX2 umgestellt habe, hat evcc korrekt den SOC des Autos angezeigt.

[bmw ] TRACE 2024/11/19 09:15:53 POST https://customer.bmwgroup.com/gcdm/oauth/token
[bmw ] TRACE 2024/11/19 09:15:54 grant_type=refresh_token&redirect_uri=com.bmw.connected%3A%2F%2Foauth&refresh_token=*** -- {"gcid":"***,"token_type":"Bearer","access_token":"***","refresh_token":"***","scope":"smacc vehicle_data perseus dlm svds openid profile vsapi remote_services authenticate_user cesim offline_access email fupo","expires_in":3599,"id_token":"***"} 

vehicle ist ganz normal mit template: bmw in evcc.yaml definiert.

@sfranzis
Copy link

Bin auch schon auf 0.131.6, aber als ich eben evcc auf meinen iX2 umgestellt habe, hat evcc korrekt den SOC des Autos angezeigt.

vehicle ist ganz normal mit template: bmw in evcc.yaml definiert.

dann evcc erstmal nicht neustarten ;-)

@RampyLou
Copy link

Same here, app still working, login on pc BMW ID not possible to login

@RobertSchuster
Copy link

Email from this morning to BMW:

Liebes BMW-Team,

davon abgesehen, dass die Bonner BMW-Niederlassung eine derart unterirdische Service-Performance in Bezug auf Termintreue, Freundlichkeit und Dienstleistungsverständnis an den Tag legt, dass ich mir weitere Besuche ersparen möchte, scheint auch BMW an sich noch nicht ganz verstanden zu haben was „vernetztes Fahren“ eigentlich bedeutet.
Ständige Ausfälle und Kommunikationsprobleme mit der Cloud erschweren oder verhindern gar Überschussladen an der heimischen PV-Anlage. Der Fehler ist immer an der selben Stelle zu suchen und auch zu Finden – bei der Verbindung der eigenen Technik mit der BMW-Cloud.
Seit gestern scheint man den Vogel abgeschossen und das API-Login defacto deaktiviert zu haben.

Auszug aus dem Trace-Log:
[bmw ] TRACE 2024/11/19 07:44:35 POST https://customer.bmwgroup.com/gcdm/oauth/authenticate
[bmw ] TRACE 2024/11/19 07:44:35 client_id=31c357a0-7a1d-4590-aa99-33b97244d048&code_challenge=XNzsmCcGkwUrqP6-6OGwRixi3xVx39if9Dmv9x8kJeE&code_challenge_method=S256&grant_type=authorization_code&nonce=login_nonce&password=***&redirect_uri=com.bmw.connected%3A%2F%2Foauth&response_type=code&scope=openid+profile+email+offline_access+smacc+vehicle_data+perseus+dlm+svds+cesim+vsapi+remote_services+fupo+authenticate_user&state=cEG9eLAIi6Nv-aaCAniziE_B6FPoobva3qr5gukilYw&username=*** -- {"error": "invalid_client", "error_description": "Client authentication failed (e.g., login failure, unknown client, no client authentication included or unsupported authentication method)"}
[main ] ERROR 2024/11/19 07:44:35 creating vehicle bmw 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)

Nach meinen ersten Untersuchungen der Logs ist jetzt vor dem Login ein Captcha geschaltet.
Wer zur Hölle kommt auf eine solch irrsinnige Idee beim Login-Prozess einer Automatisierungsschnittstelle eine nur mit menschlicher Intelligenz zu lösende Sicherheitsfrage voranzustellen? Sind Eure Programmierer irre, oder einfach nur unfähig?

Gib es irgendeine Idee, wann die API in einer stabilen, nutzbaren Version wieder zu Verfügung steht, oder hat man einfach kein Interesse an zufriedenen Kunden?
Die Hoffnung, dass die BMW-Niederlassungen noch jemals kapieren, dass das Dienstleistungsgeschäft eine Kombination von Dienen und Leisten ist, habe ich eh schon aufgegeben. Vielleicht gilt da der Grundsatz – wer nicht mit der Zeit geht, geht mit der Zeit…

Viele Grüße
Robert Schuster

Of course, BMW doesn't know anything like an acknowledgement of receipt or the allocation of a ticket number that you could refer to.
So I called them this afternoon and asked for help in the "Connected Drive" department.
At least the very friendly lady on the phone understood my request and wants to take care of the matter - that is to say, pass it on.
We'll see...

@Expalmi
Copy link

Expalmi commented Nov 19, 2024

Ich habe eine ähnliche Frage an den Support gerichtet, wenn ich eine Antwort bekomme, melde ich mich.

@andig
Copy link
Member

andig commented Nov 19, 2024

Seit gestern scheint man den Vogel abgeschossen und das API-Login defacto deaktiviert zu haben.

Ich fürchte Du hast da falsche Vorstellungen. Es gibt kein "API" sondern nur reverse- engineerte Aufrufe die jemand der BMW App entlockt hat. Der erste Schritt für BMW wäre, überhaupt mal eine Schnittstelle offiziell anzubieten...

@RobertSchuster
Copy link

He he, dann müssen sie mir eben das mal erklären...
Mir geht es erstmal darum den Pfeifen irgendein Statement zu entlocken. Was das Captcha betrifft, so wundert mich, dass ich mich sowohl auf der Website als auch in der App ohne dieses anmelden kann.

Hätte ich von einer derartigen Ignoranz seitens BMW vorher eine Ahnung gehabt, wäre bei mir der Reiz des i3s deutlich weniger ausgeprägt gewesen.Aber man ist ja lernfähig.
Never ever again...

@Marc2480
Copy link
Author

I do believe there's some kind of API available.

I had been using this app called EEVEE to get charging overviews of my BMW (before the MyBMW app had this kind of functionality) and I recall I had to authorize this app to allow collecting data from BMW. (I revoked this permission when I uninstalled the app)

I had a look, and they even have a step-by-step guide for their process :

https://intercom.help/eevee-mobility/en/articles/5785086-connect-bmw

Maybe this can be of interest ...

Marcher

@SEFNSRL
Copy link

SEFNSRL commented Nov 19, 2024

Ich hatte heute auch beim Telefon Support angerufen, die wussten da noch nicht einmal, was ein Captcha ist. Das Problem wird an die zuständige Abteilung weitergeleitet.

@mikeungers
Copy link

Es gibt kein "API" sondern nur reverse- engineerte Aufrufe die jemand der BMW App entlockt hat. Der erste Schritt für BMW wäre, überhaupt mal eine Schnittstelle offiziell anzubieten...

Es gibt doch diese BMW "Cardata" API.
Allerdings muss man da meines Verständnis nach als "3rd Party" einen Account anlegen, sein Programm/App/Whatever registrieren und kann dann tokens nach Zustimmung des BMW Fahrers erhalten.

Aber das ist für eine selbst gehostete Lösung wie evcc wahrscheinlich nicht praktikabel.

@twixfix
Copy link

twixfix commented Nov 19, 2024

https://bmw-cardata.bmwgroup.com/thirdparty/public/car-data/technical-configuration/api-documentation

Die Seite wurde letzte Woche aktualisiert. Keine Ahnung ob das irgendwie hilfreich ist.

@TinkerBarn
Copy link

TinkerBarn commented Nov 19, 2024

In dem BMW Adapter von TA2k für iobroker wurde bereits gestern Abend das Problem mit dem Captcha und Token gelöst.
Vielleicht hilft das hier etwas für eine Lösung in EVCC
TA2k/ioBroker.bmw#71

@schweiger2
Copy link

Ich setze auch den ioBroker ein und nutze den BMW Connected Drive Adapter.

Mit der Version 2.8.3 des Adapters, der das Captcha integriert, funktioniert der Adapter wieder.

Sieht so aus:

BMW ConnDrive iobroker

@andig andig added the bug Something isn't working label Nov 20, 2024
@SEFNSRL
Copy link

SEFNSRL commented Nov 21, 2024

Eine Übergangslösung wäre vielleicht, die Daten (bei mir iobroker) per MQTT vom BMW Adapter an EVCC zu übertragen. Vielleicht hilft das dem ein oder anderen User, um das Ladelimit weiter nutzen zu können. Zur Übersichtlichkeit sendet ein Blockly-Skript die Daten bei mir vorher vom BMW-Adapter in den EVCC-Ordner.

Screenshot 2024-11-21 040025

name: mini
type: custom
title: MINI # display name for UI
capacity: 28.9 # kWh
soc: # battery soc (%)
source: mqtt
topic: evcc_meters/mini_soc
range: # optional electric range (km)
source: mqtt
topic: evcc_meters/mini_range

@JensPrange
Copy link

Ich habe das gleiche Problem.

ERROR 2024/11/21 10:50:57 creating vehicle i4 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)
WARN 2024/11/21 10:50:58 vehicle 'BMW i4' does not support automatic detection

LG
Jens

@OlliLu

This comment was marked as off-topic.

@andig andig changed the title BMW disconnected after update BMW/Mini api broken Nov 21, 2024
@andig
Copy link
Member

andig commented Nov 23, 2024

Wird sich zeigen, aber warum nicht. Zumindest gibt es mal eine API. Kann man von VW bisher nicht behaupten soweit mir das bekannt ist.

Wäre es da nicht möglich auch die Fahrzeuginformationen von Tibber zu beziehen?

Ist mir nicht bekannt. Tronity wäre noch eine weitere Option.

@BrickTop87
Copy link
Contributor

Ich sehe bei der offiziellen API auch das Problem mit der Abrechnung. Die Preise sind ja öffentlich zugänglich, aber ihr wollt seitens evcc ja sicher nicht in ein zusätzliches Abrechnungsgeschäft einsteigen. Und dass der jeweilige Endkunde selbst direkt mit BMW verrechnet ist, so wie sich das liest, nicht vorgesehen.

Derweil habe ich als Proof of Concept folgendes getestet:

1.: Login-Versuch mit evcc 0.131.6 ohne Modifikation:

sudo ./evcc -l debug vehicle
[main  ] INFO 2024/11/23 21:42:00 evcc 0.131.6
[main  ] INFO 2024/11/23 21:42:00 using config file: /etc/evcc.yaml
[db    ] INFO 2024/11/23 21:42:00 using sqlite database: /root/.evcc/evcc.db
[main  ] ERROR 2024/11/23 21:42:00 creating vehicle bmw_i4 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)
.Soc:     vehicle not available: 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)
Capacity: 81.0kWh
Features: [Offline Retryable]

--> fehlgeschlagen 👎

2.: Login-Versuch mit folgender Modifikation:
File: vehicle/bmw/identity.go, Zeile 63.
geändert zu:

        uri := fmt.Sprintf("%s/oauth/authenticate", v.region.AuthURI)
        headers_test := map[string]string{
                "Content-Type": "application/x-www-form-urlencoded",
                "hcaptchatoken": "P1_eyJ0eXAiOiJKV1Q[...]",
        }
        req, err := request.New(http.MethodPost, uri, strings.NewReader(data.Encode()), headers_test)

Das hcaptchatoken habe ich hier generiert und einfach reinkopiert.

Und siehe da:

sudo ./evcc -l debug vehicle
[main  ] INFO 2024/11/23 21:54:19 evcc 0.131.6
[main  ] INFO 2024/11/23 21:54:19 using config file: /etc/evcc.yaml
[db    ] INFO 2024/11/23 21:54:19 using sqlite database: /root/.evcc/evcc.db
Soc:           9%
Capacity:      81.0kWh
Charge status: B
Range:         36km
Odometer:      12935km
Limit Soc:     100%
OnIdentified:  Mode:pv

--> Login erfolgreich 👍

Solange evcc ununterbrochen läuft müsste man so per Refresh Token eingeloggt bleiben.

Leider verlassen mich jetzt meine Fähigkeiten, das zu Ende zu programmieren. Der hcaptchatoken müsste z.B. sauber per Config übergeben werden können. Der zweite wichtige Teil der Lösung wäre das Persistieren des Refresh Tokens, damit es über einen evcc-Neustart hinaus funktioniert.

@andig
Copy link
Member

andig commented Nov 24, 2024

Login-Versuch mit folgender Modifikation:

Das ist einfach gemacht, allerdings muss auch das Refreshtoken noch gespeichert werden. Falls jemand die Lösung für Mercedes oder Tesla portieren möchte wäre ein PR super. Ich würde mich lieber auf das offizielle API konzentrieren.

Ansonsten bliebe auch weiterhin noch ein Template für Integration eines HA oder ioBroker Adapters zu integrieren.

@mfuchs1984
Copy link
Contributor

mfuchs1984 commented Nov 24, 2024

Home Assistant wird das captcha aus Cybersecurity Gründen nicht integrieren und versucht ebenfalls, auf BMW zuzugehen

home-assistant/core#129667 (review)

@SolarPower2024
Copy link

In Home Assistant gibt es schon einen neuen PR dazu, basierend auf dem bimmerconnected captcha Ansatz: home-assistant/core#131351

@cdyna43
Copy link

cdyna43 commented Nov 24, 2024

Ich sehe bei der offiziellen API auch das Problem mit der Abrechnung. Die Preise sind ja öffentlich zugänglich, aber ihr wollt seitens evcc ja sicher nicht in ein zusätzliches Abrechnungsgeschäft einsteigen. Und dass der jeweilige Endkunde selbst direkt mit BMW verrechnet ist, so wie sich das liest, nicht vorgesehen.

Derweil habe ich als Proof of Concept folgendes getestet:

1.: Login-Versuch mit evcc 0.131.6 ohne Modifikation:

sudo ./evcc -l debug vehicle
[main  ] INFO 2024/11/23 21:42:00 evcc 0.131.6
[main  ] INFO 2024/11/23 21:42:00 using config file: /etc/evcc.yaml
[db    ] INFO 2024/11/23 21:42:00 using sqlite database: /root/.evcc/evcc.db
[main  ] ERROR 2024/11/23 21:42:00 creating vehicle bmw_i4 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)
.Soc:     vehicle not available: 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)
Capacity: 81.0kWh
Features: [Offline Retryable]

--> fehlgeschlagen 👎

2.: Login-Versuch mit folgender Modifikation: File: vehicle/bmw/identity.go, Zeile 63. geändert zu:

        uri := fmt.Sprintf("%s/oauth/authenticate", v.region.AuthURI)
        headers_test := map[string]string{
                "Content-Type": "application/x-www-form-urlencoded",
                "hcaptchatoken": "P1_eyJ0eXAiOiJKV1Q[...]",
        }
        req, err := request.New(http.MethodPost, uri, strings.NewReader(data.Encode()), headers_test)

Das hcaptchatoken habe ich hier generiert und einfach reinkopiert.

Würde das ja gerne ausprobieren. Nur: Wo finde ich denn File: vehicle/bmw/identity.go in meiner Installation (Home Assistant)?

@andig

This comment was marked as resolved.

@SolarPower2024
Copy link

Hier ein Beispiel für die Integration mit ioBroker: das ließe sich leicht in ein Template packen:

Dein Vorschlag ist es also, dass jeder iobroker installieren soll?
Ist für einige die iobroker ohnehin verwenden wohl kein Problem, aber sehe ich nicht als allgemeine Lösung des Problems.

Es gibt ja bereits einen Lösungsansatz, man muss nur das captcha Token mitschicken, wenn man das token nicht in evcc generieren will, kann man ja einfach auf die bimmerconnected URL verweisen. Da kann man das Token generieren, entsprechend einfügen und schon läuft es wieder.

@andig
Copy link
Member

andig commented Nov 24, 2024

Dein Vorschlag ist es also, dass jeder iobroker installieren soll?

@SolarPower2024 dreh mir bitte nicht das Wort im Mund um!

Siehe #17332 (comment).

@TinkerBarn
Copy link

TinkerBarn commented Nov 24, 2024

Dein Vorschlag ist es also, dass jeder iobroker installieren soll? Ist für einige die iobroker ohnehin verwenden wohl kein Problem, aber sehe ich nicht als allgemeine Lösung des Problems.

Nein, so war das nicht gedacht, dass jeder iobroker installieren soll.
Es war lediglich als Hilfe für diejenigen gedacht, die bereits iobroker verwenden, wie man das dort einbinden kann.
Ich selbst verwende das als temporär Lösung, bis klar ist, wie die offizielle Lösung mit EVCC aussehen wird.

Wobei ich persönlich auch die WiCan Lösung interessant finde, da mein i3 ConnectedDrive nur mit 3G/2G unterstützt und kein LTE kann. 3G ist ja bereits abgeschaltet und 2G angeblich spätestens 2030.
sollte ich da noch den i3 haben wäre das eine gute Lösung für mich.

@tilibibi

This comment was marked as off-topic.

@Bewalticus

This comment was marked as off-topic.

@GrimmiMeloni
Copy link
Collaborator

@Bewalticus bitte dazu ein eigenes Issue öffnen, und Logs anhängen. Danke!

@andig
Copy link
Member

andig commented Nov 24, 2024

bitte dazu ein eigenes Issue öffnen, und Logs anhängen. Danke!

...und vorher bitte Fahrzeug manuell auswählen und im "Ankunft" Tab den MinSOC raus löschen!

@Frintrop
Copy link
Contributor

Habe heute mal mit ABRP die Verbindung zu meinem BMW überprüft und reconnected. Der Reconnect funktioniert nur mit User+Password ohne zusätzliche weitere Angaben ( über Enode )

Vielleicht macht es ja Sinn Enode zu implementieren mit einem Geschäftsmodell dahinter zur Gegenfinanzierung ?

@holgerscheller
Copy link

holgerscheller commented Nov 25, 2024

Hatte inzwischen bimmerconnected in evcc per custom vehicle eingebunden, musste aber feststellen das ich jetzt durch die etwas höhere Anzahl an Abfragen in Quota issues laufe :-(

MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 08:17:11." }

Das Einbinden also solches gestaltet sich recht einfach. Über das Vehicle custom habe ich mit "source: script" die entsprechenden Attribute wie "Social", "status" und "range" gefüllt.

Gibt es denn eine Möglichkeit am Loadpoint für das custom vehicle ein längeres Poll Interval einzustellen?

Ich hoffe wirklich das das mit dem BMW API zum Erfolg führt.

@snookerap
Copy link

Hatte inzwischen bimmerconnected in evcc per custom vehicle eingebunden, musste aber feststellen das ich jetzt durch die etwas höhere Anzahl an Abfragen in Quota issues laufe :-(

MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 08:17:11." }

Das Einbinden also solches gestaltet sich recht einfach. Über das Vehicle custom habe ich mit "source: script" die entsprechenden Attribute wie "Social", "status" und "range" gefüllt.

Gibt es denn eine Möglichkeit am Loadpoint für das custom vehicle ein längeres Poll Interval einzustellen?

Ich hoffe wirklich das das mit dem BMW API zum Erfolg führt.

Das klingt ja interressant! Könntest bitte du eine Beispiel-Konfig posten?

@pldemone
Copy link

pldemone commented Nov 25, 2024

Hatte inzwischen bimmerconnected in evcc per custom vehicle eingebunden, musste aber feststellen das ich jetzt durch die etwas höhere Anzahl an Abfragen in Quota issues laufe :-(
MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 08:17:11." }
Das Einbinden also solches gestaltet sich recht einfach. Über das Vehicle custom habe ich mit "source: script" die entsprechenden Attribute wie "Social", "status" und "range" gefüllt.
Gibt es denn eine Möglichkeit am Loadpoint für das custom vehicle ein längeres Poll Interval einzustellen?
Ich hoffe wirklich das das mit dem BMW API zum Erfolg führt.

Das klingt ja interressant! Könntest bitte du eine Beispiel-Konfig posten?

Werte holen und speichern
Disclaimer: Quick and dirty hack. Bitte anpassen und Verzeichnisse adaptieren. Am besten als unpriviligierter User ausführen!

bimmerconnected status USER PASS rest_of_world &> /tmp/bimmer.out
cat /tmp/bimmer.out | grep -o '"remaining_battery_percent": [0-9]*' | cut -d' ' -f2 &> /tmp/soc.out
[...]

In evcc.yaml dann folgendes eintragen

- name: bmw_i4
  type: custom
  soc:
    source: script
    cmd: /bin/sh -c 'cat /tmp/soc.out'
    cache: 5m
[...]

Das erste Mal muss bimmerconnected mit einem Captcha aufgerufen werden. Danach kannst du obige Script anpassen und um deine Werte ergänzen. Es kann dann jede 5 Minuten via cron aufgerufen werden. evcc holt sich dann die gecachten Daten aus /tmp und man gerät nicht in die Situation, dass man wegen der zu vielen Aufrufe gesperrt wird.

@holgerscheller
Copy link

Ja klar, auf die Idee mit dem ins File schreiben hätte ich auch selbst kommen können, vielen Dank für den Tip!
Noch eine kleine Anmerkung zum bimerconnected-Aufruf. Wenn man "jq" installiert hat geht's noch ein bisschen ein bisschen eleganter, so in dieser Art:

bimmerconnected status -v vin --json USER PWD rest_of_world | jq '.data.state.electricChargingState.chargingLevelPercent' > /tmp/soc.out

Dabei die Option "--json" verweden, um die zusätzlichen Infos am Ende auszublende, weil sonst "jq" nicht funktioniert.
Die VIN muss man angeben wenn mehrere Fahrzeuge vorhanden sind.

@cdyna43
Copy link

cdyna43 commented Nov 25, 2024

Hatte inzwischen bimmerconnected in evcc per custom vehicle eingebunden, musste aber feststellen das ich jetzt durch die etwas höhere Anzahl an Abfragen in Quota issues laufe :-(

MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 08:17:11." }

Das Einbinden also solches gestaltet sich recht einfach. Über das Vehicle custom habe ich mit "source: script" die entsprechenden Attribute wie "Social", "status" und "range" gefüllt.

Gibt es denn eine Möglichkeit am Loadpoint für das custom vehicle ein längeres Poll Interval einzustellen?

Ich hoffe wirklich das das mit dem BMW API zum Erfolg führt.

Kann mir jemand für ganz Doofe erklären, was ihr getan habt? Angefangen mit der Installation von bimmer_connect. Das kann ich bei HACS im Homeassistant hinzufügen. Da erscheint es als BMW Connected Drive BETA (oder?). Und was mache ich dann damit?

Die Antwort "sorry, du hast zu wenig Ahnung dafür", ist auch ok, wenn es so ist....

@holgerscheller
Copy link

Ich habe bimmerconncted installiert als "standalone" Lösung ohne Homeassistant. Du findest hier die Beschreibung wie bimmerconnected zu installieren ist:
https://github.com/bimmerconnected/bimmer_connected

bimmer_connected is tested against Python 3.8 or above. Just install the latest release from PyPI using
pip3 install --upgrade bimmer_connected.

@cdyna43
Copy link

cdyna43 commented Nov 25, 2024

Ich habe bimmerconncted installiert als "standalone" Lösung ohne Homeassistant. Du findest hier die Beschreibung wie bimmerconnected zu installieren ist: https://github.com/bimmerconnected/bimmer_connected

bimmer_connected is tested against Python 3.8 or above. Just install the latest release from PyPI using pip3 install --upgrade bimmer_connected.

Danke für die Antwort. Gelesen habe ich das auch. Nur habe ich keine Ahnung, was pip3 install ist. Ich nehme an, dass muss ich irgendwo eingeben. Nur wo? Deswegen habe ich geschrieben "für Doofe"....

@blenni
Copy link
Contributor

blenni commented Nov 25, 2024

@cdyna43
Das hat überhaupt nichts mit dem Issue hier zu tun, gerne hier weiterfragen: #17444

Auf welchem System bist du denn unterwegs, wo läuft dein HA drauf?

@cdyna43
Copy link

cdyna43 commented Nov 25, 2024

@cdyna43 Das hat überhaupt nichts mit dem Issue hier zu tun, gerne hier weiterfragen: #17444

Auf welchem System bist du denn unterwegs, wo läuft dein HA drauf?

Raspberry.
Dann gehe ich mal in den anderen Thread, bevor ich hier Chaos auslöse.

@domi27
Copy link

domi27 commented Nov 26, 2024

Habe gerade mein EVCC aktualisiert (von 0.130 irgendwas) und neu gestartet - zack ist mein BMW "weg".
Ganz großen Dank wie schnell das bei EVCC funktioniert und wie weit (MR) ihr schon seit !

@BrickTop87
Copy link
Contributor

Ich fasse nochmal zusammen, was jetzt einmalig zu tun ist, damit die Anbindung wieder mit der aktuellen Lösung funktioniert:

  1. Update evcc auf Version >= 0.131.8.
  2. evcc.yaml bearbeiten und unter vehicles beim enstsprechenden Auto den Key hcaptcha: vorbereiten.
  3. Einen hcaptcha-Code hier (oder hier für Nordamerika) generieren und möglichst schnell und unverändert in die evcc.yaml hinter hcaptcha: kopieren, abspeichern.
  4. evcc neu starten. Zwischen Generierung Captcha-Code und Neustart evcc dürfen nicht mehr als ~90 Sekunden vergehen. Sonst ist der Code ungültig und es muss ein neuer Code erzeugt werden.
  5. Hat es einmal geklappt, dann bleibt der Account durch einen in der Datenbank evcc.db abgelegten Code verbunden. Auch über Neustarts hinweg.
  6. Änderungen an der Datenbank, ein temporäres Verwenden einer anderen Datenbank oder eine zu lange Downtime von evcc können dazu führen, dass der Code in der Datenbank ungültig wird. Dann müssen wieder einmalig Schritte 3 ff. durchgeführt werden.

Bekannte Schwierigkeiten und Lösungen:

  • Darauf achten, dass der Browser und der Editor den Code nicht verändern. Keine zusätzlichen Zeichen davor und danach, keine Zeilenumbrüche. Ggf. anderen Browser/Editor/Terminal ausprobieren. Ich verwende meist Firefox/Chrome unter Windows, nano auf der Linux-Maschine und PuTTY.
  • Möglichst schnell arbeiten und die o.g. Gültigkeitsdauer beachten.
  • Nicht zu oft kurz nacheinander versuchen. Sonst kann es vorkommen, dass man vorübergehend gesperrt wird. Äußert sich z.B. durch Fehlercode 429 (Too Many Requests).
  • Bei zwei Usern hat der Wechsel (je nach Provider) auf eine neue IP-Adresse geholfen (Fehlercode 403 (Forbidden)). Hier hatte BMW wohl die IP komplett geblockt.

@kaimundo
Copy link

kaimundo commented Dec 2, 2024

@BrickTop87 wollte mich noch bei allen Bedanken für die schnelle Hilfe. Funktioniert wieder alles wie es soll.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working vehicles Specific vehicle support
Projects
None yet
Development

No branches or pull requests