MQTT (Modul): Unterschied zwischen den Versionen
K (Kategorie Interfaces ergänzt) |
(MQTT_BRIDGE - cref-Verweis gelöscht; weitere Kleinigkeiten) |
||
(13 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
|ModForumArea=MQTT | |ModForumArea=MQTT | ||
|ModTechName=00_MQTT.pm | |ModTechName=00_MQTT.pm | ||
|ModOwner= | |ModOwner=hexenmeister ({{Link2FU|4065|Forum}}) }} | ||
Das 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= | 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 (veraltet!) ''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. | |||
Ein Vorteil von MQTT2_SERVER und zigbee2mqtt ist, dass auch Geräte wieder recht einfach aus dem Zigbee Netzwerk entfernt werden können.}} | |||
== 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), 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 [[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 == | ||
Das MQTT Gateway wird angelegt mit | Das MQTT Gateway wird angelegt mit | ||
<code>define '''meinMQTTGW''' MQTT <Broker-IP>[:<Broker-Port>]</code> | <code>define '''meinMQTTGW''' MQTT <Broker-IP>[:<Broker-Port>]</code> | ||
{{Hinweis|Sofern der Broker mit FEHM über localhost kommunizieren kann, sollte als IP 127.0.0.1 verwendet werden.}} | |||
== Anwendung == | == Anwendung == | ||
Danach können entsprechende Client-Devices angelegt werden, | 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_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_GENERIC_BRIDGE'' oder das veraltete und zwischenzeitlich nur noch über contrib verfügbare ''MQTT_BRIDGE'' ist für den Fall gedacht, dass ein FHEM-Device<ref>Dies kann z.B. ein beliebiger HM- oder Z-Wave-Aktor sein, der ein Licht einschaltet.</ref> existiert und dieses über MQTT sicht- bzw. steuerbar gemacht werden soll. | |||
== Ergänzende Funktionen == | == 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 {{Link2CmdRef|Anker=expandJSON|Lang=en|Label=expandJSON}} benötigt. | 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 {{Link2CmdRef|Anker=expandJSON|Lang=en|Label=expandJSON}} benötigt. Insbesondere in diesen Fällen müssen allerdings häufig auch die (Schalt-) Anweisungen an das Gerät JSON-encodiert werden; in diesen Fällen ist es empfehlenswert, direkt MQTT2_DEVICE mit einem der MQTT2-IO-Module zu konfigurieren, da dieses die JSON-Dekodierung auch direkt intern erledigt. | ||
== Anwendungsbeispiele == | == Anwendungsbeispiele == | ||
Zeile 33: | Zeile 37: | ||
* [[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 == | ||
Zeile 40: | Zeile 45: | ||
[[Kategorie:Other Components]] | [[Kategorie:Other Components]] | ||
[[Kategorie:Interfaces]] | [[Kategorie:Interfaces]] | ||
[[Kategorie:MQTT]] |
Aktuelle Version vom 30. September 2021, 13:52 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 (veraltet!) 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.
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.
Define
Das MQTT Gateway wird angelegt mit
define meinMQTTGW MQTT <Broker-IP>[:<Broker-Port>]
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_GENERIC_BRIDGE oder das veraltete und zwischenzeitlich nur noch über contrib verfügbare MQTT_BRIDGE ist für den Fall gedacht, 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. Insbesondere in diesen Fällen müssen allerdings häufig auch die (Schalt-) Anweisungen an das Gerät JSON-encodiert werden; in diesen Fällen ist es empfehlenswert, direkt MQTT2_DEVICE mit einem der MQTT2-IO-Module zu konfigurieren, da dieses die JSON-Dekodierung auch direkt intern erledigt.
Anwendungsbeispiele
Links
- Ankündigung der MQTT Module
- MQTT Einführung
- MQTT-Bridge als Brücke zwischen zwei FHEM-Instanzen
- Thread mit Anwendungsbeispielen für MQTT_GENERIC_BRIDGE
Anmerkungen
- ↑ Eine generische Lösung, um FHEM-Geräte MQTT-fähig zu machen, bietet MQTT_GENERIC_BRIDGE, das in neueren Installationen bevorzugt werden sollte.
- ↑ In den meisten Anwendungsfällen genügt es dabei, einen MQTT-Server zu betreiben, selbst wenn mehrere FHEM-Instanzen darauf zugreifen sollen.
- ↑ Dies kann z.B. ein beliebiger HM- oder Z-Wave-Aktor sein, der ein Licht einschaltet.