MQTT2 CLIENT
MQTT2_CLIENT | |
---|---|
Zweck / Funktion | |
Stellt als Gateway die Verbindung zu einem MQTT-Broker her | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | MQTT |
Modulname | 10_MQTT2_CLIENT.pm |
Ersteller | rudolfkoenig (Forum / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Das Modul MQTT2_CLIENT ermöglicht es, Geräte einzubinden, die über eine MQTT-Schnittstelle verfügen.
Das Modul MQTT2_CLIENT fungiert als Verbindung zwischen FHEM und einem externen MQTT Server (z.B. mosquitto) und repräsentiert ein MQTT Gateway. Die durch die Module MQTT2_DEVICE oder MQTT_GENERIC_BRIDGE repräsentierten Client-Geräte sind gesondert anzulegen.
Voraussetzungen
Es muss für jedes MQTT-Gateway ein MQTT-Server eingerichtet und erreichbar sein. Eine Anleitung zur Einrichtung eines Mosquitto-Brokers finden Sie z.B. im Artikel MQTT Einführung.
Kurzübersicht
Define
Das MQTT Gateway wird angelegt mit
define 'meinMQTT2Client MQTT2_CLIENT <host>:<port>
Anwendung
Danach können entsprechende Client-Devices angelegt werden, MQTT2_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.
Möchte man autocreate verwenden, um automatisiert MQTT2_DEVICE-Geräte anlegen zu lassen, empfiehlt es sich, auf das erste automatisch angelegte Gerät das template MQTT2_CLIENT_general_bridge anzuwenden. Dadurch werden bestimmte eingehenden MQTT-Messages für eine Anzahl häufig anzutreffender Gerätetypen in separate, automatisch angelegte MQTT2_DEVICE-Geräte umgeleitet[2].
Das attrTemplate MQTT2_CLIENT_general_bridge löscht die readingList des Geräts, auf das es angewendet wird und erstellt ein neues Device, das dann die beschriebene bridgeRegexp enthält. Dies muß nur einmalig erfolgen, für alle weiteren - mittels bridgeRegexp erstellten - Geräte gilt dann - mit o.g. Einschränkungen bei der Erstellung von weiteren bridge-Geräten - das allgemeine Vorgehen für MQTT2_DEVICE, z.B. auch die Festlegung weiterer Geräten mit bridgeRegexp-Attributen wie in den Praxisbeispielen beschrieben.
Will man Geräte unterscheiden, die sich nur z.B im ersten Teil der Topic-Struktur unterscheiden, kann man dies durch Anpassung der bridgeRegexp erreichen oder dadurch, dass man die betreffenden Geräte manuell anlegt. Dabei sollte man jedoch tendenziell sehr restriktive bridgeRegexp-Ausdrücke verwenden[3].
Anmerkungen
- ↑ Um eine Kopie des MQTT2_CLIENT_general_bridge-Geräts zu erstellen, empfielt sich der RAW-Editor, beachten Sie hierzu aber die Hinweise zur Änderung der CID!
- ↑ Näheres zur Entstehung der derzeitigen bridgeRegexp des templates MQTT2_CLIENT_general_bridge sind diesem Forenthread zu entnehmen.
- ↑ Zum Hintergrund siehe diese Forendiskussion