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. tint remote (Müller Licht) - xy in RGB oder HEX

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

tint remote (Müller Licht) - xy in RGB oder HEX

Geplant Angeheftet Gesperrt Verschoben Blockly
javascriptblockly
2 Beiträge 1 Kommentatoren 224 Aufrufe 1 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.
  • L Offline
    L Offline
    LE-R.Kelly
    schrieb am zuletzt editiert von
    #1

    Hallo,
    ich habe eine Tint dim remote control in mein System eingebunden und verzweifle gerade an der Farbausgabe. Die Fernbedienung gibt die Farbe als "colorx" und "colory" ausgegeben. Die beiden Werte bewegen sich jeweils im 10.000er Bereich.
    Ich versuche das nun irgendwie in HEX umzurechnen, komme da aber nicht weiter. Ich habe unter [[https://stackoverflow.com/questions/22894498/philips-hue-convert-xy-from-api-to-hex-or-rgb](Link Adresse)](Link Adresse) folgenden Code gefunden und als "JS-Funktion mit Ergebnis" versucht einzubinden:

    function xyBriToRgb(x, y, bri)
    {
        z = 1.0 - x - y;
    
        Y = bri / 255.0; // Brightness of lamp
        X = (Y / y) * x;
        Z = (Y / y) * z;
        r = X * 1.612 - Y * 0.203 - Z * 0.302;
        g = -X * 0.509 + Y * 1.412 + Z * 0.066;
        b = X * 0.026 - Y * 0.072 + Z * 0.962;
        r = r <= 0.0031308 ? 12.92 * r : (1.0 + 0.055) * Math.pow(r, (1.0 / 2.4)) - 0.055;
        g = g <= 0.0031308 ? 12.92 * g : (1.0 + 0.055) * Math.pow(g, (1.0 / 2.4)) - 0.055;
        b = b <= 0.0031308 ? 12.92 * b : (1.0 + 0.055) * Math.pow(b, (1.0 / 2.4)) - 0.055;
        maxValue = Math.max(r,g,b);
        r /= maxValue;
        g /= maxValue;
        b /= maxValue;
        r = r * 255;   if (r < 0) { r = 255 };
        g = g * 255;   if (g < 0) { g = 255 };
        b = b * 255;   if (b < 0) { b = 255 };
    
        r = Math.round(r).toString(16);
        g = Math.round(g).toString(16);
        b = Math.round(b).toString(16);
    
        if (r.length < 2)
            r="0"+r;        
        if (g.length < 2)
            g="0"+g;        
        if (b.length < 2)
            b="0"+r;        
        rgb = "#"+r+g+b;
    
        return rgb;             
    }
    

    bc6c6fcf-7485-4296-8d5d-70907592f4a5-image.png

    Im Blockly rechne ich den colorx und colory Wert noch durch 100.000, da das Script für HUE ist und von dort Werte mit 0,.. kommen.

    f3e29fa0-f0c8-43a1-b0d0-9d913908faaa-image.png

    Ich erhalte aber nur ein undefined, komme aber auch ehrlich gesagt mit der Debug-Funktion nicht klar.

    Daher die Frage, ob mich jemand auf die richtigen Weg bzgl. des geschilderten Fehlers briungen kann oder eine andere Idee hat, wie ich XY in HEX konvertieren kann.

    Danke

    Viele Grüße
    Ronny

    L 1 Antwort Letzte Antwort
    0
    • L LE-R.Kelly

      Hallo,
      ich habe eine Tint dim remote control in mein System eingebunden und verzweifle gerade an der Farbausgabe. Die Fernbedienung gibt die Farbe als "colorx" und "colory" ausgegeben. Die beiden Werte bewegen sich jeweils im 10.000er Bereich.
      Ich versuche das nun irgendwie in HEX umzurechnen, komme da aber nicht weiter. Ich habe unter [[https://stackoverflow.com/questions/22894498/philips-hue-convert-xy-from-api-to-hex-or-rgb](Link Adresse)](Link Adresse) folgenden Code gefunden und als "JS-Funktion mit Ergebnis" versucht einzubinden:

      function xyBriToRgb(x, y, bri)
      {
          z = 1.0 - x - y;
      
          Y = bri / 255.0; // Brightness of lamp
          X = (Y / y) * x;
          Z = (Y / y) * z;
          r = X * 1.612 - Y * 0.203 - Z * 0.302;
          g = -X * 0.509 + Y * 1.412 + Z * 0.066;
          b = X * 0.026 - Y * 0.072 + Z * 0.962;
          r = r <= 0.0031308 ? 12.92 * r : (1.0 + 0.055) * Math.pow(r, (1.0 / 2.4)) - 0.055;
          g = g <= 0.0031308 ? 12.92 * g : (1.0 + 0.055) * Math.pow(g, (1.0 / 2.4)) - 0.055;
          b = b <= 0.0031308 ? 12.92 * b : (1.0 + 0.055) * Math.pow(b, (1.0 / 2.4)) - 0.055;
          maxValue = Math.max(r,g,b);
          r /= maxValue;
          g /= maxValue;
          b /= maxValue;
          r = r * 255;   if (r < 0) { r = 255 };
          g = g * 255;   if (g < 0) { g = 255 };
          b = b * 255;   if (b < 0) { b = 255 };
      
          r = Math.round(r).toString(16);
          g = Math.round(g).toString(16);
          b = Math.round(b).toString(16);
      
          if (r.length < 2)
              r="0"+r;        
          if (g.length < 2)
              g="0"+g;        
          if (b.length < 2)
              b="0"+r;        
          rgb = "#"+r+g+b;
      
          return rgb;             
      }
      

      bc6c6fcf-7485-4296-8d5d-70907592f4a5-image.png

      Im Blockly rechne ich den colorx und colory Wert noch durch 100.000, da das Script für HUE ist und von dort Werte mit 0,.. kommen.

      f3e29fa0-f0c8-43a1-b0d0-9d913908faaa-image.png

      Ich erhalte aber nur ein undefined, komme aber auch ehrlich gesagt mit der Debug-Funktion nicht klar.

      Daher die Frage, ob mich jemand auf die richtigen Weg bzgl. des geschilderten Fehlers briungen kann oder eine andere Idee hat, wie ich XY in HEX konvertieren kann.

      Danke

      Viele Grüße
      Ronny

      L Offline
      L Offline
      LE-R.Kelly
      schrieb am zuletzt editiert von LE-R.Kelly
      #2

      @le-r-kelly

      Hab es selbst hingekriegt. Ich hatte mich nie mit den Funktionen beschäftigt. Jetzt weiß ich, dass die Syntax falsch war. Falls es jemand benötigt, anbei das funktionierende Skript:

      let z = 1.0 - x - y;
      let Y = bri / 255.0; // Brightness of lamp
      let X = (Y / y) * x;
      let Z = (Y / y) * z;
      let r = X * 1.612 - Y * 0.203 - Z * 0.302;
      let g = -X * 0.509 + Y * 1.412 + Z * 0.066;
      let b = X * 0.026 - Y * 0.072 + Z * 0.962;
          r = r <= 0.0031308 ? 12.92 * r : (1.0 + 0.055) * Math.pow(r, (1.0 / 2.4)) - 0.055;
          g = g <= 0.0031308 ? 12.92 * g : (1.0 + 0.055) * Math.pow(g, (1.0 / 2.4)) - 0.055;
          b = b <= 0.0031308 ? 12.92 * b : (1.0 + 0.055) * Math.pow(b, (1.0 / 2.4)) - 0.055;
          maxValue = Math.max(r,g,b);
          r /= maxValue;
          g /= maxValue;
          b /= maxValue;
          r = r * 255;   if (r < 0) { r = 255 };
          g = g * 255;   if (g < 0) { g = 255 };
          b = b * 255;   if (b < 0) { b = 255 };
          r = Math.round(r).toString(16);
          g = Math.round(g).toString(16);
          b = Math.round(b).toString(16);
          if (r.length < 2)
              r="0"+r;        
          if (g.length < 2)
              g="0"+g;        
          if (b.length < 2)
              b="0"+r;        
          rgb = "#"+r+g+b;
      return rgb       
      

      24788b99-5c14-421c-8cdf-690b0c0c553f-image.png

      Grüße
      Ronny

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


      Support us

      ioBroker
      Community Adapters
      Donate

      748

      Online

      32.5k

      Benutzer

      81.7k

      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