FHEM Forum

FHEM => Automatisierung => Thema gestartet von: baerm am 11 September 2022, 16:57:11

Titel: Notify mit IF Anweisung
Beitrag von: baerm am 11 September 2022, 16:57:11
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
Titel: Antw:Notify mit IF Anweisung
Beitrag von: rudolfkoenig am 11 September 2022, 18:44:17
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"\
  }\
}
Titel: Antw:Notify mit IF Anweisung
Beitrag von: MadMax-FHEM am 11 September 2022, 18:56:13
Es heißt (in Perl) auf jeden Fall schon mal nicht "elseif" sondern "elsif"... ;)

Gruß, Joachim
Titel: Antw:Notify mit IF Anweisung
Beitrag von: baerm am 11 September 2022, 20:45:43
Vielen Dank für die rasche Hilfe! Hat geklappt.