MQTT DEVICE: Unterschied zwischen den Versionen
(Erste Fassung) |
(Internen Link korrigiert, MQTT2_CLIENT ergänzt) |
||
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Infobox Modul | {{Infobox Modul | ||
|ModPurpose=Einbinden von Geräten, die über MQTT Daten senden und empfangen | |ModPurpose=Einbinden von Geräten, die über MQTT Daten senden und empfangen | ||
Zeile 6: | Zeile 5: | ||
|ModForumArea=MQTT | |ModForumArea=MQTT | ||
|ModTechName=10_MQTT_DEVICE.pm | |ModTechName=10_MQTT_DEVICE.pm | ||
|ModOwner= | |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. | ||
== 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}} 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 == | ||
=== Define === | === Define === | ||
Die Syntax für das Anlegen eines MQTT-Devices ist der {{Link2CmdRef|Anker=MQTT_DEVICEdefine}} zu entnehmen. | Die Syntax für das Anlegen eines MQTT-Devices ist der {{Link2CmdRef|Anker=MQTT_DEVICEdefine|Label=CommandRef}} zu entnehmen. | ||
=== Attribute === | === Attribute === | ||
Zeile 28: | Zeile 29: | ||
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>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. | ||
Zeile 38: | Zeile 39: | ||
*[[Sonoff#FHEM Anbindung]] | *[[Sonoff#FHEM Anbindung]] | ||
* [[Sonoff#Sonoff Th10/16]] | * [[Sonoff#Sonoff Th10/16]] | ||
* {{Link2Forum|Topic= | * {{Link2Forum|Topic=86932|LinkText=Einbindung von Milight-Leuchtmitteln}} über eine Eigenbau-Bridge | ||
== Links == | == Links == | ||
* {{Link2Forum|Topic=27532|LinkText=Ankündigung}} der MQTT Module | * {{Link2Forum|Topic=27532|LinkText=Ankündigung}} der MQTT Module | ||
* [[MQTT Einführung]] | * [[MQTT Einführung]] | ||
[[Kategorie:MQTT]] |
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.
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
- Sonoff#Anbindung FHEM
- Sonoff#FHEM Anbindung
- Sonoff#Sonoff Th10/16
- Einbindung von Milight-Leuchtmitteln über eine Eigenbau-Bridge
Links
- Ankündigung der MQTT Module
- MQTT Einführung