MQTT DEVICE

Aus FHEMWiki
Version vom 5. Oktober 2018, 14:12 Uhr von Beta-User (Diskussion | Beiträge) (Hinweis auf MQTT2 eingebaut)
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 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