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
Letzte Überarbeitung Beide Seiten der Revision
mqtt [04.06.2019]
mqtt [21.01.2021]
hochrath
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 eien 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/\\
 +
 +
 +
  
mqtt.txt · Zuletzt geändert: 27.12.2023 von hochrath