MQTT DEVICE: Unterschied zwischen den Versionen

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
K (Kategorie ergänzt)
(Internen Link korrigiert, MQTT2_CLIENT ergänzt)
 
Zeile 9: Zeile 9:


== Voraussetzungen ==
== Voraussetzungen ==
Um ''MQTT_DEVICE'' nutzen zu können, muss ein [[MQTT]]-Gerät als [[Interface|Gateway]] zu einem funktionsfähigen Broker definiert sein.
Um ''MQTT_DEVICE'' nutzen zu können, muss ein [[MQTT (Modul)|MQTT]]-Gerät als [[Interface|Gateway]] zu einem funktionsfähigen Broker definiert sein.


{{Hinweis|Das hier beschriebene Modul ist nicht identisch zum Modul {{Link2CmdRef|Anker=MQTT2_DEVICE|Lang=en|Label=MQTT2_DEVICE}}, das zur Verwendung mit {{Link2CmdRef|Anker=MQTT2_SERVER|Lang=en|Label=MQTT2_SERVER}} konzipiert wurde. Mit letzterem benötigt man keinen externen Broker, sondern FHEM selbst wird dabei zum MQTT-Server.}}
{{Hinweis|Das hier beschriebene Modul ist nicht identisch zum Modul {{Link2CmdRef|Anker=MQTT2_DEVICE|Lang=en|Label=MQTT2_DEVICE}}, das zur Verwendung mit {{Link2CmdRef|Anker=MQTT2_SERVER|Lang=en|Label=MQTT2_SERVER}} oder {{Link2CmdRef|Anker=MQTT2_CLIENT|Lang=en|Label=MQTT2_CLIENT}} konzipiert wurde. Mit letzterem benötigt man keinen externen Broker, sondern FHEM selbst wird dabei zum MQTT-Server.}}


== Anwendung ==
== Anwendung ==

Aktuelle Version vom 18. November 2018, 22:13 Uhr

MQTT_DEVICE
Zweck / Funktion
Einbinden von Geräten, die über MQTT Daten senden und empfangen
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) MQTT
Modulname 10_MQTT_DEVICE.pm
Ersteller hexenmeister (Forum )
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Das Modul MQTT_DEVICE ermöglicht es, Geräte einzubinden, die über eine MQTT-Schnittstelle verfügen.

Voraussetzungen

Um MQTT_DEVICE nutzen zu können, muss ein MQTT-Gerät als Gateway zu einem funktionsfähigen Broker definiert sein.


Info blue.png
Das hier beschriebene Modul ist nicht identisch zum Modul MQTT2_DEVICE, das zur Verwendung mit MQTT2_SERVER oder MQTT2_CLIENT konzipiert wurde. Mit letzterem benötigt man keinen externen Broker, sondern FHEM selbst wird dabei zum MQTT-Server.


Anwendung

Define

Die Syntax für das Anlegen eines MQTT-Devices ist der CommandRef zu entnehmen.

Attribute

Die eigentlichen Details zur Kommunikation sind - entsprechend der sehr flexiblen Gestaltung des MQTT-Protokolls an sich - nicht direkt im Define festgelegt, sondern werden anschließend über Attribute festgelegt.

Die Verbindung funktioniert bidirektional:

  • Mit den Attributen 'publishState' und 'publishReading_<readingname> man kann Änderungen am State bzw. Readings an den Broker übermitteln, der diese dann an die eigentlichen Geräte weitergibt oder dort vorhält. Der Attribut-Wert ist immer das Topic an das die Message geschickt werden soll. Message-Inhalt ist jeweils der neue Wert des Readings bzw. states.
  • Mit den Attributen 'subscribeSet' bzw. 'subscribeSet_<setcommand>' kann man MQTT-topics abonnieren, also automatische Benachrichtigungen empfangen, sobald ein Gerät dort Änderungen einträgt. Immer wenn eine Nachricht auf dem abonnierten Topic eintrifft für das betreffende Device 'set <devicename> <setcommand> <messageinhalt> ausgeführt.

Legt man ein neues Device an, dessen Topics man noch nicht genau kennt, kann man das Attribut MQTT_DEVICE 'autoSubscribeReadings' setzen. Z.B. ein

attr <name> autoSubscribeReadings wohnzimmer/+ sorgt dafür, dass für alle empfangenen Messages automatisch das jeweils passende 'subscribeReading_xxx'-Attribut erstellt und das zugehörige Reading auch gleich geupdated wird. Sind nach einer gewissen Zeit alle Readings angelegt, kann das Attribut wieder gelöscht werden.

Ergänzende Hinweise

Manche MQTT-Geräte senden JSON-Messages, die einzelne oder mehrere Informationen enthalten können, die in FHEM anschließend als einzelne Readings ausgewertet werden sollen. Hierfür wird das Modul expandJSON benötigt.

Anwendungsbeispiele

Links