Kein Problem … habe einen Screenshot dazu gemacht, damit evtl. verständlicher wird, was das Script macht.
Das Script „GetTimes“ ist das Astro-Script hier aus dem Forum. Bei jeder Aktion wird das Script „SetVariable“ getriggert - wie im Bild zu sehen ist.
Hier das Script „SetVariable“:
<?
/*
astronomische Morgendämmerung = astronomicTwilightStart
nautische Morgendämmerung = nauticTwilightStart
zivile Morgendämmerung = civilTwilightStart
Sonnenaufgang = sunrise
Sonnenuntergang = sunset
nautische Abenddämmerung = nauticTwilightEnd
astronomische Abenddämmerung = astronomicTwilightEnd
zivile Abenddämmerung = civilTwilightEnd
*/
$Trigger = $IPS_EVENT;
$Variablen = IPS_GetChildrenIDs(41528 /*[Allgemein\Tag / Nacht\Variablen]*/ );
// Variable herausfinden, welche auf TRUE gesetzt werden soll
switch($Trigger){
case 48038 :
$VariableToChange = 21529 /*[Allgemein\Tag / Nacht\Variablen\astronomicTwilightStart]*/ ;
break;
case 15597 :
$VariableToChange = 53637 /*[Allgemein\Tag / Nacht\Variablen
auticTwilightStart]*/ ;
break;
case 38308 :
$VariableToChange = 24702 /*[Allgemein\Tag / Nacht\Variablen\civilTwilightStart]*/ ;
break;
case 43471 ;
$VariableToChange = 43513 /*[Allgemein\Tag / Nacht\Variablen\sunrise]*/ ;
break;
case 29801 ;
$VariableToChange = 54846 /*[Allgemein\Tag / Nacht\Variablen\sunset]*/ ;
break;
case 42830 ;
$VariableToChange = 15606 /*[Allgemein\Tag / Nacht\Variablen
auticTwilightEnd]*/ ;
break;
case 29520 :
$VariableToChange = 48277 /*[Allgemein\Tag / Nacht\Variablen\civilTwilightEnd]*/ ;
break;
case 41074 :
$VariableToChange = 50504 /*[Allgemein\Tag / Nacht\Variablen\astronomicTwilightEnd]*/ ;
break;
}
// die zum triggernden Trigger gehörende Variable wird auf TRUE gesetzt, alle anderen auf FALSE
foreach ($Variablen as $ScriptID => $value){
if ($Variablen[$ScriptID] != $VariableToChange){
SetValueBoolean($Variablen[$ScriptID], false);
}
else{
SetValueBoolean($Variablen[$ScriptID], true);
}
}
// Variable "dunkel" auf TRUE oder FALSE setzen
$civilTwilightEnd = GetValueBoolean(48277 /*[Allgemein\Tag / Nacht\Variablen\civilTwilightEnd]*/ );
$nauticTwilightEnd = GetValueBoolean(15606 /*[Allgemein\Tag / Nacht\Variablen
auticTwilightEnd]*/ );
$astronomicTwilightEnd = GetValueBoolean(50504 /*[Allgemein\Tag / Nacht\Variablen\astronomicTwilightEnd]*/ );
$nauticTwilightStart = GetValueBoolean(53637 /*[Allgemein\Tag / Nacht\Variablen
auticTwilightStart]*/ );
$astronomicTwilightStart = GetValueBoolean(21529 /*[Allgemein\Tag / Nacht\Variablen\astronomicTwilightStart]*/ );
$civilTwilightStart = GetValueBoolean(24702 /*[Allgemein\Tag / Nacht\Variablen\civilTwilightStart]*/ );
if ($civilTwilightEnd || $nauticTwilightEnd || $astronomicTwilightEnd || $nauticTwilightStart || $astronomicTwilightStart || $civilTwilightStart){
SetValueBoolean (48538 /*[Allgemein\Tag / Nacht\Variablen Übersicht\dunkel]*/ , TRUE);
}
else{
SetValueBoolean (48538 /*[Allgemein\Tag / Nacht\Variablen Übersicht\dunkel]*/ , FALSE);
}
?>
Wie man sieht, ist immer eine der Variablen „TRUE“. Durch Abfragen der einzelnen Variablen finde ich z.B. heraus, ob gerade „zivile Abenddämmerung“ oder „Sonnenaufgang“ etc. aktiv ist. Gleichzeitig setzt das Script die Variable „dunkel“ auf TRUE. In Scripten, wo ich wissen möchte, ob es dunkel ist, frage ich diese Variable einfach ab. Klappt hier ganz gut … Hoffe, es ist einigermaßen verständlich.
Gruß,
Christoph