FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: andies am 13 August 2023, 14:43:07

Titel: Verschachteltes DOIF vereinfachen?
Beitrag von: andies am 13 August 2023, 14:43:07
Guten Tag in die Runde, ich habe jetzt eine halbe Stunde vergeblich probiert, für das nachfolgende DOIF eine einfachere Version zu finden:
defmod KlingelAusloesen
DOIF
(([Klingelsensor:Button1_Action] eq "SINGLE") and ([Profil:housemode] eq "normal"))  (set Klingel on-for-timer 1,set TelegramBot message 🛎�)
DOELSEIF (([Klingelsensor:Button1_Action] eq "SINGLE") and ([Profil:housemode] eq "absence")) (set TelegramBot message 🛎�)

Falls jemand im Forum Lust und Zeit hat, hier eine bessere Verschachtelung zu formulieren, wäre ich sehr dankbar. Ich kriege das nicht hin und mir kommt die doppelte Abfrage irgendwie umständlich vor.
Titel: Aw: Verschachteltes DOIF vereinfachen?
Beitrag von: rabehd am 13 August 2023, 16:56:45
Zitat von: andies am 13 August 2023, 14:43:07... und mir kommt die doppelte Abfrage irgendwie umständlich vor.
Mir nicht, aber wenns Dich stört, warum baust Du nicht ein "if" in den Ausführungsteil ein?
Dann würde ich aber gleich ein notify draus machen.
Titel: Aw: Verschachteltes DOIF vereinfachen?
Beitrag von: Damian am 13 August 2023, 19:30:53
Zitat von: andies am 13 August 2023, 14:43:07Guten Tag in die Runde, ich habe jetzt eine halbe Stunde vergeblich probiert, für das nachfolgende DOIF eine einfachere Version zu finden:
defmod KlingelAusloesen
DOIF
(([Klingelsensor:Button1_Action] eq "SINGLE") and ([Profil:housemode] eq "normal"))  (set Klingel on-for-timer 1,set TelegramBot message 🛎�)
DOELSEIF (([Klingelsensor:Button1_Action] eq "SINGLE") and ([Profil:housemode] eq "absence")) (set TelegramBot message 🛎�)

Falls jemand im Forum Lust und Zeit hat, hier eine bessere Verschachtelung zu formulieren, wäre ich sehr dankbar. Ich kriege das nicht hin und mir kommt die doppelte Abfrage irgendwie umständlich vor.

Wenn, dann im Perlmodus:

DOIF
{ if ([Klingelsensor:Button1_Action] eq "SINGLE") {
    if  ([Profil:housemode] eq "normal")  {fhem_set "Klingel on-for-timer 1";fhem_set "TelegramBot message 🛎�"}
    elsif ([Profil:housemode] eq "absence") {fhem_set "set TelegramBot message 🛎�"}
  }
}
Titel: Aw: Verschachteltes DOIF vereinfachen?
Beitrag von: andies am 13 August 2023, 21:38:24
Danke! Ich bin nicht auf die Idee mit dem Perl-Modus gekommen.

Toll, so ein Forum. Oder besser: die Leute da drin ;-)
Titel: Aw: Verschachteltes DOIF vereinfachen?
Beitrag von: Per am 14 August 2023, 12:16:27
Noch etwas kürzer:
DOIF
{ if ([Klingelsensor:Button1_Action] eq "SINGLE") {
    if  ([Profil:housemode] eq "normal")
      fhem_set "Klingel on-for-timer 1";
fhem_set "set TelegramBot message 🛎�";
  }
}
Geht auch im Fhem Mode, aber so ists eleganter.
Titel: Aw: Verschachteltes DOIF vereinfachen?
Beitrag von: MadMax-FHEM am 14 August 2023, 12:44:19
Zitat von: Per am 14 August 2023, 12:16:27Noch etwas kürzer
Aber nur, wenn es außer "normal" und "absence" nichts gibt... 8)

Gruß, Joachim
Titel: Aw: Verschachteltes DOIF vereinfachen?
Beitrag von: andies am 14 August 2023, 12:49:45
Danke! Es gibt noch andere Modi, aber die benutze ich nie. Genau danach habe ich gesucht und ich weiß nicht, wieso mir das nicht gelungen ist. Aber dafür gibt es ja das Forum.