Hallo,
hab da mal ne Frage zum Timer. Hier speziell zum überwachen eines Fensters, welches zu lange auf ist.
Der Timer wird z.B. für 15 Minuten aktiviert. Wenn das Fenster um 15:05 geöffnet wird, läuft der Timer nur noch 10min. Geht das Fenster 15:10 auf, läuft er nur noch 5min
Was mache ich hier falsch?
<?
include "41005.ips.php";
// Timer-Script: Ergänzt WF-Events um die Möglichkeit ein Einmaliges ausgelöstest
// Ereigniss nach xx Minuten wieder zu deaktiveren.
$Intervall1 = GetValue(12787 /*[Scripte\Szenarien\Badfenster\Intervall]*/ );
$Intervall = $Intervall1; // Intervallzeit in Minuten
$Fenster = GetValue(15325 /*[Scripte\Szenarien\Badfenster\Fenster]*/);
$EventStatusID=43805 /*[Scripte\Szenarien\Badfenster\Badfenster\EventStatus]*/ ; // manuell angelegte BOOLEAN-Variable
$EventStatus=GetValue($EventStatusID);
$ID_Speicher=55782 /*[Scripte\Szenarien\Badfenster\Badfenster\ID_Speicher]*/ ; // manuell angelegte INTEGER-Variable
$EreignisID=Getvalue($ID_Speicher);
$Jahreszeit = GetValue(56179 /*[HM Variablen\Jahreszeit]*/);
if ($EventStatus==TRUE) //wenn $Eventstatus an ist und Zeit abgelaufen, dann wieder alles rückgängig machen
{
IPS_DeleteEvent($EreignisID); // Event löschen
setvalue($EventStatusID,FALSE); // $EventStatus auf FALSE (Reset)
if (($fenster == true) && ($jahreszeit == false)) //Fenster offen und Winter
{
// .... hier individuelle Ereingisse, bei mir Relais deaktivieren:
print "Eintritt Ereignis";
// IPS_Sleep(200); //in ms
$sk1 = GetValue(57668 /*[Mediaplayer\sk1_counter]*/);
$id_ansagetext = 30035 /*[.Terminverwaltung erm_aktuell]*/;
$ansagetext = "Fenster im Bad, noch offen";
tts_play(1,"Achtung, .$ansagetext", "meldung",2);
require_once('vlcPlayer.php');
$VLC=new vlcPlayer('http://192.168.1.14:8080/',false); //Ausgabe in Küche
$ansage = "w:\sprache_sk1_".GetValue(57668 /*[Mediaplayer\sk1_counter]*/).".wav";
$VLC->add("w:\sprache_sk1_".GetValue(57668 /*[Mediaplayer\sk1_counter]*/).".wav",true);
$VLC->refresh_playlist();
}
}
else
{
$EreignisID = IPS_CreateEvent(1); // zyklisches Ereignis erzeugen
setvalue($ID_Speicher,$EreignisID); // EreignissID in variable speichern
IPS_SetEventCyclic($EreignisID, 0, 0, 0, 2, 2 ,$Intervall); //Alle x ($intervall) Minuten
IPS_SetEventLimit($EreignisID, 1); //nur einmal ausführen
IPS_SetParent($EreignisID, $_IPS['SELF']); //Eregnis zuordnen
IPS_SetEventActive($EreignisID, TRUE); //Ereignis aktivieren
Setvalue($EventStatusID,TRUE);
};
?>