HOWTO: RGB dimmen mit einem einzigen Formelbaustein

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11243

    #16
    Die Sache ist die, dass die aktuellste Wiki-Variante in HSV konvertiert, und HSV kennt kein „weiß“ als Grundfarbe.

    Probier doch mal, die Sättigung vorher mittels Skalierer-Baustein „umzudrehen“, und die gegengleichen Werte dann in die Formel bzw. an deinen Weiß-Ausgang zu füttern.
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar


    • doc-brown
      doc-brown kommentierte
      Kommentar bearbeiten
      ich kann das gerade nicht an meinem system testen - aber so beim druebernachdenken... wenn ich die saettigung runterdrehe - dann werden die werte aller drei kanäle r-g-b größer (sodass weiss entsteht).
      selbst wenn ich das umdrehe - dann geht das ganze nur „andersrum“ oder?
      eigentlich muessten doch die rgb werte beim runterdrehen der saettigung auch „gleichmäßig“ runtergedimmt werden - oder? bei sättigung = 0 müssten die rgb kanäle alle aus sein.
      vielleicht steh ich auch grad auf dem schlauch weil ichs net testen kann grad.

    • Christian Fenzl
      Christian Fenzl kommentierte
      Kommentar bearbeiten
      Dann drehst du halt auch die Helligkeit runter...?

    • doc-brown
      doc-brown kommentierte
      Kommentar bearbeiten
      wenn ich wieder daheim bin versuch ich das mal am test-ms :-)
  • ToNKeY
    Smart Home'r
    • 20.01.2016
    • 49

    #17
    Bin heute schön mit der Formel aus dem ersten Beitrag auf die Nase gefallen und habe ewig nach der Ursache gesucht.

    Setup: Hue über den gängigen PicoC-Baustein eingebunden und daran einige Hue, sowie Lightify-Leuchtmittel.

    Gestern hatte ich meines Erachtens nach die Leuchten in der Lichtsteuerung als RGB deklariert, obwohl es eigentlich RGBW mit nem veränderbaren Weißton sind. Dimmen mit der Formel hier hat sehr gut funktioniert, aber manche Farben ließen sich nicht so schön einstellen wie über die Hue-App.

    Heute in der Lichtsteuerung auf Lumitech umgestellt - Ansteuerung jetzt prinzipiell besser, aber die Farben hauten teilweise nicht mehr hin. Rot war rot und grün war grün, aber alles was mit blau zutun hatte war mal gelb, mal pink, mal grün und das bei beiden Leuchten im Vorgarten unterschiedlich. Zusätzlich veränderte das Dimmen in der Lichtsteuerung die Farbe der Lampen. Hellblau eingestellt konnte man schön beim Dimmen alle Farben erzielen und bei genau 55% sogar das eingestellte Hellblau. Am Ende dann testweise den Dimmwert der Formel hier auf 100% und siehe da - alle Farben perfekt ansteuerbar.

    Kurzum: Vorsicht, nicht für RGBW-LEDs zu verwenden, die als Lumitech angesteuert werden!



    Ist es möglich, da eine angepasste Formel zu entwickeln, die auch für solche Leuchten funktioniert oder muss ich mir was anderes überlegen? Will eigentlich nur die Helligkeit meiner Dekobeleuchtung etwas anheben, wenn die Außenbeleuchtung angeht (einfach weils geht =D) und das vollkommen unabhängig von der aktiven Szene.
    Miniserver, 2x 1-Wire-Extension (iButtons, RFID, Temperatur- und Helligkeitssensoren, Fensterkontakte), DMX-Extension, KNX (Aktoren, Eingänge, BWM), Wassermelder inkl. Grünbeck GENO-STOP, Homematic, Hue, Netatmo, 4x Loxberry (Hardware + VM), FHEM, Zehnder Q350, Grünbeck SoftliQ SC:18, CalDAV-Anbindung, WLAN-Anwesenheit (Ubiquiti), Füllstandsmessung Zisterne, halbautomatische Rasenbewässerung, Sprachsteuerung via Alexa (HA-Bridge)

    Kommentar

    • Sammy
      LoxBus Spammer
      • 23.08.2018
      • 413

      #18
      Hallo Doc-Brown,

      da bist Du auf einem guten Weg mit dem HSV-Raum (Farbton/Sättigung/Hellwert). Vorteil dabei man kann bei gleichbleibenden Farbton die Sättigung und/oder Hellwert anpassen, ohne das sich der Farbton groß ändert.

      Schönes Beispiel dafür (zum Spielen am Regler) inkl. der dafür benötigten Formeln (in Programmiersprache C):
      HSL und HSB (bzw. HSV) sind Transformationen der RGB-Werte nach einfachen Formeln. HSL und HSB sind RGB-Farbmodelle mit anderen Koordinaten.



      Schöne Grüße,
      Michael

      Kommentar

      • Sammy
        LoxBus Spammer
        • 23.08.2018
        • 413

        #19
        Theorie: Für den Weißanteil bei RGBW könnte man den RGB Wert in HSL umrechnen und den Weißanteil direkt vom errechneten L-Wert (Helligkeit) ansteuern.
        Zuletzt geändert von Sammy; 26.09.2019, 08:50.

        Kommentar

        • crasythom
          LoxBus Spammer
          • 02.10.2015
          • 299

          #20
          Hallo zusammen, ich hätte da auch mal eine Frage.
          Ich möchte Zigbee-RGB-Strahler von Inner über meinen Conbee II ansteuern (in ioBroker).

          Was habe ich geschafft:
          Ich habe einen Lox-Lichtbaustein auf RGB gestellt. In ioBroker bekomme ich so die Werte für R, G und B.
          Die habe ich per Script in diesen komischen Color.ICE-Code umgerechnet.
          Funktioniert soweit prima.

          Jetzt bietet der RGB-Farbwähler in der App ja auch diesen Dimmer-Schieber. Das komische ist aber, dass der in ioBroker immer auf 100 steht. Er dimmt also nicht.
          Es verändern sich nur die Werte für R, G und B. Ich glaube das meint ihr ja auch in dem Wiki-Beitrag. Kann man hier jetzt nicht irgendwie die Dimmerstellung rausrechnen?

          Witzig ist, dass wenn ich den Master-Dimmer vom Baustein verschiebe, kann ich den Wert prima an meine Inner-Spots weitergeben und so dimmen wie ich das eigentlich wollte.
          Dumm ist nur, dass ich hier erst aus dem Farbwähler für den Spot raus muss und dann den Master dimmen muss.

          Fällt euch da eine schönere Lösung ein?
          Für was gibt es denn den Schieber unter dem Farbwähler, wenn der nicht den entsprechenden Wert in der API versorgt?

          Kommentar

          • Christian Fenzl
            Lebende Foren Legende
            • 31.08.2015
            • 11243

            #21
            Wenn wir vom gleichen reden, verändert der Helligkeitsregler der App nur die RGB-Werte. Ein Helligkeitswert kommt bei Loxone gar nicht heraus.
            Ist ja auch richtig so - im RGB-Farbwert ist die Helligkeit ja implizit enthalten.
            Ein Bug ist aber definitiv im RGB-Regler von Loxone, weil ich beim Ändern der Helligkeit zuschauen kann, wie die Farbe driftet. Das passiert wohl, weil Loxone rundet und intern keine Kommastellen bei der Berechnung berücksichtigt.
            Angehängte Dateien
            Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

            Kommentar


            • crasythom
              crasythom kommentierte
              Kommentar bearbeiten
              Hallo Christian, ja, wir reden vom gleichen Regler. Mein Farbwähler ist oben aber rund und nicht eckig. Außerdem gibt es den Ein/Aus-Schalter nicht. Ist das der Lichtbaustein Gen2 oder Gen1?
              Zumindest in meinem umgerechneten Wert (ICE-Code) ändert sich bei mir zwar tatsächlich der RGB-Wert beim "dimmen" aber das kann man optisch an der Lampe nicht sehen.
              Nur wenn ich die Master-Helligkeit des ganzen Bausteins (Lichtsteuerung Gen2) veränder, kann ich die Strahler richtig dimmen. Dein abgebildeter Dimmer hat ja auch einen Weiß-Bereich. So könnte dann vermutlich auch über den Farbwähler gedämmt werden. Evtl. ist mir daher schon geholfen, wenn ich weiß welcher Baustein das bei dir ist.

            • Christian Fenzl
              Christian Fenzl kommentierte
              Kommentar bearbeiten
              Das ist die Lichtsteuerung V1
          • crasythom
            LoxBus Spammer
            • 02.10.2015
            • 299

            #22
            Mein Farbwähler sieht übrigens so aus:

            Kommentar

            • Christian Fenzl
              Lebende Foren Legende
              • 31.08.2015
              • 11243

              #23
              Color ICE sagt mir nichts und finde dazu auch nichts.
              Was ist das für eine Farbangabe und was enthält die?
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar

              • crasythom
                LoxBus Spammer
                • 02.10.2015
                • 299

                #24
                Ja, mir sagt das auch nichts :-) Muss natürlich CIE heißen :-)
                Ist mein erstes Farb-Lampen-Projekt. Ich hab mal eine Hardcopy von den Werten gemacht, die ich in ioBroker für die Lampen zur Verfügung habe. Der letzte Datenpunkt heißt eben Color.CIE. Hier steht auch was von XY.
                Ich habe dann gesucht, wie ich den aus einem RGB-Wert umrechnen kann und habe dann folgendes Skript gefunden:


                Code:
                function rgbtocie() {
                //Apply a gamma correction to the RGB values, which makes the color more vivid and more the like the color displayed on the screen of your device
                r = (r > 0.04045) ? Math.pow((r + 0.055) / (1.0 + 0.055), 2.4) : (r / 12.92);
                g = (g > 0.04045) ? Math.pow((g + 0.055) / (1.0 + 0.055), 2.4) : (g / 12.92);
                b = (b > 0.04045) ? Math.pow((b + 0.055) / (1.0 + 0.055), 2.4) : (b / 12.92);
                //RGB values to XYZ using the Wide RGB D65 conversion formula
                var X = r * 0.664511 + g * 0.154324 + b * 0.162028;
                var Y = r * 0.283881 + g * 0.668433 + b * 0.047685;
                var Z = r * 0.000088 + g * 0.072310 + b * 0.986039;
                //Calculate the xy values from the XYZ values
                x = (X / (X + Y + Z)).toFixed(4);
                y = (Y / (X + Y + Z)).toFixed(4);
                if (isNaN(x))
                x = 0;
                if (isNaN(y))
                y = 0;
                return [x, y];
                }
                mit dem kann ich den XY-Wert herstellen und die Farben passen.

                Kommentar

                • crasythom
                  LoxBus Spammer
                  • 02.10.2015
                  • 299

                  #25
                  Das hier sind übrigens noch die Werte, die ich von dem Lichtbaustein V2 in ioBroker zur Verfügung habe. Hier gibt es nämlich eigentlich den Dimm-Wert (Level). Den wollte ich an den Level von der Lampe weitergeben. Leider ändert der sich aber nicht. Nehme ich den Level aus MasterValue, der ja für alle Lichter des Lichtbausteins gilt, kann ich wunderbar dimmen. Aber eben nicht die Lampe alleine.
                  Evtl. versuche ich einfach mal den V1 Lichtbaustein oder lege mir einen eigenen Lichtbaustein an. Ist aber eben nicht wirklich schön.

                  Kommentar

                  • hme0354
                    MS Profi
                    • 06.07.2019
                    • 976

                    #26
                    das mit XY hab ich in Loxone direkt gelöst mit ein paar Formelbausteinen.
                    Smarthome: 1x Miniserver Gen. 2, 3x Relay Extensions, 1x Tree Extension, 1x DI-Extension, 1x Air Base Extension, 8x RGBW Tree Dimmer, 9x Touch-Tree, 1x Nano DI Tree, 10x Tree BWM
                    Technik: IDM Aero SLM 3-11 mit HGL, MS4H mit 9 Zonen, 2x Loxberry, 2x RPI für Anzeige, Doorbird, Froggit WH2600, POE+ System für Peripherie, Gedad Luftgütesensoren, Deconz (Bridge + 2x BWM + 2x RGBW + 5 Smartplug)

                    Kommentar


                    • hme0354
                      hme0354 kommentierte
                      Kommentar bearbeiten
                      Doch kann ich. Hat ein bisschen gedauert, aber geht.

                    • crasythom
                      crasythom kommentierte
                      Kommentar bearbeiten
                      Na dann wäre ich Dir natürlich dankbar, wenn du mir verraten würdest, wie du das gemacht hat. Kannst du eine Formelbausteine hier kurz beschreiben? Hardcopy und Formel aus dem Baustein wären toll.

                    • hme0354
                      hme0354 kommentierte
                      Kommentar bearbeiten
                      Heute komm ich nichtmehr dazu, aber morgen werd ichs zeign
                  • hme0354
                    MS Profi
                    • 06.07.2019
                    • 976

                    #27
                    So. Die Umwandlung von RGB in XY und Helligkeit hab ich so gelöst:
                    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: XY.PNG
Ansichten: 944
Größe: 34,5 KB
ID: 305709
                    Einstellung für die Skalierer:
                    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Skalierer.PNG
Ansichten: 937
Größe: 2,1 KB
ID: 305710

                    Formelbaustein X:

                    (I1 * 0.649926 + I2 * 0.103455 + I3 * 0.197109) / (I1 * 0.649926 + I2 * 0.103455 + I3 * 0.197109 + I1 * 0.234327 + I2 * 0.743075 + I3 * 0.022598 + I1 * 0.0000000 + I2 * 0.053077 + I3 * 1.035763)

                    Formelbaustein Y:

                    (I1 * 0.234327 + I2 * 0.743075 + I3 * 0.022598) / (I1 * 0.649926 + I2 * 0.103455 + I3 * 0.197109 + I1 * 0.234327 + I2 * 0.743075 + I3 * 0.022598 + I1 * 0.0000000 + I2 * 0.053077 + I3 * 1.035763)

                    Helligkeit läuft dann als MAX der RGB Werte.

                    Im Status XY läuft dann nur das Zusammenstellen für MQTT und dann Zigbee2MQTT
                    Smarthome: 1x Miniserver Gen. 2, 3x Relay Extensions, 1x Tree Extension, 1x DI-Extension, 1x Air Base Extension, 8x RGBW Tree Dimmer, 9x Touch-Tree, 1x Nano DI Tree, 10x Tree BWM
                    Technik: IDM Aero SLM 3-11 mit HGL, MS4H mit 9 Zonen, 2x Loxberry, 2x RPI für Anzeige, Doorbird, Froggit WH2600, POE+ System für Peripherie, Gedad Luftgütesensoren, Deconz (Bridge + 2x BWM + 2x RGBW + 5 Smartplug)

                    Kommentar

                    • crasythom
                      LoxBus Spammer
                      • 02.10.2015
                      • 299

                      #28
                      Coole Sache. Danke. Funktioniert prächtig. Mal sehen, ob ich das noch nach Loxone nachziehe. Momentan läuft das jetzt auch in ioBroker gut. Hab jetzt noch die Helligkeit ergänzt. Dann haben wir jetzt zwei Lösungsansätze. Hier noch der neue Code in JS

                      Code:
                      var r;
                      var g;
                      var b;
                      var lev;
                      function rgbtocie() {
                      //Helligkeit
                      lev = Math.max(r,g,b);
                      //Apply a gamma correction to the RGB values, which makes the color more vivid and more the like the color displayed on the screen of your device
                      r = (r > 0.04045) ? Math.pow((r + 0.055) / (1.0 + 0.055), 2.4) : (r / 12.92);
                      g = (g > 0.04045) ? Math.pow((g + 0.055) / (1.0 + 0.055), 2.4) : (g / 12.92);
                      b = (b > 0.04045) ? Math.pow((b + 0.055) / (1.0 + 0.055), 2.4) : (b / 12.92);
                      //RGB values to XYZ using the Wide RGB D65 conversion formula
                      var X = r * 0.664511 + g * 0.154324 + b * 0.162028;
                      var Y = r * 0.283881 + g * 0.668433 + b * 0.047685;
                      var Z = r * 0.000088 + g * 0.072310 + b * 0.986039;
                      //Calculate the xy values from the XYZ values
                      x = (X / (X + Y + Z)).toFixed(4);
                      y = (Y / (X + Y + Z)).toFixed(4);
                      if (isNaN(x))
                      x = 0;
                      if (isNaN(y))
                      y = 0;
                      return [x, y];
                      }

                      Kommentar

                      • geforce28
                        Smart Home'r
                        • 13.06.2022
                        • 90

                        #29
                        Moin...
                        Ich bin gerade auch dabei meine HUE Lampe an Loxone anzubinden und habe deine Formel zum Konvertieren von RGB in XY genutzt...

                        Bei Blau habe ich aber teilweise das Problem, dass dies dann im XY Wert (CIE 1931) anstatt Blau, Pink dargestellt wird...

                        Kann man das irgendwie noch hinkriegen ?

                        Kommentar


                        • docpayce
                          docpayce kommentierte
                          Kommentar bearbeiten
                          Wie steuert Du die Hue Lampen an? Über bspw. Zigbee2MQTT kannst Du auch RGB Werte direkt schicken. Die Umrechnung in XY muss nicht unbedingt stattfinden.
                      • docpayce
                        Smart Home'r
                        • 01.10.2020
                        • 83

                        #30
                        Moin moin,

                        sacht mal, irre ich mich oder muss man fast 10 Jahre später immer noch Christians Formel-Lösung bemühen, um in Loxone eine RGB Lichtquelle per Taster heller oder dunkler dimmen zu können? Ich bin weder im aktuellen Lichtbaustein noch in der RGB Lichtszene fündig geworden. Ich frage nur nach, weil ich das fast nicht glauben kann und ich gerade an mir zweifle...

                        Und mit Verlaub: So wie im Lichtbaustein die 1-Taster-Ansteuerung zu dimmen einer RGB Lichtquelle gelöst ist... ... das ist einfach nur zum schreiend weglaufen. Braucht kein A***.

                        Kommentar

                        Lädt...