[erledigt] wie Notify verzögern?

Begonnen von Harald, 16 Februar 2015, 10:40:43

Vorheriges Thema - Nächstes Thema

Harald

Hallo zusammen,

Ich habe ein Gerät, dass anfangs 2-3 Mal ein Event im Abstand von 5-10 Sek. erzeugt und dann wieder nach 3 Min das gleiche.
Nun suche ich eine Möglichkeit, dass ein Notify nur einmal auf die ersten Events reagiert. Es soll praktisch eine "Entprellung" bewirkt werden.

Ein "define TestNy notify sleep 30 {Test}" startet offensichtlich die Routine "Test" nach jedem einzelnen Event mit einer Verzögerung von 30 Sek.

Ist meine Überlegung überhaupt richtig? Wenn ja, wie kann ich mein Ziel, also nur einen Aufruf von Test nach 30 Sek., erreichen?

Über jede Hilfe wäre ich sehr dankbar. Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Mitch

schau Dir mal DOIF an, da kannst Du soetwas einstellen
FHEM im Proxmox Container

marvin78

Schau dir mal das event-min-intervall Attribut an. Falls es nicht in deinem Sinne ist, das Event direkt im Device zu kontrollieren, kann dir DOIF helfen oder ein verschalchteltes at.

der-Lolo

Ein watchdog würe auch helfen...
Ich glaube aber ein DOIF ist hier der einfachste und verständlichste weg...

Otto123

Ich mache sowas um ein notify nur einmal am Tag laufen zu lassen. Am Ende des notify setze ich einfach das notify auf "disable 1". Durch ein DOIF setze ich dann am Morgen wieder "disable 0"
Du könntest im notify ein at starten und dann das setzt das at das notify nach Zeit x wieder auf disable 0.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Harald

Guten Morgen zusammen,

erstmal herzlichen Dank dafür, dass ihr mir helfen wollt. So langsam nähere ich mich meinem Ziel. Damit ich weiter komme, hier noch eine Frage:

Gibt es die umgekehrt Funktion von "repeatsame"? Der Befehl soll z.B. nach fünfmaligem Erscheinen des Ereignisses augeführt werden.

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Mitch

geht das nicht mit waitsame?

@Otto: mit einem DOIF einen notify steuern? Das ist doch doppelt gemoppelt
FHEM im Proxmox Container

Harald

Hmm, das habe ich wohl nicht richtig verstanden.
ZitatMit dem Attribut waitsame <Zeitspanne in Sekunden für cmd_1>:<Zeitspanne in Sekunden für das cmd_2>:... wird ein Kommando erst dann ausgeführt, wenn innerhalb einer definierten Zeitspanne die entsprechende Bedingung zweimal hintereinander wahr wird.
Die Zahl hinter "waitsame" gibt doch ein Zeitfenster an, in dem Events erkannt werden, oder? Was ist eigentlich mit "zweimal hintereinander" im dem Zitat gemeint?

Ich benötige aber kein Zeitfenster oder Zeitverzögerung sondern nach x Ereignissen soll der Befehl ausgeführt werden.

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Mitch

Zitat von: Harald am 17 Februar 2015, 11:20:45
Gibt es die umgekehrt Funktion von "repeatsame"?

ZitatLöschen des Waittimers nach einer Wiederholung einer Bedingung

Das Gegenstück zum repeatsame-Attribut ist das Attribut waitdel. Die Syntax mit Sekundenangaben pro Kommando entspricht der, des wait-Attributs. Im Gegensatz zum wait-Attribut, wird ein laufender Timer gelöscht, falls eine Bedingung wiederholt wahr wird. Sekundenangaben können pro Kommando ausgelassen oder auf Null gesetzt werden.

Anwendungsbeispiel: Rollladen soll herunter, wenn ein Taster innerhalb von zwei Sekunden nicht wiederholt wird

define di_shuttersdown DOIF ([Button])(set shutters down)
attr di_shuttersdown waitdel 2
attr di_shuttersdown do always

"di_shuttersdown" kann nicht mit dem vorherigen Anwendungsbeispiel "di_shuttersup" innerhalb eines DOIF-Moduls kombiniert werden, da in beiden Fällen die gleiche Bedingung vorkommt.

Die Attribute wait und waitdel lassen sich für verschiedene Kommandos kombinieren. Falls das Attribut für ein Kommando nicht gesetzt werden soll, kann die entsprechende Sekundenzahl ausgelassen oder eine Null angegeben werden.

Beispiel: Für cmd_1 soll wait gelten, für cmd_2 waitdel

attr di_cmd wait 2:0
attr di_cmd waitdel 0:2
FHEM im Proxmox Container

Harald

Danke Mitch für den Hinweis. Ich glaube, ich muss Mal wieder ein FHEM-Update machen - waitdel - steht noch nicht in meiner CommandRef.

Aber ich benötige nichts, was mit Zeiten arbeitet sondern mit Ereignissen wie ich ja schon in meinem vorigen Beitrag schrieb.
Mit "cmdpause 300" klappt es ja grundsätzlich, ist aber nicht das, was ich mir wünsche.
Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Otto123

Zitat von: Mitch am 17 Februar 2015, 11:33:08

@Otto: mit einem DOIF einen notify steuern? Das ist doch doppelt gemoppelt
Hallo Mitch,

in dem Fall hier sicher. In meinem Fall laufen da einfach zwei Dinge, ziemlich simpel. Ich wollte es nur als Idee einwerfen.
Das notify reagiert auf einen Schalterevent und deaktiviert sich selbst.
Das Doif macht einfach ne Zeitsteuerung für einen Bereich am Morgen: notify "scharf" oder "unscharf".

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Mitch

#11
Otto, hab dir im andere Thread geantwortet.

Harald, was ich mir noch vorstellen kann, ist einen Zähler einzubauen und diesen hoch zählen lassen. Sobald der gewünschte Wert erreicht ist, dann ausführen.
FHEM im Proxmox Container

Harald

#12
Ja, besten Dank. Die Idee hatte ich auch schon. Ich werde es erstmal mit cmdpause probieren. Mal sehen, od es damit zu Zeitüberschneidungen kommt. Wenn nicht, dann lasse ich es erstmal so.

Viele Grüße und schönen Abend

Harald

PS: Da das nicht so klappt, wie ich das wünsche (wg. Gedankenfehlers), muss ich mir eine andere Lösung suchen. Nochmals Danke an alle.

Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus