(FHEM) 10 MQTT DEVICE.pm: Unterschied zwischen den Versionen
Zeile 4: | Zeile 4: | ||
Ein MQTT_DEVICE fungiert als fhem-device, das mqtt-topics zugeordnet ist. | Ein MQTT_DEVICE fungiert als fhem-device, das mqtt-topics zugeordnet ist. | ||
− | + | =Steckbrief= | |
'''Define''' | '''Define''' | ||
define <name> MQTT_DEVICE | define <name> MQTT_DEVICE |
Version vom 9. August 2022, 08:55 Uhr
Inhaltsverzeichnis
10_MQTT_DEVICE
Ein MQTT_DEVICE fungiert als fhem-device, das mqtt-topics zugeordnet ist.
Steckbrief
Define
define <name> MQTT_DEVICE
Set
set <name> <command> NICHT in der Detail-Ansicht vorhanden. set <name> <reading> <value> NICHT in der Detail-Ansicht vorhanden. set extensions NICHT in der Detail-Ansicht vorhanden.
Get
Readings
Attributes
attr <name> publishSet [[<reading>:]<commands_or_options>] <topic> attr <name> publishSet_<reading> [<values>]* <topic> attr <name> autoSubscribeReadings <topic> attr <name> subscribeReading_<reading> [{Perl-expression}] [qos:?] [retain:?] <topic> attr <name> retain <flags> ... attr <name> qos <flags> ... attr <name> useSetExtensions <flags>
Erlaeuterungen
Aus dem Forumsbetrag:
MQTT_DEVICE wird verwendet, wenn das physikalische Device (Sensor oder Aktor) über mqtt kommuniziert. (Kein dummy mehr nötig!) MQTT_BRIDGE ist für den Fall, dass ein fhem-device existiert und dieses über mqtt sicht- bzw. steuerbar gemacht werden soll.
Es wird die im IODev-attribute angegebne MQTT-verbindung verwendet. Messages von mqtt updaten die readings dieses devices direkt, es wird kein weiterer dummy benötigt. MQTT_DEVICE verwendet man zur Einbindung von über mqtt erreichbaren sensoren und aktoren.
In den Topic-namen der vorgenannten Attribute werden aktuell noch keine Wildcards unterstützt.
Um das Erstellen der Readings zu vereinfachen gibt es das Attribute autoSubscribeReadings.
'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.
Beispiele
#1
define licht_kinderzimmer MQTT_DEVICE attr licht_kinderzimmer publishSet on off fhem/kinderzimmer/licht attr licht_kinderzimmer subscribeReading_state fhem/kinderzimmer/licht/set
Mit 'set licht_kinderzimmer on' schickt man jetzt eine message 'on' an das topic fhem/kinderzimmer/licht. Umgekehrt kann das reading state über messages an fhem/kinderzimmer/licht/set gesetzt werden.
#2
define heizung_kinderzimmer MQTT_DEVICE attr heizung_kinderzimmer publishSet_desired-temp fhem/kinderzimmer/temperatur attr heizung_kinderzimmer subscribeReading_messured-temp fhem/kinderzimmer/temperatur/set attr heizung_kinderzimmer stateFormat messured-temp
#3
'attr heizung_kinderzimmer autoSubscribeReadings fhem/kinderzimmer/+/set'
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. Das letzte '+' im Topic wird als Name des Readings benutzt. Also wenn eine Message '17.5' an 'fhem/kinderzimmer/messured-temp/set' empfangen wird, wird 'attr heizung_kinderzimmer subscribeReading_messured-temp fhem/kinderzimmer/messsured-temp' gesetzt und gleichzeitig das Reading 'messured-temp' erzeugt und auf den Wert '17.5' gesetzt. Wenn alle gewünschten Readings auf diese Weise angelegt sind, kann man das Attribut 'autoSubscribeReadings' wieder entfernen.