IF mit Funktion?

Begonnen von thunder1902, 16 Oktober 2014, 15:33:02

Vorheriges Thema - Nächstes Thema

thunder1902

Hallo!

Wie schreibe ich folgenden Befehl korrekt?

Zitatdefine d3 at +*00:01:00 IF ([LEDLampe] eq "off")(\
set Sonnenuntergang ok;;\
{fb_mail('***@gmail.com','Subject','text 123')})

Ich möchte "ok" im Dummy Sonnenuntergang schreiben, und eine Email verschicken, wenn die LEDLampe aus ist.

Als Fehlermeldung erhalte ich
Zitatd3: IF: no right bracket: (set Sonnenuntergang geht2
Unknown command {fb_mail(****@gmail.com','Subject','text, try help.

Aber wie soll ich die Klammer setzen, wenn ich einen Funktionsaufruf innerhalb eines IF's habe??

Damian

define d3 at +*00:01:00 IF ([LEDLampe] eq "off")(set Sonnenuntergang ok,{fb_mail('***@gmail.com','Subject','text 123')})

Du weißt aber, dass die kontinuierliche Überprüfung auf einen Zustand nicht die eleganteste Lösung ist.

Dann würde ich dir eher:

define d3 DOIF ([LEDLampe] eq "off")(set Sonnenuntergang ok,{fb_mail('***@gmail.com','Subject','text 123')})

empfehlen. Hier wird der Check nur gemacht, wenn sich der Zustand der LEDLampe ändert und sofort reagiert und nicht im Minutentakt geprüft und dann mit einer Verzögerung bis zu einer Minute die Mail geschickt.  ;)

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

thunder1902

@Damian: Besten Dank!!!! Mach ich!!!