<?
//return;
// Installation:
//1. Bei $LEDid die ID der RGBW-868 Instanz eintragen.
//2. Script mit dem Ausühren-Button oder Runscript starten.
//3. Es ist alles so schön bunt hier!
//An-Ausschalten mit:
//1. "Ausführen" Button im Editor oder
//2. IPS_runscript (diese Script-ID) oder
//3. direktes Ändern der Variablen "Aktiv" auf true oder false
//Zu Hell? Helligkeit im Objektbaum einstellbar (1-255)
//Dimmzeit im Objektbaum einstellbar
$LEDid=52632 /*[Led Bar\Cheminée / Küche\Led Cheminée]*/;
$kanaele=3; //1 -> 1 Kanal / 2 -> Max 2 Kanäle / 3 -> Max 3 Kanäle / 4 -> immer 2 Kanäle / 5 -> immer 3 Kanäle
$minlum=0;
if(($IPS_SENDER == "Runscript")or($IPS_SENDER == "Execute")or($IPS_SENDER == "WebFront")){
$aktivid =CreateVariableByName($IPS_SELF, "Aktiv", 0);
$maxlumid=CreateVariableByName($IPS_SELF, "Helligkeit (1-255)", 1);
$fadetimeid=CreateVariableByName($IPS_SELF, "Dimmzeit (Sek.)", 1);
$eid = @IPS_GetEventIDByName("Aktiv-Event", $IPS_SELF);
if($eid===false) {
$eid = IPS_CreateEvent(0);
IPS_SetEventTrigger($eid, 1, $aktivid);
IPS_SetParent($eid, $IPS_SELF);
IPS_SetName($eid, "Aktiv-Event");
IPS_SetEventActive($eid, true);
}
SetValue ($aktivid, (GetValue($aktivid) ? false:true));
}
if($IPS_SENDER == "Variable") {
$aktivid = @IPS_GetVariableIDByName("Aktiv", $IPS_SELF);
$aktiv=GetValue($aktivid);
if($aktiv){
IPS_SetScriptTimer($IPS_SELF, 1);
}
else{
IPS_SetScriptTimer($IPS_SELF, 0);
PJ_DimRGBW($LEDid,0,0,0,0,0,0,0,0);
}
}
if($IPS_SENDER == "TimerEvent"){
$aktiv=GetValue(@IPS_GetVariableIDByName("Aktiv", $IPS_SELF));
if ($aktiv==false){
IPS_SetScriptTimer($IPS_SELF, 0);
PJ_DimRGBW($LEDid,0,0,0,0,0,0,0,0);
return;
}
$maxlumid=CreateVariableByName($IPS_SELF, "Helligkeit (1-255)", 1);
$fadetimeid=CreateVariableByName($IPS_SELF, "Dimmzeit (Sek.)", 1);
$maxlum=GetValue($maxlumid);
if (($maxlum>=256)or($maxlum<=0)){
$maxlum=255;
SetValue($maxlumid,$maxlum);
}
$fade=GetValue($fadetimeid);
if ($fade<=0){
$fade=10;
SetValue($fadetimeid,$fade);
}
switch ($kanaele)
{
case "1":
$colors=rand(1,3);
break;
case "2":
$colors=rand(1,6);
break;
case "3":
$colors=rand(1,7);
break;
case "4":
$colors=rand(4,6);
break;
case "5":
$colors=7;
break;
}
switch ($colors)
{
case "1":
$r=rand($minlum,$maxlum);$g=0;$b=0;
break;
case "2":
$r=0;$g=rand($minlum,$maxlum);$b=0;
break;
case "3":
$r=0;$g=0;$b=rand($minlum,$maxlum);
break;
case "4":
$r=rand($minlum,$maxlum);$g=rand($minlum,$maxlum);$b=0;
break;
case "5":
$r=rand($minlum,$maxlum);$g=0;$b=rand($minlum,$maxlum);
break;
case "6":
$r=0;$g=rand($minlum,$maxlum);$b=rand($minlum,$maxlum);
break;
case "7":
$r=rand($minlum,$maxlum);$g=rand($minlum,$maxlum);$b=rand($minlum,$maxlum);
break;
}
PJ_DimRGBW($LEDid,$r,$fade,$g,$fade,$b,$fade,0,0);
IPS_SetScriptTimer($IPS_SELF, $fade);
}
function CreateVariableByName($id, $name, $type) { //Variablen auslesen bzw. erstellen
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid===false) {
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
}
return $vid;
}
?>