notify für 10 sek. das Auslösen verbieten.

Begonnen von dogexan, 17 Januar 2015, 19:17:52

Vorheriges Thema - Nächstes Thema

dogexan

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

der-Lolo

Du könntest beim Signal "gebendem" Device ein event-min-interval als Attribut mitgeben.
Vielleicht hilft auch disable for intervals...

betateilchen

#2
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.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

dogexan

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

betateilchen

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
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

der-Lolo

#5
wenn ich deinen Text richtig interpretiere hilst dir wahrscheinlich schon ein event on change reading .*
auf das fritzbox device.

FHEMAN

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
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Freee84neu

#7
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


CoolTux

Dafür hat das Notify vor kurzem ein Attribut bekommen. Schau mal bitte in die Commandref dazu.
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

CoolTux

Gerade gefunden.

disabledAfterTrigger müsste es glaube sein. Bitte noch mal nachlesen aber.
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

Freee84neu

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

FHEMAN

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".
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

CoolTux

Dafür ist es auch nicht gedacht. Macht auch kein Sinn.
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

FHEMAN

Das macht Sinn. Nur ist attr der falsche Ansatz dafür. Wie ich schon schrieb..
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

CoolTux

Und wieso sollte Attribut der falsche Ansatz sein. Du stellst das ganze einmal ein und es bleibt fest. So ist es gedacht.
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