Ereignis Zeiten

Hallo,

ich habe beispielsweise ein Script dessen Ausführung ich mit einem Ereignisobjekt alle 4 Stunden starte (es setzt einfach gesagt eine Variable auf on). Dann habe ich ein weiteres Script das dafür sorgt, dass die Variable nach 12 Minuten wieder zurücksetzt. Eingeschaltet wird das On Script auch von anderen KNX Sensoren. Wichtig ist mir, dass die Variable, egal wann sie angeschaltet wird, nach möglichst exakt 12 Minuten wieder abgeschaltet wird.

Nun ist es so, dass das aber anscheinend nicht immer genau 12 Minuten sind, als wenn sich die Ereignisfunktionen nach irgendwelchen anderen Zeitblöcken richten. Was kann man machen, dass das exakt wird.

Ohne uns das Script oder die Ereignisse zu zeigen, wird dir kaum einer helfen können.
Michael

Was hat das mit dem Script zutun?
Als Timer nutze ich das Objekt „Ereignis“ in dem ich auf dem Script rechts klicke und dann „Objekt hinzufügen“ und dann „Ereignis hinzufügen“ nutze. Dort habe ich lediglich Zeitmuster in Minuten 15 ausgewählt. Im Script steht nur:

<?


if (GetValueBoolean(38382)== true) 
{
	EIB_Switch(31347 , false);
} else {
	
}

?>

Das Zusammenspiel der Ein- und Ausschaltaktionen erklärt sich nicht wirklich.
Erst waren es noch 12 Minuten jetzt 15.
Und so wird es ja pauschal einfach alle 15 Minuten ausgeführt.

Wie man es korrekt macht steht hier:
Wie kann ich…? — IP-Symcon :: Automatisierungssoftware

Der ScriptTimer ist auch nur ein Ereignis, aber wird bei Zeit 0 einfach automatisch deaktiviert.

In deinem Fall muss jetzt das Script auch ausgeführt werden wenn die betreffende Variable auf true geht und dann den Timer auf 12x 60 Sekunden setzen.
Dazu ein auslösendes Ereignis auf die Variable und Ziel dieses Script.
Bei Sender
Michael

Danke für deine Hilfe.

Sorry, hatte mich verschrieben wegen den 12 oder 15 Minuten.

Ich verstehe das noch nicht ganz. Ist der IPS_SetScriptTimer nicht zur Steuerung des Ereignisses welches ich schon vorliegen habe?

Vom Ablauf werte ich gem. dem Beispiel doch aus, wenn das Ereignis das Script startet. Ist das der Fall, dann tue etwa sowie den Timer ausschalten. Das ist das schon vorliegende Ereignis? Aber wieso?

Ich sehe nirgends irgendwas in dem Script, was das Ereignis ‚ausschaltet‘.

Das Ereignis für einen ScriptTimer braucht man nicht anlegen, der Sinn ist ja mal eben mit einer Zeile Code nach Zeit x das Script erneut auszuführen.

Den muss man auch nicht nutzen.
Wenn man das Ereignis im Script selbst sauber steuert, geht das bestimmt auch.
Nur hast du davon noch keine Zeile PHP gezeigt.

Wenn du das Ereignis nur auf inaktiv und aktiv setzt, bleibt leider der Manuel eingestellt Startzeitpunkt ab dem die Zeit x zählt vorhanden.
Somit stimmt der Zeitpunkt der nächsten Ausführen nicht, nur der Intervall von Zeit ab Startzeit.
Michael

Danke für die Hilfe. Jetzt sieht es gut aus.

Hallo,

Ich hänge mich hier mal ein. Habe dieses Script auch mal probiert.
Eine Lampe soll eingeschaltet werden und nach 60s wieder aus. Hier mal mein Script.

Leider bekomme ich diese Fehlermeldung. Müsste doch alles stimmen?

Das Skript sieht richtig aus. Ich habe es gerade auch mal abgetippt und es funktioniert (abgesehen davon, dass die Instanz bei mir natürlich nicht existiert).

Hast du beim Kopieren eventuell problematische unsichtbare Zeichen mit kopiert? Leider ist nämlich ein Leerzeichen nicht immer ein Leerzeichen. In letzter Instanz kannst du das Skript auch noch einmal abtippen um die Abwesenheit von problematischen unsichtbaren Sonderzeichen zu garantieren.

So habe das Script nochmal per Hand abgeschrieben. Fehlermeldung ist wo anders.

Keine Ahnung warum es nicht geht.

„Geschwungene Klammer zu“ } fehlt vom ELSE-Zweig

Gruß Proxima

Danke, das wars. Habe ich beim händischen Tippen vergessen.
Das das Script nach dem Kopieren nicht lief, lag dann ja an ungewollten Leerzeichen.
Ist natürlich gut zu wissen, Danke an alle die mir geholfen haben.