FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Fredi69 am 11 Oktober 2016, 10:00:57

Titel: DOIF mit FS20PIRA
Beitrag von: Fredi69 am 11 Oktober 2016, 10:00:57
Ich habe mehrere fs20pira Bewegungsmelder im Einsatz und möchte jetzt von einem einfachen notify, das bei Bewegung auslöst auf ein DOIF bei Dunkelheit über das twilight Modul umstellen.
Dazu habe ich folgenden Code hinterlegt:
define Bewegungmelder_Haustuer_On_DI DOIF ([Aussen_Garten_Bewegungmelder_Haustuer:"on"] and [[Twilight_Home:ss_civil]-[Twilight_Home:sr_indoor]]) (set Aussen_Garten_Lampe_Haustuer on-for-timer 60)

Ich befürchte aber, dass das Licht zwischen SS_civil und sr_indoor immer an ist, da ein fs20pira immer den state "on" hat.
Das bisherige notify triggert über das Event "on" des fs20pira.
Bei DOIF ist das doch aber nicht so, oder?
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Ellert am 11 Oktober 2016, 11:07:55
ZitatBei DOIF ist das doch aber nicht so, oder?
Ja, so habe ich die Befehlsreferenz auch verstanden. Hast Du etwas anderes beobachtet?
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Mitch am 11 Oktober 2016, 11:17:46
Du musst auf das Event triggern, ausserdem sehen die Klammern um twilight komisch aus
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Fredi69 am 11 Oktober 2016, 11:28:56
Zitat von: Mitch am 11 Oktober 2016, 11:17:46
Du musst auf das Event triggern, ausserdem sehen die Klammern um twilight komisch aus

Sorry, wie mache ich das?
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Mitch am 11 Oktober 2016, 11:31:12
http://fhem.de/commandref_DE.html#DOIF  ;)
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Ellert am 11 Oktober 2016, 12:17:34
Zitat von: Fredi69 am 11 Oktober 2016, 11:28:56
Sorry, wie mache ich das?

Deine Definition ist in Ordnung. Poste mal ein list Bewegungmelder_Haustuer_On_DI wenn es nicht klappt.
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Mitch am 11 Oktober 2016, 13:05:38
Sorry, habe gerade erst gesehen, dass Du ja schon auf das Event triggerst.
Dann passt das, wie Ellert geschrieben hat.

Hast Du beim Bewegungsmelder evtl. ein Attribut ala event-on?
Was sagt der Eventmonitor?
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Fredi69 am 11 Oktober 2016, 19:20:05
Zitat von: Ellert am 11 Oktober 2016, 12:17:34
Deine Definition ist in Ordnung. Poste mal ein list Bewegungmelder_Haustuer_On_DI wenn es nicht klappt.
Es funktioniert leider nur genau einmal.

Edit1: Do always gesetzt, jetzt geht es mehrfach
Titel: Antw:DOIF mit FS20PIRA
Beitrag 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
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Mitch am 11 Oktober 2016, 21:28:25
Ich verstehe wieder nicht was Du willst.

Wäre schön, wenn Du dich mal ein bisschen einliest vorher  ;)
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Fredi69 am 11 Oktober 2016, 21:32:23
Habe mich eingelesen, was verstehst Du nicht?
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Mitch am 11 Oktober 2016, 21:36:09
Dein Problem
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Fredi69 am 11 Oktober 2016, 21:48:50
Das DOIF soll eine Lampe einschalten und dann einen anderen Bewegungsmelder für 30 Sekunden deaktivieren
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Mitch am 11 Oktober 2016, 21:54:39
Ja, und was hast du wie definiert? List?

Wie gesagt, lies dich mal das command ref zu DOIF, das hilft ungemein.
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Fredi69 am 11 Oktober 2016, 21:57:33
Zitat von: Mitch am 11 Oktober 2016, 21:54:39
Ja, und was hast du wie definiert? List?

Wie gesagt, lies dich mal das command ref zu DOIF, das hilft ungemein.
Ich vermute du möchtest mich nicht verstehen, es steht bereits alles da!
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Mitch am 11 Oktober 2016, 21:59:00
 8) Sorry, dann halt nicht
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Ellert am 11 Oktober 2016, 23:37:01
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.
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Fredi69 am 12 Oktober 2016, 12:00:48
Vielen Dank für den Hinweis. Das schaue ich mir an und berichte dann.
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Per am 12 Oktober 2016, 13:38:27
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...
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Fredi69 am 13 Oktober 2016, 14:29:03
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.
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Fredi69 am 13 Oktober 2016, 15:57:25
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?
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Per am 13 Oktober 2016, 17:09:25
Wieso, in dem Fall gewollt, neuer Event -> neuer Zeitraum.
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Ellert am 13 Oktober 2016, 17:44:54
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
Titel: Antw:DOIF mit FS20PIRA
Beitrag von: Ellert am 13 Oktober 2016, 17:52:07
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.