MQTT DEVICE: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Maintainerwechsel)
Zeile 5: Zeile 5:
|ModForumArea=MQTT
|ModForumArea=MQTT
|ModTechName=10_MQTT_DEVICE.pm
|ModTechName=10_MQTT_DEVICE.pm
|ModOwner=eisler ({{Link2FU|2214|Forum}}) }}
|ModOwner=hexenmeister ({{Link2FU|4065|Forum}}) }}
Das Modul {{Link2CmdRef|Anker=MQTT_DEVICE|Lang=en|Label=MQTT_DEVICE}} ermöglicht es, Geräte einzubinden, die über eine MQTT-Schnittstelle verfügen.
Das Modul {{Link2CmdRef|Anker=MQTT_DEVICE|Lang=en|Label=MQTT_DEVICE}} ermöglicht es, Geräte einzubinden, die über eine MQTT-Schnittstelle verfügen.



Version vom 25. August 2018, 19:36 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.

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