Benutzer-Werkzeuge

Webseiten-Werkzeuge


mqtt

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Vorhergehende Überarbeitung
mqtt [04.06.2019]
mqtt [27.12.2023] (aktuell)
hochrath [RAM-Disk]
Zeile 1: Zeile 1:
 +====== 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:
 +<code>
 +sudo su
 +apt-get update
 +apt-get upgrade
 +
 +apt-get install mosquitto mosquitto-clients
 +
 +apt-get update
 +apt-get upgrade
 +</code>
 +
 +\\
 +==== Dienst ====
 +
 +Prüfen ob der Dienst läuft:
 +<code>
 +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.
 +</code>
 +
 +\\
 +Wunderbar. Nun starte ich putty und erstelle eine neue Verbindung.\\
 +Im Putty-Fenster starte ich den Datenempfang:
 +
 +<code>
 +root@mqttserver:~# mosquitto_sub -h localhost -v -t datenempfang
 +
 +</code>
 +
 +\\
 +In der Kommandozeile des Servers sende ich eine Info ab und betrachte die Datenausgabe im Putty-Empfangsfenster.\\
 +\\
 +=== Daten senden ===
 +<code>
 +root@mqttserver:~# mosquitto_pub -h localhost -t datenempfang -m "erste Daten"
 +root@mqttserver:~#
 +</code>
 +
 +=== Daten empfangen ===
 +<code>
 +root@mqttserver:~# mosquitto_sub -h localhost -v -t datenempfang
 +datenempfang erste Daten
 +
 +</code>
 +
 +\\
 +\\
 +\\
 +Möchte man Daten von einem Client versenden wird nur mosquitto-clients installiert:
 +<code>
 +sudo su
 +apt-get update
 +apt-get upgrade
 +
 +root@mqttserver:~# apt-get install mosquitto-clients
 +</code>
 +
 +Die Information wird dann mit dem Namen des Empängers bzw. dessen IP-Adresse versendet:
 +<code>
 +root@mqttclient:~# mosquitto_pub -h localhost -t 192.168.100.58 -m "Gruß vom Client"
 +root@mqttclient:~#
 +</code>
 +
 +\\
 +Der Server gibt diese aus:
 +<code>
 +root@mqttserver:~# mosquitto_sub -h localhost -v -t datenempfang
 +datenempfang Gruß vom Client
 +</code>
 +
 +\\
 +\\
 +==== Auswertung ====
 +
 +\\
 +Um die eintreffenden Daten verarbeiten zu können, installiert man JSON-Aufbereiter jq.\\
 +<code>
 +sudo apt-get install jq
 +</code>
 +
 +Danach wird eine Script-Datei erstellt:\\
 +<code>
 +nano /root/scripte/mqtt_cputemp_eingang2.sh
 +chmod +x /root/scripte/mqtt_cputemp_eingang2.sh
 +</code>
 +
 +<code>
 +#!/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;
 +</code>
 +
 +\\
 +\\
 +==== RAM-Disk ====
 +
 +
 +Verzeichnis erstellen
 +<code>
 +mkdir /var/www/html/ramdisk
 +</code>
 +\\
 +RAM-Disk einrichten
 +<code>
 +tmpfs    /var/www/html/ramdisk    tmpfs    defaults,size=10m 0       0
 +</code>
 +
 +\\
 +\\
 +und die Daten in eine Datei schreiben:
 +<code>
 +#!/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;
 +</code>
 +
 +\\
 +\\
 +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/\\
 +
 +
 +