Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. HUE Farbwert (HSV?) nach HEX konvertieren

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    507

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

HUE Farbwert (HSV?) nach HEX konvertieren

Geplant Angeheftet Gesperrt Verschoben Blockly
25 Beiträge 4 Kommentatoren 2.3k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ArmilarA 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 Offline
    T Offline
    tklein
    schrieb am zuletzt editiert von
    #11

    @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);
    
    ArmilarA 1 Antwort Letzte Antwort
    0
    • T tklein

      @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);
      
      ArmilarA Offline
      ArmilarA Offline
      Armilar
      Most Active Forum Testing
      schrieb am zuletzt editiert von Armilar
      #12

      @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?

      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      T ArmilarA 3 Antworten Letzte Antwort
      0
      • ArmilarA 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 Offline
        T Offline
        tklein
        schrieb am zuletzt editiert von
        #13

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

        1 Antwort Letzte Antwort
        0
        • ArmilarA 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 Offline
          T Offline
          tklein
          schrieb am zuletzt editiert von
          #14

          @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

          AsgothianA 1 Antwort Letzte Antwort
          0
          • T tklein

            @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

            AsgothianA Offline
            AsgothianA Offline
            Asgothian
            Developer
            schrieb am zuletzt editiert von
            #15

            @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.

            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

            T 1 Antwort Letzte Antwort
            0
            • AsgothianA Asgothian

              @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 Offline
              T Offline
              tklein
              schrieb am zuletzt editiert von
              #16

              @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

              HomoranH 1 Antwort Letzte Antwort
              0
              • T tklein

                @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

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #17

                @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

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                T 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @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 Offline
                  T Offline
                  tklein
                  schrieb am zuletzt editiert von
                  #18

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

                  HomoranH AsgothianA 2 Antworten Letzte Antwort
                  0
                  • T tklein

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

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #19

                    @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

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    0
                    • T tklein

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

                      AsgothianA Offline
                      AsgothianA Offline
                      Asgothian
                      Developer
                      schrieb am zuletzt editiert von
                      #20

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

                      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                      T 1 Antwort Letzte Antwort
                      0
                      • AsgothianA Asgothian

                        @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 Offline
                        T Offline
                        tklein
                        schrieb am zuletzt editiert von
                        #21

                        @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 Antwort Letzte Antwort
                        0
                        • HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #22

                          @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

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Antwort Letzte Antwort
                          0
                          • ArmilarA 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?

                            ArmilarA Offline
                            ArmilarA Offline
                            Armilar
                            Most Active Forum Testing
                            schrieb am zuletzt editiert von
                            #23

                            @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...

                            Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                            https://github.com/joBr99/nspanel-lovelace-ui/wiki

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                            T 1 Antwort Letzte Antwort
                            0
                            • ArmilarA Armilar

                              @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 Offline
                              T Offline
                              tklein
                              schrieb am zuletzt editiert von
                              #24

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

                              ArmilarA 1 Antwort Letzte Antwort
                              0
                              • T tklein

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

                                ArmilarA Offline
                                ArmilarA Offline
                                Armilar
                                Most Active Forum Testing
                                schrieb am zuletzt editiert von
                                #25

                                @tklein

                                Der Umweg geht von HSV nach RGB nach HEX

                                Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                1 Antwort Letzte Antwort
                                0
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                847

                                Online

                                32.5k

                                Benutzer

                                81.8k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Home
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe