RGBW Input mit Taster bedienen

Hallo zusammen,

ich hätte zu dem RGBW Controller mal eine Frage;
Ist es nicht möglich den ACK2 Eingang des Gerätes mit einem Taster zu verkabeln, um nach einmal drücken eine voreingestellte Farbe anzuschalten und nach nochmaligen Drücken wieder aus zu schalten?

Ich habe ein Ereignis erstellt, was ein Script starten soll wenn die Input 2 Variable aktualisiert wird (durch Tasterdruck), aber der Controller schaltet sich nicht ein, obwohl die Variable im Objektmanager aktualisiert wird bei Tasterdruck.
Was mir auch aufgefallen ist; Wenn ich den Controller vom Strom trenne und wieder einschalte, stehen beide Input auf false. Betätige ich ein mal den Taster, schaltet Input 2 um auf true und bleibt in diesem Zustand. Erst beim erneuten Trennen vom Strom wird diese wieder auf false gesetzt.

Danke schon jetzt für euere Antwort.

Grüße
Mario

Wird denn das Skript überhaupt ausgeführt wenn der Taster gedrückt wird? Wenn nein hast Du das Ereignis nicht richtig angelegt.

Hallo,

das Ereignis startet auch das Script, allerdings geht der Controller nicht an. Starte ich das Script mit „Ausführen“ geht das Licht an und bei nochmaligem Drücken wieder aus.
Mit IPS_Runscript geht es auch nicht. Was mich eben auch wundert ist, das nach einmaligem betätigen des Tasters der Status „true“ erhalten bleibt… Hier mal das Script:

<?

// 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=30631 /*[Steuerung Haus\WC\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;
}
?>

Gruß
Mario

RunScript richtig schreiben

War tatsächlich falsch geschrieben. Es gab aber keine Fehlermeldung und richtig geschrieben geht es auch nicht:

<?
IPS_RunScript (18940 /*[Steuerung Haus\WC\Fade Programm\Script]*/);
?>

Dabei wird Augenscheinlich alles gestartet. Mit dem Taster wird IPS_RunScript gestartet, das wiederum „Script“ startet. „Script“ sollte eigentlich den RGBW einschalten, was es manuell auch tut, aber eben nicht per Ereignis :confused:

Könnte es nicht etwas mit dem Tastereingang zu tun haben? Da sich ja der Zustand auch nicht mehr zurück auf „false“ schaltet, obwohl der Kontakt offen ist? Das kommt mir auf jeden Fall sehr komisch vor… Auf ACK1 ist ja eine Zeitbegrenzung eingebaut, die wollte ich nicht nutzen, da ja ein direktes ein - und ausschalten gewünscht ist.
Warum also springt die Variable Input 2 nicht auf false um, wenn der Kontakt offen ist?

LG
Mario

if(($IPS_SENDER == „RunScript“)

:rolleyes: Ok, das war es!

Tausend dank…

Mario