Türüberwachung im Status False alle 60 Minuten ungewollt Meldung

Hallo zusammen,
ich nutze zwei Scripts um den Status einer Tür zu überwachen. Genutzt wird ein optischer Kontakt von Homematic (HM-Sec-SCo). Im ersten Script erzeuge ich eine Pushmeldung, wenn die Tür für 120 Sec. Geöffnet ist. Das funktioniert sehr gut. Nun habe ich das Script angepasst, um ebenfalls nach 60 Sec. eine Meldung zu erhalten, wenn die Tür wieder geschlossen wird (Status:False).
Das Problem, das ich lösen möchte ergibt sich nun aus einer Statusmeldung des Kontaktes, der ca. alle 60 Minuten automatisch seinen aktuellen Status funkt und dadurch alle 60 Minuten eine Pushmeldung auslöst, die mir sagt, die Tür ist geschlossen. Ist es möglich irgendwie eine Abfrage zu implementieren, die erst eine Pushmeldung schickt, wenn sich der Status von True auf False ändert und nicht bei einer erneuten Statusmeldung False. Vielleicht auch eine vorherige Abfrage, ob sich der Staus vorher in True befunden hat.
Ich bin für jeden Tipp dankbar.
Viele Grüße

Hier das Script „Tür aus“


$status = GetValueBoolean(11567 /*[Steuerung\Funktion\Sicherheit\Kellertür\Status]*/); // Die Alarm Boolean Variable
$time   = 120; // Zeit in Sekunden für den Timer

If ($_IPS['SENDER'] == "Variable")
{

   If ($status == True)
   {
    IPS_SetScriptTimer($_IPS['SELF'],$time);
   }
   else
   {
   //mach nix
   }
}

else
{
echo "Dieses Sript kann nur entweder durch eine Variable oder ein Timerevent gestartet werden";
}

If ($_IPS['SENDER'] == "TimerEvent") // Wenn das Script durch den Timer gestartet wird
{
    If ($status == True)
    {
    WFC_PushNotification(39032 /*[Smarthome]*/, '','Kellertür noch geöffnet!','',0); //Hier das rein, was nach ablauf des Timers passieren soll, wenn die Variable immer noch auf True steht
    IPS_SetScriptTimer($_IPS['SELF'],0); // Timer ausschalten
    }
    else
    {
    IPS_SetScriptTimer($_IPS['SELF'],0); // Timer ausschalten
    }
}
else
{
}

?>

Und hier Tür zu:

<?

$status = GetValueBoolean(11567 /*[Steuerung\Funktion\Sicherheit\Kellertür\Status]*/); // Die Alarm Boolean Variable
$time   = 60; // Zeit in Sekunden für den Timer

If ($_IPS['SENDER'] == "Variable")
{

   If ($status == False)
   {
    IPS_SetScriptTimer($_IPS['SELF'],$time);
   }
   else
   {
   //mach nix
   }
}

else
{
echo "Dieses Sript kann nur entweder durch eine Variable oder ein Timerevent gestartet werden";
}

If ($_IPS['SENDER'] == "TimerEvent") // Wenn das Script durch den Timer gestartet wird
{
    If ($status == False)
    {
    WFC_PushNotification(39032 /*[Smarthome]*/, '','Kellertür jetzt geschlossen!','',0); //Hier das rein, was nach ablauf des Timers passieren soll, wenn die Variable immer noch auf False steht
    IPS_SetScriptTimer($_IPS['SELF'],0); // Timer ausschalten
    }
    else
    {
    IPS_SetScriptTimer($_IPS['SELF'],0); // Timer ausschalten
    }
}
else
{
}

?> 

Entferne im auslösenden Ereignis welches das Script startet einfach den Haken bei ‚nachfolgende Ereignisse ausführen‘.
Michael

Hallo Michael,
das war es. 1000 Dank. Manchmal ist man blind. :wink: