Pushover-Nachricht nur in einem bestimmten Zeitabschnitt versenden

Begonnen von Stargazer, 22 September 2016, 19:38:38

Vorheriges Thema - Nächstes Thema

Stargazer

Hallo zusammen,

da ich ja nun meinen dummy über die "Clear-Sky Steuerung" geschaltet bekomme, weiß ich so planungstechnisch nicht so richtig weiter.
Ich möchte gerne am Abend per Push-Nachricht über einen klearen Himmel informiert werden.
Ausgangspunkt wäre wieder, wie in diesem Thread https://forum.fhem.de/index.php/topic,57980.0.html, der "Regenkontakt:Long als Triggerwert.
Der kommt, wenn es klar ist, alle 30min. für etwas 1 Sekunde. Ist es Bewölkt, bleibt der Wert des Dämmerungsschalters bei Long stehen. Das wäre vom Prinzip schlecht. Also würde ich mich an den Watchdog-gesteuerten dummy orientieren.

Jetzt möchte ich aber, wenn der Dummy auf "on" geschaltet wird, dass nur eine Meldung ans Handy geschickt wird. Nicht das da so eine Batterie von Messages abgesendet wird. Das ganze soll aber nur im Zeitraum von 16 - 21 Uhr passieren.

Habt ihr da einen Vorschlag ? Mir raucht da derzeit der Kopf... .

Viele Grüße...

André

Brice

Ich denke, das wäre etwas für ein DOIF, damit kenne ich mich aber nicht aus.

Denkbar wäre, die Funktion http://www.fhemwiki.de/wiki/E-Mail_per_notify_nach_Zeitablauf_erneut_senden zu missbrauchen, um das Notify nicht permanent zu triggern. Einmal innerhalb der 5 Stunden würde ja reichen.

#Clear-Sky definieren
define RegenalarmAn notify Regenkontakt:Long.* {
if (time > $main::NewMailtime)
{ fhem ("set Regenalarm on")}
$main::NewMailtime = time + <Zeitraum in Sekunden eintragen, evt 18000>
}
attr RegenalarmAn disabledForIntervals 21:00-24:00 00:00-15:59


Notify und Watchdog kennen das attr disabledForInterval.
define CS_alarmAn watchdog Regenalarm:on.* 00:01:30 Regenalarm:off.* set Regenalarm off;; trigger CS_alarmAn opened
attr CS_alarmAn disabledForIntervals 21:00-24:00 00:00-15:59
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

Ellert

ZitatJetzt möchte ich aber, wenn der Dummy auf "on" geschaltet wird, dass nur eine Meldung ans Handy geschickt wird. Nicht das da so eine Batterie von Messages abgesendet wird. Das ganze soll aber nur im Zeitraum von 16 - 21 Uhr passieren.

Mit DOIF etwa so:
([?16:00-21:00] and [Dummy] eq "on") (set msg ...)

Stargazer

Hallo zusammen,

vielen Dank für den Tipp mit DOIF.

Habe da jetzt etwas gebastelt, was anscheinend funktioniert. Eines ist nur komisch. Ich bekomme im Moment noch Push-Nachrichten aufs Handy.
Eigentlich sollte ja ab 21 Uhr Schluß damit sein. Ich hatte das Fragezeichen vor dem 16 Uhr vergessen und habe die vorhin mal nachgelegt.
Könnte das auch ein Grund sein ?

Viele Grüße und vielen Dank

André

KernSani

Zitat von: Stargazer am 25 September 2016, 22:00:29
Könnte das auch ein Grund sein ?
Eigentlich nicht... Das ? sorgt nur dafür, dass der in [] stehende Ausdruck kein Trigger ist... Kannst du mal das komplette DOIF posten?


RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Stargazer

Hi KernSani,

hier mal das Stück Code:

#DOIF-Bedingung für die CS-Pushovernachrichten
define CS_Nachrichten DOIF ([?16:00-21:00] and [Regenalarm:on]) (set CS_PushoverDummy on) DOELSE (set CS_PushoverDummy off)
attr CS_Nachrichten room Rolldachhütte


Den Dummy Regenalarm:on greift er als Bedingung ab. Daraufhin aktiviert er einen zweiten Dummy, der auch das Pushover auslöst. Dieser dummy ist nur für eine Sekunde auf "on", damit er mich nicht mit Meldungen zubombt. Da das mein erstes DOIF ist, gibt es doch die Möglichkeit, Messages direkt draus versenden zu können, oder ?

Viele Grüße und besten Dank

André