Essai sur le terrain : Utilisation de l'API Auto pour travailler avec BMW CarData

17 mars 2019
Tout ce que nous avons appris d'une journée passée à interroger une voiture connectée.

Nous avons observé une forte augmentation du nombre de demandes concernant le fonctionnement des API pour les voitures connectées et ce à quoi il faut s'attendre. Pour répondre à ces questions, nous avons décidé d'effectuer un test sur le terrain avec une voiture connectée à laquelle on peut accéder via l'API Auto de HIGH MOBILITY - une API standardisée pour les voitures connectées.Dans ce billet, nous allons partager avec vous certaines des expériences que nous avons réalisées avec une BMW i3 connectée à Tallinn, en Estonie, afin que vous puissiez voir de première main à quoi ressemble le travail avec des données de voiture via un véhicule réel. Tout au long de la journée, nous avons utilisé une application pour recueillir les données de la voiture via notre Auto API. Dans ce billet, nous expliquerons quelles informations ont été envoyées et à quelle fréquence, et à quoi ressemble l'accès aux données via notre interface standardisée.

Un résumé de l'historique de l'API Auto

Bien qu'une connectivité de base pour les voitures circulant sur nos routes existe depuis plus de deux décennies, il n'y avait jusqu'à présent aucune API offrant un accès à leurs données. HIGH MOBILITY a été fondée sur l'idée que les voitures connectées joueront un rôle énorme dans l'avenir de la mobilité, et qu'il devrait être possible travailler avec toutes ces voitures de la même manière. Dès le début, nous avons constaté un grand intérêt de la part des développeurs pour ce que nous faisions, ce qui nous a incités à construire les API et les outils dont ils avaient besoin pour travailler avec des véhicules connectés. En outre, nous avons travaillé sans relâche avec les constructeurs automobiles pour fournir des aperçus par le biais de nos simulateurs et simulations de véhicules - bien avant que les données de production ne soient disponibles.

Configuration des autorisations pour l'interrogation de BMW CarData

Afin de voir en temps réel les dernières données disponibles sur la voiture, nous avons écrit une application pour récupérer les nouvelles données de la voiture i3 via notre plateforme toutes les cinq secondes, et avons enregistré les réponses JSON résultantes. Chaque requête demandait des données correspondant à toutes les permissions sélectionnées dans la section "Permissions" en mode Production.

Cette disposition nous a permis de voir les dernières données que la voiture avait relayées. L'application a été configurée presque exactement comme elle l'aurait été si elle avait recueilli des données à partir d'un émulateur sur notre plate-forme. La seule différence est que l'application a été initialisée avec les informations d'identification de l'API de production.

Voici l'itinéraire que nous avons emprunté. Il était composé de nombreux petits trajets.

Analyse des données du véhicule

Pendant le matin, nous avons sauté dans la voiture et lancé le programme. Nous avons commencé faisant les courses, tout en gardant un œil sur les réponses de nos serveurs. Bien que nous soyons intimement familiarisés avec la théorie, nous avions de nombreuses questions sur la façon dont les données de l'API sont mises à jour par la voiture au cours des activités quotidiennes.

À quelle fréquence les données change ?
Les données sont-elles mises à jour à intervalles réguliers, que ce soit en termes de temps ou de kilométrage ?
Si les mises à jour sont irrégulières, qu'est-ce qui les déclenche ?

Au fur et à mesure de nos courses - achat d'un snack dans une station-service, lavage de voiture et déjeuner avec des amis - nous avons commencé à déterminer la fréquence des données transmises par l'antenne montée sur le toit ou, plus précisément, ce qui pousse une BMW à télécharger le dernier état de son véhicule.

Voici une partie d'une des réponses :

Pendant les premières heures, nous n'étions pas tout à fait sûrs de ce qui déclenchait l'envoi de mises à jour par la voiture. Bien que les données soient logiques - le kilométrage augmente, le niveau de la batterie baisse - les mises à jour des données API étaient sporadiques. Parfois, trente minutes s'écoulaient entre les mises à jour ; d'autres fois, des mises à jour consécutives étaient espacées de moins d'une minute.

Lorsque nous avons réalisé que les mises à jour ne se produisaient pas à intervalles réguliers, nous avons commencé à noter nos interactions avec la voiture afin de déterminer la relation entre les actions d'un propriétaire et la fréquence des mises à jour. Pour déterminer si une action aussi simple que le déverrouillage des portes pouvait déclencher une mise à jour, nous avons décidé d'effectuer une série de tests. Nous avons pris la voiture pour un très court trajet, avec des intervalles exagérés entre l'ouverture de la porte, l'allumage du moteur, etc. (voir ci-dessous de 12:09:40 à 12:19:20), et nous avons obtenu deux mises à jour.

Nous avons découvert que la voiture envoyait des données lorsque la porte d'entrée était ouverte, et à nouveau lorsque le conducteur quittait la voiture après le trajet et verrouillait les portes. Les mises à jour ont mis environ 50 secondes à être disponibles via l'API. À ce stade, nous ne savions pas encore s'il était nécessaire de conduire la voiture pour qu'elle envoie une mise à jour après le verrouillage des portes. Afin de le déterminer, nous avons déverrouillé et ouvert la porte du conducteur (12:27:55) et avons obtenu une mise à jour environ cinquante secondes plus tard. Sans conduire la voiture, nous en sommes sortis et avons verrouillé les portes (12:32:00). Nous avons vu une mise à jour, à nouveau environ cinquante secondes plus tard.

La voiture

La voiture utilisée dans ce test est un modèle disponible pour tout le monde, et non pas un véhicule d'essai BMW. Il s'agit d'une BMW i3 REx 2015 avec un abonnement ConnectedDrive comprenant le pack "Remote Services". Vous pouvez trouver plus d'informations sur les véhicules éligibles et les paquets de données nécessaires sur notre page bmw.

Conclusion

Il semble que BMW met à jour les données du véhicule à ce que l'on pourrait considérer comme le début et la fin d'un voyage. Une mise à jour se produit lorsque le conducteur déverrouille et ouvre sa porte, et une autre se produit lorsque le conducteur quitte la voiture et verrouille le véhicule.

Bien que nous n'ayons pas de données à ce sujet, il est plausible que la voiture envoie des mises à jour dans d'autres situations également. Par exemple, si elle a été garée ou conduite pendant un certain temps, ou lorsque la batterie a fini de se charger. Sans tests supplémentaires, nous ne pouvons pas en être sûrs.

Nous prévoyons d'effectuer des tests similaires à l'avenir avec des véhicules d'autres constructeurs, en affinant notre application de collecte de données et nos techniques expérimentales au fur et à mesure. Surveillez cet espace pour des mises à jour sur nos dernières découvertes ; à mesure que nous passons plus de temps avec les véhicules accessibles par notre plateforme, nous serons en mesure d'affiner les différences entre les diverses façons dont les constructeurs mettent à jour leurs données.