FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Brot am 01 Januar 2020, 16:04:22

Titel: [gelöst] Platzhalter in raw definition
Beitrag von: Brot am 01 Januar 2020, 16:04:22
Hallo zusammen...

Ich habe hier ein notify, dass auf Readings eines dummys reagiert, die allesamt gleich anfangen nur sich im hinteren Teil unterscheiden:
   READINGS:
     2020-01-01 15:46:49   2049e8de5586d589_accuracy 48.24
     2020-01-01 15:46:49   2049e8de5586d589_gaslevel 100
     2020-01-01 15:46:49   2049e8de5586d589_max 346.9
     2020-01-01 15:46:49   2049e8de5586d589_min 180.3


Da ich den kryptischen Kladderadatsch vorweg im notify nicht brauche, funktioniert das auch wenn man mit den Asterisk arbeitet und (in diesem Fall) auf Änderung zweier Readings reagieren lässt:
defmod nfyBrotofen notify (dmyBrotofen.*dev_max|dmyBrotofen.*dev_min).*{}

Allerdings, finde ich, sieht das mit der Mehrfachnennung des dummys dmyBrotofen jetzt ja auch nicht so wirklich hübsch aus. Aber ich steh voll auf dem Schlauch... Ich hätte gerne etwas funktionierendes/kompakteres in Richtung:
defmod nfyBrotofen notify dmyBrotofen.(*dev_max|*dev_min).*{}
...das funktioniert aber schon mal nicht.

Jemand ne Idee?

MfG,
Früchtebrot
Titel: Antw:Platzhalter in raw definition
Beitrag von: xenos1984 am 01 Januar 2020, 16:17:50
Ich vermute, letzteres sollte eher so aussehen, damit es auf das Event passt:

defmod nfyBrotofen notify dmyBrotofen.*(dev_max|dev_min).*{}
Titel: [gelöst] Antw:Platzhalter in raw definition
Beitrag von: Brot am 01 Januar 2020, 17:14:30
Zitat von: xenos1984 am 01 Januar 2020, 16:17:50
Ich vermute, letzteres sollte eher so aussehen, damit es auf das Event passt:

defmod nfyBrotofen notify dmyBrotofen.*(dev_max|dev_min).*{}

Ja, das scheint des Rätsel's Lösug gewesen zu sein. Manchmal sieht man aber auch vor lauter Bäumen den Wald nicht mehr... Danke!  ;D

El Nacho
Titel: Antw:Platzhalter in raw definition
Beitrag von: Otto123 am 01 Januar 2020, 17:17:02
Hi,

die "Platzhalter" heissen reguläre Ausdrücke.
Man kann sie hiermit testen: https://regex101.com/
. steht für irgendein Zeichen
* steht für eine beliebige Anzahl der Zeichen davor ;)

Und ich denke das {} soll der Platzhalter für den Ausführungsteil sein, da muss dann noch ein Leerzeichen dazwischen .* {} :)

Gesundes neues Jahr Otto