Monitoring Variable - einmalige Alarmierung

Hallo,

ich möchte gerne alle 60 Minuten überprüfen, ob meine Panikbeleuchtung angeschaltet oder ausgeschaltet ist. Wenn diese länger als 60 MInuten angeschaltet ist, soll mittels Alarm (Prowl oder SMTP) eine Meldung rausgehen.

Das Skript sieht wie folgt aus:

<?

 //Monitoring alle 60 Minuten

//++++++++++++++ Check Panikbeleuchtung ++++++++++++++++++

//print_r(IPS_GetVariable(21487 /*[Zutritt\Alarmanlage\Panikbeleuchtung]*/));

$panikbeleuchtung_upd = IPS_GetVariable(21487);

if(($panikbeleuchtung_upd['VariableChanged']  + 3600) < (time()) AND GetValue(21487) == true)
{
  echo "Achtung Licht an";
  //BEFEHL FÜR SMTP oder PRWOL Versand

}
else
{
  echo "Licht aus";
}



?>

Soweit so gut - nur wie kann ich verhindern, dass dann alle 60 Minuten eine Meldung raus geht? Ich möchte die Meldung nur einmal erhalten.

Welche Möglichkeiten gibt es, einen einzigen Alarm zu versenden, auch wenn das Skript alle 60 Minuten ausgeführt wird?

Grüße

Vor dem Sendeauftrag eine Variable abfragen, die bei der Sendung der Mail gesetzt wird.

Rücksetzen de Variablen nicht vergessen.

logisch :wink:

Habe es jetzt so umgesetzt:

<?

 //Monitoring alle 60 Minuten

//++++++++++++++ Check Panikbeleuchtung ++++++++++++++++++
//print_r(IPS_GetVariable(21487 /*[Zutritt\Alarmanlage\Panikbeleuchtung]*/));
$panikbeleuchtung_upd = IPS_GetVariable(21487);
if(($panikbeleuchtung_upd['VariableChanged']  + 3500) < (time()) AND GetValue(21487) == true)
{
  
    //prüfen ob Alarmierung bereits erfolgt ist
  if(GetValue(38764) == true)
  {
    echo 'Alarm bereits erfolgt, kein weiterer Alarm notwendig';
  }
  else
  {
  include('ProwlPHP.php');
  $prowl = new Prowl('xxxxxxxxxx');
                     $prowl->push(array(
                'application'=>'IP-Symcon',
                'event'=>'Panikbeleuchtung',
                'description'=>utf8_encode("Panikbeleuchtung ist an!"),
                'priority'=>0
                 ));
                 
    SetValue(38764 /*[.Cron\Panikbeleuchtung\Mail_Status]*/, true);
    echo 'Alarm ist eben raus';
    }
}
else

{
    SetValue(38764 /*[.Cron\Panikbeleuchtung\Mail_Status]*/, false);
    echo 'Licht ist aus';
}



?>


wen es interessiert …

Würde das Skript nur auf Aktualisierung der Variable triggern, für was alle 60 min.? Skripttimer 60 min. bei „Panik_An“, dieser löst bei Erfüllung der if den Alarm aus und wird mit 0 zurückgesetzt. Vorheriges Rücksetzen der Panik Timer auf 0.

Gruß
Bruno