wenn man weiß wonach man suchen soll klappt auch die Suchfunktion¸ danke für den "Such"tipp!
Der Skript von „Smudo“ ist ja schon mal Genial und brauchbar aber nur für Effekte die mindestens 1 Sec. laufen, alles was man darunter haben will geht leider nicht da das Skript mit einem Timer läuft.
Vieleicht hat ja jemand eine Idee um schneller Effekte hin zu bekommen.
Ich habe mal den Skript mit beigefügt:
<?
// Installation:
//1. Bei $LEDid die ID der RGBW-868 Instanz eintragen.
//2. RGB Werte, Fade und Pause Zeiten unter $commands eintagen.
//3. Script starten.
//4. 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=27401 /*[Zentrale\RGB LED Strip\RGBW-868 (Stripe)]*/;
$commands =array( //R,G,B, Fade-Zeit, Pause
array(255,0,0,0,1),
array(0,255,0,0,1),
array(0,0,255,0,1),
);
if(($IPS_SENDER == "Runscript")or($IPS_SENDER == "Execute")){ //Script wird durch 'runscript' oder 'execute' gestartet?
$aktivid = @IPS_GetVariableIDByName("Aktiv", $IPS_SELF); //Variable 'Aktiv' vorhanden?
if($aktivid===false) { //wenn nicht:
$aktivid = IPS_CreateVariable(0); //Variable erstellen
IPS_SetParent($aktivid, $IPS_SELF); //Variable Ort bestimmen
IPS_SetName($aktivid, "Aktiv"); // Variable Name bestimmen
}
$stepid = @IPS_GetVariableIDByName("Step", $IPS_SELF); //Das gleiche wie mit der Variablen 'Aktiv'
if($stepid===false) {
$stepid = IPS_CreateVariable(1);
IPS_SetParent($stepid, $IPS_SELF);
IPS_SetName($stepid, "Step");
}
$eid = @IPS_GetEventIDByName("Aktiv-Event", $IPS_SELF); //Event 'Aktiv-Event' vorhanden?
if($eid===false) { //wenn nicht:
$eid = IPS_CreateEvent(0); // Event erzeugen
IPS_SetEventTrigger($eid, 1, $aktivid); // Event aktivieren
IPS_SetParent($eid, $IPS_SELF); // Event Ort bestimmen
IPS_SetName($eid, "Aktiv-Event"); // Event Name bestimmen
IPS_SetEventActive($eid, true); // Event aktivieren
}
SetValue ($aktivid, (GetValue($aktivid) ? false:true)); //Variable 'Aktiv' toggle (Script an/aus schalten)
}
if($IPS_SENDER == "Variable") { // Wenn Script durch Variable getriggert:
$aktivid = @IPS_GetVariableIDByName("Aktiv", $IPS_SELF); //ID der Variablen 'Aktiv' holen
$aktiv=GetValue($aktivid); // Variable 'Aktiv' auslesen
if($aktiv){ // Wenn Variable 'Aktiv' 'true' ist:
$stepid = @IPS_GetVariableIDByName("Step", $IPS_SELF); //ID der Variablen 'Step' holen
SetValue($stepid,0); //Wert 0 in Variable 'Step' speichern
IPS_SetScriptTimer($IPS_SELF, 1); //Scripttimer auf 1 Sekunde setzen (Script aktivieren)
}
else{ // sonst:
IPS_SetScriptTimer($IPS_SELF, 0); //Scripttimer löschen und
PJ_DimRGBW($LEDid,0,0,0,0,0,0,0,0); //LEDs ausschalten
}
}
if($IPS_SENDER == "TimerEvent"){ //Wenn Scriptaufruf durch Timer:
$stepid = @IPS_GetVariableIDByName("Step", $IPS_SELF); // ID der Variable 'Step' auslesen
$step=GetValue($stepid); // Variable Step auslesen
PJ_DimRGBW($LEDid,$commands[$step][0],$commands[$step][3],$commands[$step][1],$commands[$step][3],$commands[$step][2],$commands[$step][3],0,0); //Werte aus dem Array 'Command' holen und an die LEDs senden
IPS_SetScriptTimer($IPS_SELF, ($commands[$step][5]+$commands[$step][4])); // Scripttimer neu setzen für nächsten 'Step' (Wert 3/Fadezeit + Wert 4/Pause)
$step++; // Variable 'Step' um 1 erhöhen
if ($step>=count($commands)){SetValue($stepid,0);} // Wenn 'Step' größer als die Anzahl der Befehlszeilen in 'command' dann vorne beginnen
else{SetValue($stepid,$step);} // Aktuellen 'Step' abspeichern
}
?>