====== MQTT - Einrichtung eines Mosquitto-Serverdienstes ======
\\
\\
Für die Datenübertragung von einem Gerät per Netzwerk auf ein anderes Gerät kann MQTT genutzt werden.\\
Ich habe im Netz dazu viele kleine Anleitungen gefunden und will hier kurz meine Vorgehensweise darstellen.\\
\\
==== Installation ====
Auf einem Ubuntu-Server 18.04 wird zunächst die Software installiert:
sudo su
apt-get update
apt-get upgrade
apt-get install mosquitto mosquitto-clients
apt-get update
apt-get upgrade
\\
==== Dienst ====
Prüfen ob der Dienst läuft:
root@mqttserver:~# service mosquitto status
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
Loaded: loaded (/etc/init.d/mosquitto; generated)
Active: active (running) since Tue 2019-06-02 11:26:09 UTC; 27min ago
Docs: man:systemd-sysv-generator(8)
Tasks: 1 (limit: 1109)
CGroup: /system.slice/mosquitto.service
└─789 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Jun 04 11:26:08 mqttserver systemd[1]: Starting LSB: mosquitto MQTT v3.1 message broker...
Jun 04 11:26:09 mqttserver mosquitto[747]: * Starting network daemon: mosquitto
Jun 04 11:26:09 mqttserver mosquitto[747]: ...done.
Jun 04 11:26:09 mqttserver systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker.
\\
Wunderbar. Nun starte ich putty und erstelle eine neue Verbindung.\\
Im Putty-Fenster starte ich den Datenempfang:
root@mqttserver:~# mosquitto_sub -h localhost -v -t datenempfang
\\
In der Kommandozeile des Servers sende ich eine Info ab und betrachte die Datenausgabe im Putty-Empfangsfenster.\\
\\
=== Daten senden ===
root@mqttserver:~# mosquitto_pub -h localhost -t datenempfang -m "erste Daten"
root@mqttserver:~#
=== Daten empfangen ===
root@mqttserver:~# mosquitto_sub -h localhost -v -t datenempfang
datenempfang erste Daten
\\
\\
\\
Möchte man Daten von einem Client versenden wird nur mosquitto-clients installiert:
sudo su
apt-get update
apt-get upgrade
root@mqttserver:~# apt-get install mosquitto-clients
Die Information wird dann mit dem Namen des Empängers bzw. dessen IP-Adresse versendet:
root@mqttclient:~# mosquitto_pub -h localhost -t 192.168.100.58 -m "Gruß vom Client"
root@mqttclient:~#
\\
Der Server gibt diese aus:
root@mqttserver:~# mosquitto_sub -h localhost -v -t datenempfang
datenempfang Gruß vom Client
\\
\\
==== Auswertung ====
\\
Um die eintreffenden Daten verarbeiten zu können, installiert man JSON-Aufbereiter jq.\\
sudo apt-get install jq
Danach wird eine Script-Datei erstellt:\\
nano /root/scripte/mqtt_cputemp_eingang2.sh
chmod +x /root/scripte/mqtt_cputemp_eingang2.sh
#!/bin/bash
MQHOST=192.168.178.30
mosquitto_sub -h $MQHOST -t raspi4cputemp | while read RAW_DATA
do
a=$(echo $RAW_DATA | jq -R .);
echo $a;
done;
\\
\\
==== RAM-Disk ====
Verzeichnis erstellen
mkdir /var/www/html/ramdisk
\\
RAM-Disk einrichten
tmpfs /var/www/html/ramdisk tmpfs defaults,size=10m 0 0
\\
\\
und die Daten in eine Datei schreiben:
#!/bin/bash
MQHOST=192.168.178.30
mosquitto_sub -h $MQHOST -t raspi4cputemp | while read RAW_DATA
do
a=$(echo $RAW_DATA | jq -R .);
echo $a;
echo $a > /var/www/html/ramdisk/cputemp.txt
done;
\\
\\
Quellen:\\
https://neuendorf-online.de/posts/heimautomatisierung/mqtt-broker-mosquitto-installieren/\\
https://smarthome-blogger.de/tutorial/mqtt-raspberry-pi-einfuehrung/\\
https://smarthome-blogger.de/tutorial/esp8266-mqtt-tutorial/\\
https://forum.creationx.de/lexicon/index.php?entry/38-jq-ein-leistungsstarkes-programm-zur-auswertung-von-mqtt-json-meldungen/\\