Der MQTT Mosquitto Server / Broker

Der MQTT Mosquitto Server ist ein absolutes Leichtgewicht unter den MQTT Brokern und entspricht dem MQTT Standard der Really Small Message Broker.

Der MQTT Mosquitto Server ist auf sämtlich gängigen Betriebssystem wie

  • Windows
  • OS X Mac
  • Arch Linux
  • CentOS
  • Debian
  • Fedora
  • Gentoo
  • openSUSE
  • SUSE Linux Enterprise Server
  • Ubuntu
  • LEDE / OpenWRT
  • Raspery PI
  • Redhat Enterprise Linux
  • QNX
  • iOS / iPhone

lauffähig.

Die aktuellen Bibliotheken sowie source code sind frei verfügbar unter https://mosquitto.org/download/.

Mosquitto Server Installation

Nahezu für jede Plattform werden mittlerweile Skripte zur Installation des Mosquitto MQTT Broker sowie eine Eclipse API bereitgestellt.

Je nach Plattform variieren die notwendigen Installationsroutinen, diesbezüglich sei hier auf die jeweiligen Git, bzw. Foren und Internetseiten verwiesen. Üblicherweise läßt sich die Mosquitto Server Installation in wenigen Augenblicken realisieren.

Im Nachfolgenden erfolgt die Installation von MQTT Mosquitto auf einem Linux, LEDE (OpenWRT) Router.

MQTT Broker Router / LEDE / OpenWRT

Um etwaige Verwirrungen bezüglich der Router Linux Firmware zu vermeiden im Vorfeld die Erläuterung zu LEDE.

LEDE ist das sogenannte OpenWRT Reboot, massgeblich supported von den OpenWRT Kernentwicklern.  Hintergründe und Ziel des OpenWRT Spin-Off LEDE finden sich sowohl auf der LEDE Project Seite als auch in unzähligen Foren. Der Einfachheit wegen wird das Router Linux Betriebssystem als LEDE benannt. Ferner setzen die nachfolgenden Erläuterungen eine entsprechende Router Hardware wie folgt voraus:

  • min. 8MB Flash
  • min. 32MB Ram
  • USB bzw. SPI support zur Speichererweiterung

MQTT Mosquitto Router Installation

Die MQTT Mosquitto Router Installation kann sowohl beim Erstellen der LEDE Router Firmware, gleichwohl auch auf eine bereits laufende LEDE Version installiert werden.

Da die LEDE (OpenWRT) Mosquitto Version Lua basierend ist und im Weiteren auch die Konfiguration unter anderem mittels der grafischen Oberfläche Luci erfolgt, sollte

  • Luci
  • oder alternativ (ohne Luci) der Lua Compiler, sowie Lua Bibliotheken
  • ein FTP Paket, beispielsweise das vsftpd Paket

installiert sein.

OpenWRT LEDE MQTT Mosquitto Installation über SSH

Die Installation von MQTT Mosquitto über SSH Zugriff mittels Terminal erfolgt mit opkg, dem LEDE Paket Manager durch

opkg update

die hinterlegten Feeds aktualisieren

opkg install mosquitto-nossl

die benötigten MQTT Mosquitto installieren

Die erfolgreiche Installation wird entsprechend bestätigt und angezeigt.

Sollte opkg Fehlermeldungen anzeigen

  1. die Internetverbindung des Routers geprüft werden
  2. die Liste der Distribution feeds geprüft werden

 OpenWRT LEDE MQTT Mosquitto Installation über Luci

Ähnlich einfach ist die MQTT Mosquitto Installation unter Zuhilfenahme des LEDE Webinterface Luci.

  1. Im LEDE Menü unter System den Menüpunkt Software auswählen
  2. Im Luci Software Manager durch Klick auf Update list die hinterlegten Feeds aktualisieren
  3. Im Feld Filter Mosquitto eingeben und durch Klick auf Find package suchen
  4. Im Bereich Status auf den Reiter Available packages klicken
  5. Das mosquitto-nossl Paket suchen und durch Klick auf Install installieren

Die erfolgreiche Installation wird nach erfolgreicher Installation des LEDE MQTT Mosquitto Pakets im Software Manager angezeigt.

 MQTT Mosquito Feed in LEDE Build Root einbinden

Zusätzlich kann MQTT Mosquitto für die LEDE / OpenWRT Versionen

  • Attitude Adjustment (12.09)
  • Barrier Breaker (14.07)
  • Chaos Calmer (15.05)

mittels dem remakeelectric Paket eingebunden werden.

Um das remakeelectric Paket im LEDE / OpenWRT Build Root einzubinden sind lediglich folgende Schritte notwendig:

1. Die Datei feeds.conf um den Eintrag
src-git owrt_pub_feeds git://github.com/remakeelectric/owrt_pub_feeds.git
erweitern und speichern.

2. Die LEDE Feeds um owrt_pub_feeds mittels Terminal aktualisieren

./scripts/feeds update owrt_pub_feeds

3. Die owrt_pub_feeds mittels Terminal installieren

./scripts/feeds install -p owrt_pub_feeds -a

4. Nach erfolgreicher Installation der Feeds muss lediglich die LEDE Konfiguration mittels Terminal aufgerufen werden

make menuconfig

5. Innerhalb des Menüpunkt Network sind nun die neu, installierten Pakete hinterlegt. Zur Integration muss lediglich das Mosquitto Paket aktiviert werden.

Nach erfolgreicher Installation der LEDE Firmware ist im LEDE Menüpunkt Services, eine grafische Oberfläche unter Mosquitto zu finden.

MQTT Broker Mosquitto grafische Luci Oberfläche erstellen

Die grafische Oberfläche wird lediglich bei dem LEDE Build Prozess bereitgestellt. Dabei wird sowohl der LEDE Menüpunkt Service um den Eintrag Mosquitto erweitert, als auch ein entsprechendes cbi Model integriert um mittels einer Luci Map die Mosquitto Konfigurationsdatei aufzurufen. Um den MQTT Broker Mosquitto in die grafische LEDE Oberfläche LUCI einzubinden sind folgende Schritte notwendig:

  1. die benötigten MQTT Mosquitto Lua Dateien (83 downloads)
  2. die Zip Datei mosquitto_src.zip entpacken
  3. um den Menüeintrag mit dem Entry Mosquitto im LEDE Admin Menü
    die Datei mosquitto_src/controller/mosquitto.lua
    mittels FTP auf dem Router, im Verzeichnis
    usr/lib/lua/luci/controller ablegen.
  4. nun muss lediglich die entsprechende cbi Datei auf die der Entry vorgenannter controller Datei verweist zu finden unter
    mosquitto_src/model/cbi/mosquitto.lua
    mittels FTP, auf dem Router, im Verzeichnis
    usr/lib/lua/luci/model/cbi/mosquitto.lua
    abgelegt werden.

Beim erneutem Zugriff auf das LEDE Webinterface Luci erscheint nun im Menüpunkt Services der Eintrag Mosquitto.

Sollte der Eintrag nicht erscheinen, so muss die Datei luci-indexcache auf dem Router zu finden unter tmp/ gelöscht werden. Ferner empfiehlt es sich die Cache Einstellungen während der Arbeit innerhalb der LEDE Firmware zu deaktivieren. Hierzu muss lediglich der Eintrag:
config internal ‘ccache’
option enable ‘1

auf
config internal ‘ccache’
option enable ‘0

in der Konfigurationsdatei luci, auf dem Router zu finden unter etc/config geändert werden.