HowTo: FHEM – MQTT Modul installieren

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.

Nach der Eingabe Eures Benutzernamen und Passworts könnt Ihr die ersten Befehle eingeben.

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.

Um das Update der Paketverwaltung zu starten müsst ihr folgenden Befehl eingeben.
sudo apt-get update && sudo apt-get upgrade
Je nachdem wie lange Euer letztes Update der Paketverwaltung her ist kann dieser Vorgang nun etwas dauern. Dabei werden zuerst die Listen aktualisiert in denen auf die einzelnen Paketquellen verwiesen wird.
Danach werden die Pakete selber aktualisiert. Da dabei zusätzlicher Speicher belegt wird, werdet Ihr nochmal nach Eurem Einverständnis gefragt. Dies müsst Ihr mit einem "J" und "Enter" bestätigen.
Ist die Aktualisierung abgeschlossen wird euch eine kleine Zusammenfassung über die Dauer und den Umfang des Updates angezeigt.

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.

Die Installation der beiden Pakete hat bei mir ca. fünf Minuten gedauert. Also Zeit genug um sich einen neuen Kaffee zu holen. 🙂

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;
Diese gebt ihr wieder im Textfeld auf der Webkonfigurationsseite von FHEM ein.

Nach der Definition des Test-Moduls werdet ihr nicht direkt auf dessen Konfigurationsseite weitergeleitet. Ihr findet es im „Raum“ „Unsorted“ und dann unter „mqttTest“.

Die Konfigurationsseite des eben definierten Moduls.

Testnachricht senden und Empfang prüfen

Um nun eine Testnachricht zu senden und zu empfangen müsst ihr auf die Konfigurationsseite des definierten Moduls wechseln. Dort tragt ihr in das rot eingekreiste Textfeld einen beliebigen Text ein.

Diesen Text könnt ihr dann durch klicken auf „set“ absenden. Dieser wird dann über MQTT mit dem Topic „testTopic“ an den MQTT Server gesendet.

Da wir bei der Definition des Moduls das Topic „testTopic“ aber auch abonniert haben, bekommen wir direkt in diesem Augenblick ein Update auf dieses Reading „testTopic“. Der von uns abgesendete Text wurde also wieder empfangen. Die Konfiguration in FHEM funktioniert also. 🙂

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. 🙂

Buy Me a Coffee at ko-fi.com       

Kommentar hinterlassen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.