Hallo, ja ich habe unter dem Script Vakuum Störung das Ereignis welches (wie im Screenshot zu sehen ist) alle 10 sekungen ausgeführt werden soll. Also den ScriptTimer (meine ich damit)
Das kann ich einschalten/aktivieren dann geht der Alarm einmal und das Ereignis wird dannach scheinbar wieder beendet.
Hab jetzt mal dazu noch ein Ereignis mit auslösung alle 10 Sekungen gemacht, aber dann kommt der Alarm alle 10 sekunden ohne dass dieser überhaupt ansteht.
Das Ereignis musst du nicht selber erstellen, dieses wird vom Script erstellt.
Daher lösche das Ereignis und führe das Script manuell aus, dann wird dieses erstellt…
Und wenn du keine Variable zur Anzeige des Alarms verwendest, lösche Zeile 20.
Ansonsten erstelle ein Bool und trage dort die richtige ID ein…
Habe jetzt mal ein Script für dich geschustert, welches das Ereignis und den ScriptTimer erstellt.
Wenn die EIngangsvariable false ist, wird nach 10sec Alarm ausgelöst.
Sobald die Eingangsvariable true ist, wird der Alarm abgestellt.
Es wird ein Ereignis, ein Scripttimer und eine Bool mit dem Alarmstatus angelegt. nachdem du dieses Script manuell ausgeführt hast.
Sollte so auf deine Konstellation passen
<?php
$variableID = 22421; // Ersetzen Sie dies durch die tatsächliche ID Ihrer Eingangsvariablen
$alarmVariableName = "AlarmVariable"; // Name der Alarmvariablen
$parentID = $_IPS['SELF']; // Das Skript selbst als Elternobjekt
// Alarmvariable prüfen und erstellen, falls nicht vorhanden
$alarmVariableID = @IPS_GetObjectIDByIdent($alarmVariableName, $parentID);
if ($alarmVariableID === false) {
// Alarmvariable erstellen
$alarmVariableID = IPS_CreateVariable(0); // 0 bedeutet Boolean
IPS_SetName($alarmVariableID, $alarmVariableName);
IPS_SetIdent($alarmVariableID, $alarmVariableName);
IPS_SetParent($alarmVariableID, $parentID); // Unterhalb des Skripts erstellen
}
// Wert der Eingangsvariablen abrufen
$variableValue = GetValue($variableID);
// Überprüfen, ob die Variable aktiv ist
if ($variableValue == 0) {
// Variable ist aktiv, starten oder zurücksetzen Sie den Timer
IPS_SetScriptTimer($_IPS['SELF'], 10);
} else {
// Variable ist inaktiv, setzen Sie den Timer zurück und Alarmvariable zurücksetzen
IPS_SetScriptTimer($_IPS['SELF'], 0);
SetValue($alarmVariableID, false); // Alarmvariable zurücksetzen
}
// Timer-Ereignis verarbeiten
if ($_IPS['SENDER'] == 'TimerEvent') {
// Timer-Ereignis ausgelöst, die Variable ist seit 10 Sekunden aktiv
WFC_AudioNotification(18430, 'Gong!', 49578); // Alarm auslösen
IPS_SetScriptTimer($_IPS['SELF'], 0); // Timer zurücksetzen
SetValue($alarmVariableID, true); // Alarmvariable setzen
}
// Ereignis erstellen, falls nicht vorhanden
$eventID = @IPS_GetEventIDByName("Ereignis für Variable $variableID", $_IPS['SELF']);
if ($eventID === false) {
$eventID = IPS_CreateEvent(0); // 0 bedeutet Ausgelöstes Ereignis
IPS_SetEventTrigger($eventID, 1, $variableID); // 1 bedeutet bei Änderung
IPS_SetParent($eventID, $_IPS['SELF']);
IPS_SetName($eventID, "Ereignis für Variable $variableID");
IPS_SetEventActive($eventID, true);
}
Hallo MB-Stern, vielen lieben Dank jetzt sieht es sehr gut aus…
Du hast uns sehr geholfen, das ist für unseren Hochwasserschutz. Da wir aktuell ja wieder enorme Probleme haben in Schwaben…
Ich teste es jetzt noch etwas aber es schaut sehr gut aus.