Hallo zusammen,
ich habe mir einen Timer gebastelt der meine Lüftungsanlage für eine bestimmte zeit auf vollgas stellt.
Als Auslöser habe ich ein Dummy. Nach Ablauf der Zeit soll auch das Dummy zurückgesetzt werden.
im moment mache ich das so:
dm.lueftung.stoss:on {
fhem("set stufe_kwl Stufe_3");
fhem("define at.timer.stoss at +00:45 set stufe_kwl Stufe_2");
fhem("define at.timer.stoss2 at +00:45 set dm.lueftung.stoss off");
}
jetzt habe ich da ja zweit at-Funktionen die beide nach der gleichen Zeit einmal die lüftung wieder auf stufe 2 setzen und das dummy wieder auf off.
Ich frage mich jetzt ob ich beide Rücksetzbefehle auch in einem at erschlagen kann...
Gruß,
Thorsten
Hallo
dm.lueftung.stoss:on {
fhem("set stufe_kwl Stufe_3");
fhem("define at.timer.stoss at +00:45 set stufe_kwl Stufe_2;;set dm.lueftung.stoss off");
}
sollte das machen was du möchtest - hoffe ich.
Grüße
Ui, danke - das ging fix.
Ich werde es gleich mal testen - ich hatte es mit einem komma probiert - das ging jedenfalls nicht...
So - gerade getestet und es funktioniert!
danke und Gruß,
Thorsten
Wenn du dich innerhalb einer { } befindest musst du das ; "escapen" d.h. verdoppeln.
Nochwas
dm.lueftung.stoss:on {
fhem("set stufe_kwl Stufe_3");
fhem("define at.timer.stoss at +00:45 set stufe_kwl Stufe_2;;set dm.lueftung.stoss off");
}
Geht auch noch Kürzer:
dm.lueftung.stoss:on {
fhem("set stufe_kwl Stufe_3 ;; define at.timer.stoss at +00:45 set stufe_kwl Stufe_2 ;;;; set dm.lueftung.stoss off");
}
Beachte das du das letzte Semikolon hetzt sogar nochmal verdoppeln musst. Würdest du das nicht tun, also folgendes schreiben:
dm.lueftung.stoss:on {
fhem("set stufe_kwl Stufe_3 ;; define at.timer.stoss at +00:45 set stufe_kwl Stufe_2 ;; set dm.lueftung.stoss off");
}
dann würde FEHM folgendes machen:
1. set stufe_kwl Stufe_3
2. define at.timer.stoss anlegen
3. sofort dannach set dm.lueftung.stoss off
Duch das erneute veroppeln des Semikolons hollst du aber set dm.lueftung.stoss off in das define AT
mit rein.
Fuer einfache Faelle wie dieser favorisiere ich:
define myNotfy notify dm.lueftung.stoss:on set stufe_kwl Stufe_3;; sleep 2700;; set stufe_kwl Stufe_2;; set dm.lueftung.stoss off"
Zitat von: rudolfkoenig schrieb am Fr, 08 Februar 2013 08:59Fuer einfache Faelle wie dieser favorisiere ich:
define myNotfy notify dm.lueftung.stoss:on set stufe_kwl Stufe_3;; sleep 2700;; set stufe_kwl Stufe_2;; set dm.lueftung.stoss off"
Wie verhält sich fhem hier mit
sleep?
Blockiert fhem für diesen Zeitraum oder wird der Teil "geforked"?
Ui - so eine "einfache" Aufgabenstellung und doch so unterschiedlich die Lösungen...
Aber however ich habs ja jetzt...
Gruß,
Thorsten
Ein FHEM sleep nicht mit einem Perl sleep verwechseln.
sleep als FHEM-Befehl startet intern einen Timer. Daher wird hier FHEM nicht blockiert.
Gruß
Dirk
Danke!
sleep followed by another command and issued in at/notify/etc is not blocking fhem.
*andiestirnklatsch*