Hallo,
ich brauche ein Notify mit IF / ELSEIF Anweisungen. Leider funktioniert das nicht wie gewollt.
Ein IF + ELSE funktioniert.
defmod ntfy_WPM_RR1 notify KNX_0104044:WERT.* { \
if (fhem"[KNX_0104042:state] eq 50") { \
fhem"set MessageTxt ntfy_test 50" \
} else { \
fhem"set MessageTxt ntfy_test ELSE" } \
}
So hätte ich mir das mit ELSEIF gedacht. Geht leider nicht.
defmod ntfy_WPM_RR1 notify KNX_0104044:WERT.* { \
if (fhem"[KNX_0104042:state] eq 50") { \
fhem"set MessageTxt ntfy_test 50" \
} elseif (fhem"[KNX_0104042:state] eq 51") { \
fhem"set MessageTxt ntfy_test 51" \
} else { \
fhem"set MessageTxt ntfy_test ELSE" } \
}
Was mache ich falsch?
lg
Matthias
Da geht einiges schief, ich vermute aber, dass die Ursache die freie Kombination der IF/DOIF Befehle mit dem perl if ist.
Fuer "einfaches" perl schlage ich Folgendes vor (ungetestet):
defmod ntfy_WPM_RR1 notify KNX_0104044:WERT.* { \
if (ReadingsNum("KNX_0104042","state",0) eq "50") {\
fhem "set MessageTxt ntfy_test 50"\
} elsif (ReadingsNum("KNX_0104042","state",0) eq "51") {\
fhem "set MessageTxt ntfy_test 51"\
} else {\
fhem "set MessageTxt ntfy_test ELSE"\
}\
}
Es heißt (in Perl) auf jeden Fall schon mal nicht "elseif" sondern "elsif"... ;)
Gruß, Joachim
Vielen Dank für die rasche Hilfe! Hat geklappt.