MQTT DEVICE: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Maintainerwechsel)
Keine Bearbeitungszusammenfassung
Zeile 27: Zeile 27:
Legt man ein neues Device an, dessen Topics man noch nicht genau kennt, kann man das Attribut MQTT_DEVICE 'autoSubscribeReadings' setzen. Z.B. ein
Legt man ein neues Device an, dessen Topics man noch nicht genau kennt, kann man das Attribut MQTT_DEVICE 'autoSubscribeReadings' setzen. Z.B. ein


<code>attr <name> autoSubscribeReadings wohnzimmer/+'</code> 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.
<code>attr <name> autoSubscribeReadings wohnzimmer/+</code> 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.
Sind nach einer gewissen Zeit alle Readings angelegt, kann das Attribut wieder gelöscht werden.



Version vom 24. September 2018, 22:20 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