Irgendwo steckt mein Denkapparat in der Sackgasse.
Ich habe gestern vergessen meine Garage zu schließen. Stand also über Nacht offen. Ich habe bereits eine Script, welches eine Push schickt, wenn die Garage geöffnet wird. Nun hätte ich auch gern ein solches, wenn die Garage nach Zeit X immer noch offen ist (bis sie wieder geschlossen wird natürlich.
Wie gehe ich am besten vor? Welche Variablen Mappe ich am besten rein?
Nimm z.B. die Variable, die den Status „geschlossen/geöffnet“ enthält und prüfe zyklisch, ob die Anzahl Sekunden
bereits überschritten wurde seit der letzten Änderung
.
Geht bestimmt schicker / anders, ist ja auch nur als „Schnellstarthilfe“ gedacht
ich prüfe, ob mein Garagentor noch offen ist mit einem Fensterkontakt. Wenn der TRUE meldet, wird eine Symcon Alarmanlage mit einer Zeitverzögerung von 3600 Sekunden scharf geschalten. Wird das Garagentor geschlossen wird die Alarmanlage ausgeschalten, ansonsten bekomme ich nach 60 Minuten eine Push Meldung, dass das Tor noch offen ist. Für verschiedene Fensterkontakte habe ich ähnliches eingerichtet.
$msg wird weiter unten per IPS_LogMessage() ausgegeben, sonst bewirkt das weiter nichts.
delay notification sagt nur aus, das es zwar einen Auslöser gab, aber die initial Wartezeit nicht überschritten wurde, sent notification, das ich eine Meldung verschickt haben.
Wenn man eine andere Meldung verschicken will, nach delay bzw dann in der Wiederholung, würde ich den Code so anpassen:
} else {
// MELDUNG: Gerät ist nicht erreichbar
// 24h abwarten für weitere Meldungen
$msg = 'sent notification';
$sec2sleep = $sec4nextMsg;
}
ersetzen durch
} else {
if (time() - $msg_ts < $sec4nextMsg) {
$msg = 'sent notification';
// 1. MELDUNG: Gerät ist nicht erreichbar
} else {
$msg = 'sent reminder';
// ERINNERUNG: Gerät ist nicht erreichbar
}
// 24h abwarten für weitere Meldungen
$sec2sleep = $sec4nextMsg;
}
ich habe mich mal an Nall-chan’s Modul versucht. Wie zu erwarten, macht es das, was es soll. Leider passt es nicht so ganz auf meinen Anwendungsfall. Vielleicht hast du hierzu eine Idee, wie ich dein Modul hierzu anwenden kann.
Dazu habe ich einen Screenshot gemacht, der die Funktion besser veranschaulichen soll:
Der Pufferspeicher meiner Heizung fordert unter bestimmten Bedingungen den Pelletofen an A04.
Ist alles gut und erreicht der Temperaturfühler im Ofen eine bestimmte Temperatur schaltet die Zirkulationspumpe A05.
Was ich also bräuchte, ist eine Meldung wenn die Zirkulationspumpe A05 nach 30 Minuten noch nicht angefordert wurde.