Installieren eines mosquitto Servers auf dem Raspberry Pi geht in 10 Minuten aber die weitere Konfiguration dauert dann schon ein wenig. Ziel dieses Blog Eintrags soll es sein, das Fhem über den MQTT-Server liest.
Später kommt dann ein ESP8266 der das Klingelsignal an der Haustür aufnimmt und drahtlos an Fhem via MQTT sendet. Hier mal die Architektur:
Aber jetzt erst einmal die Vorarbeiten:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
sudo apt-get update sudo apt-get upgrade # die schnelle Version, installiert den mosquitto Broker in Version 0.15 und den Client sudo apt-get install mosquitto mosquitto-clients python-mosquitto libmodule-pluggable-perl mosquitto-clients # Optional, wer den aktuellsten 1.4.5 MQTT Broker haben will, muss ihn wie folgt aus dem mosquitto Repo installieren: wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key sudo apt-key add mosquitto-repo.gpg.key cd /etc/apt/sources.list.d/ sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list # oder für jessie sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list sudo apt-get update sudo apt-get install mosquitto # Test ob der Server läuft sudo service mosquitto status # Starten und Stopen geht so sudo service mosquitto stop sudo service mosquitto start # Perl Version ausgeben perl -v # Ausgabe: This is perl 5, version 14, subversion 2 (v5.14.2) built for arm-linux-gnueabihf-thread-multi-64int # Perl MQTT Module installieren, das dauert ein wenig sudo cpan install Net::MQTT:Simple sudo cpan install Net::MQTT:Constants # In der Fhem.cfg das Gerät wie folgt angeben define klingel dummy define mqtt MQTT 127.0.0.1:1883 define mqtt_klingel MQTT_BRIDGE klingel attr mqtt_klingel subscribeSet fhem/flur/klingel/set attr mqtt_klingel publishState fhem/flur/klingel attr mqtt_klingel room Flur # Fhem restart sudo /etc/init.d/fhem stop sudo /etc/init.d/fhem start |
So, nun ist das MQTT Gerät vorhanden:
Cool…
Testen kann man es, indem von der Konsole folgender Befehl an den MQTT Server gesendet wird:
1 |
mosquitto_pub -q 2 -t fhem/flur/klingel/set -m Test-Wert-Cool |
So, die Kommunikation via MQTT läuft schon mal. Wie sieht es mit dem Speicherverbrauch und CPU auf dem Raspberry Pi aus, mit dem neuen MQTT Server?
Auch gut, wie
1 |
htop |
Wir können uns auch mit einem MQTT.FX Client an den Broker anmelden und die Nachrichten empfangen. Hier sehen wir die Nachrichten, bei jeder Statusänderung kommt eine Nachricht mit dem Inhalt: signal
Oder aber auch als Desktop-Benachrichtigung:
Wenn der ESP mit einem Monitor verbunden wird, können die gesendeten Signale ausgegeben werden:
Hier die Schaltung als Versuchsaufbau:
Und hier ein gutes Video zum Thema MQTT.