Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

MQTT Broker auf dem Raspberry Pi

Veröffentlicht am 19. Februar 2019 von Christian Piazzi 2 Kommentare , Aktualisiert am 1. April 2020
Geschätzte Lesezeit: 1 Minute

Titlebild MQTT Broker - Switch mit Netzwerkkabeln

Immer mal wieder treffe ich auf das Thema MQTT sowohl beruflich wie auch privat. Da ich mir vor kurzer Zeit nun für meinen Raspberry PI ein z-wave Adapter angeschafft habe, ist nun meine Idee die Informationen meiner z-wave Devices wie MQTT in meine Hausautomatisierung einzubinden.

Aus diesem Grund will ich hier mal kurz zeigen wie man auf dem Raspberry Pi einen MQTT Broker installiert. Zuvor will ich aber kurz erklären, was MQTT ist und wofür man das ganze verwendet.

Was ist MQTT?

MQTT steht für Message Queuing Telemetry Transport ist und ein Protokoll von dem man oft im Zusammenhang mit dem Internet of Things hört. Das ist nicht weiter verwunderlich, da dieses Protokoll dazu verwendet wird, eine Machine zu Machine Kommunikation für Telemetriedaten aufzubauen.

Der MQTT-Broker verbindet sich mit MQTT fähigen Geräten um die Telemetriedaten zu sammeln und hälte diese dann in einem lokalen Datenlager vor. In der Praxis werden diese Daten dann für gewöhnlich an einen Date Lake oder eine Analyse Plattform zur weiteren Verarbeitung mittels ETL Prozess weitergegeben.

MQTT auf dem Raspberry Pi installieren

Wir werden nun auf unserem Raspberry Pi den MQTT Broker Mosquitto installieren. Dafür installieren wir als erstes die aktuellen Updates auf dem Raspberry Pi.

1
2
apt-get update
apt-get dist-upgrade

Anschließend wird Mosquitto installiert.

1
apt-get install -y mosquitto mosquitto-clients

Nach der Installation fügen wir den Broker dem Startup Script hinzu, damit der Broker nach einem Neustart oder einem Stromausfall automatisch wieder startet.

1
systemctl enable mosquitto.service

MQTT Broker testen

Um den Broker zu testen, starten wir den deamon im Hintergrund deamon im Hintergrund.

1
mosquitto -d

Anschließend schaltet man sich mit dem Mosquitto Client auf eine Topic (Subscribing). In unserem Beispiel verwenden wir die Topic test.

1
mosquitto_sub -d -t test

Danach schicken wir eine Nachricht zu dem Broker (Publishing), welche dann in dem Terminal wo wir lauschen angezeigt werden sollte.

1
2
3
4
5
mosquitto_pub -d -t test -m "Hello world!"
Client mosqpub/19914-raspberry sending CONNECT
Client mosqpub/19914-raspberry received CONNACK
Client mosqpub/19914-raspberry sending PUBLISH (d0, q0, r0, m1, 'test', ... (12 bytes))
Client mosqpub/19914-raspberry sending DISCONNECT

Die Ausgabe im Mosquitto Client in dem gelauscht wird, sieht wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
12
mosquitto_sub -d -t test
Client mosqsub/19867-raspberry sending CONNECT
Client mosqsub/19867-raspberry received CONNACK
Client mosqsub/19867-raspberry sending SUBSCRIBE (Mid: 1, Topic: test, QoS: 0)
Client mosqsub/19867-raspberry received SUBACK
Subscribed (mid: 1): 0
Client mosqsub/19867-raspberry received PUBLISH (d0, q0, r0, m0, 'test', ... (12 bytes))
Hello world!
Client mosqsub/19867-raspberry sending PINGREQ
Client mosqsub/19867-raspberry received PINGRESP
Client mosqsub/19867-raspberry sending PINGREQ
Client mosqsub/19867-raspberry received PINGRESP

Hier sieht man, dass der String „Hello world!“ übertragen wurde. Dazu sieht man noch ein paar Übertragungsinformationen, die für uns an dieser Stelle aber erstmal uninteressant sind.

Damit haben wir nun erfolgreich einen MQTT Broker auf dem Raspberry Pi installiert.

Kategorie: Big Data, Smart Home Tags: Broker, IoT, Raspberry Pi

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Kommentare

  1. Frank meint

    2. März 2019 um 09:29

    Hallo,
    Ich bin blutiger Anfänger. Dass man vor Kommandos ein sudo schreiben muss, habe ich noch herausgefunden.
    Leider funktioniert bei mir das Hallo Welt nicht.

    mosquitto_pub -d -t test -m „Hello world!“
    Client mosqpub/19914-raspberry sending CONNECT
    Client mosqpub/19914-raspberry received CONNACK
    Client mosqpub/19914-raspberry sending PUBLISH (d0, q0, r0, m1, ‚test‘, … (12 bytes))
    Client mosqpub/19914-raspberry sending DISCONNECT

    pi@raspberrypi:~ $ mosquitto_sub -d -t test
    Client mosqsub/3787-raspberryp sending CONNECT
    Client mosqsub/3787-raspberryp received CONNACK
    Client mosqsub/3787-raspberryp sending SUBSCRIBE (Mid: 1, Topic: test, QoS: 0)
    Client mosqsub/3787-raspberryp received SUBACK
    Subscribed (mid: 1): 0
    Client mosqsub/3787-raspberryp sending PINGREQ
    Client mosqsub/3787-raspberryp received PINGRESP

    Die Zeile mit der Ausgabe „Hello World“ fehlt.

    Was habe ich falsch gemacht?

    Gruss Frank

    Antworten
  2. Frank meint

    2. März 2019 um 09:48

    Hallo,
    habe es gerade selbst herausgefunden. Man muss natürlich 2 Terminals starten.
    Gruss Frank

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden