Comment diffuser des données de voiture à l'aide de notre API MQTT Auto ? OpenDevTalk#3

10 octobre 2022
L'interrogation périodique (par exemple via l'API REST) fonctionne très bien pour les cas d'utilisation qui nécessitent des instantanés réguliers des informations sur l'état du véhicule (par exemple, le paiement à la conduite). Mais si vous avez besoin de suivre les changements d'informations en continu, le modèle requête/réponse sera rapidement insuffisant car vous risquez de manquer des mises à jour si la requête n'est pas répétée assez souvent et la bande passante sera gaspillée si le véhicule n'envoie aucune nouvelle information, par exemple lorsqu'il est garé. High Mobility propose une technologie "push" pour surmonter ces difficultés. MQTT permet à nos clients de s'abonner en permanence aux mises à jour des données. Dans notre troisième Open Dev Talk, notre CTO Kevin Valdek présente les étapes recommandées pour l'intégration de notre nouvelle interface.

Démarrer avec MQTT

MQTT (MQ Telemetry Transport) est l'un des protocoles de messagerie les plus populaires, couramment adopté dans le contexte de l'Internet des objets. Le protocole est fondé sur un modèle de publication/abonnement. Chez High Mobility, les voitures font office d'expéditeurs (éditeurs) et nos clients de données jouent le rôle de récepteurs (abonnés). La connexion est gérée par le courtier MQTT. Afin de commencer à travailler avec MQTT, nous vous recommandons de suivre chacune des étapes suivantes. Chaque aspect sous-jacent sera expliqué plus en détail à la fois dans la vidéo de notre premier Open Dev Talk et dans cet article de blog.

  • Vérifiez la disponibilité en utilisant notre catalogue de données
  • Configurer le client MQTT
  • Connectez-vous au courtier MQTT
  • S'abonner aux données du véhicule

Disponibilité du streaming

Avant de commencer l'intégration proprement dite, nous vous proposons de consulter notre catalogue de données, qui met en évidence tous les éléments de données disponibles et explique lesquels peuvent être tirés ou poussés via nos API existantes. L'offre actuelle peut différer légèrement d'une marque à l'autre et, dans certains cas, également en ce qui concerne les véhicules à moteur à combustion interne et les véhicules électriques. N'hésitez pas à appliquer des filtres aux colonnes des marques pour déterminer facilement quels ensembles de données et quels cas d'utilisation sont pris en charge par les équipementiers sélectionnés.

L'API MQTT de High Mobility n'est actuellement prise en charge que dans notre environnement réel. Par conséquent, l'application correspondante doit être soumise et approuvée et l'autorisation de la flotte / le consentement du conducteur doit être obtenu avant que les flux de données des voitures connectées puissent être consommés. Pour en savoir plus sur ce processus, consultez notre conférence Open Dev Talk #1. Nous prévoyons d'ajouter des capacités de streaming à l'environnement de test et à ses fonctions de simulation à l'avenir.

Préparation du client MQTT

Suivre notre documentation étape par étape est un bon point de départ pour se familiariser avec notre service MQTT : La première étape est de se connecter à notre plateforme High Mobility et de naviguer vers le module Live Data. Si vous n'avez pas encore créé un conteneur de données pour l'utilisation des données en direct, veuillez en créer un nouveau. Il vous sera demandé de définir un nom et les permissions (points de données) que vous souhaitez recevoir ultérieurement. Afin de consommer les données en direct, le conteneur d'application doit être soumis et activé.

Si vous avez déjà un conteneur de données actif, vous pouvez aller directement à la section des certificats. Cliquez sur le bouton plus pour générer un nouvel ensemble d'informations d'identification. Les fichiers associés sont téléchargés sous forme de paquet zip sur votre appareil local. 

Se connecter au courtier MQTT

Next up, you can use your preferred MQTT client software or library to connect to the MQTT by passing in the root certificate, client certificate and private key.

In our example, we utilise the terminal tool mosquito_sub and have prepared a code snippet in the documentation that can be easily adjusted to your own set of credentials. We have set the parameter –disable-clean-session and Quality of Service to 1 to not miss any message in case of unexpected or scheduled downtimes. The host needs to point to mqtt.high-mobility.com and the port is supposed to be 8883. Additionally, the path needs to be set to live/level13/<your-app-id>/# which contains the current data protocol version and your data container id that you can retrieve from our platform. The hashtag in the end is a wildcard representing all topics underneath that path.

Tous les espaces réservés au fichier de l'autorité de certification référencée, au certificat du conteneur de données et à la clé privée correspondante doivent être remplacés par les noms exacts des fichiers de certificat téléchargés. L'identifiant de votre client MQTT doit être dérivé de l'identifiant unique du nom de fichier qui est inclus dans les noms des fichiers de certificat. 

Après avoir exécuté la demande avec succès, vous pouvez utiliser la session ouverte pour recevoir les données générées par les véhicules actifs. 

S'abonner aux données en direct sur les véhicules

Dès que de nouvelles données sont générées, elles sont envoyées à votre client MQTT. Comme High Mobility se concentre sur les données personnalisées des véhicules, chaque message entrant comprendra le numéro d'identification du véhicule (NIV), qui peut également être pseudonymisé pour des cas d'utilisation plus spécialisés. Veuillez noter qu'il peut y avoir des latences liées à l'infrastructure, mais comme tous les messages contiennent un horodatage qui explique quand les données ont été générées, vous serez toujours en mesure de recréer l'ordre historique correct des événements. 

-------------------------------
Discussions Open Dev Talks de High Mobility.

Chez High Mobility, nous sommes passionnés par les nouvelles technologies. Nous proposons des outils open source gratuits et une documentation conviviale pour les développeurs afin que tous les projets puissent être intégrés facilement. Plus de 800 développeurs et chefs de produits se sont déjà inscrits sur notre plateforme communautaire modérée et nous organisons des concours de voitures connectées pour vos idées innovantes en la matière. 

Lors de notre session mensuelle gratuite en ligne Open Dev Talk de 30 minutes, nous expliquons en 15 minutes des sujets passionnants liés aux voitures connectées et consacrons le reste du temps à vos questions et idées.

Rejoignez notre communauté sur Slack