Anleitung zur Installation unserer MQTT-Programme auf einem Android Smartphone.

Die Installation von Software auf Smartphones mit dem Android Betriebssystem geschieht meist über einen oft über einen Android App Store. Der Store hat die Berechtigungen die dort hinterlegten Anwendungen direkt auf das Smartphone zu laden und zu installieren.
Die Bereitstellung von Anwendungen für Stores wie Google Play sind mit etwas Aufwand verbunden. Zudem sind unsere Anwendungen nicht für einen breiten Markt gedacht, sondern lediglich für die professionellen Anwender unserer Module. Daher ist es für uns zweckmäßiger diese Anwendungen direkt über unsere Internetseite zu beziehen und direkt zu installieren. Dies ist sehr einfach und wird in dieser Anleitung genau gezeigt.

Zuerst wird das Programm in der gewünschten Version auf unserer Service-Seite ausgewählt und angeklickt.

Die Programmdatei (APK-Datei) wird dann vom Browser heruntergeladen.
Nachdem die Datei heruntergeladen wurde kann sie direkt geöffnet werden.
Abhängig vom verwendeten Browser (Crome, Firefox, Opera, Vivaldi,…) kann der Downloadbereich unterschiedlich angezeigt werden. Es ist in jedem Fall möglich, die heruntergeladene Datei zu öffnen.

Wenn von diesem Internetbrowser noch nie eine Anwendung installiert wurde, kann es sein, dass die Installation zunächst verhindert wird. Über die Einstellungen können diese Berechtigungen jedoch einfach vergeben werden.

Auf älteren Android Versionen wird diese Berechtigung pauschal für das gesamte Gerät gegeben (Bereich „Sicherheit“, „Anwendungen aus unbekannten Quellen installieren“). Bei neueren Android-Versionen wird diese Berechtigung nur für eine einzelne Anwendung gegeben.
Nachdem die Einstellung verändert wurde geht es über den „Zurück“ Pfeil oben links wieder zurück zur geplanten Installation.

Nun kann mit der eigentlichen Installation des Programms begonnen werden.

Abhängig von der Android-Version und den Systemeinstellungen kann es sein, dass eine erneute Bestätigung eingeholt wird, dass diese Datei wirklich installiert werden soll.

Zusätzlich kann zur Sicherheit die Datei zu Google zur Überprüfung gesendet werden.

Spätestens nun sollte die Anwendung installiert werden.

Der Installationsvorgang selbst dauert dann nur einige Sekunden.

Nach der Installation kann die WLAN-MQTT-Anwendung direkt geöffnet werden.

Installation und Betrieb eines MQTT Brokers (Server) auf Android

Einleitung

Die Kommunikation bei MQTT wir über einen zentralen Server abgewickelt. Dieser Server steht normalerweise im „Backend“: Über eine Adresse ist er bekannt – alles weitere interessiert den MQTT Anwender dann nicht mehr. In der Praxis läuft dieser Server (MQTT Broker genannt) dann entweder in der Cloud – also einem entfernten Dienst eines Dienstleisters oder auf einem eigenen Server. Der eigene Server kann dann etwas Großes oder Kleines sein. Etwas großes wäre der dicke Server im Keller. Etwas kleines wäre z.B. ein Raspberry Pi welcher mit Open-Software ausgestattet z.B. lokal in einer Fertigungsanlage oder in der Linie positioniert ist.

Es ist jeweils für den aktuellen Anwendungsfall zu entscheiden was das zweckmäßigste ist. Normal ist jedoch, dass viele MQTT Devices über diesen Server kommunizieren und ihre Daten bereitstellen, abrufen und austauschen.

Nun kommen wir zum nicht normalen Fall: Es gibt Anwendungsfälle, in welchen schlicht kein klassischer Server gewünscht ist. Zum Beispiel sollen nur einige Messuhren ihre Werte auf ein Tablet liefern, damit diese dort dann angezeigt und gespeichert werden können.

Messuhren mit anderer Funktechnik wie Bluetooth oder Zigbee scheiden aus, da hier keine universellen Standards eingesetzt werden können und zudem beim Wechseln von Tablet oder Messuhr eine umständliche Kopplung durchgeführt werden muss.

Die Lösung ist es, direkt auf dem Tablet einen MQTT Broker einzusetzen. Mit diesem können sich die Messuhren einfach verbinden. Der auf dem Tablet programmierte Client kann direkt den lokalen Broker abfragen um die Werte der Messuhren zu erhalten.

Vorhandene MQTT Broker

Eine Liste der wesentlichen MQTT Broker-Implementationen ist auf Github zu finden.

Es ist nicht weiter verwunderlich, dass hier kein Broker für Android zu finden ist, da Android ein Client-Betriebssystem ist – und ein MQTT Broker eben eine Server Anwendung.

Eine Suche im Google Playstore listet zwar einige MQTT Broker auf – diese haben jedoch keine allzu guten Reputationen. Unsere Versuche mit diesen Brokern blieben Versuche: Von einem ernsten industriellen Einsatz raten wir ab. Zu unstabil, mit Werbung versehen und fragwürdige Herkunft bei geschlossenen Quellen sind keine Basis für einen industriellen Einsatz.

Der wahrscheinlich am häufigsten verwendete MQTT Broker ist der Mosquitto Broker der Eclypse Foundation. Dieser Broker läuft auf einigen Betriebssystemen – ab liebsten und häufigsten sicherlich auf Linux.

Android ist wie gesagt ein Client-Betriebssystem und der Betrieb eines Servers ist dort nicht unbedingt vorgesehen. Da Android jedoch nicht mehr als ein modifiziertes Linux ist kann der Weg zu einem Linux Server nicht all zu weit sein.

Die Lösung sieht also folgendermaßen aus und ist entsprechend einfach:
Wir installieren eine Linux-Terminal Emulation auf Android. In dieser Emulation können wir dann den Linux MQTT Broker installieren und betreiben.

Mosquitto MQTT Broker Installation auf Android

Hier also die Schritt-für-Schritt Anleitung zur Installation.

Alle eingesetzten Produkte sind OpenSource Programme und kostenlos verfügbar. Die Quellen aller Programme sind frei verfügbar. Alle Programme sind keine Exoten sondern von einer großen Gemeinschaft professionell entwickelte Produkte.

Installation von Termux

Das Programm Termux wird installiert.
Empfohlen über F-Droid oder Google Playstore.

Wenn F-Droid für die Installation gewählt wurde müssen auch die unten aufgeführten Zusatzmodule unter F-Droid installiert werden. Gleiches gilt für den Google Playstore. Die Termix-Installationen müssen also alle aus dem gleichen Store kommen – ansonsten werden Sie in verschiedenen Bereichen installiert und finden sich nicht gegenseitig.


Abhängig von der geplanten Betriebsweise werden zudem Zusatzmodule von Termux benötigt: Soll der Broker über ein Symbol auf dem Startbildschirm (Application Launcher) gestartet werden wird das Zusatzmodul Termux:Widget benötigt. Soll der Broker bei jedem Start des Gerätes automatisch gestartet werden benötigen wir das Modul Termux:Boot. Die Links zu den Modulen in den Android-Anwendungsstores:
Widget: Termux:Widget in F-Droid und Termux:Widget im Playstore.
Boot: Termux:Boot in F-Droid und Termux:Boot im Playstore.

Installation von Mosquitto

Nach der Installation von Termux wird Termux geöffnet / ausgeführt.

Es erscheint eine Eingabeaufforderung. Hier können nun die weiteren Befehle eingegeben werden. Zur Installation von Mosquitto reicht eine Zeile (Return nach der Eingabe):

pkg install mosquitto

Eventuelle Nachfragen alle einfach mit „Return“ bestätigen: Wir benötigen keine besonderen Einstellungen.

Weiter benötigen wir später noch einen Text-Editor, also installieren wir diesen:

pkg install nano

Optional kann natürlich auch ein anderer Editor installiert werden oder mit den entsprechenden Kenntnissen ein Android-Editor verwendet werden.

Ausführen des MQTT Brokers

Damit der Broker einfach ausgeführt werden kann, legen wir entweder eine Verknüpfung auf dem Startbildschirm an oder veranlassen Termux das Laden des Dienstes direkt beim Systemstart.

MQTT Broker über Startsymbol starten

Im Termux Terminal geben wir ein:

mkdir -p $HOME/.shortcuts
nano $HOME/.shortcuts/mosquitto.sh

Im Nano Texteditor dann

mosquitto

Abgeschlossen mit einem „Return“. Den Editor dann mit Strg-X und „Y“ beenden und speichern.

Abschliessend

chmod +x $HOME/.shortcuts/mosquitto.sh

eingeben, damit das Script die Berechtigungen zum Ausführen erhält.

Nun sollte im Android Launcher ein Widget mit dem Namen „Termux“ vorhanden sein. Dieses kann nun auf den Startbildschirm positioniert werden. Nach Auswahl des Widgets kann das angelegte Script „mosquitto.sh“ ausgewählt werden. Dieses Script ist nun dem Widget zugeordnet. Bei jedem Start über das Symbol wird also das Script ausgeführt, welches wiederum den Mosquitto Server ausführt.
Detailinfos zum Widget auf der Termux:Widget Wiki Seite.

Wenn Android Widgets völlig fremd sind hilft eine Suche zu allgemeinen Widget Themen.

MQTT Broker beim Android Systemstart starten

Die oben schon installierte Termux:Boot Anwendung muss nach der Installation einmalig gestartet werden damit die Anwendung sich als Boot-Dienst registriert.

Anschliessend legen wir analog zum Widget-Start ein Mosquitto Start Script im dafür vorgesehenen Verzeichnis ab. Im hier gezeigten Beispiel fügen wir noch die Zeile „termux-wake-look“ ein: Diese verhindert, dass Android in den Standby-Modus wechselt, so dass unser Broker durchgehend läuft.

Im Termux Terminal geben wir ein:

mkdir ~/.termux/boot
nano ~/.termux/boot/mosquitto.sh

Im Nano Texteditor dann

#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
mosquitto

Abgeschlossen mit einem „Return“. Den Editor dann mit Strg-X und „Y“ beenden und speichern.

Diese Datei wird nun über Termux:Boot beim Systemstart geladen und ausgeführt und sollte den Mosquitto Broker starten.

Rechtliches

Bluetooth ist eine eingetragene Marke der Bluetooth SIG, Inc.
Wi-Fi ist eine eingetragene Marke der Wi-Fi Alliance.
Mitutoyo und Digimatic sind vermutlich eingetragene Warenzeichen von Mitutoyo. Wir verwenden diese Bezeichnungen hier zur Erklärung des IoT Moduls (der Hardware und Software).
Wir stehen in keiner Verbindung zu Mitutoyo – setzen aber sehr gerne und wo immer möglich deren gute und zuverlässigen Messuhren ein.