BMW CarData

Le plugin BMW CarData récupère les données du véhicule depuis l'API BMW CarData et les met à disposition sous forme d'entrées dans LOXONE Config. Chaque véhicule est configuré comme un appareil enfant distinct.

Prérequis : un compte BMW actif auquel le véhicule est associé, un LOXONE Miniserver Gen.2 disposant d'un accès Internet et un navigateur de bureau pour l'activation unique. Le commutateur CarData API n'est disponible que dans le portail web MyBMW à l'adresse bmw.com/mybmw — il n'est PAS présent dans l'application mobile MyBMW.
Véhicules compatibles : généralement les modèles BMW à partir de 2017 environ, équipés du système ConnectedDrive. L'API BMW CarData autorise un maximum de 50 requêtes de données par jour et par compte BMW, réparties entre tous les véhicules.

Table des matières


Configuration↑

Première configuration

Suivez ces étapes dans l'ordre :
1. Dans un navigateur sur ordinateur (l'application mobile MyBMW ne propose pas cette fonctionnalité), rendez-vous sur bmw.com/mybmw et connectez-vous avec votre compte BMW.
2. Sélectionnez votre véhicule, puis accédez à : BMW CarData → Accès technique à BMW CarData → API CarData. Cochez la case « Demander l'accès à l'API CarData » et acceptez les conditions de partage des données CarData de BMW. Le portail affiche alors un identifiant au format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx — copiez-le dans le presse-papiers.
3. Dans LOXONE Config, ajoutez le plugin 'BMW CarData' à la section Périphériques réseau. Ouvrez les paramètres du plugin en cliquant sur l'icône en forme d'engrenage, puis collez l'identifiant dans le champ Client ID. (Un seul identifiant est utilisé pour tous les véhicules configurés via ce plugin.)
4. Cliquez droit sur le plugin et ajoutez un 'Véhicule BMW'. Saisissez le VIN, c'est-à-dire le numéro d'identification du véhicule composé de 17 caractères. Le VIN figure sur le certificat d'immatriculation, sur le bord inférieur du pare-brise, ainsi que dans MyBMW → Aperçu du véhicule lorsque vous sélectionnez le véhicule.
5. Reliez l'entrée 'Poll Trigger' à un signal censé déclencher l'actualisation des données — pour un test rapide, un bouton-poussoir ou une entrée de la minuterie hebdomadaire suffisent ; en production, les sources courantes sont un événement lié à la borne de recharge, les changements d'état de recharge ou tout autre événement d'automatisation. Si aucune entrée Poll Trigger n'est connectée, le plugin ne récupère aucune donnée.
6. Enregistrez la configuration sur le Miniserver.
7. Lors du premier déclenchement du Poll Trigger, un message système s'affiche dans LOXONE Config et dans l'application LOXONE, accompagné d'un lien d'autorisation.Ouvrez le lien dans un navigateur, connectez-vous avec votre compte BMW et confirmez : le code utilisateur est déjà intégré au lien, BMW ne vous demande donc qu'une confirmation.
8. TLe plugin récupère désormais les données du véhicule à chaque impulsion du déclencheur Poll Trigger. Le jeton d'accès est enregistré sur le Miniserver et actualisé automatiquement ; vous n'avez pas besoin de vous reconnecter, sauf si vous révoquez l'accès sur le portail MyBMW.

Client ID

Le Client ID est créé une seule fois par compte BMW dans le portail web MyBMW à l'adresse bmw.com/mybmw (navigateur de bureau requis — l'application mobile MyBMW ne dispose pas de ce menu) sous Vehicle overview → BMW CarData → Technical Access to BMW CarData → CarData API. L'acceptation des conditions de partage des données CarData de BMW est obligatoire lors de la première activation. Un seul Client ID est partagé entre tous les véhicules configurés sous ce plugin et reste valable jusqu'à ce que l'accès soit révoqué dans le même portail.

Coordonnées du domicile

La Distance par rapport au Domicile correspond à la distance orthodromique entre les coordonnées du Miniserver et la position GPS actuelle du véhicule. Configurez l'emplacement du Miniserver dans LOXONE Config → Paramètres du Miniserver → Emplacement.

Interrogation

Le plugin n'effectue pas d'interrogation automatique — il récupère les données uniquement lorsque l'entrée Poll Trigger reçoit un front montant. Connectez-le à n'importe quel signal devant déclencher l'actualisation des données du véhicule. Pour un test rapide, utilisez un bouton-poussoir ; en production, utilisez un déclencheur temporisé (plusieurs fois par jour), la connexion à une Wallbox ou un changement d'état de recharge. Gardez à l’esprit la limite de 50 requêtes par jour et par compte BMW, partagée entre tous les véhicules (voir Limite de débit et messages d’erreur ci-dessous).

Autorisation

Chaque véhicule doit être autorisé une seule fois à l'aide d'un compte BMW. La méthode recommandée consiste à utiliser l'application LOXONE. Après avoir ajouté le véhicule, enregistrez la configuration sur le Miniserver et déclenchez une fois le Poll Trigger. Un message système s'affiche dans l'application LOXONE et dans LOXONE Config. Tant que l'autorisation est en attente, la sortie Autorisation requise est définie sur 1. Dans ce message, sélectionnez 'Ouvrir la connexion BMW' (et non le bouton 'OK'). Cette action ouvre la page de connexion BMW avec un code d'autorisation intégré. L'utilisateur se connecte avec son compte BMW et confirme l'accès. Une fois l’autorisation réussie, le plugin récupère les données et la sortie Autorisation requise est réinitialisée à 0. Si vous avez sélectionné OK par erreur ou si l’autorisation échoue, déclenchez à nouveau le Poll Trigger pour afficher à nouveau le message d’autorisation et relancer le processus. Une fois l’autorisation réussie, le jeton d’accès est automatiquement actualisé. Une nouvelle autorisation n’est requise que si l’accès est révoqué sur le portail MyBMW.

D'où provient le code d'autorisation

Il ne s'agit pas d'un code que vous créez vous-même — ni sur le portail MyBMW, ni sur les pages de l'API BMW ou de Swagger. Lorsque le déclencheur Poll Trigger se déclenche, le plugin demande automatiquement un code à usage unique à BMW et vous l’affiche à deux endroits : dans le message système de l’application LOXONE (après 'entrez le code :') et dans l’URL d’autorisation, sous la forme du paramètre user_code du lien (https ://customer.bmwgroup.com/oneid/link ?user_code=...). En règle générale, vous n’avez pas besoin de le saisir : le bouton 'Ouvrir la connexion BMW' et le lien de l’URL d’autorisation contiennent déjà le code ; BMW vous demande donc uniquement de vous connecter et de confirmer. Le code en texte clair ne sert que de solution de secours au cas où une page de connexion exigerait une saisie manuelle. Le code est valable pendant quelques minutes ; s’il expire avant que vous n’ayez terminé, déclenchez à nouveau le déclencheur Poll pour obtenir un nouveau code.


Limite de requêtes et messages d'erreur↑

L'API BMW CarData autorise un maximum de 50 requêtes de données par jour et par compte BMW, réparties entre tous les véhicules. Le compteur est remis à zéro à minuit UTC. Une actualisation normale des données consomme 1 requête. La toute première actualisation après la configuration consomme une ou deux requêtes supplémentaires, une seule fois, afin de détecter le modèle du véhicule et de préparer le canal de données — prévoyez environ 3 requêtes le jour de la configuration initiale.

Ne déclenchez pas plus de 45 sondages environ par jour au total, tous véhicules confondus sur le compte, afin de laisser une marge suffisante pour les premières demandes de sondage et les mises à jour ponctuelles.

Messages système

Le plugin génère des messages système dans LOXONE Config et dans l'LOXONE App dans les situations suivantes : Authorization Required — voir la section Autorisation ci-dessus. Rate Limit Reached — le quota de 50 requêtes/jour a été dépassé ; le message indique le temps restant jusqu'à minuit UTC, moment où le compteur se réinitialise. Connection Error — le Miniserver ne peut pas joindre l'API BMW CarData ; vérifiez la connexion Internet. Client ID Missing — aucun Client ID n'a été configuré dans les réglages du plugin. Vehicle Not Found — le VIN configuré n'est pas associé au compte BMW ou n'existe pas ; vérifiez le VIN et les autorisations du véhicule dans le portail MyBMW.

Erreur connue du côté de BMW (il ne s'agit pas d'un problème lié au plugin) : lors de l'autorisation, BMW peut renvoyer une erreur de synchronisation interne — un code HTTP 500 'Invalid Access Token' (keymanagement.service.invalid_access_token) immédiatement suivi d'un access_denied ('L'utilisateur a refusé l'autorisation'), même si vous êtes l'utilisateur principal du véhicule et que vous avez accepté le partage des données. Le service client de BMW a confirmé que ce problème concerne principalement les clients CarData nouvellement créés. Solution de contournement, entièrement accessible via le portail Web MyBMW (bmw.com/mybmw) : supprimez le client CarData, attendez environ 30 secondes, créez un nouveau client, attendez environ 30 secondes, activez l’API CarData, attendez environ 30 secondes, puis activez CarData Streaming. Copiez le nouvel identifiant de client dans les paramètres du plugin et relancez le déclencheur Poll Trigger. Si l’erreur persiste après la recréation du client, le problème provient entièrement de BMW — veuillez contacter BMW directement (BMW n’accorde à LOXONE aucun accès partenaire ou développeur pour résoudre ce problème à votre place).


Capteurs et actionneurs↑

Cette section explique la fonction de chaque signal. Les unités et les plages de valeurs sont indiquées dans les tableaux Capteurs et «Actionneurs ci-dessus.

Capteurs

VIN — numéro d'identification du véhicule composé de 17 caractères ; il sert à distinguer plusieurs véhicules les uns des autres ou à des fins d'enregistrement.
Modèle — nom du modèle indiqué par BMW ; à des fins d'affichage et d'étiquetage.
Niveau de charge de la batterie (SOC, %) — niveau de charge de la batterie haute tension ; gestion de la charge, notifications de batterie faible, affichage.
Autonomie électrique (km) — autonomie électrique restante ; alertes d'autonomie, planification d'itinéraire.
Kilométrage (km) — relevé du compteur kilométrique ; suivi et enregistrement des intervalles d'entretien.
Recharge (0/1) — 1 lorsque le véhicule est en cours de recharge ; gestion des excédents photovoltaïques, notifications, ventilation de l'habitacle en été.
Durée restante de recharge (min) — durée estimée jusqu'à la recharge complète (pertinent uniquement pendant la recharge) ; affichage « prêt dans », planification du départ.
Câble branché (0/1) — 1 lorsque le câble de recharge est branché ; rappeler à l'utilisateur de brancher le câble, déclencher les automatismes de recharge.
Puissance de recharge (kW) — puissance de recharge actuelle ; suivi de l'énergie, gestion de la charge.
Autorisation requise (0/1) — 1 tant que le plugin attend l'autorisation ; déclencher un rappel.
URL d'autorisation (Texte) — lien de connexion ; l'afficher dans l'application LOXONE afin que l'utilisateur puisse donner son autorisation.
Distance par rapport au domicile (km) — distance orthodromique entre l'emplacement du Miniserver et la position GPS du véhicule. Utilisez cette valeur comme indicateur approximatif pour savoir si 'la voiture est à la maison ?', par exemple en association avec la fonction Recharge pour vérifier que la voiture est bien en train de se recharger à domicile. Elle ne convient pas aux automatisations en temps réel liées à l’arrivée (telles que l’ouverture du garage), car cela nécessiterait un interrogateur quasi constant, alors que l’API est limitée à 50 requêtes par jour et que le plugin n’effectue de requêtes que sur déclenchement d’interrogation.

Actionneurs

Poll Trigger — un front montant récupère une seule fois les données actuelles du véhicule. Le plugin n'effectue jamais d'interrogation de sa propre initiative ; déclenchez-le à partir d'une planification (plusieurs fois par jour, par exemple), d'un événement 'chargeur connecté' ou d'un bouton.


Capteurs↑

RésuméUnitéValeurs
VINTexte-
ModelTexte-
Battery SOC%0...100
Electric Rangekm0...1000
Mileagekm0...1000000
ChargingNumérique0/1
Remaining Charge Timemin0...3000
Cable ConnectedNumérique0/1
Charging PowerkW0...22
Authorization RequiredNumérique0/1
Authorization URLTexte-
Distance from Homekm0...50000




Actionneurs↑

RésuméUnitéValeurs
Poll TriggerNumérique0/1




Entrées diagnostic↑

RésuméDescriptionUnitéValeurs
OnlineIndique si l'appareil est accessible par le miniserveur.
Diagnostics for Air devices
Diagnostics pour les appareils Tree
Diagnostics pour les extensions
Numérique0/1




Propriétés↑

RésuméDescriptionValeur défaut
BMW CarData Client IDClient UUID created in MyBMW portal: Vehicle overview → BMW CarData → Technical Access to BMW CarData → CarData API → Request access. Shared across all configured vehicles.-
Surveiller le serviceSi coché, vous serez informé par l'état système ou par e-mail si ce service n'est plus disponible ou hors ligne.-