Eigen MQTT Broker linken

Sommige mensen draaien lokaal een Mosquitto MQTT Broker nog mooier is het wanneer deze lokale broker middels een bridge verbonden is met anderen zodat de nodes die via deze brokers functioneren op de diverse kaarten weergegeven worden en berichten met elkaar kunnen uitwisselen.

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. Op deze manier kan je, jouw eigen node verbinden met je eigen MQTT Broker op dezelfde wijze zoals dit het geval is als met de PA8F MQTT Broker. Of het zin heeft om alle topics van de PA8F Broker 1 op 1 over te nemen is aan jezelf, je Meshtastic device kan maar met één topic communiceren dus eigenlijk is het aanmaken van een bridge, over het algemeen, overbodig.

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/

Vaak overbodig, in de praktijk is al vaker gebleken dat je - omdat je hooguit tot één topic toegang hebt - het aanmaken van bridges overbodig is tenzij je bijvoorbeeld statistieken wilt bijhouden via scripts etc. Vaak wordt gedacht dat het handig is om in meerdere topics tegelijk te zitten en een bridge hier "de" oplossing in is, het nadeel is echter dat je niet alleen je eigen node in meerdere topics plaatst maar ook de mensen in die betreffende topics meeneemt in andere topics.

Toch laten we je hier even zien hoe je meerdere servers en topics kunt linken en een bridge kunt opzetten...

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.