Timer Skript funktioniert nicht wie gewünscht

Hallo,

ich habe das angehängte Timer Skript, welches auf Longpush von Tastern angetriggert werden soll, aber ebenso wenn ich die STATE Variable eines Homematic Aktors auf TRUE setze (hier ID 54748).
Komischerweise wird die Variable (ID 51827) auf TRUE gesetzt, der Timer wird aber nicht aktiviert.
Hat hier jemand eine Idee?

Hier ist das Skript. Leider kann ich es nicht vom raspberry herunterladen, da mir der Zugriff auf das Symcon Verzeichnis (var\lib\symcon) nicht ermöglicht wird:

<?php switch($_IPS['SENDER']){ case "TimerEvent": //Aus Befehl RequestAction(54748, false); //Timer ausschalten IPS_SetScriptTimer($_IPS['SELF'], 0); break; case "WebFront": RequestAction(54748, $_IPS['VALUE']); if ($_IPS['VALUE']){ //An Befehl //Timer anschalten IPS_SetScriptTimer($_IPS['SELF'], 300); } break; case "Variable": if ($_IPS['VARIABLE'] == 54748){ SetValueBoolean(51827, $_IPS['VALUE']); } else { //LongPush über Shelly Aktor RequestAction(54748, true); //Timer anschalten IPS_SetScriptTimer($_IPS['SELF'], 300); } break; default: trigger_error('Nicht erwarteter Sender: ' . $_IPS['SENDER']); }

Das Skript ist so leider nicht lesbar.

Ih würde auch empfehlen dies mit einem Ablaufplan zu realisieren.

paresy

Aber wie kann ich denn in einem Ablaufplan einen Timer realisieren? Das ich zum Beispiel bei einer Aktion eine Variable für 5 Minuten einschalten möchte und nach diesen 5 Minuten wieder ausschalten möchte?

Für die Ablaufpläne bin ich anscheinend zu doof, das habe ich aber noch nie richtig hinbekommen. Habe es gerade mal versucht, es funktioniert aber nicht, obwohl der Auslöser gekommen ist. Siehe Screenshots.

Komischerweise funktioniert es jetzt mit dem Ablaufplan. Keine Ahnung wieso, habe es aber gerade getestet.

Das einzige was ich nicht über den Ablaufplan hinbekomme ist, den Wert einer Boolean Variable zu ändern.

Schritt 1: Schaltsteckdose einschalten
Schritt 2: Wenn Schaltsteckdose ein, dann Wert einer Boolean auf TRUE
Schritt 3: Warte Zeit xx ab
Schritt 4: Schaltsteckdose ausschalten
Schritt 5: Wenn Schaltsteckdose aus, dann Wert einer Boolean auf FALSE

Bei Schritt 2 und 5 habe ich nur die Möglichkeit, die Boolean Variable zu schalten. Dieses mag er aber nicht. Eigentlich bräuchte ich hier nicht „Wert schalten“ sondern „Wert setzen“ oder so etwas in der Art.

Das Gefühl kenne ich, geht mir genau so. Lieber fix n Skript hingebaut - fertig :wink:

Genau das sollte aber auch problemlos gehen. Es gibt Aktionen für Wert setzen.

paresy

„Schalten“ führt ja die Aktion der Variablen aus. Hat diese vielleicht ein Aktionsskript? Der Klassiker wäre, dass du dort auf Sender = Webfront prüfst, was hier natürlich nicht der Fall ist. Denn ansonsten sieht der Plan so super aus.

Ja, Du hast natürlich recht. Es war ein Aktionsskript hinterlegt, das hatte ich gar nicht mehr auf dem Schirm…

Mit dem Ablaufplan, das ist wirklich nicht schlecht, wenn man es denn mal drauf hat wie es funktioniert. Aber eine Sache bzw. Frage hätte ich dazu noch und zwar ob es eine Möglichkeit gibt, einen laufenden Aktionsplan abzubrechen?
Wenn ich zB. einen Aktor einschalte, dann 5 Minuten warte und dann den Aktor wieder ausschalte.

Es wäre schön, wenn der Aktor vor Ablauf der 5 Minuten ausgeschaltet wird (auf anderem Wege), das dann der Plan verworfen wird (nur so als Beispiel)

Gibt es :slight_smile:

paresy

Hi,

da hast Du wohl recht… Aber wie soll das funktionieren wenn ein Timer läuft?
Ich schalte einen Aktor ein, starte dann einen Timer. Wenn während des Ablaufs vom Timer dann der Aktor auf anderem Wege ausgeschaltet wird, dann soll der Ablaufplan abbrechen.
Aber wenn der Timer läuft, dann ist der Ablaufplan doch in Warteposition auf Timer-Ablauf und ich kann keinen Abbruch erzwingen (höchstens nach Ablauf des Timers aber das möchte ich ja während dem Ablauf des Timers

Ich würde dafür einfach ein 2. Ereignis erstellen mit Ziel auf den Ablaufplan und der Aktion wenn die Lampe aus geht. Im Zweifelsfall kannst du über wenn/dann auch die Lampe nur ausschalten wenn sie noch an ist.

Gibt da jetzt recht viele Möglichkeiten ans Ziel zu kommen.

paresy

Daher wäre es ganz gut hier im Forum eine (Unter-) Kategorie ‚Ablaufplan‘ einzurichten.

Ich kann mich auch noch nicht mit den Ablaufplänen anfreunden, wie viele andere auch.