gelöst: mehrere Befehle bei Türöffnung ausführen

Begonnen von cyrax, 09 März 2016, 22:40:45

Vorheriges Thema - Nächstes Thema

cyrax

Guten Abend,

ich hätte eine Frage: Ich möchte das beim Öffnen der Tür (Türkontakt HM-SEc-SC-2) mehrere Befehle ausgeführt werden. Z.B.: Steckdose1 an, Email, Pushover Nachricht, .....
Mein Problem ist, dass der erste Befehl funtkioniert, aber der Rest wird nicht ausgeführt. Hat jemand einen Tipp wo der Fehler liegt und wie schreibt man so was am besten von der Formatierung? Stichwort ;;/ }?

define Alarm_Tür notify Tür:open { fhem("set Steckdose1 on-for-timer 50 ;; set Pushover1 msg 'Tür wurde geöffnet' 'Dies ist ein Text.'")} DebianMail('email@abcd.de','!!! Tür Alarm !!!','Die Tür wurde geöffnet. ')


Vielen Dank

cyrax

so würde es gehen, ist aber nicht schön formatiert


define Alarm_Klingel notify Klingel:open { fhem("set Steckdose1 on-for-timer 5 ;; set Pushover1 msg 'Eingangstür' 'Die Eingangstür wurde geöffnet.'")} {DebianMail('email@abc.de','!!! Tür Alarm !!!','Die Tür wurde geöffnet. ')}

PsychoD

Zitat von: cyrax am 09 März 2016, 22:51:59
so würde es gehen, ist aber nicht schön formatiert


define Alarm_Klingel notify Klingel:open { fhem("set Steckdose1 on-for-timer 5 ;; set Pushover1 msg 'Eingangstür' 'Die Eingangstür wurde geöffnet.'")} {DebianMail('email@abc.de','!!! Tür Alarm !!!','Die Tür wurde geöffnet. ')}


Mit dem "{ }" zeigst du FHEM, dass du darin Perl Befehle verwendest. Da darfst du dann aber auch mehrere Perl Befehle ausführen (du kannst also die mittleren } { theoretisch auch gegen ;; ersetzen). Bei dem ersten Teil (fhem(" ...... ")) führst du aus dem Perl Codeteil wieder Fhem-Befehle aus, das ist ein bisschen von hinten durch die Brust ins Auge, ist aber nicht schlimm solange es funktioniert. Theoretisch (ungetestet) sollten diese Varianten auch funktionieren:

Alles in einem Perl-Block

define Alarm_Klingel notify Klingel:open { fhem("set Steckdose1 on-for-timer 5 ;; set Pushover1 msg 'Eingangstür' 'Die Eingangstür wurde geöffnet.'");; DebianMail('email@abc.de','!!! Tür Alarm !!!','Die Tür wurde geöffnet. ')}


Fhem-Befehle nicht im Perl Block:

define Alarm_Klingel notify Klingel:open set Steckdose1 on-for-timer 5 ;; set Pushover1 msg 'Eingangstür' 'Die Eingangstür wurde geöffnet.';; {DebianMail('email@abc.de','!!! Tür Alarm !!!','Die Tür wurde geöffnet. ')}


Wenn dir Notify nicht so lieb ist, kannst du dir auch das DOIF-Modul anschauen, wo du für einen Trigger mehrere Befehle nacheinander eingeben kannst.

Viele Grüße
Psy