ich habe ein Problem mit dem Befehl „IPS_SetEventAcive“.
Folgendes habe ich vor. Ich habe ein Alarmanlagen-Script angelegt was mit Hilfe von Ereignissen getriggert wird. In dem Script wird nur noch abgefragt ob die Variable „Alarmanlage“ Ein oder Aus ist.
Ich möchte aber die Ereignisse aktivieren bzw. deaktivieren wenn die Alarmanlage Ein oder Aus ist um das Unnötige ausführen des Alarmanlagen-Script zu verhindern.
Dazu habe ich folgendes Script geschrieben welches Ausgelöst wird wenn die Variable Alarmanlage Ein/ Aus geändert wird.
<?
// Alarmanlage Variable setzten und Events Schalten
if($IPS_SENDER == "WebFront")
{
SetValue($IPS_VARIABLE, $IPS_VALUE);
}
$Alarm_Status = GetValue (26294 /*[Skripte\Skripte\Alarmanlage\Alarmanlage Ein / Aus\Arlamanlage]*/);
If ($Alarm_Status == true){
// Bewegungsmelder überwachung Ausschalten
IPS_SetEventActive(21127 /*[Skripte\Skripte\Alarmanlage\Stilleralarm\]*/,true);
// Tür im HWR zur Garage überwachung Einschalten
IPS_SetEventActive(50333 /*[Skripte\Skripte\Alarmanlage\Stilleralarm\Unbenanntes Objekt (ID: 50333)]*/,true);
}else{
// Bewegungsmelder überwachung Ausschalten
IPS_SetEventActive(21127 /*[Skripte\Skripte\Alarmanlage\Stilleralarm\]*/,false);
// Tür im HWR zur Garage überwachung Ausschalten
IPS_SetEventActive(50333 /*[Skripte\Skripte\Alarmanlage\Stilleralarm\Unbenanntes Objekt (ID: 50333)]*/,false);
}
?>
Mein Problem liegt jetzt darin, sobald zweimal hintereinander der Befehl „IPS_SetEventAcive“ kommt wird nur einer Ausgeführt. Aktiviere oder deaktiviere ich nur ein Event klappt alles so wie es soll.
Weiß einer woran das liegen kann ?
Was passiert, wenn du dein Script aus der Console heraus startest? Gleiches Verhalten?
Versuch doch einmal ein Sleep von 200 ms zwischen den beiden IPS_SetEventActive Aufrufen. Wie verhält es sich dann? Dein Script könntest du im Übrigen vereinfach. Ich habe es angepasst und den Sleep gleich mit rein genommen.
<?
// Alarmanlage Variable setzten und Events Schalten
if($IPS_SENDER == "WebFront")
{
SetValue($IPS_VARIABLE, $IPS_VALUE);
}
$Alarm_Status = GetValue (26294 /*[Skripte\Skripte\Alarmanlage\Alarmanlage Ein / Aus\Arlamanlage]*/);
// Bewegungsmelder überwachung Ausschalten
IPS_SetEventActive(21127 /*[Skripte\Skripte\Alarmanlage\Stilleralarm\]*/,$Alarm_Status);
IPS_Sleep(200);
// Tür im HWR zur Garage überwachung Einschalten
IPS_SetEventActive(50333 /*[Skripte\Skripte\Alarmanlage\Stilleralarm\Unbenanntes Objekt (ID: 50333)]*/,$Alarm_Status);
ich möchte für mein Alarmscript die Funktion GetEventActive nutzen, um zu schauen ob das Ereigniss (Anrufscript) schon Aktiv ist.
Leider komme ich mit dem Syntax nicht klar…
CyclicDateDay = 0CyclicDateDayValue = 0
Notice: Array to string conversion in D:\IP-Symcon\scripts\41190.ips.php on line 29
CyclicDateFrom = Array
Notice: Array to string conversion in D:\IP-Symcon\scripts\41190.ips.php on line 29
CyclicDateTo = ArrayCyclicDateType = 0CyclicDateValue = 0
Notice: Array to string conversion in D:\IP-Symcon\scripts\41190.ips.php on line 29
CyclicTimeFrom = Array
Notice: Array to string conversion in D:\IP-Symcon\scripts\41190.ips.php on line 29
CyclicTimeTo = ArrayCyclicTimeType = 1CyclicTimeValue = 30EventActive = EventID = 11815EventLimit = 0EventScript = EventType = 1LastRun = 1423219380NextRun = 0
Notice: Array to string conversion in D:\IP-Symcon\scripts\41190.ips.php on line 29
ScheduleActions = Array
Notice: Array to string conversion in D:\IP-Symcon\scripts\41190.ips.php on line 29
ScheduleGroups = ArrayTriggerSubsequentExecution = 1TriggerType = 0TriggerValue = TriggerVariableID = 0
Ich benötige doch aber nur EventActive … Stehe einfach auf dem Schlauch…