Hallo,
wer es mal auf die schnelle schön bunt haben will:
<?
// Installation:
//1. Bei $LEDid die ID der RGBW-868 Instanz eintragen.
//2. Script mit dem Ausühren-Button oder Runscript starten.
//3. 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
$LEDid=32126 /*[RGBW-868 (Stripe)]*/;
$fade=7; //Fadetime / Zeit bis zur nächsten Farbe in Sek.
if(($IPS_SENDER == "Runscript")or($IPS_SENDER == "Execute")or($IPS_SENDER == "WebFront")){
$aktivid = @IPS_GetVariableIDByName("Aktiv", $IPS_SELF);
if($aktivid===false) {
$aktivid = IPS_CreateVariable(0);
IPS_SetParent($aktivid, $IPS_SELF);
IPS_SetName($aktivid, "Aktiv");
}
$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"){
$rot=rand(0,255);$gruen=rand(0,255);$blau=rand(0,255);
PJ_DimRGBW($LEDid,$rot,$fade,$gruen,$fade,$blau,$fade,0,0);
IPS_SetScriptTimer($IPS_SELF, $fade);
}
?>
Hier noch eine ‚extendet‘ Version mit Dimmzeit und Helligkeitseinstellung im Objektbaum :).
<?
// 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=32126 /*[RGBW-868 (Stripe)]*/;
if(($IPS_SENDER == "Runscript")or($IPS_SENDER == "Execute")or($IPS_SENDER == "WebFront")){
$aktivid =LEDCreateVariableByName($IPS_SELF, "Aktiv", 0);
$maxlumid=LEDCreateVariableByName($IPS_SELF, "Helligkeit (1-255)", 1);
$fadetimeid=LEDCreateVariableByName($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"){
$maxlumid=LEDCreateVariableByName($IPS_SELF, "Helligkeit (1-255)", 1);
$fadetimeid=LEDCreateVariableByName($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);
}
PJ_DimRGBW($LEDid,rand(0,$maxlum),$fade,rand(0,$maxlum),$fade,rand(0,$maxlum),$fade,0,0);
IPS_SetScriptTimer($IPS_SELF, $fade);
}
function LEDCreateVariableByName($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;
}
?>
Bunte Grüße
Smudo