FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: MiWe58 am 02 Juni 2014, 15:03:34

Titel: gelöst: Nach If, mehrere Befehle abarbeiten
Beitrag von: MiWe58 am 02 Juni 2014, 15:03:34
Hallo,

nach einem notify mit einer if-Abfrage möchte ich mehrere Befehle absetzen. Die Beispiele aus dem fhem wiki habe ich hierzu probiert, ohne dass es bisher zum Erfolg geführt hat. Daher hier mein Code-Beispiel:

define AlarmOn notify FensterSensor.undefined { if (Value "Alarm") eq "on") { FHEM("set Alarm_Blitz on-for-timer 10") };{ SendMail('xxx@@yyy.de','Fenstersensor','Alarm wurde ausgelöst')}}


Erklärung:
Sobald ein Fenstersensor offen ist UND der Alarm eingeschaltet ist
a) Wird ein Lichtblitz aktiviert (1. Befehl)
b) zusätzlich soll eine Email versendet werden. (2. Befehl)

Problem:
jeder der einzelnen Befehle funktioniert.
Die Verknüpfung, so dass beide Befehle nacheinander ausgeführt werden, funktioniert nicht
Folge: Fehlermeldung über die 2 "}}"
Es funktioniert auch nicht bei ;; statt ;

Hat jemand einen Tipp?

Vielen Dank

Michael


Titel: Antw:Nach If, mehrere Befehle abarbeiten
Beitrag von: topfi am 02 Juni 2014, 16:12:18
mach mal aus

};{

in der Mitte ein

;;

Edit: Vergiss es, das geht auch nicht, da SemdEmail kein FHEM-Befehl ist. Aber vielleicht kann man den zweiten Teil in Perl-Klammern in den ersten Teil hineinschachteln, also vielleicht so:

fhem("set Alarm_Blitz on-for-timer 10;;{Sendemail ... }")

Du hast den fhem-Befehl groß geschrieben. Ist das überhaupt erlaubt?
Titel: Antw:Nach If, mehrere Befehle abarbeiten
Beitrag von: Mitch am 02 Juni 2014, 16:33:04
define AlarmOn notify FensterSensor.undefined {\
if (Value "Alarm") eq "on") {\
fhem ("set Alarm_Blitz on-for-timer 10");;\
SendMail('xxx@@yyy.de','Fenstersensor','Alarm wurde ausgelöst');;\
}\
}


Wobei ich nicht sicher weiß, was SendMail macht. Ruft das eine pm aus?

Könnte auch so heißen:
system ("SendMail('xxx@@yyy.de','Fenstersensor','Alarm wurde ausgelöst')")
Titel: Antw:Nach If, mehrere Befehle abarbeiten
Beitrag von: MiWe58 am 02 Juni 2014, 17:11:44
Hier ist die Lösung:
so funktioniert es:

define AlarmOn notify FensterSensor.undefined {\
if ((Value "Alarm") eq "on") {\
fhem("set Alarm_Blitz on-for-timer 10")};;{\
SendMail ('xxx@@yyy.de','Fenstersensor','Alarm Blitz wurde ausgelöst');;\
}\
}


PS: SendMail ist eine Funktion in 99_myUtils.pm


Titel: Antw:Nach If, mehrere Befehle abarbeiten
Beitrag von: Puschel74 am 02 Juni 2014, 17:14:40
Hallo,

sendMail versendet, wie der Name schon sagt, Mails.

Aber mal zur Frage - hatten wir doch dieses Wochenende schon 2-mal mit genau der selben Fragestellung  ???

Man muss noch nichtmal die Suchfunktion des Forums bemühen und die Fragen verstecken sich nicht auf Seite 38 aufwärts sondern noch auf Seite 2 und 3.

http://forum.fhem.de/index.php/topic,24091.0.html (http://forum.fhem.de/index.php/topic,24091.0.html)
http://forum.fhem.de/index.php/topic,24093.0.html (http://forum.fhem.de/index.php/topic,24093.0.html)

Ja - es ist der Anfängerbereich und ja man soll hier auch Fragen stellen.
Aber auch Anfänger dürfen sich die Mühe machen und mal schauen ob es nicht bereits so eine ähnliche Fragestellung gibt.
Den die Helfer werden irgendwann keine Lust mehr haben die Beiträge rauszusuchen.

Grüße

P.S.: Wenn du mit den Beiträgen nicht zum gewünschten Ergebniss kommst DANN kannst du ja deine Frage loswerden.
Aber auch dann kann man einen bereits bestehenden Beitrag verwenden.
P.P.S.: In der Suchfunktion "mehrere Befehle" eingegeben und Treffer 1 und 4 sind die verlinkten Beiträge.