Hallo allerseits,
ich möchte in einem notify den FHEM-Befehl "sleep" verwenden um nach einer Zeit x einen Wert zurückzusetzen. Dieses funktioniert soweit auch gut.
fhem("set Wert1Std $x; sleep 120; set WertStd 0");;
Wenn nun aber während der sleep-Zeit von 120sec das notify erneut anspricht, wird der sleep nicht neu gesetzt, sondern es laufen zuerst dei 120sec ab, bevor es wieder neu gesetzt wird.
Das ist bei "at" anders.
Kann mir jemand sagen, ob ich das richtig sehe und ob es Abhilfe gibt.
Danke und Gruß
Michael
es wird nicht 'neu' gesetzt sonder es gibt dann zwei unabhängige sleep und es wird zwei mal auf 0 gesetzt. nach ablauf der ersten und nach ablauf des zweiten sleep.
die beiden 'wissen' nichts voneinander.
bei at ohne besondere maßnahmen gibt es nur das erste at weil das zweite nicht definiert wird sondern mit einem fehler das es schon ein device mit gleichem namen gibt abgebrochen wird.
du kannst vor dem define prüfen ob es das erste at schon gibt und es mit modify ändern wenn es das verhalten ist das du möchtes.
eventuell ist aber auch ein ganz andeter mechanismus wie z.b. watchdog besser geeignet für das was du vor hast.
gruß
andre
Hallo Andre,
danke Dir für die schnelle Antwort. Dein 3. Absatz ist genau das, warum ich sleep einsetzen wollte. Die Fehlermelung nervt nämlich.
Ich habe leider noch nix gefunden wie ich das Existierten des eines "at" abfragen und modifizieren (modify) kann. Kann Du mir ein Code dafür geben.
Danke und Gruss
Michael
siehe z.b. hier: http://forum.fhem.de/index.php?topic=27084.msg200249#msg200249 (http://forum.fhem.de/index.php?topic=27084.msg200249#msg200249).
statt modify kannst du auch einfach mit delete löschen wenn schon vorhanden und neu anlegen. das macht den verlauf eventuell übersichtlicher.
gruss
andre
Danke Dir, denke, damit komme ich weiter.
ja, so hatte ich es erst gemacht. Aber durch das delete und neu anlegen sind im Laufe von 3 Monat ca. 1 Mio Log-Einträge in der DB entstanden und das möchte ich ändern.
Gruß Michael
wie gesagt nur löschen wenn es das at auch gibt.
aber vielleicht solltest du trotzdem noch mal schauen ob dein ansatz wirklich optimal ist. 3mio einträge in drei monaten sind 20-30 pro minute. das klingt schon sehr nach überflüssiger auslastung deines systems. erst recht wenn diese kollision nicht die regel ist.
schau mal ob es nicht bessere mechanismen gibt das umzusetzen was du vor hast.
gruss
andre