FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dantist am 09 August 2016, 08:50:56

Titel: at-Definitionen schachteln
Beitrag von: dantist am 09 August 2016, 08:50:56
Hallo zusammen,

ich würde gerne zwei temporäre at-Definitionen schachteln, aber das funktioniert nicht so, wie ich mir das vorstelle:

fhem("define tmp_SetHomePresenceFalseHelper at +00:00:03 { Log(1, 'test 1') }; define tmp_SetHomePresenceFalse at +00:00:30 set HomePresence false; { Log(1, 'test 2') };");

Es passiert folgendes: Beide Funktionen werden sofort generiert (tmp_SetHomePresenceFalseHelper und tmp_SetHomePresenceFalse). Außerdem wird *erst* "test 2" geloggt und nach drei Sekunden "test 1"  :o

Was passieren sollte: tmp_SetHomePresenceFalseHelper wird generiert und baut nach 3 Sekunden wiederum tmp_SetHomePresenceFalse.

Zum Hintergrund, weil das Vorhaben etwas merkwürdig klingt: Ich möchte erreichen, dass nach Schließen der Tür drei Sekunden gewartet wird. Nach diesen drei Sekunden wird 30 Sekunden auf einen Bewegungsmelder gewartet. Wenn der nicht auslöst, weiß ich, dass niemand zu Hause ist. Wenn er auslöst, löscht das Notify "tmp_SetHomePresenceFalse".

Leider überträgt der Bewegungsmelder seine Daten manchmal leicht verzögert, so dass sie erst nach dem Schließen der Tür registriert werden. Ich muss daher drei Sekunden Puffer einbauen und kann es nicht über einen simplen Watchdog lösen.
Titel: Antw:at-Definitionen schachteln
Beitrag von: DeeSPe am 09 August 2016, 09:09:01
Das kann so nicht gehen.

So könnte das klappen (ungetestet):

fhem("define tmp_SetHomePresenceFalseHelper at +00:00:03 { fhem(\"define tmp_SetHomePresenceFalse at +00:00:30 set HomePresence false;; { Log(1, 'test 2') }\"); Log(1, 'test 1') }");

Gruß
Dan
Titel: Antw:at-Definitionen schachteln
Beitrag von: justme1968 am 09 August 2016, 10:52:46
mit einem bzw. zwei fhem sleep geht das doch viel einfacher.

sleep 3; {Log 1, 'test1'}; sleep 30; {Log 1, 'test2'}

gruss
  andre

ps: warum reicht es nicht einmal 33 sekunden zu warten  statt 3 und dann noch mal 30?
Titel: Antw:at-Definitionen schachteln
Beitrag von: CoolTux am 09 August 2016, 10:58:43
Ich habe etwas ähnliches mit dem Modul sequenz gebaut. Schau es Dir mal an.
Titel: Antw:at-Definitionen schachteln
Beitrag von: MadMax-FHEM am 09 August 2016, 11:04:50
Hallo,

zwar keine Antwort zum gestellten Problem ABER:

wäre das nicht ein guter Anwendungsfall für "watchdog"!?

http://www.fhemwiki.de/wiki/Watchdog (http://www.fhemwiki.de/wiki/Watchdog)

Gruß, Joachim
Titel: Antw:at-Definitionen schachteln
Beitrag von: marvin78 am 09 August 2016, 11:07:07
Ich hätte es auch gedacht, aber er schreibt ja, dass es das nicht wäre.
Titel: Antw:at-Definitionen schachteln
Beitrag von: MadMax-FHEM am 09 August 2016, 11:08:00
Ah, stimmt...

Nicht ganz bis zum letzten Wort gelesen...
Titel: Antw:at-Definitionen schachteln
Beitrag von: dantist am 09 August 2016, 18:26:16
Ich habe es jetzt etwas einfacher lösen können: Wenn die Tür geschlossen wird, wird nach drei Sekunden ein Dummy gesetzt. Auf den lauscht jetzt der Watchdog als Initialevent. Trotzdem danke für die Hinweise, vor allem auch an DeeSPe zur Syntax!