IPS_RunScript startet Script nicht

Hallo Leute

Habe ein Script (aus dem Forum) für den Farbwechsel der Led. Manuell starten kein Problem. Wenn ich es aber über den Befelh „IPS_RunScript“
ausführen will, passiert nichts. Hängt dies damit zusammen weil das LED-Script Timer untergeordnet hat?

Der Befehl alleine reicht nicht. Da muss die ScriptID noch mit rein.

ist auch so vorhanden

IPS_RunScript(35938 /*[Led Bar\Lichtwechsel Küche / Cheminée\Lichtwechsel Küche / Cheminée]*/);

Zeig mal bitte das Script.

Zeig uns mal das aufzurufende Skript.

paresy

<?
//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;
}
?>

$IPS_SENDER == "RunScript"

dann klappts auch mit dem Nachbar. :slight_smile:

das übersteigt meine aktuellen Kenntnisse wieder mal.

Wo muss das rein?

<?

$wlan = GetValueBoolean(50600 /*[Fritzbox Liste\WLan\WLan ein/aus\Status WLan]*/);
$nacht = GetValueBoolean(10482 /*[Dämmerungssensor\Helligkeit 1\Status]*/);

	if(($wlan) && ($nacht == true))

	IPS_RunScript(35938 /*[Led Bar\Lichtwechsel Küche / Cheminée\Lichtwechsel Küche / Cheminée]*/);

   
?>

Na, Du wirst doch in deinem Script ein kleines „s“ durch ein großes „S“ ersetzen können. :confused:

if(($IPS_SENDER == "RunScript")or($IPS_SENDER == "Execute")or($IPS_SENDER == "WebFront")){ 

ja, ging mit meiner Tastatur :wink:

Danke

Das ist manchmal wie Galgenraten früher. Ich kaufe dann mal ein großes „S“.:smiley:

Man konnte doch nur Vokale kaufen… :stuck_out_tongue: