Hallo zusammen,
ich habe hinter meinem Bett einen OSRAM Flex LED-Stripe. DIeser soll einen Sonnenaufgang simulieren.
Dafür habe ich mir zwei Skripte angelegt. Das erste ist der Timer, welcher alle x Sekunden eine Float Variable hochzählt.
<?
$zaehler=GetValue(32333 /*[WORK\Zähler\Zähler]*/);
switch ($zaehler)
{
case 0:
/* Hier Aktionen für den ersten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],60);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,1);
break;
case 1:
/* Hier Aktionen für den zweiten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],60);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,2);
break;
case 2:
/* Hier Aktionen für den dritten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],60);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,3);
break;
case 3:
/* Hier Aktionen für den letzten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],60);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,4);
break;
case 4:
/* Hier Aktionen für den letzten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],60);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,5);
break;
case 5:
/* Hier Aktionen für den letzten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],60);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,6);
break;
case 6:
/* Hier Aktionen für den letzten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],60);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,7);
break;
case 7:
/* Hier Aktionen für den letzten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],60);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,8);
break;
case 8:
/* Hier Aktionen für den letzten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],60);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,9);
break;
case 9:
/* Hier Aktionen für den letzten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],60);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,10);
break;
case 10:
/* Hier Aktionen für den letzten Aufruf */
IPS_SetScriptTimer($_IPS['SELF'],0);
SetValue(32333 /*[WORK\Zähler\Zähler]*/,0);
break;
}
?>
Das zweite Skript wird bei Aktualisierung ausgelöst wenn sich der Wert der Variable ändert.
<?
// OSRAM Flex Aufwachlicht von Rot -> Weiß
$osramflex = 19696 /*[Hardware\Osram Lightify\Backlight]*/;
$zaehler = GetValue(32333 /*[WORK\Zähler\Zähler]*/);
if($zaehler == 1)
{
OSR_SetValue($osramflex, 'STATE', true);
OSR_SetValue($osramflex, 'COLOR', 15728640);
OSR_SetValue($osramflex,'LEVEL', 10);
}
elseif($zaehler == 2)
{
OSR_SetValue($osramflex, 'COLOR', 15732736);
OSR_SetValue($osramflex,'LEVEL', 20);
}
elseif($zaehler == 3)
{
OSR_SetValue($osramflex, 'COLOR', 15736832);
OSR_SetValue($osramflex,'LEVEL', 30);
}
elseif($zaehler == 4)
{
OSR_SetValue($osramflex, 'COLOR', 15740928);
OSR_SetValue($osramflex,'LEVEL', 40);
}
elseif($zaehler == 5)
{
OSR_SetValue($osramflex, 'COLOR', 15745024);
OSR_SetValue($osramflex,'LEVEL', 50);
}
elseif($zaehler == 6)
{
OSR_SetValue($osramflex, 'COLOR', 15749120);
OSR_SetValue($osramflex,'LEVEL', 60);
}
elseif($zaehler == 7)
{
OSR_SetValue($osramflex, 'COLOR', 15753216);
OSR_SetValue($osramflex,'LEVEL', 70);
}
elseif($zaehler == 8)
{
OSR_SetValue($osramflex, 'COLOR', 15761408);
OSR_SetValue($osramflex,'LEVEL', 80);
}
elseif($zaehler == 9)
{
OSR_SetValue($osramflex, 'COLOR', 15761472);
OSR_SetValue($osramflex,'LEVEL', 90);
}
elseif($zaehler == 10)
{
OSR_SetValue($osramflex, 'COLOR', 15761536);
OSR_SetValue($osramflex,'LEVEL', 100);
}
elseif($zaehler == 0)
{
OSR_SetValue($osramflex, 'STATE', false);
}
?>
Das funktioniert soweit auch sehr gut.
Jetzt würde ich das erster Skript (Timer) gerne bei Bedarf anhalten bzw. beenden können.
Habe mir dazu eine Boolean Variable angelegt, welche das Timer Script bei „On“ startet und bei „Off“ beendet. Wie kann ich diese in das Timer Skript einbauen?
Habt ihr eine Idee wie ich das lösen kann?
Beste Grüße
Kai