[gelöst] wiederholter trigger in def. Zeitspanne soll ignoriert werden

Begonnen von justcallmeal, 27 Mai 2024, 13:32:16

Vorheriges Thema - Nächstes Thema

justcallmeal

Hi zusammen,

hab nun tatsächlich eine halbe Stunden herumgesucht und wurde leider nicht fündig.
Ich habe einen homematic sensor (HM-SEN-DB-PCB) an meiner Türklingel istalliert, der bei Bedarf mein Garagentor steuert, so dass sich für den Paketboten nach einmaligem Klingeln die Garage öffnet und nach 60 sec. wieder schließt.
Soweit funktioniert das auch sehr gut, allerdings kommt es manchmal dazu, dass ein Bote zweimal klingelt, und dann stoppt das Tor direkt nachdem es gestart wurde, was zu vermeiden wäre.

Ich hätte also die Funktionalität gerne insoweit modifiziert, dass ein wiederholtes Klingeln innerhalb 10 sec. von meinem define ignoriert wird.

Kann hier jemand helfen?

LG,
al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

MadMax-FHEM

Wie reagierst du denn darauf?

notify?

attr NotifyName disabledAfterTrigger 10

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)

betateilchen

Im notify das Attribut disabledAfterTrigger entsprechend setzen.

disabledAfterTrigger someSeconds
disable the execution for someSeconds after it triggered.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justcallmeal

Zitat von: MadMax-FHEM am 27 Mai 2024, 13:49:23Wie reagierst du denn darauf?

define Postbote_Garage_auf notify Klingel:trigger:.* { if (($year==2024) && ($month==5) && ($mday==27) && (($hour > 11) && ($hour < 18))) { fhem("set Ga_re_halb impuls;;sleep 60;;set Ga_re_zu impuls") } }

LG,al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

betateilchen

die Lösung, wie Du das notify für eine bestimmte Zeit nach der Auslösung deaktivieren kannst, steht ja nun schon zweimal im Thread.

Aber... in Deinem Ausführungsteil sind viel zu viele unnötige Klammern. Da ALLES mit und verknüpft wird, kannst Du die Klammern fast alle weglassen.

if ($year==2024 && $month==5 && $mday==27 && $hour > 11 && $hour < 18)
und das hier:

if ($year==2024 && $month==5 && $mday==27)
kann man auch so prüfen:

if ($today eq "2024-05-27")
und das hier:

if ($hour > 11 && $hour < 18)
kannst Du über das Attribut disabledForIntervals regeln:

attr Postbote_Garage disabledForIntervals 00:00-11:00 18:00-24:00
Damit wird das notify generell nur in der Zeit zwischen den Intervallen ausgeführt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justcallmeal

Hey Jungs, - super!

Werde es zeitnah ausprobieren, - vielen Dank!

al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

justcallmeal

So, habe es nun doch schneller umgesetzt als gedacht: bis auf das Attribut disabledForIntervals habe ich alles implementiert und es funktioniert perfekt!

Bin echt happy, - vielen Dank nochmals!

al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.