Zeitversetzte Befehle werden nicht ausgeführt

Begonnen von Knuttel, 30 Juni 2013, 10:59:52

Vorheriges Thema - Nächstes Thema

Knuttel

Ein Hallo in die Runde

Folgendes Szenario habe ich vor:

Meine Rollläden sollen auf Knopfdruck (später per Helligkeitssensor) erst ganz aufgehen und nach 18 Sekunden für 10 Sekunden(2/3 geschlossen) zufahren.
Meine Programmzeile sieht folgendermaßen aus:

define DS_Rollo_Kueche_Test notify FS20_S20_T8 {if (Value("FS20_S20_T8")eq"off") {fhem("set Kue_Rollo_Ost on")}{fhem("define Rollo_halbzu at +00:00:18 set off-for-timer 10")}}
(gesamter Befehl in einer Zeile)

FS20_S20_T8 = auszulösender Schalter
Kue_Rollo_Ost = Rollo

Auf Knopfdruck geht das Rollo auch auf , jedoch schließt es nach 18 sec. nicht.

In der Logfile habe ich folgende Meldung:

2013.06.30 10:30:36 3: FS20 set Kue_Rollo_Ost on
2013.06.30 10:30:36 3: define Rollo_halbzu at +00:00:18 set off-for-timer 10 : Rollo_halbzu already defined, delete it first
2013.06.30 10:30:36 3: DS_Rollo_Kueche_Test return value: Rollo_halbzu already defined, delete it first
2013.06.30 10:30:47 3: Please define off-for-timer first


In der Meldung steht , das "Rollo_halbzu" bereits definiert ist. Ist ja auch logisch beim zweiten Start des Befehles. Muß "Rollo_halbzu" vor jeden Start erst gelöscht werden?

Die Grundidee stammt aus der Anleitung ,,Hausautomatisierung mit fhem" unter der Rubrik
,,Verschachteltes at"

Ist es in dieser Form überhaupt möglich zeitversetzte Aktionen auszulösen? Oder gibt es einen eigenen Befehl wie z.B. WAIT ... sec. um bestimmte Ereignisse mit Verzögerung  auszuführen.

Gruß Knuttel

Laffer72

Hallo Knuttel,

Soviel ich weis, sollte es in Deinem at on-for-timer 10 heissen.
Off-for-timer 10 würde ja für 10 Sekunden ausschalten und dann auf den alten Schaltzustand zurückkehren. Gibts es off-for-timer überhaupt?

Das at solltest Du am Ende der Befehlssequenz wieder löschen, damit es immer wieder neu definiert werden kann.

Mit besten Grüßen


Laffer
Raspberry Pi Rev.B, FB7390 (FHEM2FHEM), Sonos, Smarter Coffee
Osram Lightify:2m LED-Streifen, 5m-LED-Streifen, Gartenspot, Surface 28W, Classic E14,E27, Classic RGBW E27, PAR16 GU10, Plug
CUL868:FS20-ST, FS20-DI, FS20-FMS, FS20-ES1
HMUSB:HM-Sec-RHS,HM-Sec-MDIR2
Jeelink868:TX-29-IT, TFA30.315

UliM

Hi,
ansich schon richtig - an der Schreibweise der 2 fhem()-Befehle könnte man optimieren, aber egal.

"Please define off-for-timer first" -> bei der Angabe, was nach 18sec getan werden soll, fehlt der devicename.

"Muß "Rollo_halbzu" vor jeden Start erst gelöscht werden?" -> wenn Du mit der nächsten Ausführung mehr als 18sec wartest, nein, da der timer nach Abarbeitung automatisch gelöscht wird.

=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Laffer72

Hallo nochmal,

Muß mich entschuldigen, off-for-timer gibt es sehr wohl und ist denke ich inzwischen hier auch richtig. Hab ich wohl zu schnell aus der Hüfte geschossen.
UliM hat recht, beim set Befehl fehlt das Device.


Das sich das at wieder löscht war mir neu, wieder was dazugelernt.


Schönen Sonntag

Laffer
Raspberry Pi Rev.B, FB7390 (FHEM2FHEM), Sonos, Smarter Coffee
Osram Lightify:2m LED-Streifen, 5m-LED-Streifen, Gartenspot, Surface 28W, Classic E14,E27, Classic RGBW E27, PAR16 GU10, Plug
CUL868:FS20-ST, FS20-DI, FS20-FMS, FS20-ES1
HMUSB:HM-Sec-RHS,HM-Sec-MDIR2
Jeelink868:TX-29-IT, TFA30.315

rudolfkoenig

Ich empfehle fuer solche Faelle den fhem-sleep und nicht at:

define DS_Rollo_Kueche_Test notify FS20_S20_T8:off set Kue_Rollo_Ost on;; sleep 18;; set Kue_Rollo_Ost off-for-timer 10

Gehoert sowas nicht zu den Anfaenger? :)