Script von Timer Event UND Variablen aus Starten bringt Fehler

Hallo Gemeinde,

ich versuche gerade ein Script zu basteln, was von einer Variablen getriggert wird (ausgelöst) , aber auch von einem Timer Event (zyklisch)

$counter_oben = GetValueInteger(53305);


 if ($_IPS["SENDER"] === "TimerEvent"){
 $counter_oben++;
 SetValueInteger(53305,$counter_oben);
 if ($counter_oben > 9){
 SetValueInteger(53305,2);
 }
 }

 
 if($_IPS['VARIABLE'] == 36950){
 SetValueInteger(53305,0);
 }

Dazu bekomme ich dann folgende Fehlermeldung:

Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\10568.ips.php on line 17

Wie kann das Script ändern, damit die Meldung verschwindet ?

Vielen lieben Dank und liebe Grüße
Sascha

Du musst erst den Auslöser mit $_IPS[‚SENDER‘] prüfen, also auch gegen ===„VARIABLE“. Erst dann kannst du sicher sein, dass $_IPS[‚VARIABLE‘] gefüllt ist.

Systemvariablen — IP-Symcon :: Automatisierungssoftware

Am Besten machst du das mit einer switch/case Struktur.

Vielen Dank für die Antwort,

ich hab das jetzt mal umgebaut, aber es schein noch nicht zu funktionieren.

Hast du in etwa so gemeint ?

if ($_IPS["SENDER"] === "VARIABLE"){

    switch ("VARIABLE"){

        case 36950:
        SetValueInteger(53305,0);
        break;

        case 42733:
        SetValueInteger(49685,0);
        break;
 }
 }

LG
Sascha

Wenn dein Skript durch eine Variable ausgelöst wird, dann hat $_IPS[„SENDER“] den Wert „Variable“. Groß- und Kleinschreibung ist hierbei wichtig.
Bei dem switch prüfst du den fixen String „VARIABLE“ der nie den Wert einer VariabblenID annehmen kann.
Wenn das Skript durch eine Variable angestoßen wurde kannst du mit $_IPS[‚VARIABLE‘] auslesen welche es war.

Dementsprechend würde der Code wie folgt lauten:

if ($_IPS["SENDER"] === "Variable"){

    switch ($_IPS['VARIABLE']){

        case 36950:
        SetValueInteger(53305,0);
        break;

        case 42733:
        SetValueInteger(49685,0);
        break;
  }
 } 

Parzival

Vielen Dank für die Erklärung, die auch ich verstanden habe :slight_smile:

Und jetzt geht es wunderbar, vielen Dank an alle für die Hilfe :slight_smile:

Liebe Grüße

So wie von Parzival geschrieben war es gemeint, ich konnte leider auf meinem Tablet aus der Console kein Beispiel kopieren.