In dem Artikel RaspberryPi – MQTT Server auf dem RaspberryPi installieren hatte ich ein wenig zu MQTT geschrieben und erklärt wie man einen eigenen MQTT Server auf dem RaspberryPi installiert.
Damit ihr einen MQTT Server auch aus FHEM heraus nutzen könnt, müsst ihr allerdings noch ein paar FHEM-Module installieren. Wie das geht und worauf Ihr dabei achten müsst habe ich in dem folgendem Artikel beschrieben.
Übersicht
Bevor mit der Installation des MQTT Moduls begonnen werden kann solltet ihr den RaspberryPi soweit vorbereitet haben, dass FHEM auf diesem installiert und über das Webmenü konfigurierbar ist.
Die folgenden drei Artikel beschreiben was zu tun ist um den RaspberryPi soweit vorzubereiten:
RaspberryPi – Einrichten für Nerdiys!
RaspberryPI – Die Erste Konfiguration!
RaspberryPi – Den RaspberryPi über SSH steuern
FHEM – Installation auf dem RaspberryPi
RaspberryPi – MQTT Server auf dem RaspberryPi installieren
Benötigtes Werkzeug:
-keins-
Benötigtes Material:
In der folgenden Liste findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.
Per SSH auf dem RaspberryPi einloggen
Um zu beginnen müsst Ihr Euch als erstes mit Putty per SSH auf dem RasPi einloggen. Wie das geht ist im Artikel RaspberryPi - Den RaspberryPi über SSH steuern beschrieben.
Paketverwaltung aktualisieren
Die Paketverwaltung in Linux ist eine "zentrale Stelle" über die sich diverse Software-Pakete installieren lassen. Damit dies zuverlässig funktioniert sollten vor jeder Installation von neuen Paketen die Listen und Quellen der Paketverwaltung aktualisiert werden.
sudo apt-get update && sudo apt-get upgrade
Perl MQTT Pakete installieren
Damit FHEM mit dem MQTT Server kommunizieren kann müssen zwei Perl Paket installiert werden.
Dazu müsst ihr euch mit Putty auf dem RasPi einloggen und folgende Befehle eingeben:
sudo cpan install Net::MQTT:Simple sudo cpan install Net::MQTT:Constants
Die Nachfrage „Would you like to configure as much as possible automatically? [yes]“ bestaetigt ihr mit „yes“ und Enter.
FHEM neu starten
Damit die neu installierten Pakete von FHEM erkannt werden muss FHEM einmal neu gestartet werden. Dazu müsst ihr die folgenden beiden Befehle nacheinander eingeben. Dadurch wird der Server erst gestoppt und dann wieder gestartet. Weiter Infos zum stoppen und starten findet Ihr auch in dem Artikel FHEM – Aufbau, Module & Wissenswertes
sudo /etc/init.d/fhem stop sudo /etc/init.d/fhem start
MQTT Clienten definieren
Damit Ihr nun über FHEM MQTT Daten senden und empfangen könnt muss sich FHEM gegenüber dem MQTT Server als Client anmelden. Diesen Clienten müsst Ihr nur einmal anlegen. Alle in FHEM angemeldete Sensoren bzw. Aktoren werden dann später über diesen Clienten mit Daten versorgt bzw. können über diesen Ihre Daten versenden.
Um den MQTT Clienten in FHEM anzumelden müsst ihr auf die Weboberfläche von FHEM wechseln.
Dort ist im oberen Bereich ein Eingabe Feld über das wir die Definition des MQTT Clienten eingeben können.
Die Defintion lautet(zum Beispiel):
define mqttClient MQTT 127.0.0.1:1883
Durch den Befehl wurde der MQTT Client in FHEM erstellt. Dieser kann so aber noch nicht viel.
Um die Funktion zu testen erstellen wir ein MQTT_ DEVICE. Über dieses Modul können in FHEM MQTT-Topics abonniert und auch Daten veröffentlicht werden.
Die Definition zu unserem kleinen Test-Modul lautet:
define mqttTest MQTT_DEVICE; attr mqttTest subscribeReading_testTopic testTopic; attr mqttTest publishSet_testTopic testTopic;
Testnachricht senden und Empfang prüfen
Ihr habt eure FHEM Installation nun also MQTT fähig gemacht.
Viel Spaß mit dem Projekt
Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂
P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂