Hallo allerseits,
falls es jemand benötigt oder sich davon etwas abschauen möchte, hier mal meine Skripte zur Simulation von Sonnenaufgang und Sonnenuntergang in meinem Terrarium (getriggert über Astrozeit). Durch die Nutzung eines Timers, dass das Skript immer wieder aufruft, muss das Skript immer nur kurz laufen und muss nicht durchgehend laufen.
Beschreibung am Beispiel Sonnenuntergang:
Die UV-Spots werden abgeschaltet, die T5 Röhren werden langsam dunkler gedimmt und am Ende wird der LED-Sternenhimmel angeschaltet. Zusätzlich wird abgefragt, ob das Terrarium im „Winterruhe-Modus“ (kein Licht) ist.
Sonnenaufgang:
<?
include('LightManager.ips.php');
$t5dimvar = 15679 /*[Skripte & Variablen\Beleuchtung\Terrarium groß\T5 - DimVariable]*/;
$t5statusvar = 24807 /*[Skripte & Variablen\Beleuchtung\Terrarium groß\T5 Röhren An/Aus]*/;
$t5manuellerDim = 35432 /*[Skripte & Variablen\Beleuchtung\Terrarium groß\T5 - Manueller Dim]*/;
$winterruhe = GetValue(49128 /*[Skripte & Variablen\Beleuchtung\Terrarium groß\Winterruhe\Winterruhe]*/);
if ($winterruhe == true) {
echo "Terrarium ist im Winterruhe-Modus, deshalb kein Sonnenaufgang!";
}
else {
$url17 = "http://127.0.0.1:44322/control?cmd=dim&dl=16&id=22&db0=1&db1=38&db2=17&db3=68&db4=16&db5=0&db6=3&db7=0"; // 100%
$url16 = "http://127.0.0.1:44322/control?cmd=dim&dl=15&id=22&db0=1&db1=38&db2=17&db3=68&db4=15&db5=0&db6=3&db7=0"; // 93%
$url15 = "http://127.0.0.1:44322/control?cmd=dim&dl=14&id=22&db0=1&db1=38&db2=17&db3=68&db4=14&db5=0&db6=3&db7=0"; // 87%
$url14 = "http://127.0.0.1:44322/control?cmd=dim&dl=13&id=22&db0=1&db1=38&db2=17&db3=68&db4=13&db5=0&db6=3&db7=0"; // 81%
$url13 = "http://127.0.0.10:44322/control?cmd=dim&dl=12&id=22&db0=1&db1=38&db2=17&db3=68&db4=12&db5=0&db6=3&db7=0"; // 75%
$url12 = "http://127.0.0.1:44322/control?cmd=dim&dl=11&id=22&db0=1&db1=38&db2=17&db3=68&db4=11&db5=0&db6=3&db7=0"; // 68%
$url11 = "http://127.0.0.1:44322/control?cmd=dim&dl=10&id=22&db0=1&db1=38&db2=17&db3=68&db4=10&db5=0&db6=3&db7=0"; // 62%
$url10 = "http://127.0.0.1:44322/control?cmd=dim&dl=9&id=22&db0=1&db1=38&db2=17&db3=68&db4=9&db5=0&db6=3&db7=0"; // 56%
$url9 = "http://127.0.0.1:44322/control?cmd=dim&dl=8&id=22&db0=1&db1=38&db2=17&db3=68&db4=8&db5=0&db6=3&db7=0"; // 50%
$url8 = "http://127.0.0.1:44322/control?cmd=dim&dl=7&id=22&db0=1&db1=38&db2=17&db3=68&db4=7&db5=0&db6=3&db7=0"; // 43%
$url7 = "http://127.0.0.1:44322/control?cmd=dim&dl=6&id=22&db0=1&db1=38&db2=17&db3=68&db4=6&db5=0&db6=3&db7=0"; // 37%
$url6 = "http://127.0.0.1:44322/control?cmd=dim&dl=5&id=22&db0=1&db1=38&db2=17&db3=68&db4=5&db5=0&db6=3&db7=0"; // 31%
$url5 = "http://127.0.0.1:44322/control?cmd=dim&dl=4&id=22&db0=1&db1=38&db2=17&db3=68&db4=4&db5=0&db6=3&db7=0"; // 25%
$url4 = "http://127.0.0.1:44322/control?cmd=dim&dl=3&id=22&db0=1&db1=38&db2=17&db3=68&db4=3&db5=0&db6=3&db7=0"; // 18%
$url3 = "http://127.0.0.1:44322/control?cmd=dim&dl=2&id=22&db0=1&db1=38&db2=17&db3=68&db4=2&db5=0&db6=3&db7=0"; // 12%
$url2 = "http://127.0.0.1:44322/control?cmd=dim&dl=1&id=22&db0=1&db1=38&db2=17&db3=68&db4=1&db5=0&db6=3&db7=0"; // 6%
$url1 = "http://127.0.0.1:44322/control?cmd=on&id=22&db0=1&db1=38&db2=17&db3=68&db4=17&db5=0&db6=3&db7=0"; // AN
$url0 = "http://127.0.0.1:44322/control?cmd=off&id=22&db0=1&db1=38&db2=17&db3=68&db4=0&db5=0&db6=3&db7=0"; // AUS
$t5dimarray = array($url0, $url1, $url2, $url3, $url4, $url5, $url6, $url7, $url8, $url9, $url10, $url11, $url12, $url13, $url14, $url15, $url16, $url17 );
IPS_SetScriptTimer($IPS_SELF, 74); // bei einer Helligkeit mehr, alle 74 Sekunden, dauert der Sonnenaufgang ~20 Minuten
if($IPS_SENDER == "TimerEvent") {
$t5dimvarX = GetValue($t5dimvar);
if ($t5dimvarX == 0) {
$t5dimvarX = $t5dimvarX + 1;
SetValue($t5dimvar, 1);
// Manuellen-Dim-Balken auf 0% setzen
SetValue($t5manuellerDim, 0);
}
if ($t5dimvarX == 16) {
// TimerEvent ausschalten
IPS_SetScriptTimer($IPS_SELF, 0);
// UV-Spots anschalten
HM_WriteValueBoolean(23430 /*[Hardware\HomeMatic\Schaltaktor-4fach\SA4x01 (Terrarium)\SA4x01_K2 (UV-Spots)]*/, "STATE", true);
// Manuellen-Dim-Balken auf 100% setzen
SetValue($t5manuellerDim, 100);
}
// FS20 EVG Dimmer >> Dim-Wert setzen
WWWReader_SetPage(52026 /*[WWW Reader (LightManager)]*/,$t5dimarray[$t5dimvarX]);
IPS_ApplyChanges(52026 /*[WWW Reader (LightManager)]*/);
WWWReader_UpdatePage(52026 /*[WWW Reader (LightManager)]*/);
if ($t5dimvarX == 2) {
// T5 Röhren anschalten
IPS_Sleep(1000);
HM_WriteValueBoolean(24268 /*[Hardware\HomeMatic\Schaltaktor-4fach\SA4x01 (Terrarium)\SA4x01_K1 (T5 Röhren)]*/, "STATE", true);
SetValue($t5statusvar, true);
}
if ($t5dimvarX == 9) {
// Manuellen-Dim-Balken auf 50% setzen
SetValue($t5manuellerDim, 50);
}
IPS_Sleep(1000);
if (($t5dimvarX < 16) AND ($t5dimvarX > 0)) {
$t5dimvarY = $t5dimvarX + 1;
SetValue($t5dimvar, $t5dimvarY);
}
}
}
?>
Sonnenuntergang:
<?
include('LightManager.ips.php');
$t5dimvar = 15679 /*[Skripte & Variablen\Beleuchtung\Terrarium groß\T5 - DimVariable]*/;
$t5statusvar = 24807 /*[Skripte & Variablen\Beleuchtung\Terrarium groß\T5 Röhren An/Aus]*/;
$t5manuellerDim = 35432 /*[Skripte & Variablen\Beleuchtung\Terrarium groß\T5 - Manueller Dim]*/;
$winterruhe = GetValue(49128 /*[Skripte & Variablen\Beleuchtung\Terrarium groß\Winterruhe\Winterruhe]*/);
if ($winterruhe == true) {
echo "Terrarium ist im Winterruhe-Modus, deshalb kein Sonnenuntergang!";
}
else {
$url17 = "http://127.0.0.1:44322/control?cmd=dim&dl=16&id=22&db0=1&db1=38&db2=17&db3=68&db4=16&db5=0&db6=3&db7=0"; // 100%
$url16 = "http://127.0.0.1:44322/control?cmd=dim&dl=15&id=22&db0=1&db1=38&db2=17&db3=68&db4=15&db5=0&db6=3&db7=0"; // 93%
$url15 = "http://127.0.0.1:44322/control?cmd=dim&dl=14&id=22&db0=1&db1=38&db2=17&db3=68&db4=14&db5=0&db6=3&db7=0"; // 87%
$url14 = "http://127.0.0.1:44322/control?cmd=dim&dl=13&id=22&db0=1&db1=38&db2=17&db3=68&db4=13&db5=0&db6=3&db7=0"; // 81%
$url13 = "http://127.0.0.10:44322/control?cmd=dim&dl=12&id=22&db0=1&db1=38&db2=17&db3=68&db4=12&db5=0&db6=3&db7=0"; // 75%
$url12 = "http://127.0.0.1:44322/control?cmd=dim&dl=11&id=22&db0=1&db1=38&db2=17&db3=68&db4=11&db5=0&db6=3&db7=0"; // 68%
$url11 = "http://127.0.0.1:44322/control?cmd=dim&dl=10&id=22&db0=1&db1=38&db2=17&db3=68&db4=10&db5=0&db6=3&db7=0"; // 62%
$url10 = "http://127.0.0.1:44322/control?cmd=dim&dl=9&id=22&db0=1&db1=38&db2=17&db3=68&db4=9&db5=0&db6=3&db7=0"; // 56%
$url9 = "http://127.0.0.1:44322/control?cmd=dim&dl=8&id=22&db0=1&db1=38&db2=17&db3=68&db4=8&db5=0&db6=3&db7=0"; // 50%
$url8 = "http://127.0.0.1:44322/control?cmd=dim&dl=7&id=22&db0=1&db1=38&db2=17&db3=68&db4=7&db5=0&db6=3&db7=0"; // 43%
$url7 = "http://127.0.0.1:44322/control?cmd=dim&dl=6&id=22&db0=1&db1=38&db2=17&db3=68&db4=6&db5=0&db6=3&db7=0"; // 37%
$url6 = "http://127.0.0.1:44322/control?cmd=dim&dl=5&id=22&db0=1&db1=38&db2=17&db3=68&db4=5&db5=0&db6=3&db7=0"; // 31%
$url5 = "http://127.0.0.1:44322/control?cmd=dim&dl=4&id=22&db0=1&db1=38&db2=17&db3=68&db4=4&db5=0&db6=3&db7=0"; // 25%
$url4 = "http://127.0.0.1:44322/control?cmd=dim&dl=3&id=22&db0=1&db1=38&db2=17&db3=68&db4=3&db5=0&db6=3&db7=0"; // 18%
$url3 = "http://127.0.0.1:44322/control?cmd=dim&dl=2&id=22&db0=1&db1=38&db2=17&db3=68&db4=2&db5=0&db6=3&db7=0"; // 12%
$url2 = "http://127.0.0.1:44322/control?cmd=dim&dl=1&id=22&db0=1&db1=38&db2=17&db3=68&db4=1&db5=0&db6=3&db7=0"; // 6%
$url1 = "http://127.0.0.1:44322/control?cmd=off&id=22&db0=1&db1=38&db2=17&db3=68&db4=0&db5=0&db6=3&db7=0"; // AUS
$url0 = "http://127.0.0.1:44322/control?cmd=off&id=22&db0=1&db1=38&db2=17&db3=68&db4=0&db5=0&db6=3&db7=0"; // AUS
$t5dimarray = array($url0, $url1, $url2, $url3, $url4, $url5, $url6, $url7, $url8, $url9, $url10, $url11, $url12, $url13, $url14, $url15, $url16, $url17 );
IPS_SetScriptTimer($IPS_SELF, 74); // bei einer Helligkeit weniger, alle 74 Sekunden, dauert der Sonnenuntergang ~20 Minuten
if($IPS_SENDER == "TimerEvent") {
$t5dimvarX = GetValue($t5dimvar);
if ($t5dimvarX == 16) {
// UV-Spots ausschalten
HM_WriteValueBoolean(23430 /*[Hardware\HomeMatic\Schaltaktor-4fach\SA4x01 (Terrarium)\SA4x01_K2 (UV-Spots)]*/, "STATE", false);
}
if ($t5dimvarX == 9) {
// Manuellen-Dim-Balken auf 50% setzen
SetValue($t5manuellerDim, 50);
}
if ($t5dimvarX >= 2) {
// FS20 EVG Dimmer >> Dim-Wert setzen
WWWReader_SetPage(52026 /*[WWW Reader (LightManager)]*/,$t5dimarray[$t5dimvarX]);
IPS_ApplyChanges(52026 /*[WWW Reader (LightManager)]*/);
WWWReader_UpdatePage(52026 /*[WWW Reader (LightManager)]*/);
}
if ($t5dimvarX == 1) {
//TimerEvent ausschalten
IPS_SetScriptTimer($IPS_SELF, 0);
// Manuellen-Dim-Balken auf 0% setzen
SetValue($t5manuellerDim, 0);
// T5 Röhren ausschalten
IPS_Sleep(500);
HM_WriteValueBoolean(24268 /*[Hardware\HomeMatic\Schaltaktor-4fach\SA4x01 (Terrarium)\SA4x01_K1 (T5 Röhren)]*/, "STATE", false);
SetValue($t5statusvar, false);
// LED Sternenhimmel anschalten
IPS_Sleep(500);
SetValue(56350 /*[Skripte & Variablen\Beleuchtung\Terrarium groß\Sternenhimmel funkeln\Aktiv]*/, true);
}
IPS_Sleep(1000);
if (($t5dimvarX <= 16) AND ($t5dimvarX > 0)) {
$t5dimvarY = $t5dimvarX - 1;
SetValue($t5dimvar, $t5dimvarY);
}
}
}
?>
> Geht mit anderer Hardware sicher auch anders und kürzer, aber so klappt es bei mir wunderbar Die $t5dimvar ist eine Integer Hilfsvariable, welche hoch und runter zählt, damit ich das FS20 EVG über den Lightmanager mit automatisieren kann.
Wer Fragen hat, einfach melden, aber denke ist relativ übersichtlich
Grüße,
Chris