Praxistest: Verwendung der Auto-API für BMW Fahrzeugdaten

17. März 2019
Was wir an einem Tag bei der Abfrage eines vernetzten Autos gelernt haben.

Die Anzahl der Anfragen, wie APIs für vernetzte Autos funktionieren und was zu erwarten ist, hat stark zugenommen. Um diese Fragen zu beantworten, haben wir uns entschlossen, einen Feldtest mit einem vernetzten Auto durchzuführen, auf das über die Auto-API von HIGH MOBILITY - einer standardisierten API für vernetzte Autos - zugegriffen werden kann. In diesem Beitrag werden wir einige der Experimente mit einem vernetzten BMW i3 in Tallinn, Estland, mit Ihnen teilen, damit Sie aus erster Hand sehen können, wie die Arbeit mit Autodaten über ein echtes Fahrzeug wirklich aussieht und sich anfühlt. Den ganzen Tag über haben wir eine Anwendung laufen lassen, um die Daten des Fahrzeugs über unsere Auto-API zu sammeln. In diesem Beitrag werden wir erklären, welche Informationen wie häufig gesendet wurden und wie es aussieht, wenn Daten über unsere standardisierte Schnittstelle abgerufen werden.

Kurze Hintergrundinformationen zur Auto-API

Obwohl eine grundlegende Konnektivität für die Autos auf unseren Straßen seit mehr als zwei Jahrzehnten besteht, gab es bisher keine APIs, die Zugang zu ihren Daten bieten. HIGH MOBILITY wurde aus der Idee heraus gegründet, dass vernetzte Autos eine große Rolle in der Zukunft der Mobilität spielen werden und dass es möglich sein sollte, mit allen Autos auf die gleiche Weise zu interagieren. Von Anfang an sahen wir ein großes Interesse von Entwicklern an unserer Arbeit, was uns dazu veranlasste, die APIs und Tools zu entwickeln, die sie für die Arbeit mit vernetzten Fahrzeugen benötigten. Darüber hinaus haben wir unermüdlich mit den Automobilherstellern zusammengearbeitet, um mit Hilfe unserer Fahrzeug-Emulatoren und Simulationen Vorabversuche zu ermöglichen - lange bevor Daten aus der Produktion verfügbar waren.

Einrichten der Berechtigungen für die Abfrage von BMW CarData

Um die aktuellsten Daten des Fahrzeugs in Echtzeit zu sehen, haben wir eine Anwendung geschrieben, die alle fünf Sekunden neue Fahrzeugdaten vom i3 über unsere Plattform abruft und die resultierenden JSON-Antworten speichert. Bei jeder Abfrage wurden Daten abgefragt, die allen Berechtigungen entsprechen, die im Abschnitt "Berechtigungen" im Produktionsmodus ausgewählt wurden.

Auf diese Weise konnten wir die neuesten Daten sehen, die das Auto übermittelt hatte. Die Anwendung war fast genau so konfiguriert, wie sie es gewesen wäre, wenn sie Daten von einem Emulator auf unserer Plattform gesammelt hätte. Der einzige Unterschied bestand darin, dass die Anwendung mit den Produktions-API-Anmeldeinformationen initialisiert wurde.

Hier ist die Route, die wir genommen haben. Sie bestand aus vielen kurzen Fahrten.

Parsing der Fahrzeugdaten

Am Morgen setzten wir uns ins Auto und starteten das Programm. Wir begannen, Besorgungen zu machen, während wir die Antworten von unseren Servern im Auge behielten. Obwohl wir mit der Theorie bestens vertraut sind, hatten wir viele Fragen dazu, wie die API-Daten vom Auto während der täglichen Aktivitäten aktualisiert werden.

Wie häufig würden sich die Daten ändern?
Werden die Daten in regelmäßigen Abständen aktualisiert, entweder in Bezug auf die Zeit oder den Kilometerstand?
Wenn die Aktualisierungen unregelmäßig erfolgen, wodurch werden sie ausgelöst?

Während wir unsere Besorgungen machten - wir kauften Snacks an einer Tankstelle, fuhren zu einer Autowaschanlage und trafen uns mit Freunden zum Mittagessen - begannen wir herauszufinden, wie häufig Daten von der Antenne auf dem Dach gesendet wurden oder, genauer gesagt, was einen BMW dazu veranlasst, seinen aktuellen Fahrzeugstatus hochzuladen.

Hier ein Auszug aus einer der Rückmeldungen:

In den ersten Stunden waren wir uns nicht ganz sicher, was das Auto veranlasste, Updates zu senden. Obwohl die Daten sinnvoll waren - der Kilometerstand stieg, der Batteriestand sank - wurden die API-Daten nur sporadisch aktualisiert. Manchmal vergingen dreißig Minuten zwischen den Aktualisierungen, ein anderes Mal lagen die aufeinanderfolgenden Aktualisierungen weniger als eine Minute auseinander.

Als wir feststellten, dass die Aktualisierungen nicht in regelmäßigen Abständen erfolgten, begannen wir, unsere Interaktionen mit dem Auto zu notieren, um den Zusammenhang zwischen den Aktionen des Besitzers und der Häufigkeit der Aktualisierungen zu ermitteln. Um festzustellen, ob etwas so Einfaches wie das Entriegeln der Türen eine Aktualisierung auslösen würde, beschlossen wir, eine Reihe von Tests durchzuführen. Wir haben dann eine kurze Fahrt gemacht, wobei wir die Intervalle zwischen dem Öffnen der Tür, dem Einschalten des Motors usw. übertrieben haben (unten zu sehen von 12:09:40 bis 12:19:20) und erhielten zwei Updates.

Wir fanden heraus, dass das Auto Daten sendete, wenn die Vordertür geöffnet wurde und erneut, wenn der Fahrer das Auto nach der Fahrt verließ und die Türen verschloss. Die Aktualisierungen dauerten etwa 50 Sekunden, bis sie über die API verfügbar waren. Zu diesem Zeitpunkt waren wir uns immer noch nicht sicher, ob es notwendig war, das Auto zu fahren, damit es nach dem Verschließen der Türen eine Aktualisierung sendete. Um dies festzustellen, entriegelten und öffneten wir die Fahrertür (12:27:55) und erhielten etwa fünfzig Sekunden später eine Aktualisierung. Ohne das Auto zu fahren, stiegen wir aus und verriegelten die Türen (12:32:00). Wiederum etwa fünfzig Sekunden später erhielten wir eine Aktualisierung.

Das Auto

Bei dem in diesem Test verwendeten Fahrzeug handelt es sich um ein Verbrauchermodell und in keiner Weise um ein BMW Testfahrzeug. Es handelt sich um einen BMW i3 REx aus dem Jahr 2015 mit einem ConnectedDrive-Abonnement, das das Paket "Remote Services" umfasst. Weitere Informationen zu den in Frage kommenden Fahrzeugen und den erforderlichen Datenpaketen finden Sie auf unserer BMW Seite.

Schlussfolgerung

Es scheint, als ob BMW die Fahrzeugdaten zu Beginn und am Ende einer Fahrt aktualisiert. Eine Aktualisierung erfolgt, wenn der Fahrer seine Tür entriegelt und öffnet, und eine weitere, wenn der Fahrer das Fahrzeug verlässt und es verriegelt.

Obwohl wir keine Daten darüber haben, ist es plausibel, dass das Auto auch in anderen Situationen Updates sendet. Zum Beispiel, wenn es für eine bestimmte Zeit geparkt oder gefahren wurde, oder wenn die Batterie aufgeladen ist. Ohne weitere Tests können wir das nicht mit Sicherheit sagen.

Wir planen, in Zukunft ähnliche Tests mit Fahrzeugen anderer Hersteller durchzuführen und dabei unsere App zur Datenerfassung und unsere experimentellen Techniken zu verfeinern. Je mehr Zeit wir mit den Fahrzeugen verbringen, auf die unsere Plattform zugreift, desto genauer können wir die Unterschiede zwischen den verschiedenen Methoden der Hersteller zur Aktualisierung ihrer Daten herausarbeiten.