Intégration MQTT MeshCore
Connectez votre réseau MeshCore aux plateformes IoT via MQTT pour l'export de données, l'automatisation et l'intégration avec des systèmes externes
Qu'est-ce que le bridge MQTT ?
Le bridge MQTT de MeshCore vous permet d'exporter messages et télémétrie vers un broker MQTT. De là, vous redirigez les données vers des plateformes IoT comme Home Assistant, Node-RED, InfluxDB, Grafana et bien d'autres.
MQTT (Message Queuing Telemetry Transport) est un protocole léger de type publish/subscribe, parfaitement adapté à l'IoT. Les nœuds MeshCore peuvent servir de passerelle : ils reçoivent les messages via LoRa et les publient sur des topics MQTT. Cela ouvre un vaste champ de possibilités d'intégration.
Ce guide vous accompagne dans la configuration MQTT, le format des messages et les applications concrètes. Que vous souhaitiez connecter votre domotique ou visualiser des données dans Grafana, MQTT rend tout cela possible.
Comment fonctionne le bridge MQTT ?
1. Le nœud reçoit un message LoRa
Votre nœud MeshCore (passerelle) reçoit les messages via la radio LoRa des autres nœuds du réseau mesh.
2. Conversion en JSON
Le nœud convertit le message Protobuf en format JSON lisible avec toutes les métadonnées et la charge utile.
3. Publication vers MQTT
Le message JSON est publié sur un topic MQTT de votre broker. D'autres systèmes peuvent s'abonner à ces topics.
Configurer le bridge MQTT
Pour utiliser MQTT, vous avez besoin d'un broker MQTT (comme Mosquitto) et d'un nœud MeshCore faisant office de passerelle. Suivez ces étapes :
Étape 1 : Installer un broker MQTT
Installez Mosquitto sur un Raspberry Pi, un serveur, ou utilisez un broker cloud comme mqtt.meshtastic.org (gratuit mais public !). Un broker local est recommandé pour la confidentialité : sudo apt install mosquitto mosquitto-clients
Étape 2 : Configurer les paramètres MQTT sur le nœud
Via l'appli MeshCore ou la CLI, configurez les paramètres MQTT : adresse du broker (ex. 192.168.1.100), port (1883), nom d'utilisateur/mot de passe (optionnel) et activez MQTT.
Étape 3 : Définir le topic MQTT racine
Les messages sont publiés sur msh/EU_868/2/c/LongFast/!nodeid. La racine (msh/) est modifiable. Vous pouvez définir un préfixe personnalisé pour votre réseau.
Étape 4 : Tester la connexion
Abonnez-vous à tous les topics : mosquitto_sub -h localhost -t "msh/#" -v. Envoyez un message de test via l'appli MeshCore. Le message devrait apparaître au format JSON.
Applications pratiques
Intégration Home Assistant
Déclenchez des automatisations dans Home Assistant sur base de messages MeshCore. Par exemple : allumer les lumières quand quelqu'un envoie « à la maison » via le mesh.
Tableaux de bord Grafana
Exportez la télémétrie vers InfluxDB et visualisez dans Grafana. Surveillez les niveaux de batterie, la température et les traces GPS de tous les nœuds.
Notifications push
Envoyez des notifications sur votre GSM via Telegram, Discord ou Pushover lorsque certains messages arrivent.
Tableaux de bord web
Créez vos propres interfaces web affichant en temps réel les données du réseau mesh. Abonnement via WebSocket sur les topics MQTT.
Journalisation des données
Enregistrez tous les messages dans une base de données pour analyse historique. Suivez l'activité réseau dans le temps et tracez les mouvements des nœuds.
Interconnexion multi-réseaux
Reliez plusieurs réseaux MeshCore via MQTT. Les nœuds passerelle peuvent relayer les messages entre réseaux physiquement séparés.
Format des messages MQTT
MeshCore publie les messages sous forme de payloads JSON. Exemple d'un message texte :
{
"sender": "!a1b2c3d4",
"from": 2748779476,
"id": 123456789,
"timestamp": 1699123456,
"to": 4294967295,
"channel": 0,
"type": "text",
"payload": {
"text": "Bonjour via MQTT !"
}
}
Chaque message contient des métadonnées (sender ID, timestamp, channel) et un objet payload avec les données réelles. Pour les messages de télémétrie, le payload contient batteryLevel, voltage, temperature, etc. Pour les messages de position : latitude, longitude, altitude.
Avantages de l'intégration MQTT
Compatibilité universelle
MQTT est supporté par la quasi-totalité des plateformes IoT. Intégration aisée avec Home Assistant, Node-RED, Domoticz, OpenHAB, etc.
Accès à distance
Accédez à votre réseau MeshCore depuis n'importe où via internet. Surveillez les nœuds et envoyez des messages sans être physiquement à proximité.
Persistance des données
Stockez tous les messages dans une base de données pour une analyse à long terme. MeshCore seul n'a pas de stockage, mais MQTT combiné à une base de données, oui.
Streaming temps réel
Le modèle publish/subscribe assure des mises à jour instantanées. Pas besoin de polling, les données arrivent automatiquement.
Abonnés multiples
Plusieurs systèmes peuvent s'abonner simultanément au même topic. Par exemple : Grafana + Home Assistant + script personnalisé.
JSON, c'est simple
Le format JSON est lisible par l'humain et compatible avec tous les langages de programmation. Bien plus facile à analyser que le Protobuf binaire.
Questions fréquentes
Ai-je besoin d'un broker MQTT local ?
Non, vous pouvez utiliser un broker public comme mqtt.meshtastic.org ou test.mosquitto.org. Attention : les brokers publics ne sont pas sécurisés (tout le monde peut lire les messages). Pour un usage sérieux, un broker local (Mosquitto sur Raspberry Pi) est recommandé.
Quel nœud utiliser comme passerelle MQTT ?
Tout nœud MeshCore peut servir de passerelle, mais privilégiez un nœud fixe avec une alimentation fiable (USB ou solaire). Un Raspberry Pi + nœud MeshCore est une configuration populaire. La passerelle doit rester en ligne en permanence.
Peut-on envoyer des messages via MQTT vers le réseau mesh ?
Absolument ! Publiez un message JSON sur le bon topic MQTT et le nœud passerelle le transmet au mesh. Vous pouvez ainsi envoyer des messages au réseau depuis Home Assistant. Consultez la documentation MQTT pour le format exact.
MQTT est-il sécurisé ?
MQTT est non chiffré par défaut (texte en clair). Utilisez le chiffrement TLS (MQTTS sur le port 8883) et l'authentification par nom d'utilisateur/mot de passe. Pour encore plus de sécurité : tunnel VPN vers votre broker. N'utilisez jamais un broker public pour des données sensibles !
Quelle est la différence entre les topics uplink et downlink ?
Les topics uplink (msh/.../c/...) transportent les messages du mesh vers MQTT. Les topics downlink (msh/.../2/c/...) transportent les messages de MQTT vers le mesh. Abonnez-vous à l'uplink, publiez sur le downlink.
Peut-on utiliser MQTT sans nœud physique ?
Non, vous avez toujours besoin d'au moins un nœud connecté au broker MQTT (via Wi-Fi/Ethernet ou USB vers ordinateur). Ce nœud sert de pont entre le mesh LoRa et MQTT. Un accès uniquement à distance via MQTT sans nœud n'est pas possible.
Lancez-vous avec l'intégration MQTT
Prêt à connecter votre réseau MeshCore aux plateformes IoT ? Installez un broker MQTT et configurez un nœud passerelle.