Connexion à WIS2 via MQTT
Objectifs d'apprentissage
À la fin de cette session pratique, vous serez capable de :
- vous connecter au WIS2 Global Broker en utilisant MQTT Explorer
- examiner la structure des topics WIS2
- examiner la structure des messages de notification WIS2
Introduction
WIS2 utilise le protocole MQTT pour annoncer la disponibilité des données météorologiques/climatiques/hydrologiques. Le WIS2 Global Broker s'abonne à tous les WIS2 Nodes du réseau et republie les messages qu'il reçoit. Le Global Cache s'abonne au Global Broker, télécharge les données contenues dans les messages, puis republie ces messages sur le topic cache
avec une nouvelle URL. Le Global Discovery Catalogue publie les métadonnées de découverte à partir du Broker et fournit une API de recherche.
Voici un exemple de structure de message de notification WIS2 pour un message reçu sur le topic origin/a/wis2/br-inmet/data/core/weather/surface-based-observations/synop
:
{
"id": "59f9b013-c4b3-410a-a52d-fff18f3f1b47",
"type": "Feature",
"version": "v04",
"geometry": {
"coordinates": [
-38.69389,
-17.96472,
60
],
"type": "Point"
},
"properties": {
"data_id": "br-inmet/data/core/weather/surface-based-observations/synop/WIGOS_0-76-2-2900801000W83499_20240815T060000",
"datetime": "2024-08-15T06:00:00Z",
"pubtime": "2024-08-15T09:52:02Z",
"integrity": {
"method": "sha512",
"value": "TBuWycx/G0lIiTo47eFPBViGutxcIyk7eikppAKPc4aHgOmTIS5Wb9+0v3awMOyCgwpFhTruRRCVReMQMp5kYw=="
},
"content": {
"encoding": "base64",
"value": "QlVGUgAA+gQAABYAACsAAAAAAAIAHAAH6AgPBgAAAAALAAABgMGWx1AAAM0ABOIAAAODM0OTkAAAAAAAAAAAAAAKb5oKEpJ6YkJ6mAAAAAAAAAAAAAAAAv0QeYA29WQa87ZhH4CQP//z+P//BD////+ASznXuUb///8MgAS3/////8X///e+AP////AB/+R/yf////////////////////6/1/79H/3///gEt////////4BLP6QAf/+/pAB//4H0YJ/YeAh/f2///7TH/////9+j//f///////////////////v0f//////////////////////wNzc3Nw==",
"size": 250
},
"wigos_station_identifier": "0-76-2-2900801000W83499"
},
"links": [
{
"rel": "canonical",
"type": "application/bufr",
"href": "http://wis2bra.inmet.gov.br/data/2024-08-15/wis/br-inmet/data/core/weather/surface-based-observations/synop/WIGOS_0-76-2-2900801000W83499_20240815T060000.bufr4",
"length": 250
}
]
}
Dans cette session pratique, vous apprendrez à utiliser l'outil MQTT Explorer pour configurer une connexion client MQTT à un WIS2 Global Broker et afficher les messages de notification WIS2.
MQTT Explorer est un outil utile pour parcourir et examiner la structure des topics d'un broker MQTT donné afin de vérifier les données publiées.
À propos de MQTT
MQTT Explorer fournit une interface conviviale pour se connecter à un broker MQTT et explorer les topics et la structure des messages utilisés par WIS2.
En pratique, MQTT est conçu pour une communication machine-à-machine, où une application ou un service s'abonne à des topics et traite les messages de manière programmatique en temps réel.
Pour travailler avec MQTT de manière programmatique (par exemple, en Python), vous pouvez utiliser des bibliothèques client MQTT telles que paho-mqtt pour vous connecter à un broker MQTT et traiter les messages entrants. Il existe de nombreux logiciels clients et serveurs MQTT, selon vos besoins et votre environnement technique.
Utilisation de MQTT Explorer pour se connecter au Global Broker
Pour visualiser les messages publiés par un WIS2 Global Broker, vous pouvez utiliser "MQTT Explorer", téléchargeable depuis le site web de MQTT Explorer.
Ouvrez MQTT Explorer et ajoutez une nouvelle connexion au Global Broker hébergé par MeteoFrance en utilisant les détails suivants :
- host : globalbroker.meteo.fr
- port : 8883
- username : everyone
- password : everyone
Cliquez sur le bouton 'ADVANCED', supprimez les topics préconfigurés et ajoutez les topics suivants pour vous y abonner :
origin/a/wis2/#
Note
Lors de la configuration des abonnements MQTT, vous pouvez utiliser les jokers suivants :
- Niveau unique (+) : un joker de niveau unique remplace un seul niveau de topic
- Multi-niveaux (#) : un joker multi-niveaux remplace plusieurs niveaux de topics
Dans ce cas, origin/a/wis2/#
s'abonnera à tous les topics sous le topic origin/a/wis2
.
Cliquez sur 'BACK', puis 'SAVE' pour enregistrer vos détails de connexion et d'abonnement. Ensuite, cliquez sur 'CONNECT' :
Les messages devraient commencer à apparaître dans votre session MQTT Explorer comme suit :
Vous êtes maintenant prêt à explorer les topics et la structure des messages WIS2.
Exercice 1 : Examiner la structure des topics WIS2
Utilisez MQTT pour parcourir la structure des topics sous les topics origin
.
Question
Comment peut-on distinguer le centre WIS qui a publié les données ?
Cliquez pour révéler la réponse
Vous pouvez cliquer sur la fenêtre de gauche dans MQTT Explorer pour développer la structure des topics.
Nous pouvons distinguer le centre WIS qui a publié les données en regardant le quatrième niveau de la structure des topics. Par exemple, le topic suivant :
origin/a/wis2/br-inmet/data/core/weather/surface-based-observations/synop
nous indique que les données ont été publiées par un centre WIS avec le centre-id br-inmet
, qui correspond au centre-id de l'Instituto Nacional de Meteorologia - INMET, Brésil.
Question
Comment peut-on distinguer les messages publiés par les centres WIS hébergeant une passerelle GTS-to-WIS2 et ceux publiés par les centres WIS hébergeant un WIS2 Node ?
Cliquez pour révéler la réponse
Nous pouvons distinguer les messages provenant d'une passerelle GTS-to-WIS2 en regardant le centre-id dans la structure des topics. Par exemple, le topic suivant :
origin/a/wis2/de-dwd-gts-to-wis2/data/core/I/S/A/I/01/sbbr
nous indique que les données ont été publiées par la passerelle GTS-to-WIS2 hébergée par Deutscher Wetterdienst (DWD), Allemagne. La passerelle GTS-to-WIS2 est un type spécial de producteur de données qui publie des données du Global Telecommunication System (GTS) vers WIS2. La structure des topics est composée des en-têtes TTAAii CCCC pour les messages GTS.
Exercice 2 : Examiner la structure des messages WIS2
Déconnectez-vous de MQTT Explorer et mettez à jour la section 'Advanced' pour modifier l'abonnement comme suit :
origin/a/wis2/+/data/core/weather/surface-based-observations/synop
cache/a/wis2/+/data/core/weather/surface-based-observations/synop
Note
Le joker +
est utilisé pour s'abonner à tous les centres WIS.
Reconnectez-vous au Global Broker et attendez que les messages apparaissent.
Vous pouvez consulter le contenu du message WIS2 dans la section "Value" sur le côté droit. Essayez de développer la structure des topics pour voir les différents niveaux du message jusqu'à atteindre le dernier niveau et examinez le contenu d'un des messages.
Question
Comment peut-on identifier l'horodatage de publication des données ? Et comment peut-on identifier l'horodatage de collecte des données ?
Cliquez pour révéler la réponse
L'horodatage de publication des données est contenu dans la section properties
du message avec une clé pubtime
.
L'horodatage de collecte des données est contenu dans la section properties
du message avec une clé datetime
.
Question
Comment peut-on télécharger les données à partir de l'URL fournie dans le message ?
Cliquez pour révéler la réponse
L'URL est contenue dans la section links
avec rel="canonical"
et définie par la clé href
.
Vous pouvez copier l'URL et la coller dans un navigateur web pour télécharger les données.
Exercice 3 : Examiner la différence entre les topics 'origin' et 'cache'
Assurez-vous d'être toujours connecté au Global Broker en utilisant les abonnements aux topics origin/a/wis2/+/data/core/weather/surface-based-observations/synop
et cache/a/wis2/+/data/core/weather/surface-based-observations/synop
comme décrit dans l'Exercice 2.
Essayez d'identifier un message pour le même centre-id publié à la fois sur les topics origin
et cache
.
Question
Quelle est la différence entre les messages publiés sur les topics origin
et cache
?
Cliquez pour révéler la réponse
Les messages publiés sur les topics origin
sont les messages originaux que le Global Broker republie à partir des WIS2 Nodes du réseau.
Les messages publiés sur les topics cache
sont les messages pour lesquels les données ont été téléchargées par le Global Cache. Si vous vérifiez le contenu du message provenant du topic commençant par cache
, vous verrez que le lien 'canonical' a été mis à jour avec une nouvelle URL.
Il existe plusieurs Global Caches dans le réseau WIS2, donc vous recevrez un message de chaque Global Cache ayant téléchargé le message.
Le Global Cache ne télécharge et ne republie que les messages publiés dans la hiérarchie de topics ../data/core/...
.
Conclusion
Félicitations !
Dans cette session pratique, vous avez appris :
- comment s'abonner aux services WIS2 Global Broker en utilisant MQTT Explorer
- la structure des topics WIS2
- la structure des messages de notification WIS2
- la différence entre les données core et recommended
- la structure des topics utilisée par la passerelle GTS-to-WIS2
- la différence entre les messages Global Broker publiés sur les topics
origin
etcache