Best practice: Auswertung von Events

Begonnen von FunkOdyssey, 12 November 2020, 15:35:20

Vorheriges Thema - Nächstes Thema

FunkOdyssey

Hallo, in meinem FHEM-Code habe ich verschiedene Schreibweisen zur Auswertung von Events in DOIFs in Verwendung.

Welche Form sollte bevorzugt werden?

[sensorname:"^motion:.on$"]

["^sensorname:^motion:.on$"]

In der CommandRef gibt es Beispiele zu beiden Varianten.

KyleK

#1
Die erste Variante funktioniert nur für ein Device ,,sensorname", also ein eindeutiger Match.

Die zweite Variante matcht alle Devices die mit ,,sensorname" beginnen.

Zitat CommandRef:
ZitatSollen Events verschiedener Devices ausgewertet werden, so lässt sich folgende Syntax anwenden: ["<device regex>:<event regex>"]
FHEM on Futro S940
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

FunkOdyssey

Vielen Dank. Ist sogar irgendwie logisch.  :D
Ich habe den Text zwar häufig gelesen, aber die Abgrenzung nicht eindeutig verstanden.
Nun hat es Klick gemacht.

Damian

Es gibt noch einen entscheidenden Unterschied:

DOIF ([sensorname:"^motion:.on$"]) ... kann sinnvollerweise einen DOELSE-Fall enthalten, dieser wird ausgeführt wenn sensorname ein Event liefert, welches nicht zutrifft

bei:

DOIF (["^sensorname$:^motion:.on$"])... ist die Angabe eines DOELSE-Falls nicht sinnvoll, denn wenn sensorname ein Event liefert, welches nicht zutrifft, dann wird DOIF erst gar nicht getriggert
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

FunkOdyssey

Das wäre doch auch ein Hinweis für die Doku? Oder?
Bei mir macht das im Moment keinen Unterschied. Aber danke für den Tipp.

Damian

Zitat von: FunkOdyssey am 12 November 2020, 22:57:05
Das wäre doch auch ein Hinweis für die Doku? Oder?
Bei mir macht das im Moment keinen Unterschied. Aber danke für den Tipp.

mal schauen, wo es am besten passt
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF