EIB RGB Color

Hallo,

ich habe gerade ein im Forum gefundenes Skript ein wenig angepasst.

Farbwahl funktioniert einwandfrei, sowohl über Fader wie auch über die festen Farben.

<?
      define("WebFrontCFID",28183 /**/, true); 
      define("rgbfader",    45809 /**/, true);   
      define("HerstellerFarben",54326 /**/, true);

if($IPS_SENDER == "WebFront")
    {
        SetValue($IPS_VARIABLE, $IPS_VALUE);
    }
    
$farb_rgb = hex2rgb(GetValueFormatted(rgbfader));
$HerstellerFarben = GetValue(HerstellerFarben);

$cf_color_table=array
    (
    array(255, 0, 0, "FF0000", "Rot"),                /*/0: Rot */
    array(255, 20, 0,"FF1400", "Hellrot"),            /*/1: Hell3rot */
    array(255, 40, 0,"FF2800", "Hellrot1"),            /*/2: Hell2rot*/
    array(255, 80, 0,"FF5000", "Rotorange"),            /*/3: Hellrot*/
    array(255, 120, 0,"FF7800", "Orange"),            /*/4: Orange*/
    array(255, 255, 0,"FFFF00", "Gelb"),            /*/5: Gelb*/
    array(200, 255, 0,"C8FF00", "Grüngelb"),            /*/6: Gruengelb*/
    array(100, 255, 0,"64FF00", "Hellgrün"),            /*/7: Hellgruen*/
    array(0, 255, 0,"00FF00", "Grün"),            /*/8: Reingruen*/
    array(0, 255, 80,"00FF50", "Grünblau"),            /*/9: Leicht Indigo*/
    array(0, 255, 144,"00FF90", "Türkis"),            /*/10: Indigo*/
    array(0, 255, 255,"00FFFF", "Hellblau"),           /*/11: Hellblau*/
    array(0, 100, 255,"0064FF2", "Royal"),            /*/12: Hellblau*/
    array(0, 50, 255,"0032FF", "Blau"),            /*/13: Dunkelblau*/
    array(0, 0, 255,"0000FF", "Dunkelblau"),                /*/14: Royal*/
    array(50, 0, 255,"2300FF2", "Dunkellila"),        /*/15:*/
    array(100, 0, 255,"6400FF", "Lila"),            /*/16:*/
    array(255, 0, 255,"FF00FF", "Magenta"),            /*/17: Magenta*/
    array(255, 0, 100,"FF0064", "Hellrose"),            /*/18 */
    array(255, 0, 50,"FF0023", "Rosa"),            /*/19 */
    array(255, 255, 255,"FFFFFF", "Weiß"),            /*/ 20 *Weiss */
    array(255, 255, 80,"FFFF50", "Warmweiß"),            /*/ 21 Ungefaehr Weiss*/
    array(120, 255, 120,"78FF78", "Eisweiß"),            /*/ 22 Ungefaehr Weiss*/
    array(190, 255, 180,"BEFFB4", "Weiß1"),            /*/ 23 Ungefaehr Weiss*/
    array(160, 255, 255,"A0FFFF", "Weiß2")            /*/ 24 Ungefaehr Weiss */
    );

	function hex2rgb ( $hex )
   {
   	$rgb = array();
      $rgb[0] = hexdec ( $hex[0] . $hex[1] );
      $rgb[1] = hexdec ( $hex[2] . $hex[3] );
      $rgb[2] = hexdec ( $hex[4] . $hex[5] );
      return $rgb;
   }

	switch ($IPS_VARIABLE)
   {
	case  (rgbfader):
   	$farb_rgb = hex2rgb(GetValueFormatted(rgbfader));
		EIB_DimValue(53566 /**/, $farb_rgb[0]);
      EIB_DimValue(19777 /**/, $farb_rgb[1]);
      EIB_DimValue(19382 /**/, $farb_rgb[2]);
   break;
	case  (HerstellerFarben):
      SetValue(rgbfader, hexdec ($cf_color_table[$HerstellerFarben][3]));
      $farb_rgb = hex2rgb(GetValueFormatted(rgbfader));
		EIB_DimValue(53566 /**/, $farb_rgb[0]);
      EIB_DimValue(19777 /**/, $farb_rgb[1]);
      EIB_DimValue(19382 /**/, $farb_rgb[2]);
   break;
   }
?>

Das ganze läuft über EIB.

Nun möchte ich, dass ich wenn ich z.B. über EIB eine Szene aufrufe oder den Wert mit dem Lichtschalter änder, dass sich dann auch der RGB fader anpasst.

Bei den normalen EIB Variablen kann man ja beispielsweise die Fader wieder setzen in dem man die Rückmeldevariable auch nutzt. Mir fehlt nur gerade der Punkt an dem ich die von EIB zurückgemeldeten Werte in dem RGB Fader aktualisisere. In den einzelnen Fadern die ich vor dem RGB Slider eingesetzt habe funktioniert das einwandfrei.

Was muss ich tun?

Danke

Gruß Marc

Drei Ereignisse an die Variablen tun und in einem Skrit diese zum HexColor Wert zusammenrechnen.

paresy