Zum Hauptinhalt springen

BMW CarData Smart-Home-Integration, kostenlos und Open Source

BMW CarData-Integration für Gladys Assistant

BMW- und MINI-Autos: Batterie, Reichweite, Laden, Türen, Position, Szenen (CarData).

Überblick​

Diese Integration bringt deine BMW- und MINI-Fahrzeuge über BMW CarData in Gladys, den offiziellen Zugang von BMW zu den Daten deines eigenen Autos (Europa): Batterie und Reichweite, Kraftstoff, Laden, Kilometerstand, Verriegelung, Türen, Fenster, Reifen, Position und Entfernung von zu Hause.

  • Nur lesend: CarData sendet Daten und nimmt keine Befehle an. Ver- oder Entriegeln, Klimatisierung oder Laden lassen sich von Gladys aus nicht starten (BMW bietet Privatpersonen über CarData keine Fernbefehle).
  • Echtzeit: Die Integration hört den CarData-Stream (MQTT): Eine vom Auto gemeldete Änderung kommt in Sekunden in Gladys an und kostet nichts.
  • REST-API: Sie ergänzt, was der Stream nicht sendet (Türverriegelungsstatus, Modell des Autos, Daten bei getrenntem Stream). BMW erlaubt 50 Aufrufe pro Tag für das ganze Konto, zurückgesetzt um 00:00 UTC; die Integration zählt sie und hält 5 für deine eigenen Anfragen frei.
  • Cloud: Die Daten des Autos kommen von den BMW-Servern zu Gladys; sie gehen nirgendwo anders hin.

Die zwei Widgets der Integration: das Auto und das CarData-Konto (generierte Illustration, kein Screenshot)

Voraussetzungen​

  • Gladys 5.1.1 oder neuer.
  • Ein Auto mit aktivem ConnectedDrive-/MINI-Connected-Vertrag in einem unterstützten (europäischen) Markt, in deinem MyBMW-Konto, dessen Hauptnutzer du bist (CarData liefert Zweitnutzern keine Daten).
  • Eine CarData-Client-ID: Öffne im MyBMW- (oder MINI-) Webportal dein Auto → BMW CarData → CarData-Client erstellen und aktiviere beide Abos, CarData API und CarData Stream. Eine Client-ID ohne Abos liefert Tokens, die nicht funktionieren.
  • Der konfigurierte Datenstream: Auf derselben Seite Datenstream konfigurieren, die gewünschten Daten auswählen (Batterie, Türen, Fenster, Position, Reifen…) und speichern. BMW streamt nur, was dort ausgewählt ist.
  • Nur eine Stream-Verbindung pro BMW-Konto: Nutzt bereits ein anderes Tool (Home Assistant, MQTT Explorer…) den CarData-Stream des Kontos, trennen sie sich gegenseitig.

Konfiguration​

  1. Gib die CarData-Client-ID ein und speichere.
  2. Klicke auf Verbinden: Eine BMW-Seite öffnet sich. Melde dich an, prüfe, dass der Code dem im Verbindungsstatus der Integration entspricht, und bestätige ihn. Gladys übernimmt die Anmeldung in wenigen Sekunden selbst.
  3. Gehe zu Entdecken und füge dein Auto hinzu.
  4. Optional: Füge die Widgets BMW-Fahrzeug und BMW CarData einem Dashboard hinzu.
FeldStandardZweck
CarData-Client-ID—Die ID des im Portal erstellten CarData-Clients.
BMW-Konto—Die Schaltfläche Verbinden (BMW-Anmeldung per Gerätecode).
Stream-Host / -Portcustomer.streaming-cardata.bmwgroup.com / 9000Wie im Portal neben den Stream-Zugangsdaten angezeigt.
API-Abruf alle (Stunden)4Automatischer REST-Abruf jedes Autos; 0 = nur auf Anfrage. 4 h = 6 Aufrufe pro Tag und Auto.
Heimradius (m)200Um die Häuser von Gladys (mit Koordinaten): Innerhalb dieser Entfernung ist das Auto zu Hause.
Sprache der TexteAutomatischNamen der Funktionen und Szenenzusammenfassungen.

Die Anmeldung bleibt gültig, solange Gladys läuft: Die Tokens werden stündlich erneuert. Bleibt Gladys länger als zwei Wochen aus oder löschst du den Client im Portal, klicke erneut auf Verbinden (ein Szenenauslöser warnt dich).

Verwendung​

Geräte​

Ein Gerät pro Auto, nach seinem Modell benannt (zum Beispiel „BMW iX1 xDrive30“). Eine Funktion erscheint, sobald das Auto ihren Wert gemeldet hat: Suche nach einer ersten Fahrt oder Ladung erneut, falls eine fehlt. Alle Funktionen sind schreibgeschützt.

Batterie, elektrische Reichweite, Gesamtreichweite, Tankfüllstand und Kraftstoffmenge, Ladekabel angeschlossen, lädt, Ladestatus, Ladeleistung, Ladeziel, verbleibende Ladezeit, Kilometerstand, verriegelt, Türen, Kofferraum, Motorhaube, Fenster, Schiebedach, in Fahrt, Vorklimatisierung, die vier Reifendrücke (bar) und die Entfernung von zu Hause.

Dashboard-Widgets​

  • BMW-Fahrzeug: das Bild, das BMW für das Auto liefert (einmal abgerufen, 1 API-Aufruf), Batterie oder Kraftstoff, Reichweite, Verriegelung, Öffnungen, Laden, Position, Reifen, 12-V-Batterie, Kilometerstand, das Alter der Daten, eine Schaltfläche Karte und eine Schaltfläche Jetzt abrufen (1 API-Aufruf).
  • BMW CarData: die API-Aufrufe des Tages von 50, der Stream, seine letzte Nachricht, die Autos und wie lange die Anmeldung noch gültig ist.

Szenen​

Auslöser (jeder lässt sich auf ein Auto beschränken):

  • Verriegelt oder entriegelt, verriegelt, aber offen (eine Tür, der Kofferraum, die Haube, ein Fenster oder das Schiebedach);
  • Ladestatus geändert (lädt, pausiert, beendet, Fehler…), Kabel an- oder abgesteckt;
  • Losgefahren oder angehalten, zu Hause angekommen oder weg;
  • Anmeldung erneuern.

Aktion: Status lesen eines Autos (Batterie, Reichweite, Kraftstoff, Laden, Verriegelung, Öffnungen, Zuhause, Kilometerstand, eine Zusammenfassung), optional nach einem API-Abruf.

Beispiele:

  • Wenn das Auto verriegelt, aber offen ist → schicke mir eine Nachricht mit {{triggerEvent.data.openings}}.
  • Wenn das Laden beendet ist → benachrichtige „Das Auto ist geladen: {{triggerEvent.data.battery_level}} %“.
  • Wenn das Auto nach Einbruch der Dunkelheit zu Hause ankommt → schalte die Einfahrtsbeleuchtung ein.

Transport​

Cloud: Die Autos tragen das Cloud-Abzeichen. Solange der Stream getrennt ist, zeigt das Abzeichen einen orangen Punkt (eingeschränkter Modus): Die Werte kommen dann nur über die API, im Abstand mehrerer Stunden.

Fehlerbehebung​

  • „access_denied“ beim Bestätigen des Codes: ein bekanntes Problem auf BMW-Seite. Versuche es in einem privaten Browserfenster, öffne das Portal selbst und gib den Code von Hand ein. Bleibt es dabei, lösche den CarData-Client im Portal, erstelle einen neuen mit beiden Abos, gib die neue Client-ID ein und verbinde erneut.
  • Verbunden, aber kein Wert ändert sich: Prüfe die Datenauswahl des Streams im Portal, dann ver- und entriegle das Auto, damit es sendet. Ein schlafendes Auto sendet nichts.
  • „Eine andere App belegt den Stream“: Beende den anderen CarData-Client des Kontos (eine Stream-Verbindung pro Konto).
  • „Die 50 täglichen API-Aufrufe sind verbraucht“: Alle Tools des Kontos teilen sie sich; der Stream läuft weiter, neue Aufrufe um 00:00 UTC. Senke bei Bedarf die API-Abrufhäufigkeit.
  • Logs: Klicke in der Konfiguration der Integration auf Diagnose und öffne dann Einstellungen → Überwachung: Dort steht eine anonymisierte Zusammenfassung (Stream, Anmeldung, Kontingent, empfangene Daten pro Auto, ohne Token und volle FIN). Hänge sie an ein Issue auf GitHub mit deinen Versionen von Gladys und der Integration.

Konfigurationseinstellungen​

Diese Einstellungen fragt BMW CarData in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
BMW-CarData-ClientsectionNeinÖffne im MyBMW- (oder MINI-) Webportal dein Auto → BMW CarData. Klicke auf „CarData-Client erstellen“, aktiviere BEIDE Abos „CarData API“ und „CarData Stream“, kopiere dann die Client-ID hierher und speichere. Nur Europa; du musst Hauptnutzer des Autos sein.
CarData-Client-IDstringJaDie vom Portal nach „CarData-Client erstellen“ angezeigte ID (eine UUID).
AnmeldungsectionNeinZuerst speichern, dann auf Verbinden klicken: Eine BMW-Seite öffnet sich. Melde dich an, prüfe, dass der Code dem im Verbindungsstatus von Gladys entspricht, und bestätige. Bei „access denied“ in einem privaten Fenster erneut versuchen und den Code von Hand eingeben.
BMW-Kontoaccount_linkNein
Stream (Echtzeit)sectionNeinKlicke im Portal auf „Datenstream konfigurieren“ und wähle die gewünschten Daten (Batterie, Türen, Position…): BMW streamt nur, was dort ausgewählt ist. Host und Port unten sind die im Portal angezeigten; die Standardwerte passen für die meisten Konten. Nur eine Stream-Verbindung pro BMW-Konto: andere CarData-Tools beenden.
Stream-HoststringNein
Stream-PortnumberNein
OptionensectionNeinBMW erlaubt 50 API-Aufrufe pro Tag für das ganze Konto (Zurücksetzung um 00:00 UTC). Der Stream kostet keine. Die API ergänzt, was der Stream nicht sendet (Türverriegelung, Daten bei getrenntem Stream).
API-Abruf alle (Stunden)numberNein0 = nur auf Anfrage. 4 h = 6 Aufrufe pro Tag und Auto.
Heimradius (m)numberNeinUm die Häuser von Gladys: Innerhalb dieser Entfernung ist das Auto zu Hause.
Sprache der TexteselectNeinNamen der Funktionen und Szenenzusammenfassungen. Automatisch: die Sprache deines Dashboards, sobald ein Widget angezeigt wurde.

So installierst du BMW CarData in Gladys​

  1. Öffne in Gladys Integrationen: BMW CarData erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/william-de71/gladys-bmw-cardata:0.1.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/William-De71/gladys-bmw-cardata.

BMW CarData benötigt Gladys >=5.1.1. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

BMW CarData ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von William-De71 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂