MQTT Mosquitto Handing: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= Eclipse Mosquitto MQTT Broker unter Ubuntu installieren und einrichten =
 
= Eclipse Mosquitto MQTT Broker unter Ubuntu installieren und einrichten =
 
'''MQTT''' steht für ''Message Queuing Telemetry Transport'' und ist ein Protokoll für die Machine-to-Machine-Kommunikation im ''Internet of Things''. Eclipse Mosquitto ist ein beliebter Open-Source MQTT-Broker.
 
'''MQTT''' steht für ''Message Queuing Telemetry Transport'' und ist ein Protokoll für die Machine-to-Machine-Kommunikation im ''Internet of Things''. Eclipse Mosquitto ist ein beliebter Open-Source MQTT-Broker.
= Installiere deinen Broker =
+
= Installiere den Broker =
 
*apt update && apt-get upgrade
 
*apt update && apt-get upgrade
 
*apt install mosquitto
 
*apt install mosquitto
 
*apt install mosquitto-clients
 
*apt install mosquitto-clients
= Hallo Welt =
+
== MQTT-Kommandos zur Kommunikation ==
;1. Fenster
+
 
*mosquitto_sub -h localhost -t test
+
===Fenster 1 - Subscriber (Empfänger)===
;2. Fenster
+
*'''mosquitto_sub -h localhost -t test'''
*mosquitto_pub -h localhost -t test -m "Hello World!"
+
Dieses Kommando startet einen Subscriber, der sich mit dem MQTT-Broker auf '''localhost''' verbindet und auf Nachrichten im Topic '''test''' wartet. Sobald eine Nachricht an dieses Topic gesendet wird, wird sie hier angezeigt.
 +
 
 +
===Fenster 2 - Publisher (Sender)===
 +
*'''mosquitto_pub -h localhost -t test -m "Hello World"'''
 +
Hier handelt es sich um einen Publisher. Er verbindet sich ebenfalls mit dem Broker auf '''localhost''', sendet jedoch aktiv eine Nachricht ('''Hello World''') an das Topic '''test'''. Da das erste Fenster (Subscriber) auf dieses Topic abonniert ist, empfängt es diese Nachricht und zeigt sie an.
  
 
= Sichere deinen Broker mit einem Passwort ab =
 
= Sichere deinen Broker mit einem Passwort ab =
Zeile 24: Zeile 28:
 
*systemctl restart mosquitto
 
*systemctl restart mosquitto
 
=Hallo Welt Authentifiziert=
 
=Hallo Welt Authentifiziert=
*mosquitto_sub -h localhost -t test
+
;1. Fenster
 +
*mosquitto_sub -h localhost -t test -u xinux  -P 123Start$
 +
;2. Fenster
 +
*mosquitto_pub -h localhost -t test -m "Hello World" -u xinux  -P 123Start$
  
 
=Shelly-Gerät einrichten=
 
=Shelly-Gerät einrichten=

Aktuelle Version vom 30. Oktober 2024, 10:04 Uhr

Eclipse Mosquitto MQTT Broker unter Ubuntu installieren und einrichten

MQTT steht für Message Queuing Telemetry Transport und ist ein Protokoll für die Machine-to-Machine-Kommunikation im Internet of Things. Eclipse Mosquitto ist ein beliebter Open-Source MQTT-Broker.

Installiere den Broker

  • apt update && apt-get upgrade
  • apt install mosquitto
  • apt install mosquitto-clients

MQTT-Kommandos zur Kommunikation

Fenster 1 - Subscriber (Empfänger)

  • mosquitto_sub -h localhost -t test

Dieses Kommando startet einen Subscriber, der sich mit dem MQTT-Broker auf localhost verbindet und auf Nachrichten im Topic test wartet. Sobald eine Nachricht an dieses Topic gesendet wird, wird sie hier angezeigt.

Fenster 2 - Publisher (Sender)

  • mosquitto_pub -h localhost -t test -m "Hello World"

Hier handelt es sich um einen Publisher. Er verbindet sich ebenfalls mit dem Broker auf localhost, sendet jedoch aktiv eine Nachricht (Hello World) an das Topic test. Da das erste Fenster (Subscriber) auf dieses Topic abonniert ist, empfängt es diese Nachricht und zeigt sie an.

Sichere deinen Broker mit einem Passwort ab

  • mosquitto_passwd -c /etc/mosquitto/passwd xinux
Wir nehmen unser Standard Passwort
  • nano /etc/mosquitto/conf.d/default.conf
log_type all
listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd
connection_messages true
  • systemctl restart mosquitto

Hallo Welt Authentifiziert

1. Fenster
  • mosquitto_sub -h localhost -t test -u xinux -P 123Start$
2. Fenster
  • mosquitto_pub -h localhost -t test -m "Hello World" -u xinux -P 123Start$

Shelly-Gerät einrichten

Für die Einrichtung eines Shelly-Geräts müssen Sie es so konfigurieren, dass es die MQTT-Einstellungen des Brokers verwendet
  • MQTT-Serveradresse (IP-Adresse oder Hostname des Mosquitto-Servers)
  • Port (standardmäßig 1883)
  • Benutzername (xinux)
  • Passwort (password)
  • Diese Einstellungen werden normalerweise über die Shelly-App oder das Webinterface des Geräts vorgenommen.

Wir schauen welche topic das Gerät hat

  • tail -f /var/log/mosquitto.log

Wir schalten und sniffen

on
  • mosquitto_pub -h broker_ip -t 'Herausgefundene Topic' -m 'on' -u testuser -P password
off
  • mosquitto_pub -h broker_ip -t 'Herausgefundene Topic' -m 'off' -u testuser -P password
toggle
  • mosquitto_pub -h broker_ip -t 'Herausgefundene Topic' -m 'toggle' -u testuser -P password


Installiere und führe Certbot für Let's Encrypt Zertifikate aus

Füge das Certbot-PPA hinzu und installiere Certbot:

add-apt-repository ppa:certbot/certbot
apt-get update
apt-get install certbot
ufw allow http

Erstelle und erneuere SSL-Zertifikate automatisch:

certbot certonly --standalone --preferred-challenges http-01 -d DNSDomainname
15 3 * * * certbot renew --noninteractive --post-hook "systemctl restart mosquitto"

Aktiviere SSL-Verschlüsselung für deinen Broker

Konfiguriere SSL in der Mosquitto-Konfigurationsdatei:

nano /etc/mosquitto/conf.d/default.conf

Füge folgende SSL-Parameter hinzu:

listener 8883
certfile /etc/letsencrypt/live/DNSDomainname/cert.pem
cafile /etc/letsencrypt/live/DNSDomainname/chain.pem
keyfile /etc/letsencrypt/live/DNSDomainname/privkey.pem

Aktualisiere die Firewall, um SSL-Verbindungen zuzulassen:

ufw allow 8883

Aktiviere Websockets für deinen Broker

Füge die Websocket-Unterstützung in der Mosquitto-Konfigurationsdatei hinzu:

nano /etc/mosquitto/conf.d/default.conf

Füge folgende Zeile für Websockets hinzu:

listener 9001
protocol websockets

Fazit

Die Einrichtung von Mosquitto als MQTT-Broker auf Ubuntu bietet eine robuste Plattform für IoT-Kommunikation. Durch die Sicherung des Brokers und die Aktivierung von SSL wird eine sichere Datenübertragung gewährleistet.

Quelle