Hallo zusammen,
wie kann ich nach einem erfolgreich ausgeführtem notify ein weiteres Ausführen innerhalb der nächsten 10 Sekunden verhindern, auch wenn die Bedingungen für ein erneutes Auslösen stimmen würden?
Schön wäre es wenn es ein notify Attribut gäbe, bin aber nicht fündig geworden.
Gruß Alex
Du könntest beim Signal "gebendem" Device ein event-min-interval als Attribut mitgeben.
Vielleicht hilft auch disable for intervals...
disableForIntervals ist für einen anderen Einsatzzweck gedacht.
event-min-interval ist vermutlich der richtige Ansatz:
event-min-interval
This attribute takes a comma-separated list of reading:minInterval pairs. You may use regular expressions for reading. Events will only be generated, if at least minInterval seconds elapsed since the last reading of the matched type.
Danke für die Antwort,
was genau sagt disable for intervals aus?
Hab es grade mit event-min-interval probiert leider erfolglos.
Mein "gebendes" Gerät ist in meinem Fall der Fitzbox CALLMONITOR. Das Problem was ich habe ist folgendes:
Wenn ich den Event Status "Connect" per ReadingsVal in meinem notify verwende wird mein Notify mehrmals ausgelöst.
Folgender Auszug aus dem notify (DEF): CALLMONITOR {if (ReadingsVal("CALLMONITOR", "event", "") eq "connect" && ReadingsVal("SonyTV", "power", "") eq "on") {fhem("set SonyTV mute on;set SonyTV volumeDown")}}
Ziel ist wenn ich ans Telefon gehe soll der Fernseher stumm geschaltet werden. Nicht irritieren lassen dass ich noch mal volumeDown mache. Das muss sein damit ich mit VolumeUp den Ton nach Beendigung des Telefonats wieder einschalten kann. (Mute off funktioniert bei meinem TV leider nicht) Für den Ton an werde ich noch ein separates notify definieren. Allerdings erst dann wenn ich mein oben genanntes Problem im Griff hab.
Hoffe es wurde klar was mein Problem ist.
Gruß Alex
disable-for-intervals kannst Du doch auch selbst in der commandref nachlesen :-\
disabledForIntervals HH:MM-HH:MM HH:MM-HH-MM...
Das Argument ist eine Leerzeichengetrennte Liste von Minuszeichen- getrennten HH:MM Paaren. Falls die aktuelle Uhrzeit zwischen diesen Werten fällt, dann wird die Ausführung, wie beim disable, ausgesetzt. Statt HH:MM kann man auch HH oder HH:MM:SS angeben. Um einen Intervall um Mitternacht zu spezifizieren, muss man zwei einzelne angeben, z.Bsp.:
23:00-24:00 00:00-01:00
wenn ich deinen Text richtig interpretiere hilst dir wahrscheinlich schon ein event on change reading .*
auf das fritzbox device.
Da ich das Thema auch gerade hatte und die Suche mich hierher führte.. sicher meint er sowas:
######################################################################################
# Disables a notify for XX seconds.
# Usage: disableForSeconds($NAME, 30);
#
sub disableForSeconds($$) {
my ($dev, $secs) = @_;
my $newtime = strftime("%H:%M:%S",localtime(time()+$secs));
fhem("set $dev inactive; defmod at.Disable.$dev.Temporary at $newtime set $dev active");
}
Gruß
Ronny
Zitat von: FHEMAN am 07 November 2017, 19:43:40
Da ich das Thema auch gerade hatte und die Suche mich hierher führte.. sicher meint er sowas:
######################################################################################
# Disables a notify for XX seconds.
# Usage: disableForSeconds($NAME, 30);
#
sub disableForSeconds($$) {
my ($dev, $secs) = @_;
my $newtime = strftime("%H:%M:%S",localtime(time()+$secs));
fhem("set $dev inactive; defmod at.Disable.$dev.Temporary at $newtime set $dev active");
}
Gruß
Ronny
Hallo ist zwar schon alt das Thema aber ich bräuchte sowas wohl auch.
Es wäre schön das wenn mein Notify ausgelöst hat es für ca. 120s nicht mehr auslöst obwohl vielleicht ein Event statfindet.
ich gehe mal davon aus das dein Code in die 99_myUtils gehört. Aber was muss ich dann machen damit mein Notify nicht mehr auslöst ?
Es wäre auch Nett wenn du mir die funktion des Codes kurz erklären könntest damit ich es verstehe
Danke schon mal
Dafür hat das Notify vor kurzem ein Attribut bekommen. Schau mal bitte in die Commandref dazu.
Gerade gefunden.
disabledAfterTrigger müsste es glaube sein. Bitte noch mal nachlesen aber.
Super danke.
Das Attr. hatte ich auch schon gesehen aber nix dazu gefunden. Hatte aber nur in der Deutschen Commandref geschaut.
In der Englischen steht es drin
◦disabledAfterTrigger someSeconds
disable the execution for someSeconds after it triggered.
Super Danke
Zitat von: CoolTux am 16 Oktober 2018, 20:12:25
disabledAfterTrigger müsste es glaube sein. Bitte noch mal nachlesen aber.
Cool, sehr nützlich, das war mir noch gar nicht bekannt.
Nur wenn man das dynamisch handhabt, hätte man das "Fragezeichen Problem".
Dafür ist es auch nicht gedacht. Macht auch kein Sinn.
Das macht Sinn. Nur ist attr der falsche Ansatz dafür. Wie ich schon schrieb..
Und wieso sollte Attribut der falsche Ansatz sein. Du stellst das ganze einmal ein und es bleibt fest. So ist es gedacht.
Du hörst irgendwie nur das, was du hören möchtest. Es geht um Szenarien, wo das notify eben nicht immer gedisabled werden soll. Oder unterschiedlich lange. Egal. Gute Nacht.