Hauptmenü

notify verzögert ??

Begonnen von Rampler, 19 August 2015, 15:25:11

Vorheriges Thema - Nächstes Thema

Rampler

Hallo zusammen,
möchte das der notify verzögert startet:
define HW.gk.watchclose notify HW.gk.closed.* {if \
(ReadingsVal('HW.tk','state','') eq "closed") {fhem("sleep 2 ;; set FL.EG.anzeige.led07 led green");;} \
elsif(ReadingsVal('HW.tk','state','') eq "open"){fhem('set FL.EG.anzeige.led07 led orange');;}}

"define HW.gk.watchclose notify HW.gk.closed.* sleep 1 {if \...."
funkioniert leider nicht.
Hintergrund:
der HW.tk state kommt teilweise etwas verzögert...

3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

marvin78

Ungetestet aber das hier müsste funktionieren:



HW.gk.closed.* sleep 2;{if [...]


(Code für den DEF Bereich)

igami

oder ein DOIF mit wait attribut.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Rampler


HW.gk.closed.* sleep 2;{if [...]


Leider Nein, hatte ich auch probiert ..
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Rampler

#4
So müsste es funktionieren:
define HW.gk.watchclose notify HW.gk.closed.* {
{fhem('sleep 1')}
if(ReadingsVal('HW.tk','state','') eq "closed") {fhem("set FL.EG.anzeige.led07 led green");}
elsif(ReadingsVal('HW.tk','state','') eq "open"){fhem('set FL.EG.anzeige.led07 led orange');}
}


Doch dann bekomme ich:
WARNING: sleep without additional commands is deprecated and blocks FHEM
Genau das wollte ich aber doch vermeiden, indem ich das sleep in ein Fhem schreibe ..
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

justme1968

das sleep muss mit in den fhem(...) aufruf mit dem set und nicht einzeln alleine stehen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Rampler

Zitat von: justme1968 am 19 August 2015, 16:44:36
das sleep muss mit in den fhem(...) aufruf mit dem set und nicht einzeln alleine stehen.

gruss
  andre

Das hatte ich zuerst, funktioniert auch, jedoch möchte ich beim Event HW.gk (closed) etwas warten, da der Status des HW.tk noch nicht im FHEM angekommen sein kann.
HW.tk ist ein Türkontakt.
HW.gk ist ein Griffkontakt.
Meine Jungs schaffen es, die Türe quasi zeitgleich zu schließen (HW.tk) und zu verschließen (HW.gk).
Dann passiert es ab und zu, dass der HW.gk schneller ist als der HW.tk, deshalb der sleep.
Der sleep vor dem set bringt mir da also nichts, da der Türkontakt vorher abgefragt wurde...
 
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

justme1968

dann muss das {if...} hinter das sleep. fhem sleep funktioniert nur wenn danach noch etwas kommt.

aber der ansatz das selber von hand in einem notify zu machen ist eigentlich schon falsch.

steck beide in eine structure und setz das notify auf die structure an.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Rampler

#8
Danke, das ist das, was ich gesucht habe, danke für den Hinweis ..
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

AndyMu

Habe ich über ein DOIF realisiert... klappt einwandfrei.
eg_bar_fk ist mein Fensterkontakt, terrasse_ls der UP-Lichtschalter für die Terrasse
Wenn jemand die Türe aufmacht, geht das Licht mit Hilfe eines "Notify" an (wenn es dunkel ist, über Twilight gesteuert).
Beim Schließen kommt dann das DOIF, wartet erstmal 30 Sekunden (über das wait-Attribut) und prüft dann, ob das Licht noch an ist.
Wenn ja, dann wird nochmal ein on-for-timer über 4,5 Minuten gesetzt... damit bleibt nach dem Schließen der Tür das Licht max. 5 Minuten an.
([eg_bar_fk] eq "closed") ({
my $terrasse_ls_status=ReadingsVal("terrasse_ls","state","on");;
if($terrasse_ls_status eq "on"){
fhem("set terrasse_ls on-for-timer 270");;
}
})