Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. HUE Farbwert (HSV?) nach HEX konvertieren

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    HUE Farbwert (HSV?) nach HEX konvertieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • Armilar
      Armilar Most Active Forum Testing @tklein last edited by Armilar

      @tklein

      Sehe jetzt erst, dass deine Eingangsparameter lustig aussehen 😉

      Teile enhancehue durch 360 und saturation durch 100

      HUE kann maximal 360° haben - würde demnach mit 32896/360 = 91,38° in die Funktion gehen

      T 1 Reply Last reply Reply Quote 0
      • T
        tklein @Armilar last edited by

        @armilar mhhmm

        das hier

        {"enhancehue":24415,"saturation":254,"transtime":5}
        

        ergibt leider

        [1275,-1963.4999999999998,258.47083333333]
        

        da ist noch der wurm drin:

           hue = hue/360;
            saturation = saturation/100;
        
            let chroma = value * saturation;
        
            let x = chroma * (1 - Math.abs((hue % 2) - 1));
        
            let rgb = hue <= 1 ? [chroma, x, 0] :
        
                hue <= 2 ? [x, chroma, 0] :
        
                    hue <= 3 ? [0, chroma, x] :
        
                        hue <= 4 ? [0, x, chroma] :
        
                            hue <= 5 ? [x, 0, chroma] :
        
                                [chroma, 0, x];
        
         
        
            return rgb.map(v => (v + value - chroma) * 255);
        
        Armilar 1 Reply Last reply Reply Quote 0
        • Armilar
          Armilar Most Active Forum Testing @tklein last edited by Armilar

          @tklein

          function hsv2rgb(hue, saturation, value) {
              hue /= 60;
              let chroma = value * saturation;
              let x = chroma * (1 - Math.abs((hue % 2) - 1));
              let rgb = hue <= 1 ? [chroma, x, 0] :
                  hue <= 2 ? [x, chroma, 0] :
                      hue <= 3 ? [0, chroma, x] :
                          hue <= 4 ? [0, x, chroma] :
                              hue <= 5 ? [x, 0, chroma] :
                                  [chroma, 0, x];
           
              return rgb.map(v => (v + value - chroma) * 255);
          }
          
          
          function ConvertRGBtoHex(red, green, blue) {
              return '#' + ColorToHex(red) + ColorToHex(green) + ColorToHex(blue);
          }
          
          //Helper
          function ColorToHex(color) {
              let hexadecimal = color.toString(16);
              return hexadecimal.length == 1 ? '0' + hexadecimal : hexadecimal;
          }
          
          let enhancehue = 32896;
          let saturation = 254;
          let transtime =  5;
          log(hsv2rgb(enhancehue/360, saturation/254 , 1))
          let rgb = hsv2rgb(enhancehue/360, saturation/254, 1)
          log(String(ConvertRGBtoHex(Math.round(rgb[0]*1)/1, Math.round(rgb[1]*1)/1, Math.round(rgb[2]*1)/1)));
          

          So kommen bei mir sinnvolle Werte raus:

          script.js.common.DEV.Beispiele.HSV2HEX: [ 121.64444444444442, 255, 0 ]
          script.js.common.DEV.Beispiele.HSV2HEX: #7aff00
          

          a1d572e2-a57c-4903-a06b-ae9c77408fba-image.png

          Würde bedeuten
          hsv2rgb(enhancehue/360, saturation/254 , 1)

          value immer auf 1

          P.S.: Was ist denn das für ein Adapter, der so merkwürdige Werte liefert?

          T Armilar 3 Replies Last reply Reply Quote 0
          • T
            tklein @Armilar last edited by

            @armilar danke schaue ich mir an und versuche es zu verstehen

            1 Reply Last reply Reply Quote 0
            • T
              tklein @Armilar last edited by

              @armilar said in HUE Farbwert (HSV?) nach HEX konvertieren:

              function ConvertRGBtoHex(red, green, blue) {

              das ist der zigbee adapter.

              Ich komme leider immer noch nicht weiter 😞

              Ausgabe:

              fd6dd193-9365-4b2e-86e2-8ff2f55cfb46-grafik.png

              Funktion:
              30796049-62c8-4055-83e9-24eb5a4885ca-grafik.png

              Asgothian 1 Reply Last reply Reply Quote 0
              • Asgothian
                Asgothian Developer @tklein last edited by

                @tklein sagte in HUE Farbwert (HSV?) nach HEX konvertieren:

                Hallo,

                wie kann ich aus den Werten

                {
                  "type": "commandEnhancedMoveToHueAndSaturation",
                  "data": {
                    "enhancehue": 32896,
                    "saturation": 254,
                    "transtime": 5
                  },
                

                eine HEX-Wert konvertieren? Ist das angegebene Format im JSON HSV?

                Falls ja, ist die Zuordnung so korrekt?

                • H = enhancehue

                • S = saturation

                • V = transtime

                Nebenbei, die Segmente des “HSV” Modells heißen Hue, Saturation, Value.

                Die transtime ist bei dem verwendeten Befehl eine Zeit in der der Wechsel stattfinden soll.

                T 1 Reply Last reply Reply Quote 0
                • T
                  tklein @Asgothian last edited by

                  @asgothian

                  hi,

                  ob das ein hsv wert ist, kann ich leider nicht sagen. Ich bekomme nur das json aus dem zigbee adapter für die fernbedienung. Eigentlich ist es nicht das korrekte modell. Meine wird derzeit nicht unterstützt. Die Befehle scheinen
                  jedoch idenitsch zu sein.

                  1803ba11-bd55-42ed-a1f9-6a9461c4aa50-grafik.png

                  19acc3d4-f008-4352-a002-a1b5173c4fba-grafik.png

                  Ist V denn nun mit Value = Transtime?

                  LG
                  Thomas

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @tklein last edited by

                    @tklein sagte in HUE Farbwert (HSV?) nach HEX konvertieren:

                    Transtime

                    ist die Zeit für den Übergang zur neuen Einstellung.
                    hat nichts mit dem Farbwert zu tun

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      tklein @Homoran last edited by

                      @homoran dann fehlt mir also der wert vom "v", um einen rgb bzw hex wert berechnen zu können so wie es aussieht

                      Homoran Asgothian 2 Replies Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @tklein last edited by

                        @tklein sagte in HUE Farbwert (HSV?) nach HEX konvertieren:

                        @homoran dann fehlt mir also der wert vom "v", um einen rgb bzw hex wert berechnen zu können so wie es aussieht

                        nein! den hast du anscheinend
                        https://de.m.wikipedia.org/wiki/HSV-Farbraum

                        1 Reply Last reply Reply Quote 0
                        • Asgothian
                          Asgothian Developer @tklein last edited by

                          @tklein Normalerweise wird der “brightness” Wert als “V” im HSV Modell genutzt, wobei du schauen musst ob der 0-1 oder 0-100 ist.

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            tklein @Asgothian last edited by

                            @asgothian sorry, aber da bin ich momentan bildungsresistent. Wo finde ich denn den Wert, oder kann ich den immer mit 1 annehmen, so wie @Armilar geschrieben hatte?

                            1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators last edited by

                              @tklein sagte in HUE Farbwert (HSV?) nach HEX konvertieren:

                              finde ich denn den Wert

                              @asgothian sagte in HUE Farbwert (HSV?) nach HEX konvertieren:

                              brightness

                              ist doch auch bei dir

                              @tklein sagte in HUE Farbwert (HSV?) nach HEX konvertieren:

                              sein.

                              im Screenshot

                              1 Reply Last reply Reply Quote 0
                              • Armilar
                                Armilar Most Active Forum Testing @Armilar last edited by

                                @armilar sagte in HUE Farbwert (HSV?) nach HEX konvertieren:

                                hsv2rgb(enhancehue/360, saturation/254 , 1)

                                wie schon beschrieben müsste

                                • H = enhancedhue durch 360 geteilt werden
                                • S = saturation durch 254 geteilt werden oder direkt mit 1 in die Funktion (= sattere Farben)
                                • V = 1 (immer)

                                ein akzeptables Ergebnis liefern...

                                T 1 Reply Last reply Reply Quote 0
                                • T
                                  tklein @Armilar last edited by

                                  @armilar dann brauche ich deine komplexere hsv2rgb funktion gar nicht?

                                  Armilar 1 Reply Last reply Reply Quote 0
                                  • Armilar
                                    Armilar Most Active Forum Testing @tklein last edited by

                                    @tklein

                                    Der Umweg geht von HSV nach RGB nach HEX

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    921
                                    Online

                                    31.9k
                                    Users

                                    80.1k
                                    Topics

                                    1.3m
                                    Posts

                                    4
                                    25
                                    983
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo