at-Definitionen schachteln

Begonnen von dantist, 09 August 2016, 08:50:56

Vorheriges Thema - Nächstes Thema

dantist

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.

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

justme1968

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?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

CoolTux

Ich habe etwas ähnliches mit dem Modul sequenz gebaut. Schau es Dir mal an.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

MadMax-FHEM

Hallo,

zwar keine Antwort zum gestellten Problem ABER:

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

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

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

marvin78

Ich hätte es auch gedacht, aber er schreibt ja, dass es das nicht wäre.

MadMax-FHEM

Ah, stimmt...

Nicht ganz bis zum letzten Wort gelesen...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

dantist

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!