Beiträge von MichaelNRW

    Hallo Zusammen,


    BMW hat eine Änderung am Connected Drive Backend vorgenommen.

    Damit wurden die bisherigen Wege für eine Smart Home Integration geschlossen und BMW bietet nun eine offizielle Schnittstelle an.

    Die zuvor genutzte Schnittstelle war nicht offiziell und wurde mittels Reverse Engineering entwickelt.


    Die neue Schnittstelle basiert auf MQTT und liefert, im Gegensatz zur vorherigen Schnittstelle, nahezu Livedaten.

    In einem Test habe ich fast jeden gefahrenen Kilometer ein Update über MQTT erhalten.


    Jetzt gibt es noch ein Problem...

    Man muss erst einen Car Client erstellen, diesen autorisieren und anschließend Tokens abfragen.

    Diese Tokens haben unterschiedliche Gültigkeiten und müssen vor Ablauf erneuert werden.

    Access und ID Token sind lediglich eine Stunde gültig, während der Refresh Token 14 Tage gültig ist.

    Soweit ich es verstehe, werden alle drei Tokens beim refresh aktualisiert und starten mit einer frischen Gültigkeit.


    Ich bin grade noch dabei das ganze in meiner openHAB Installation einzurichten.

    Manuell bekomme ich das hin und auch die Aktualisierung vor Ablauf der Gültigkeit funktioniert.

    Gestern wurde der Zugang trotzdem nach ein paar Stunden geschlossen, wobei es heute problemlos funktioniert und die Tokens verlängert werden.


    Wer sich für sowas interessiert kann mal in die Doku schauen:

    CarData Customer Portal


    Zur Einrichtung sind folgende Schritte nötig, dabei dürfen die Tabs NICHT geschlossen werden!


    1. Öffnen der Fahrzeugübersicht und Auswahl "BMW CarData"

    https://www.bmw.de/de-de/mybmw/vehicle-overview

    2. Unter "Technischer Zugang zu BMW CarData" die Option "CarData Client erstellen" wählen

    Hier die Client_ID kopieren und beide Schalter aktivieren, wobei man einen Moment warten muss, bevor man den zweiten Schalter aktiviert.

    Sollte man eine Fehlermeldung erhalten, muss man den Tab schließen und die Seite neu laden.

    3. Öffnen des "CarData Customer Portals" und Auswahl der "Device Code Flow API"

    CarData Customer Portal

    4. "Device Flow with PKCE" aufklappen und "gcdm/oauth/device/code" (Starts the device code flow) aufklappen

    5. "Try it out" anklicken, die Client_ID aus 2 einfügen und auf Execute klicken.

    6. Weiter unten sollte die Antwort unter Responses mit Code 200 angezeigt werden.

    Hier findet ihr zwei weitere Informationen: Den User_Code und den Device_Code, beide müssen erneut kopiert werden.

    Diese Daten benötigt ihr zur Autorisierung und der Anfrage des MQTT Passworts.

    7. Im Tab aus Schritt 2 klickt ihr nun auf "Gerät authentifizieren", loggt euch mit eurem Connected Drive Account ein und gebt im neuen Tab den User_Code aus 6 ein.

    Die Eingabe sollte mit "Gerät autorisiert" bestätigt werden.

    8. Geht zurück auf die BMW CarData Seite, scrollt runter zu "CarData Streaming" und erstellt einen Stream.

    9. Klappt die Verbindungsdetails auf und kopiert euch den Benutzernamen (gcid)

    10. Unter "Datenauswahl ändern" könnt ihr nun alle nötigen Daten auswählen.

    Hinweis: Es gibt über 200 Datenpunkte, wobei nicht alle von jedem Fahrzeug unterstützt werden.

    Wer möchte, kann das per Console des Browsers automatisieren, siehe Skript am Ende des Beitrags.

    11. Geht zurück zum "CarData Customer Portal" und klappt "/gcdm/oauth/token" (Request a token for the device) auf.

    12. Klickt auf "Try it out", fügt eure Client_ID und den Device_Code ein. Bestätigt die Eingabe mit "Execute".

    Ihr solltet erneut eine Antwort mit Response Code 200 sehen.

    13. In der Antwort findet ihr nun mehrere IDs und Tokens.

    gcid = Benutzername, identisch zu Schritt 9

    access_token = Wird zur Verwendung der CarData API genutzt

    refresh_token = Token mit dem alle Tokens erneuert werden können

    id_token = Das Passwort für MQTT


    Abschließend könnt ihr die Daten mit dem MQTTX Client testen.

    Hier eine Anleitung:

    CarData Customer Portal

    Für den Subscriber verwendet man seine gcid/VIN, also "12345678-1234-1234-123456789012/WBA1AB23456CD78901".

    Anschließend kann man ein Update per MyBMW App anstoßen, z.B. das Fahrzeug abschließen.
    Nur sollte man die Datenpakete erhalten.


    Im zweiten Post füge ich noch eine Liste der verfügbaren Datenpunkte ein.

    Edit: Leider ist die Gesamtliste aller verfügbaren Punkte zu lang, daher nur die Daten welche mein Auto bisher sendet.


    Verfügbare Integrationen:

    Home Assistant

    ioBroker

    openHAB


    Quelle Skript:

    1) Ist das Nachrüsten der „kleinen“ M-Sportbremse seitens BMW wirklich nicht vorgesehen?

    Nein.

    2) Was sagt ihr zu der Höhe des Kostenvoranschlags?

    Es geht günstiger, auch mit Neuteilen.

    Siehe z.B. salesafter (ist ein BMW Händler)

    BMW M Performance G20 G21 G22 G23 G26 Nachrüstsatz Sportbremse
    Für kurze Bremswege – auch bei hoher thermischer Belastung: Die leistungsstarke Sportbremse verfügt über innenbelüftete Leichtbau-Sportbremsscheiben. Sie ist…
    www.salesafter.eu

    BMW M Performance G20 G21 G22 G23 G26 Nachrüstsatz Sportbremse
    Für kurze Bremswege – auch bei hoher thermischer Belastung: Die leistungsstarke Sportbremse verfügt über innenbelüftete Leichtbau-Sportbremsscheiben. Sie ist…
    www.salesafter.eu


    Bei einer von beiden ist der große Bremskraftverstärker dabei, am besten mit VIN anfragen.

    Ist der in dem Paket dabei?

    Das solltest du immer anfragen, da es hier keine eindeutigen Artikelnummern gibt.


    Angeblich gibt es folgende Sets...

    Ich habe trotz M340i mit Mild Hybrid diese Artikelnummer bestellt und vorab bestätigt erhalten: 34108854026

    In einem Fall wäre es wohl 34108857048


    Du musst dich halt entscheiden, ob dir eine gebrauchte Sportbremse reicht oder du direkt auf die Performance Bremse gehst.

    In beiden Fällen brauchst du den Bremskraftverstärker neu.

    Mit der Performance Bremse darfst du nur noch 18" fahren und je nach Felge ist das schon verdammt knapp.