MQTT Mosquitto Handing: Unterschied zwischen den Versionen
| (9 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 | + | = 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 | ||
| + | == 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 = | = Sichere deinen Broker mit einem Passwort ab = | ||
| − | *mosquitto_passwd -c /etc/mosquitto/passwd | + | *mosquitto_passwd -c /etc/mosquitto/passwd xinux |
| + | ;Wir nehmen unser Standard Passwort | ||
*nano /etc/mosquitto/conf.d/default.conf | *nano /etc/mosquitto/conf.d/default.conf | ||
<source> | <source> | ||
| Zeile 17: | Zeile 27: | ||
</source> | </source> | ||
*systemctl restart mosquitto | *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= | =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.