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 d'environ 2017 équipés de ConnectedDrive. L'API BMW CarData autorise un maximum de 50 requêtes de données par jour et par véhicule.

Table des matières


Configuration

Première configuration

Suivez ces étapes dans l'ordre :
1. Dans un navigateur de bureau (l'application mobile MyBMW ne propose pas cette fonction), ouvrez bmw.com/mybmw et connectez-vous avec votre compte BMW.
2. Sélectionnez votre véhicule, puis naviguez : BMW CarData → Technical Access to BMW CarData → CarData API. Activez 'Request access to CarData API' et acceptez les conditions de partage des données CarData de BMW. Le portail affiche ensuite 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 périphérie réseau. Ouvrez les réglages du plugin via son icône d'engrenage et collez l'identifiant dans le champ Client ID. (Un seul identifiant est partagé entre tous les véhicules configurés sous ce plugin.)
4. Faites un clic droit sur le plugin et ajoutez un enfant 'BMW Vehicle'. Saisissez le VIN — le numéro d'identification du véhicule à 17 caractères. Le VIN figure sur le certificat d'immatriculation du véhicule, sur le bord inférieur du pare-brise et dans MyBMW → Vehicle overview lorsque vous sélectionnez le véhicule.
5. Reliez l'entrée Poll Trigger à un signal qui doit déclencher une actualisation des données — pour un test rapide, un bouton-poussoir ou une entrée Weekly Timer suffit ; en production, les sources typiques sont un événement de connexion de wallbox, des changements d'état de charge ou tout autre événement d'automatisation. Sans Poll Trigger connecté, 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 apparaît dans Loxone Config et dans l'Loxone App avec 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 demande donc qu'une confirmation.
8. Le plugin récupère désormais les données du véhicule à chaque impulsion du Poll Trigger. Le jeton d'accès est stocké sur le Miniserver et actualisé automatiquement ; vous n'avez pas besoin de vous reconnecter, sauf si vous révoquez l'accès dans 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 sortie Distance du domicile est calculée comme 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 → Miniserver settings → Location.

Interrogation

Le plugin n'interroge pas automatiquement — il ne récupère les données que lorsque l'entrée Poll Trigger reçoit un front montant. Reliez-la à tout signal qui doit actualiser les données du véhicule. Pour un test rapide, utilisez un bouton-poussoir ou une entrée Weekly Timer ; en production, utilisez des événements tels que la connexion d'une wallbox, un changement d'état de charge ou l'activation d'une scène. Gardez à l'esprit la limite de 50 requêtes par jour et par véhicule (voir Limite de requêtes et messages d'erreur ci-dessous).

Autorisation

Lors de la première utilisation, le plugin nécessite une autorisation unique avec votre compte BMW. Lorsque le Poll Trigger se déclenche pour la première fois, la sortie Authorization Required passe à 1 et un message système apparaît avec 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 demande donc qu'une confirmation. Le même message affiche également le code utilisateur en texte clair en guise de solution de repli ; ne le saisissez manuellement que si la page de connexion le demande (rare). Après une connexion réussie, le plugin récupère les données et Authorization Required revient à 0. Le jeton d'accès est ensuite actualisé automatiquement ; une nouvelle connexion n'est requise que si l'accès est révoqué dans le portail MyBMW.

Where the authorization code comes from

You never create this code yourself — not in the MyBMW portal and not on the BMW API or Swagger pages. When the Poll Trigger fires, the plugin automatically requests a one-time code from BMW and shows it to you in two places: in the Loxone App system message (after 'enter the code:'), and in the Authorization URL output as the user_code parameter of the link (https://customer.bmwgroup.com/oneid/link?user_code=...). You normally never type it: the 'Open BMW login' button and the Authorization URL link already contain the code, so BMW only asks you to sign in and confirm. The plain-text code is only a fallback if a login page ever asks for it manually. The code is valid for a few minutes; if it expires before you finish, fire the Poll Trigger again to get a fresh one.


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 véhicule. Le compteur se réinitialise à minuit UTC. Une actualisation de données normale consomme 1 requête. La toute première actualisation après la configuration consomme une ou deux requêtes supplémentaires, une seule fois, pour détecter le modèle du véhicule et préparer le canal de données — prévoyez environ 3 requêtes le jour de la configuration initiale.

Ne déclenchez pas plus d'environ 45 interrogations par jour et par véhicule afin de conserver une marge pour les requêtes de première interrogation 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.


Sensors and Actuators

This section explains what each signal is for. Units and value ranges are listed in the Sensors and Actuators tables above.

Sensors

VIN — the 17-character vehicle identification number; use it to tell several vehicles apart or for logging.
Model — the model name reported by BMW; for display and labeling.
Battery SOC (%) — high-voltage battery state of charge; charge control, low-battery notifications, visualization.
Electric Range (km) — remaining electric range; range warnings, trip planning.
Mileage (km) — odometer reading; service-interval tracking, logging.
Charging (0/1) — 1 while the vehicle is actively charging; PV-surplus logic, notifications, summer cabin ventilation.
Remaining Charge Time (min) — estimated time until full (only meaningful while charging); 'ready by' display, departure planning.
Cable Connected (0/1) — 1 while the charge cable is connected; remind the user to plug in, gate charging automations.
Charging Power (kW) — current charging power; energy monitoring, load management.
Authorization Required (0/1) — 1 while the plugin is waiting for authorization; trigger a reminder.
Authorization URL (Text) — the login link; display it in the Loxone App so the user can authorize.
Distance from Home (km) — air-line distance between the Miniserver location and the vehicle's GPS position. Use it as a coarse 'is the car at home?' indicator, e.g. together with Charging to confirm the car is charging at home. It is not suitable for real-time arrival automations (such as opening the garage), because that would require near-constant polling while the API is limited to 50 requests per day and the plugin only fetches on a Poll Trigger.

Actuators

Poll Trigger — a rising edge fetches fresh vehicle data once. The plugin never polls on its own; drive this from a scheduled time trigger (for example a few times a day), a 'wallbox connected' event, or a button.


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.-