Welche?
Und wann kommt die Warnung.
Das Script darf nicht per Hand (über die Konsole) ausgeführt werden, sondern nur über ausgelöste Ereignisse, sonst ist der Wert ‚VARIABLE‘ nicht vorhanden.
Michael
das erklärt warum die Warnung kommt, dass das Array für Variable nicht existiert…
Nun muss ich nur noch herrausfinden, warum case 1 nicht angesprungen wird.
Hier das gesammte scrip.
//Schaltet die Varialble v anwesend, wenn Tür durch Schalter verriegel wurde in die Wohnung verlassen ist RS 03.01.24
$tuer = GetValue(13013); // Motorschloss
$schalter = Getvalueboolean(26128);// Wandschalter
$variable = Getvalueboolean(20413);
$SenderID = $_IPS['VARIABLE'];
$SenderID = $_IPS[‚VARIABLE‘];
switch($SenderID)
{
case $SenderID == $schalter: //Wohnung wird über Schalter verlassen und triggert script
setValue(20413,true);//Hilfsvariable gesetzt
break;
case $SenderID == $tuer && ($tuer == verriegelt && $variable == true) : //Schloß triggert script
setValue(50537,true); // Wohnung aus
break;
case $SenderID == $tuer && ($tuer == verriegelt & $variable == false) : // Schloss bei anwesenheit
setValue(50537,true); // Wohnung aus
break;
case $SenderID == $tuer && ($tuer == entriegelt) :// Türschloss offen
setValue(50537,false); // Wohnung an
break;
}
das wird auch so nicht funktionieren.
verriegelt ist keine Variable und auch kein Wert. Das ist so ein Syntax Fehler.
Und Abfragen in case sind auch schlecht, das gibt unvorhergesehene Resultate.
Entweder klassisch mit if Arbeiten oder ein Mix z.B. so:
$schalter = Getvalueboolean(26128);// Wandschalter
$SenderID = $_IPS['VARIABLE'];
switch($SenderID)
{
case 13013: // ID von Variable Tür
if ($_IPS['VALUE']){ // <--- VALUE emthält den neuen Wert von Variable 13013.
// hier wenn Auslöser 13013 und neuer Wert auf true => Geschlossen)
// $variable = Getvalueboolean(20413) brauchen wir nicht..
// war ja oben egal ob true/false, es wurde immer
SetValue(50537,true); // Wohnung aus geschaltet
} else {
// hier wenn Auslöser 13013 und neuer Wert auf false=> geöffnet)
}
break;
case 42896:
// hier wenn Auslöser 42896
break;
// usw...
}
Michael