MQTT (Modul): Unterschied zwischen den Versionen

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
K (Link auf MQTT2_DEVICE von cref auf intern umgestellt)
(Link zu Beispielen für gen bridge eingefügt)
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
|ModTechName=00_MQTT.pm
|ModTechName=00_MQTT.pm
|ModOwner=hexenmeister ({{Link2FU|4065|Forum}}) }}
|ModOwner=hexenmeister ({{Link2FU|4065|Forum}}) }}
Das Modul [[MQTT (Modul)|MQTT]] fungiert als [[Interface|Verbindung]] zwischen FHEM und einem MQTT Broker und repräsentiert ein  '''''MQTT Gateway'''''. Die durch die Module [[MQTT_DEVICE]] oder {{Link2CmdRef|Anker=MQTT_BRIDGE|Lang=en|Label=MQTT_BRIDGE}} repräsentierten Client-Geräte sind gesondert anzulegen.
Das Modul [[MQTT (Modul)|MQTT]] fungiert als [[Interface|Verbindung]] zwischen FHEM und einem MQTT Broker und repräsentiert ein  '''''MQTT Gateway'''''. Die durch die Module [[MQTT_DEVICE]] oder {{Link2CmdRef|Anker=MQTT_BRIDGE|Lang=en|Label=MQTT_BRIDGE}}<ref>Eine generische Lösung, um FHEM-Geräte MQTT-fähig zu machen, bietet {{Link2CmdRef|Anker=MQTT_GENERIC_BRIDGE|Lang=en|Label=MQTT_GENERIC_BRIDGE}}, das in neueren Installationen bevorzugt werden sollte.</ref> repräsentierten Client-Geräte sind gesondert anzulegen.


== Voraussetzungen ==
== Voraussetzungen ==
Es muss für jedes MQTT-Gateway ein Broker eingerichtet und erreichbar sein.
Es muss für jedes MQTT-Gateway ein Server (Broker) eingerichtet und erreichbar sein.
Eine Anleitung zur Einrichtung eines Mosquitto-Brokers finden Sie z.B. im Artikel [[MQTT Einführung]].
Eine Anleitung zur Einrichtung eines Mosquitto-Brokers finden Sie z.B. im Artikel [[MQTT Einführung]].
{{Hinweis|Seit August 2018 kann FHEM mit Hilfe des Moduls {{Link2CmdRef|Anker=MQTT2_SERVER|Lang=en|Label=MQTT2_SERVER}} selbst die Funktion des Brokers übernehmen. Dieser bietet zwar weniger Optionen wie ein vollwertiger Server (wie Mosquitto), ermöglicht es dafür aber, Client-Geräte mit [[MQTT2 DEVICE]] direkt in FHEM einzubinden, ohne dass dafür weitere externe Softwarekomponenten erforderlich wären.}}
{{Hinweis|Seit August 2018 kann FHEM mit Hilfe des Moduls {{Link2CmdRef|Anker=MQTT2_SERVER|Lang=en|Label=MQTT2_SERVER}} selbst die Funktion des Brokers übernehmen. Dieser bietet zwar weniger Optionen wie ein vollwertiger Server (wie Mosquitto), ermöglicht es dafür aber, Client-Geräte mit [[MQTT2 DEVICE]] direkt in FHEM einzubinden, ohne dass dafür weitere externe Softwarekomponenten erforderlich wären.}}
== Begrifflichkeiten in Kürze ==
== Begrifflichkeiten in Kürze ==
Ein Broker ist ein zentraler Serverdienst (irgendwo im Netz oder auf derselben Maschine, auf der auch FHEM läuft<ref>In den meisten Anwendungsfällen genügt es dabei, '''einen''' MQTT-Server zu betreiben, selbst wenn mehrere FHEM-Instanzen darauf zugreifen sollen.</ref>), an den Geräte ihre Informationen weitergeben (publish), und der dann dafür sorgt, dass diese Information an alle anderen Geräte weitergegeben wird, die sich dafür interessieren (subscribe). [[MQTT (Modul)|MQTT]] fungiert dabei als [[Systemübersicht#Interfaces| IO-Modul]] und organisiert die Kommunikation zwischen dem Broker und allen FHEM-Geräten, die MQTT bei diesem Server nutzen wollen.
Ein Broker ist ein zentraler Serverdienst (irgendwo im Netz oder auf derselben Maschine, auf der auch FHEM läuft<ref>In den meisten Anwendungsfällen genügt es dabei, '''einen''' MQTT-Server zu betreiben, selbst wenn mehrere FHEM-Instanzen darauf zugreifen sollen.</ref>), an den Geräte ihre Informationen weitergeben (publish), und der dann dafür sorgt, dass diese Information an alle anderen Geräte weitergegeben wird, die sich dafür interessieren (subscribe). [[MQTT (Modul)|MQTT]] fungiert dabei als [[Systemübersicht#Interfaces| IO-Modul]] und organisiert die Kommunikation zwischen dem Broker und allen FHEM-Geräten, die MQTT bei diesem Server nutzen wollen.
{{Hinweis|Seit Ende 2018 steht in FHEM mit [[MQTT2_CLIENT]] ein zweites, alternatives IO-Modul zur Anbindung eines externen Servers zur Verfügung. Mit diesem können ebenfalls Client-Geräte des Typs [[MQTT2 DEVICE]] verwendet werden, ohne dass dafür weitere Perl-Bibliotheken erforderlich wären.}}


== Define ==
== Define ==
Zeile 36: Zeile 36:
* [[MQTT Einführung]]
* [[MQTT Einführung]]
* {{Link2Forum|Topic=80416|LinkText=MQTT-Bridge als Brücke zwischen zwei FHEM-Instanzen}}
* {{Link2Forum|Topic=80416|LinkText=MQTT-Bridge als Brücke zwischen zwei FHEM-Instanzen}}
* {{Link2Forum|Topic=91642|LinkText=Thread mit Anwendungsbeispielen für MQTT_GENERIC_BRIDGE}}


== Anmerkungen ==
== Anmerkungen ==

Version vom 18. Juni 2019, 14:26 Uhr

MQTT (Modul)
Zweck / Funktion
Stellt als Gateway die Verbindung zu einem MQTT-Broker her
Allgemein
Typ Gerätemodul
Details
Dokumentation (Modul) EN / (Modul) DE
Support (Forum) MQTT
Modulname 00_MQTT.pm
Ersteller hexenmeister (Forum )
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Das Modul MQTT fungiert als Verbindung zwischen FHEM und einem MQTT Broker und repräsentiert ein MQTT Gateway. Die durch die Module MQTT_DEVICE oder MQTT_BRIDGE[1] repräsentierten Client-Geräte sind gesondert anzulegen.

Voraussetzungen

Es muss für jedes MQTT-Gateway ein Server (Broker) eingerichtet und erreichbar sein. Eine Anleitung zur Einrichtung eines Mosquitto-Brokers finden Sie z.B. im Artikel MQTT Einführung.

Info blue.png
Seit August 2018 kann FHEM mit Hilfe des Moduls MQTT2_SERVER selbst die Funktion des Brokers übernehmen. Dieser bietet zwar weniger Optionen wie ein vollwertiger Server (wie Mosquitto), ermöglicht es dafür aber, Client-Geräte mit MQTT2 DEVICE direkt in FHEM einzubinden, ohne dass dafür weitere externe Softwarekomponenten erforderlich wären.


Begrifflichkeiten in Kürze

Ein Broker ist ein zentraler Serverdienst (irgendwo im Netz oder auf derselben Maschine, auf der auch FHEM läuft[2]), an den Geräte ihre Informationen weitergeben (publish), und der dann dafür sorgt, dass diese Information an alle anderen Geräte weitergegeben wird, die sich dafür interessieren (subscribe). MQTT fungiert dabei als IO-Modul und organisiert die Kommunikation zwischen dem Broker und allen FHEM-Geräten, die MQTT bei diesem Server nutzen wollen.

Info blue.png
Seit Ende 2018 steht in FHEM mit MQTT2_CLIENT ein zweites, alternatives IO-Modul zur Anbindung eines externen Servers zur Verfügung. Mit diesem können ebenfalls Client-Geräte des Typs MQTT2 DEVICE verwendet werden, ohne dass dafür weitere Perl-Bibliotheken erforderlich wären.


Define

Das MQTT Gateway wird angelegt mit define meinMQTTGW MQTT <Broker-IP>[:<Broker-Port>]


Info blue.png
Sofern der Broker mit FEHM über localhost kommunizieren kann, sollte als IP 127.0.0.1 verwendet werden.


Anwendung

Danach können entsprechende Client-Devices angelegt werden, MQTT_DEVICE wird verwendet, wenn das physikalische Device (Sensor oder Aktor) über mqtt kommuniziert, wie dieses z.B. bei vielen ESP8266-basierten Geräten der Fall ist. MQTT_BRIDGE ist für den Fall, dass ein FHEM-Device[3] existiert und dieses über MQTT sicht- bzw. steuerbar gemacht werden soll.

Ergänzende Funktionen

Manche MQTT-Geräte senden Informationen im JSON-Format. Um solche Informationen in FHEM verwenden zu können, müssen sie zunächst in ein anderes Format überführt werden. Hierfür wird das Modul expandJSON benötigt.

Anwendungsbeispiele

Links

Anmerkungen

  1. Eine generische Lösung, um FHEM-Geräte MQTT-fähig zu machen, bietet MQTT_GENERIC_BRIDGE, das in neueren Installationen bevorzugt werden sollte.
  2. In den meisten Anwendungsfällen genügt es dabei, einen MQTT-Server zu betreiben, selbst wenn mehrere FHEM-Instanzen darauf zugreifen sollen.
  3. Dies kann z.B. ein beliebiger HM- oder Z-Wave-Aktor sein, der ein Licht einschaltet.