Helligkeitsregler RGBW Modul

Hallo Gemeinde,

ich schreibe mir gerade ein script, was verschiedene Farbpresets im Webfront anzeigt…alles toll soweit…

Hat jemand eine Idee, wie ich einen „Master Helligkeitsregler“ machen könnte ?
Also als liebstes als Slider…

Nehmen wir mal die Farbe Magenta…wenn ich also im Farbpreset die Werte 255,0,255 angebe habe ich den Maximalen Output für Magenta…jetzt wäre ein „nachgeschalteter“ Masterslider im Webfront toll…

Diesen zum beispiel auf 50% gezogen würde die Werte 127,0,127 ergeben…

Danke für eure Ideen…gerne auch einfach gehalten, da PHP für mich immer noch eine Inselgruppe in Rußland ist :slight_smile:

LG
Sascha

Ich habe zwar keinen Slider, aber mit den Buttons komme ich ganz gut klar.
Einziger Nachteil in meinem Skript ist, das beim erhöhen der Werte alle Werte mit hochgezogen werden.
Ist also nicht Perfekt, aber ich kann damit leben.
Das Skript ist als Aktion der Variablen angehängt.

$InstanzID = 14900 /*[Geräte\RGBW\RGBW Dummy Modul\RGBW-868 (Stripe)]*/ ;
$ist_rgb = GetValue(46836 /*[Geräte\RGBW\RGBW Dummy Modul\RGBW-868 (Stripe)\Color]*/ ); // Color Status Variable vom RGBW
$dim = GetValue(32439 /*[Skripts\1_Steuerung\Lichsteuerung\lichtzenen2\RGB_Dimm]*/ );

// in RGB zerlegen
$b = ($ist_rgb & 255);
$g = (($ist_rgb >> 8) & 255);
$r = (($ist_rgb >> 16) & 255);
$w = (($ist_rgb >> 24) & 255);

$rz =   3;
$gz =   3;
$bz =   3;
$wz =   0;


if($IPS_SENDER == "WebFront")
{
    SetValue($IPS_VARIABLE, $IPS_VALUE);
}

$dim = GetValue(32439 /*[Skripts\1_Steuerung\Lichsteuerung\lichtzenen2\RGB_Dimm]*/ );

  if ($dim == 0)
  {
  	If ($r < 10) {$r = 0;}
  	else {$r  = $r-10;}
   If ($g < 10) {$g = 0;}
  	else {$g  = $g-10;}
   If ($b < 10) {$b = 0;}
  	else {$b  = $b-10;}

  PJ_DimRGBW($InstanzID,$r,$rz,$g,$gz,$b,$bz,$w,$wz);
  SetValue(32439 /*[Skripts\1_Steuerung\Lichsteuerung\lichtzenen2\RGB_Dimm]*/ ,0);
  PJ_SetRGBW($InstanzID, $r, $g, $b, 0);
  }

  if ($dim == 1)
  {
  	If ($r > 245) {$r = 255;}
  	else {$r  = $r+10;}
   If ($g > 245) {$g = 255;}
  	else {$g  = $g+10;}
   If ($b > 245) {$b = 255;}
  	else {$b  = $b+10;}

  PJ_DimRGBW($InstanzID,$r,$rz,$g,$gz,$b,$bz,$w,$wz);
  SetValue(32439 /*[Skripts\1_Steuerung\Lichsteuerung\lichtzenen2\RGB_Dimm]*/ ,1);
  PJ_SetRGBW($InstanzID, $r, $g, $b, 0);
  }
  
    if ($dim == -1)
  {
  	If ($r < 20) {$r = 0;}
  	else {$r  = $r-20;}
   If ($g < 20) {$g = 0;}
  	else {$g  = $g-20;}
   If ($b < 20) {$b = 0;}
  	else {$b  = $b-20;}

  PJ_DimRGBW($InstanzID,$r,$rz,$g,$gz,$b,$bz,$w,$wz);
  SetValue(32439 /*[Skripts\1_Steuerung\Lichsteuerung\lichtzenen2\RGB_Dimm]*/ ,-1);
  PJ_SetRGBW($InstanzID, $r, $g, $b, 0);
  }
  
  if ($dim == +2)
  {
  	If ($r > 235) {$r = 255;}
  	else {$r  = $r+20;}
   If ($g > 235) {$g = 255;}
  	else {$g  = $g+20;}
   If ($b > 235) {$b = 255;}
  	else {$b  = $b+20;}
  	
  PJ_DimRGBW($InstanzID,$r,$rz,$g,$gz,$b,$bz,$w,$wz);
  SetValue(32439 /*[Skripts\1_Steuerung\Lichsteuerung\lichtzenen2\RGB_Dimm]*/ ,+2);
  PJ_SetRGBW($InstanzID, $r, $g, $b, 0);
  }

dimm.PNG

var.PNG

Ich habe für jedes RGB-Modul noch einen kleinen Treiber im Einsatz um die möglichen Farbunterschiede von Stripes über Parameter anzupassen.

In diesem Treiber habe ich noch einen Parameter „Brightness“ berücksichtigt, der Schlussendlich als Faktor auf alle Farbwerte eingeht.

Das Script liegt hier:

vielen Dank

die Lösungen werde ich mir morgen einmal ansehen

LG
Sascha