Hallo Ihr, ich habe ein DOIF
Raw
defmod BeregnungDOIF_Skip DOIF ([?BeregnungDOIF_Trigger:AutomaticIsRunning] eq "on" and ["^BeregnungSkip$:next"]) (set BeregnungDOIF_Trigger {ReadingsVal("BeregnungDOIF_Trigger","wait_timer","") =~ m/set.*(cmd_.*)/;;;; $1})
attr BeregnungDOIF_Skip do always
welches den Part
{ReadingsVal("BeregnungDOIF_Trigger","wait_timer","") =~ m/set.*(cmd_.*)/;;;; $1}
Roh ausgiebt. Also im Event Monitor bekomme ich
2021-01-24 16:23:26 DOIF BeregnungDOIF_Trigger {ReadingsVal("BeregnungDOIF_Trigger","wait_timer","") =~ m/set.*(cmd_.*)/; $1}
anstatt dass
set BeregnungDOIF_Trigger cmd_3
was ich gerne als Befehl absetzen würde. Keine Ahnung inwieweit der Event-Monitor das jetzt Richtig/falsch darstellt, aber der Befehl wird nicht ausgeführt.
wenn ich
{ReadingsVal("BeregnungDOIF_Trigger","wait_timer","") =~ m/set.*(cmd_.*)/;; $1}
direkt in die FHEM-Befehlszeile eingebe bekomme ich brav mein Ergebnis "cmd_3" in diesem Moment.
(das Reading sieht so aus
wait_timer 2021-01-24 16:23:26 cmd_3_2 set_cmd_3
)
Wie muß die Syntax im DOIF sein?
Danke und Gruß
H.
Innerhalb von FHEM muss man Perl mit {(...)} angeben, damit es ausgewertet wird:
(set BeregnungDOIF_Trigger {(ReadingsVal("BeregnungDOIF_Trigger","wait_timer","") =~ m/set.*(cmd_.*)/;;;; $1)})
Danke Damian. Mal wieder 4 Stunden verblödelt wegen 2 Klammern :)
Zitat von: holle75 am 24 Januar 2021, 17:26:34
Danke Damian. Mal wieder 4 Stunden verblödelt wegen 2 Klammern :)
ja, siehe https://fhem.de/commandref_DE.html#DOIF_Berechnungen_im_Ausfuehrungsteil
Deine Doku ist einfach zu gut (lang) ... da fällt das ein oder andere beim lesen durch :)
... und ich würde beschwören, mindestens 5 mal zum speziellen Fall gestöbert zu haben.
Aber dank deiner Präsenz hier, werden ja final auch die komplexesten Fragen beantwortet. Nochmal danke dafür.
Was ich generell faszinierend finde sind die Fragen in Bezug auf ReadingsVal/RegEx im Forum. Egal wo, immer nah dran dann aber doch nicht ganz richtig für den jeweiligen Einsatzzweck. Irgend ein Zeichen wird es schon haben, damits nicht funktioniert!
Und dabei gehts gar nicht unbedingt ums RegEx sondern die Syntax.
Zitat von: holle75 am 24 Januar 2021, 19:39:37
Deine Doku ist einfach zu gut (lang) ... da fällt das ein oder andere beim lesen durch :)
... und ich würde beschwören, mindestens 5 mal zum speziellen Fall gestöbert zu haben.
Aber dank deiner Präsenz hier, werden ja final auch die komplexesten Fragen beantwortet. Nochmal danke dafür.
Was ich generell faszinierend finde sind die Fragen in Bezug auf ReadingsVal/RegEx im Forum. Egal wo, immer nah dran dann aber doch nicht ganz richtig für den jeweiligen Einsatzzweck. Irgend ein Zeichen wird es schon haben, damits nicht funktioniert!
Und dabei gehts gar nicht unbedingt ums RegEx sondern die Syntax.
Mit RegEx kann man sich die Zähne ausbeißen. Ich traue keinem RegEx, wenn ich es selbst nicht ausprobiert habe ;)