Hauptmenü

DOIF mit FS20PIRA

Begonnen von Fredi69, 11 Oktober 2016, 10:00:57

Vorheriges Thema - Nächstes Thema

Mitch

 8) Sorry, dann halt nicht
FHEM im Proxmox Container

Ellert

Zitat von: Fredi69 am 11 Oktober 2016, 21:23:31
So weit so gut:
Ein andere fs20pira hat mit einem notify folgendes ausgelöst:
set Aussen_Garten_Lampe_Haustuer on-for-timer 60;set Bewegungmelder_Haustuer_On inactive;sleep 30;set Bewegungmelder_Haustuer_On active

Das scheint mit einem DOIF nicht zu funktionieren, oder?
set Aussen_Garten_Lampe_Haustuer on-for-timer 60,set Bewegungmelder_Haustuer_On inactive,sleep 30,set Bewegungmelder_Haustuer_On active
Mit dem set xxx hat DOIF wohl ein Problem
ZitatMit dem set xxx hat DOIF wohl ein Problem
Nein, mit sleep, dafür hat DOIF das Attribut wait.

Fredi69

Vielen Dank für den Hinweis. Das schaue ich mir an und berichte dann.
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

Per

Zitat von: Ellert am 11 Oktober 2016, 23:37:01Nein, mit sleep
Zur Erläuterung: im notify ist es ein FHEM-Befehl, gefolgt durch das Semicolon, letzteres fehlt bei DOIF wg. der anderen Syntax.
Aber statt
set 1;sleep 30;set 2
schreibst du hier
(set 1)(set 2)
mit
attr DOIF_NAME wait 30

ABER: während im ersten Fall set 2 immer ausgeführt wird, kann es beim DOIF durch das Eintreffen neuer Events zu einem Abbruch kommen. Manchmal gewollt, manchmal nicht...

Fredi69

Zitat von: Per am 12 Oktober 2016, 13:38:27
Zur Erläuterung: im notify ist es ein FHEM-Befehl, gefolgt durch das Semicolon, letzteres fehlt bei DOIF wg. der anderen Syntax.
Aber statt
set 1;sleep 30;set 2
schreibst du hier
(set 1)(set 2)
mit
attr DOIF_NAME wait 30

ABER: während im ersten Fall set 2 immer ausgeführt wird, kann es beim DOIF durch das Eintreffen neuer Events zu einem Abbruch kommen. Manchmal gewollt, manchmal nicht...

Danke so habe ich das auch umgesetzt.
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

Fredi69

Schön zu lesen, das mich anscheinend doch die allermeisten verstehen ;)

Zitat von: Per am 12 Oktober 2016, 13:38:27ABER: während im ersten Fall set 2 immer ausgeführt wird, kann es beim DOIF durch das Eintreffen neuer Events zu einem Abbruch kommen. Manchmal gewollt, manchmal nicht...

Damit fällt das DOIF im Zusammenhang mit einem Bewegungsmelder aber aus meiner Sicht raus, denn die Wahrscheinlichkeit das ein neuer Event kommt ist relativ hoch.
Warum ist das denn so?
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

Per

Wieso, in dem Fall gewollt, neuer Event -> neuer Zeitraum.

Ellert

Zitat von: Fredi69 am 13 Oktober 2016, 14:29:03
Danke so habe ich das auch umgesetzt.

attr DOIF_NAME wait 30

bedeutet, dass mit der Ausführung des 1. Befehls 30 s gewartet wird und der 2. Befehl sofort danach ausgeführt wird.

Wenn nur der zweite Befehl verzögert werden soll, dann so

attr DOIF_NAME wait 0,30

Ellert

Zitat von: Fredi69 am 13 Oktober 2016, 15:57:25
Schön zu lesen, das mich anscheinend doch die allermeisten verstehen ;)

Damit fällt das DOIF im Zusammenhang mit einem Bewegungsmelder aber aus meiner Sicht raus, denn die Wahrscheinlichkeit das ein neuer Event kommt ist relativ hoch.
Warum ist das denn so?
Wenn eine Bedingung ohne Statuswechsel wiederholt wahr wird, dann wird wait nicht zurückgesetzt, es sei denn Du verwendest das Attribut do resetwait.