MQTT is een protocol dat je toelaat om via een server signalen te kunnen verdelen over subscribers en publishers.
zie: Mosquitto.org
Een publisher, stuurt een verandering van signaal door naar de server door een specifiek topic te gebruiken.
Alle gebruikers die subscribed zijn op dit topic krijgen een update.
MQTT wordt gebruikt om allerhande monitoring en sturingen vanop afstand mogelijk te maken.
Wij gebruiken het ikv de power control van de remote shack van de club alsook voor het bedienen van de sattrack installatie.
zie eclipse-mosquitto Docker image
Haal de image binnen
Je zal deze nadien terug vinden in Docker desktop/Images
Open een cmd venster en geef het volgende commando
docker pull eclipse-mosquitto
Start mosquitto met de volgende parameters:
docker run -it --name mosquitto -p 1883:1883 -v ./mqtt:/mosquitto/ eclipse-mosquitto
Hierdoor wordt er een Volume aangemaakt voor persistence data gebruik met de naam mqtt
Om de config te kunnen aanpassen maken we gebruik van de terminal van Docker.
Deze is te benaderen via de Docker desktop/containers door op de 3 bolletjes te klikken achter de container.
Ga naar de config folder /mosquitto/config
editeer de file mbv VI
vi mosquitto.conf
Voeg de volgende lijnen toe aan de file, waarmee je de meeste settings voor ons gebruik in orde stelt.
allow_anonymous true
listener 1883
persistence true
persistence_location /mosquitto/data/
Om het geheel te testen en zeker te zijn dat de data bewaard blijft kan je de volgende procedure volgen:
Stop de container via Docker Desktop
Verwijder de container dmv het uilbakje
Controleer in /Volumes of het volume mqtt nog steeds bestaat (zou moeten)
Start een nieuwe container met het voorgaande commando:
docker run -it --name mosquitto -p 1883:1883 -v ./mqtt:/mosquitto/ eclipse-mosquitto
Je kan nog extra de config file gaan bekijken om te verifiëren dat de data niet is terug gezet naar de default waardes.
Installeer op je Windows host de volgende software:
mqtt-explorer
je kiest best voor de portable versie, daar je dit maar als test gaat gebruiken.
In het startschem pas je de host aan naar het adres 127.0.0.1, je local host en de standaard poort 1883.
Vermits wij gekozen hebben voor een anonymous toegang, kan je de username/password open laten.
Druk nu op Connect
Je krijgt nu een volgend scherm waarop je een lijst krijgt van de topics die er ter beschikking zijn.
Vermits momenteel nog niets is geconfigureerd, zal er enkel een $SYS topic zijn.
Als volgende test gaan we een publisch uitvoeren.
Kies in het veld publish een naam: my-mqtt-topic
Laat de waarde op JSON staat, maakt op zich niets uit voor de test.
Vul een waarde of tekst in, in het venster eronder.
Hier is de waarde 1 ingevuld
Druk op de button Publish.
Je zal nu zien dat de topic links in het venster verschijnt, wat een bewijs is dat het werkt.
Als je test geslaagd is, kan je Mosquitto broker instellen op auto restart
docker update --restart unless-stopped mosquitto