[GELÖST]Notify soll nur von November bis Mai

Begonnen von Sebastian84, 06 Juni 2021, 14:32:47

Vorheriges Thema - Nächstes Thema

Sebastian84

Guten Tag
Ich habe Notifys die nach einer Zeit sagen das noch Türen, Fenster auf sind. Jetzt möchte ich das der Alarm nur von November bis Mai auslöst. Damit nicht immer der Alarm in den Sommermonaten angeht.

  Fenster_Bad_EG:open defmod at_Check_Fenster at +00:08:01 {if (Value("Fenster_Bad_EG") eq "open" ) {fhem "set pushmsg msg 'Alarm' 'Fenster Bad EG immer noch auf' 'sebastian' 2 'siren' 30 3600 "}}   

Danke schon mal

kadettilac89

war so ähnlich schon vor ein paar Tagen hier ...

https://forum.fhem.de/index.php/topic,120665.0.html

per at oder anderen Timer dein Notify auf inaktiv setzen bzw.  mit acitve reaktivieren wenn du es wieder brauchst.

MadMax-FHEM

Oder beim if zusätzlich abfragen welcher Monat und ob der im gewünschten Bereich ist ;)

https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit

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)

roedert

#3
Die beiden technischen Lösungen (per at das notify enablen bzw. disabled oder den Monat per if im notify abfragen), wurden je schon genannt.
Aber der Übersicht halber, habe ich mir für solche Sachen einen Dummy zB Sommerbetrieb anaglegt, der dann im if abgefragt wird. Diesen kann man dann auch noch woanders nutzen und muss nicht an mehrere Stellen ändern.

All diese Dummys sind in einem Settings-Raum zusammengefasst, wo ich diese übersichtlich manuell setzen kann ... oder eben auch automatisiert per at oder DOIF im Sommer/Winter setze.

CoolTux

Zitat von: roedert am 06 Juni 2021, 19:10:01
Die beiden technischen Lösungen (per at das notify enablen bzw. disabled oder den Monat per if im notify abfragen), wurden je schon genannt.
Aber der Übersicht halber, habe ich mir für solche Sachen einen Dummy zB Sommerbetrieb anaglegt, der dann im if abgefragt wird. Diesen kann man dann auch noch woanders nutzen und muss nicht an mehrere Stellen ändern.

All diese Dummys sind in einem Settings-Raum zusammengefasst, wo ich diese übersichtlich manuell setzen kann ... oder eben auch automatisiert per at oder DOIF im Sommer/Winter setze.

Ich würde dieser Lösung den Vorrang geben. Wie erwähnt kann man sowas auch an mehreren Stellen nutzen (z.B. Heizung oder Bewässerung)
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

TomLee

#5
Hallo,

in dem Attribut disabledForIntervall kann man auch Perl verwenden.

Ich meine so in der Art sollte ein notify nur in den Monaten Mai bis November aktiv sein:

{ $month = ($month ~~ [5..11]) ? '' : '00:00-24:00'; }

ungetestet

Gruß

Thomas

TomLee

#6
OK,OK, habs oben korrigiert, wenn du im Spiel bist bleib ich trotzdem verunsichert.

TomLee

OK,OK, habs oben korrigiert, wenn du im Spiel bist bin ich umso mehr verunsichert dass das mit "nichts" beim Rückgabewert im Attribut nicht klappt.

TomLee

Wenn das mit "nichts" als Rückgabewert im Attribut klappen sollte (hab ich immer noch nicht ausprobiert und keiner was dazu gesagt) dann gibts hier einen Verbesserungsvorschlag meines Beispiels.

Für einen angepassten Vorschlag zu posten ist mir für heute die Lust vergangen.


Sebastian84

Ich habe im Notify über Attribut disabledForIntervall
"$month > 4 && $month < 12 ausprobiert.
Aber leider klappt das nicht.
Der Notify gibt trotzdem eine pushnaricht raus.

TomLee

#10
attr <notifyname> disabledForIntervall { $month > 4 && $month < 12 ? '00:00-24:00' : ''; }

edit:
Habs eben mal getestet, klappt nicht wie ich mir das vorgestellt hatte.

Der Perl-Code gibt in der Kommandozeile korrekt 00:00-24:00 zurück, schreib ich nur 00:00-24:00 in das Attribut ist das notify deaktiviert.

Es klappt auch nicht so: { if ($month > 4 && $month < 12) {return '00:00-24:00'}}

Sebastian84

Leider nicht. Kommt immer noch eine push Nachricht

Sebastian84

Internals:
   DEF        Fenster_Bad_EG:open defmod at_Check_Fenster at +00:08:01 {if (Value("Fenster_Bad_EG") eq "open" ) {fhem "set pushmsg msg 'Alarm' 'Fenster Bad EG immer noch auf' 'sebastian' 2 'siren' 30 3600 "}}
   FUUID      6032a805-f33f-cdd4-9486-c07da3cdba705711
   NAME       Fenster_Bad_EG_zu_lange_auf
   NOTIFYDEV  Fenster_Bad_EG
   NR         247
   NTFY_ORDER 50-Fenster_Bad_EG_zu_lange_auf
   REGEXP     Fenster_Bad_EG:open
   STATE      2021-06-12 11:54:33
   TRIGGERTIME 1623491673.68811
   TYPE       notify
   READINGS:
     2021-06-12 04:00:23   state           active
Attributes:
   disabledForIntervals { if ($month > 4 && $month < 12) {return '00:00-24:00'}}   

roedert

Wenn doch eh schon ein if existiert, warum dann nicht einfach dort noch die Monatsabfrage mit rein ... ist auch viel übersichtlicher.

if (Value("Fenster_Bad_EG") eq "open"  && $month > 4 && $month < 12)

MadMax-FHEM

Zitat von: roedert am 12 Juni 2021, 13:37:02
Wenn doch eh schon ein if existiert, warum dann nicht einfach dort noch die Monatsabfrage mit rein ... ist auch viel übersichtlicher.

if (Value("Fenster_Bad_EG") eq "open"  && $month > 4 && $month < 12)

Wurde schon "ignoriert": https://forum.fhem.de/index.php/topic,121506.msg1161162.html#msg1161162 ;)

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)