Autor Thema: at mit mehreren kommandos  (Gelesen 4037 mal)

Offline thoweiss

  • Full Member
  • ***
  • Beiträge: 181
at mit mehreren kommandos
« am: 07 Februar 2013, 20:22:19 »
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

 

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9839
Aw: at mit mehreren kommandos
« Antwort #1 am: 07 Februar 2013, 20:33:32 »
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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Offline thoweiss

  • Full Member
  • ***
  • Beiträge: 181
Aw: at mit mehreren kommandos
« Antwort #2 am: 07 Februar 2013, 20:37:15 »
Ui, danke - das ging fix.

Ich werde es gleich mal testen - ich hatte es mit einem komma probiert - das ging jedenfalls nicht...


Offline thoweiss

  • Full Member
  • ***
  • Beiträge: 181
Aw: at mit mehreren kommandos
« Antwort #3 am: 07 Februar 2013, 20:55:23 »
So - gerade getestet und es funktioniert!

danke und Gruß,
Thorsten

Offline Zrrronggg!

  • Hero Member
  • *****
  • Beiträge: 2362
    • www.fresse.de
Aw: at mit mehreren kommandos
« Antwort #4 am: 08 Februar 2013, 02:09:10 »
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.

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25611
Aw: at mit mehreren kommandos
« Antwort #5 am: 08 Februar 2013, 08:59:07 »
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"

Offline brmpfl

  • Jr. Member
  • **
  • Beiträge: 88
Aw: at mit mehreren kommandos
« Antwort #6 am: 08 Februar 2013, 09:18:41 »
Zitat von: rudolfkoenig schrieb am Fr, 08 Februar 2013 08:59
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"



Wie verhält sich fhem hier mit sleep?
Blockiert fhem für diesen Zeitraum oder wird der Teil "geforked"?
:)
Hajo

Offline thoweiss

  • Full Member
  • ***
  • Beiträge: 181
Aw: at mit mehreren kommandos
« Antwort #7 am: 08 Februar 2013, 09:44:28 »
Ui - so eine "einfache" Aufgabenstellung und doch so unterschiedlich die Lösungen...

Aber however ich habs ja jetzt...

Gruß,
Thorsten
 

Offline Dirk

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2093
Aw: at mit mehreren kommandos
« Antwort #8 am: 08 Februar 2013, 09:44:36 »
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

Offline brmpfl

  • Jr. Member
  • **
  • Beiträge: 88
Aw: at mit mehreren kommandos
« Antwort #9 am: 08 Februar 2013, 09:52:28 »
Danke!

sleep followed by another command and issued in at/notify/etc is not blocking fhem.
*andiestirnklatsch*
:)
Hajo