MQTT Mosquitto Handing: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 9: Zeile 9:
 
*mosquitto_sub -h localhost -t test
 
*mosquitto_sub -h localhost -t test
 
;2. Fenster
 
;2. Fenster
*mosquitto_pub -h localhost -t test -m "Hello World!"
+
*mosquitto_pub -h localhost -t test -m "Hello World"
  
 
= Sichere deinen Broker mit einem Passwort ab =
 
= Sichere deinen Broker mit einem Passwort ab =
Zeile 24: Zeile 24:
 
*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 15. April 2024, 13:39 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 deinen Broker

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

Hallo Welt

1. Fenster
  • mosquitto_sub -h localhost -t test
2. Fenster
  • mosquitto_pub -h localhost -t test -m "Hello World"

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