(FHEM) 10 MQTT DEVICE.pm: Unterschied zwischen den Versionen

Aus TippvomTibb
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „ Ein MQTT_DEVICE fungiert als fhem-device, das mqtt-topics zugeordnet ist. '''Define''' define <name> MQTT_DEVICE '''Set''' set <name> <command> NICHT in der…“)
 
Zeile 1: Zeile 1:
  Ein MQTT_DEVICE fungiert als fhem-device, das mqtt-topics zugeordnet ist.
+
==10_MQTT_DEVICE==
 +
[[(FHEM) MQTT#Module im Detail| [Zurueck Uebersicht] ]]
 +
 
 +
  Ein MQTT_DEVICE fungiert als fhem-device, das mqtt-topics zugeordnet ist.  
 +
 
 +
=Steckbrief=
 
'''Define'''
 
'''Define'''
 
  define <name> MQTT_DEVICE
 
  define <name> MQTT_DEVICE
Zeile 18: Zeile 23:
 
  attr <name> qos <flags> ...
 
  attr <name> qos <flags> ...
 
  attr <name> useSetExtensions <flags>
 
  attr <name> useSetExtensions <flags>
 +
 +
=Erlaeuterungen=
 +
Aus dem [https://forum.fhem.de/index.php?topic=27532.0 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:
 +
 +
=Beispiele=
 +
==#1==
 +
<pre>
 +
define licht_kinderzimmer MQTT_DEVICE
 +
attr licht_kinderzimmer publishSet on off fhem/kinderzimmer/licht
 +
attr licht_kinderzimmer subscribeReading_state fhem/kinderzimmer/licht/set
 +
</pre>
 +
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==
 +
<pre>
 +
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
 +
</pre>
 +
 +
==#3==
 +
<pre>
 +
'attr heizung_kinderzimmer autoSubscribeReadings fhem/kinderzimmer/+/set'
 +
</pre>
 +
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.

Version vom 9. August 2022, 08:44 Uhr

10_MQTT_DEVICE

[Zurueck Uebersicht]

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:

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.