Eigen MQTT Broker linken

Sommige mensen draaien lokaal een Mosquitto MQTT Broker nog mooier is het wanneer deze lokale MQTT Broker ook verbonden is aan een aantal andere brokers zodat de nodes die via deze broker functioneren ook op de diverse kaarten weergegeven worden.

Prachtig natuurlijk, maar het verleden heeft helaas al enkele keren laten zien dat het configureren nogal wat problemen kan opleveren. Zo kan het onjuist configureren ervoor zorgen dat er een eindeloze loop wordt gecreëerd. Om te voorkomen dat dit gebeurt is het hierom verstandig alle brokers waarmee je een link wilt opzetten in een aparte topic in je lokale MQTT Broker onder te brengen (en dus niet te delen middels # of msh/#), PA8F zet je bijvoorbeeld in msh/pa8f/, Meshtastic in msh/meshtastic/ etc.

Een voorbeeld configuratie tonen we hieronder, het is hierbij alleen nog nodig om {alias} te vervangen met een eigen alias, let hierbij op dat je geen speciale tekens en spaties gebruikt!

In het volgende voorbeeld worden alle topics van mqtt.pa8f.nl 1 op 1 overgenomen binnen je eigen MQTT server. In je eigen MQTT Broker, kan je in je node verbinden met je eigen server en de topic als volgt instellen: msh/{topic}.

Alleen broker mqtt.pa8f.nl verbinden met je eigen MQTT Broker

connection {alias}-to-pa8f
address mqtt.pa8f.nl:1883
remote_username boreft
remote_password meshboreft
remote_clientid {alias}-to-pa8f
cleansession true
local_cleansession true
notifications true
try_private true
topic # both 0 msh/ msh/

Wil je meerdere brokers verbinden met je eigen broker? Dan is het nodig iedere broker onder een eigen topic te plaatsen om te voorkomen dat er een loop optreed mochten één of beide andere brokers al met elkaar verbonden zijn. Hoe je dit configureert zie je hieronder...

Brokers mqtt.pa8f.nl en mqtt.meshtastic.org verbinden met je eigen MQTT Broker

connection {alias}-to-pa8f
address mqtt.pa8f.nl:1883
remote_username boreft
remote_password meshboreft
remote_clientid {alias}-to-pa8f
cleansession true
local_cleansession true
notifications true
try_private true
topic # both 0 msh/pa8f/ msh/

connection {alias}-to-mt
address mqtt.meshtastic.org:1883
remote_username meshdev
remote_password large4cats
remote_clientid {alias}-to-mt
cleansession true
local_cleansession true
notifications false
try_private true
topic # both 0 msh/meshtastic/Dares/ msh/Dares/
topic # both 0 msh/meshtastic/NL_868/ msh/NL_868/
topic # both 0 msh/meshtastic/NL_433/ msh/NL_433/
Mosquitto.conf  MQTT Explorer

Wil je, je node configureren en via je eigen broker gebruik maken van de PA8F MQTT Broker? Stel als Root topic dan bijvoorbeeld het volgende in:

msh/pa8f of bijvoorbeeld msh/pa8f/3300-3329

Berichten verzonden naar msh/pa8f worden 1 op 1 doorgestuurd naar PA8F en op zijn beurt doorgestuurd naar de Meshtastic MQTT Broker msh/boreft/ dit geldt ook wanneer je msh/pa8f/3300-3329 gebruikt, deze belanden dan bij PA8F in msh/pa8f/3300-3329 en dus vervolgens op de Meshtastic MQTT Broker in msh/boreft/3300-3329.


Waarom je topics msh/pa8f/ en msh/meshtastic/{(etc)}/ vermeld ziet staan heeft te maken met het feit dat je topics van andere servers het beste niet kunt opnemen in topics van andere servers. Een mooi voorbeeld is Dares op mqtt.meshtastic.org, deze wil je niet in msh/pa8f/Dares omdat het aan de eigenaar (PA8F) is om te bepalen of hij Dares als standaard topic op zijn MQTT Broker wilt. Van gebruikers (ook die gebruik maken van hun eigen Mosquitto MQTT Broker) wordt verwacht dat deze niet lukraak allerlei topics gaan delen om op deze wijze alles netjes en overzichtelijk te houden.


topic # both 0 msh/pa8f/NL_433/ msh/NL_433/
in plaats van
topic # both 0 msh/meshtastic/NL_433/ msh/NL_433/

Deze configuratie laat precies zien dat NL_433 vanaf de Meshtastic MQTT Broker wordt geforward naar de MQTT Broker van PA8F, een onwenselijke situatie daarom wordt topic NL_433 in de eigen Meshtastic topic geplaatst.

Met behulp van MQTT Explorer kan je snel en eenvoudig zien of je MQTT Broker goed geconfigureerd is en werkt.

Klaar met het configureren van Mosquitto? Vergeet dan niet je node(s) de juiste Root topic te geven, bijvoorbeeld msh/pa8f/3300-3329 zodat de berichten in dit topic op de MQTT Broker van PA8F in msh/3300-3329 komen.