Chromoflex RC Steuerung mit RGB Fader und Color Picker

Hat jemand noch die Konservative Variante des pic1.jpg?

Konservativ… ja , ich habe es weggelassen.:wink:

Bittte schön 10 sec im PS :wink:

Hallo Nick,
habe es eben auch nochmal neu installiert und hat direkt auf Anhieb funktioniert. Danke für die super Arbeit.

Jürgen

Hallo,

wo bekommt man denn die Version 2.0 her?

Danke
Jan

…einfach mal in den ersten Post schauen :rolleyes:

… Danke!!!:slight_smile:

Hallo nochmal,
habe nun den USB Dongel installiert. RGB Steuerung über das Programm funktioniert ohne Probleme. Wenn ich Scanne bekomme ich die Nummer 103087 angezeigt. (HEX = 192AF)
Diese Nummer „192AF“ habe ich im Script eingetragen.
Dann noch die restlichen Daten eingetragen und Script ausgeführt.
Bis hierhin ist noch alles OK.

Wenn ich nun aber das Dummy Modul anzeigen lasse funktioniert die Ansteurung des Chromoflex nicht mehr. Habe ich die falsche Nummer des Chromoflex eingegeben?

Danke für Hilfe.

Hast Du die Nummer in diese Varaible eingetragen?

$IDDeviceIDHex                      = "000000";     // Device ID des Chromoflex Controllers default 000000 Broadcast.

Ändere doch mal die Varaible „DeviceID Hex“ auf 000000, hiermit schickt er die Befehle an alle CF, also Broadcast.

Hallo vielen Dank,
habe den Fehler entdeckt. Habe eine Fehlermeldung vom Hauptscript.

$id = 0; //I/O Instanz
Instanz not found.

Welche Instanz soll ich hier eintragen?

Steht ja indirekt da.

Die IO-Instanz also die FTDI-Instanz die für deinen Dongle eingerichtet wurde. Falls dieser von Dir noch nicht eingerichtet wurde -> nachholen.

Danke für die Hilfe.
Problem war das die Bautrate auf 9600 eingestellt war. Muss aber 115200 sein. Jetzt geht´s.

Vielen Dank.
Super Programm

Ich habe das Chromoflex Script von Paresy jetzt [u]so[/u] geändert das auch die Programme gedimmt werden können. Aber leider funktionieren nun keine Programme im Color Picker mehr. Es es nur bei mir so oder bei allen?

Habe ich nicht ausprobiert.

Werde mich die Tage mal an ein Update setzten.

LG Nick

Ich habe in den Programmcode das Dimmargument bei der Programmwahl hinzugefügt.
Somit sollte das Dimmen von Programmen möglich sein.
Daher ist die Anpassung im ChromoflexIII Steuerscript nötig.

siehe Post 44 hier:

LG Nick

Kannst du konkreter sagen was/wie zu ändern ist oder ist eine Neuinstallation deines Scripts einfacher?
Paresy’s Hauptscript ändern ist klar.

PS: dein Link oben hat einen Fehler

Einfach den Code unterhalb der Konstanten austauschen.
Neuinstallation ist nicht erforderlich.

Gruß Nick

Tut mir Leid. Ich verstehe nur Bahnhof.

Einfach den Code unterhalb der Konstanten austauschen.

Welcher Code, welche Konstanten und welches Script?

kein Thema :wink:
Einfach den Code hier mit Deinem Austauschen



//*** Werte bei Betätigung aus dem Webfront einlesen und einer Variablen zuordnen ***//
if($IPS_SENDER == "WebFront")
    {
        SetValue($IPS_VARIABLE, $IPS_VALUE);
    }

// Funktionsaufruf mit den Werten aus dem RGB Fader


$farb_rgb = hex2rgb(GetValueFormatted(rgbfader));
$farbmanuell_rgb = hex2rgb(GetValue(RGBManuellFarbWert));

// Variablenwerte einlesen
$DeviceID = GetValue(DeviceID);
$Net = GetValue(Net);
$idchromoscript  = idchromoscript;

$HerstellerFarben = GetValue(HerstellerFarben);
$RGBAutomatikFarbWert = GetValue(RGBAutomatikFarbWert);
$RGBManuellFarbWert = GetValue(RGBManuellFarbWert);
$programm   = GetValue(programm);
$dimmer = GetValue(dimmer);

$Chromoflexprofilname      = GetValue(Chromoflexprofilname);

$rot            = $farb_rgb[0];
$gruen        =  $farb_rgb[1];
$blau            = $farb_rgb[2];

$rotmanuell  = $farbmanuell_rgb[0];
$gruenmanuell = $farbmanuell_rgb[1];
$blaumanuell = $farbmanuell_rgb[2];


//Farbpalette (wie die im Herstellertool)
$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 */
    );

// Passende Funktion für Palette
function ChromoflexRC_SetPalColor($idchromoscript, $Net, $DeviceID, $palColor, $dimmer)
    {
          global $cf_color_table;
       IPS_RunScriptEx($idchromoscript, Array("Net" => $Net, "DeviceID" => "$DeviceID", "Action"=>"SetColor", "R"=> $cf_color_table[$palColor][0], "G" => $cf_color_table[$palColor][1], "B" => $cf_color_table[$palColor][2], "D" => $dimmer));

    }

// Funktion wandelt den RGB wert aus der RGB Fader Variable von Hex nach Dec und teilt sie in die Werte R G B
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;
     }

//**** Programmsteuerung ****////
if ($programm == 100)   // Wen Automatik an
    {
        switch ($IPS_VARIABLE)
            {  // *** RGB Colorfader ****///
                case (rgbfader):
                 SetValue (RGBAutomatikFarbWert, GetValueFormatted(rgbfader)); // Farbe für Autmatik speichern
                    $Profilcolor = GetValueFormatted(rgbfader);
                    IPS_SetVariableProfileAssociation("$Chromoflexprofilname", 100, "Auto","",hexdec($Profilcolor));
                    WFC_SendNotification(WebFrontCFID, "Farbänderung", "<p>Die Farbe für die Automatik wurde geändert.</p><table width=\"200\" height=\"80px\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td bgcolor=\"#".GetValueFormatted(rgbfader)."\"> </td></tr></table>", "RGB",4);
             break;
             // *** Feste Farben Buttens *** ///
             case (HerstellerFarben):
                 SetValue (RGBAutomatikFarbWert, $cf_color_table[$HerstellerFarben][3]); // Farbe für Autmatik speichern
                 SetValue(rgbfader, hexdec ($cf_color_table[$HerstellerFarben][3]));
                 WFC_SendNotification(WebFrontCFID, "Farbänderung","<p>Die Farbe für die Automatik wurde auf ".$cf_color_table[$HerstellerFarben][4]." geändert.</p><table width=\"200\" height=\"80px\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td bgcolor=\"#".$cf_color_table[$HerstellerFarben][3]."\"> </td></tr></table>", "RGB",4);
                 IPS_SetVariableProfileAssociation("$Chromoflexprofilname", 100, "Auto","",hexdec($cf_color_table[$HerstellerFarben][3]));
                break;
                // *** Programmwahl *** ///
                case  (programm):
                  SetValue(HerstellerFarben, 99);
                     SetValue(rgbfader, hexdec($RGBAutomatikFarbWert));
                     WFC_SendNotification(WebFrontCFID, "Automatik","Um die Farbe für die Automatik zu ändern, einfach den RGB Fader, Picker oder Farbfelder nutzen. Die Farbe wird gespeichert.", "RGB",12);
            break;
            }
    }
else     // Wen Automatik aus
    {
      switch ($IPS_VARIABLE)
        {
// *** RGB Colorfader ****///
        case  (rgbfader):

            $farb_rgb = hex2rgb(GetValueFormatted(rgbfader));
         IPS_RunScriptEx(idchromoscript, Array("Net" => $Net, "DeviceID" => "$DeviceID", "Action"=>"SetColor", "R"=> $rot, "G" => $gruen, "B" => $blau, "D" => $dimmer));
            SetValue(programm, 99); // Programm auf Manuell umschalten
         SetValue(HerstellerFarben, 99); // HerstellerFarben auf Manuell umschalten
         SetValue (RGBManuellFarbWert, GetValueFormatted(rgbfader)); // Farbe für Manuell speichern
         $Profilcolor = GetValueFormatted(rgbfader);
            IPS_SetVariableProfileAssociation("$Chromoflexprofilname", 99, "Manuell","",hexdec($Profilcolor)); // Profilfarbe setzen

       break;
// *** Programmwahl *** ///
        case  (programm):
            if ($IPS_VALUE < 50) // Hersteller Programm
                {
                  IPS_RunScriptEx(idchromoscript, Array("Net" => $Net, "DeviceID" => "$DeviceID", "Action"=>"SetProgram", "P"=> $programm,"D"=>"$dimmer"));
                  SetValue(HerstellerFarben, 99);
                  SetValue(rgbfader, 0);
                }
            if ($IPS_VALUE == 99) // Manuell ausgewählt
               {
               SetValue(rgbfader, hexdec($RGBManuellFarbWert));
               $farb_rgb = hex2rgb($RGBManuellFarbWert);
               IPS_RunScriptEx(idchromoscript, Array("Net" => $Net, "DeviceID" => "$DeviceID", "Action"=>"SetColor", "R"=> $rotmanuell, "G" => $gruenmanuell, "B" => $blaumanuell, "D" => $dimmer));
                }
       break;
// *** Feste Farben Buttens *** ///
        case  (HerstellerFarben):
           if  ($HerstellerFarben < 99)
                {
                    $funktionsreturn = ChromoflexRC_SetPalColor($idchromoscript, $Net, $DeviceID, $HerstellerFarben, $dimmer);// Funktionsaufruf anhand des gedrückten Buttens HerstellerFarben im WebFront.
                    SetValue(programm, 99);
                 SetValue(rgbfader, hexdec ($cf_color_table[$HerstellerFarben][3]));
                 $Profilcolor = $cf_color_table[$HerstellerFarben][3];
                    IPS_SetVariableProfileAssociation("$Chromoflexprofilname", 99, "Manuell","",hexdec($Profilcolor)); // Profilfarbe setzen
                    SetValue (RGBManuellFarbWert, $cf_color_table[$HerstellerFarben][3]); // Farbe für Manuell speichern
             }
       break;
// ***  Dimmer Manuell *** ///
        case  (dimmer):
           if  ($programm == 99)
               {
                IPS_RunScriptEx(idchromoscript, Array("Net" => $Net, "DeviceID" => "$DeviceID", "Action"=>"SetColor", "R"=> $rot, "G" => $gruen, "B" => $blau, "D" => $dimmer));
            }
                   elseif ($programm > 99)
                          {
                          IPS_RunScriptEx(idchromoscript, Array("Net" => $Net, "DeviceID" => "$DeviceID", "Action"=>"SetProgram", "P"=> $programm, "D"=>"$dimmer"));
                          }
       break;
        }
    } 

LG Nick

Ahh Jaahhh,
Sag das doch gleich :wink:
Und läuft fast perfekt. Einen kleinen Schönheitsfehler gibt es noch. Wenn ich bei einer Farbe den Dimmer-Slider bewege ändert sich die Helligkeit sofort. Wenn ich bei einem Programm den Slider bewege muss ich erst nochmal das Programm wählen damit der Helligkeitswert übernommen wird.

mach mal bitte aus dem $programm > 99 ein $programm < 99
beim elseif im Case „dimmer“.

Dann sollte es gehen
LG Nick