Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
tradfri
65 Beiträge 8 Kommentatoren 11.7k Aufrufe 8 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.
  • AsgothianA Asgothian

    @el_malto keine Farbänderung an der Lampe, oder keine Änderung der hue/sat Werte ?
    Wenn due hue/sat Werte geaendert werden, wird dann im log noch etwas geschrieben (im gesamt log, nicht im js Adapter)

    A.

    E Offline
    E Offline
    el_malto
    schrieb am zuletzt editiert von
    #26

    @Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

    Wenn due hue/sat Werte geaendert werden, wird dann im log noch etwas geschrieben (im gesamt log, nicht im js Adapter)

    A.

    Das ist der ganze Log vom ioBroker

    @el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

    Neuer Log:

    javascript.0	2019-09-23 11:35:37.187	info	script.js.common.DL_SZ_farbumwandlung: convert hsl to rgb [255,255,255]("FFFFFF")
    javascript.0	2019-09-23 11:35:15.656	info	script.js.common.DL_SZ_farbumwandlung: registered 2 subscriptions and 0 schedules
    javascript.0	2019-09-23 11:35:15.656	info	Start javascript script.js.common.DL_SZ_farbumwandlung
    javascript.0	2019-09-23 11:35:15.620	info	Stop script script.js.common.DL_SZ_farbumwandlung
    
    AsgothianA 1 Antwort Letzte Antwort
    0
    • E el_malto

      @Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

      Wenn due hue/sat Werte geaendert werden, wird dann im log noch etwas geschrieben (im gesamt log, nicht im js Adapter)

      A.

      Das ist der ganze Log vom ioBroker

      @el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

      Neuer Log:

      javascript.0	2019-09-23 11:35:37.187	info	script.js.common.DL_SZ_farbumwandlung: convert hsl to rgb [255,255,255]("FFFFFF")
      javascript.0	2019-09-23 11:35:15.656	info	script.js.common.DL_SZ_farbumwandlung: registered 2 subscriptions and 0 schedules
      javascript.0	2019-09-23 11:35:15.656	info	Start javascript script.js.common.DL_SZ_farbumwandlung
      javascript.0	2019-09-23 11:35:15.620	info	Stop script script.js.common.DL_SZ_farbumwandlung
      
      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #27

      @el_malto
      Nimm mal bitte das setState raus, und auch die Verbindung zu Yahka. Lass uns erst einmal die Umrechnung testen Dazu hab ich das Script etwas erweitert:.

      var cc = require('color-convert');
      var valchanged = null;
      
      function clamp(a, b, c)
      {
        return Math.max(b, Math.min(c, Math.floor(a)));
      }
      
      
      function updateLightColor()
      {
          let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue').val;
          let s = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val;
          let l = getState('zigbee.0.14b457fffe43566d.brightness').val;
       
         h = clamp(h, 0, 360)
         s = clamp(s, 0, 100)
         l = clamp(l, 0, 100)
         log("convert hsl to hex - HSL:" + h + ","+ s+ "," + l);
         let rgb_numeric =  cc.hsl.rgb(h, s, l);
         log("convert hsl to hex - RGB:" + JSON.stringify(rgb_numeric);
         let rgb_text = cc.rgb.hex(rgb_numeric);
         log("convert hsl to hex - HEX:" + JSON.stringify(rgb_text) );
      //    setState('zigbee.0.14b457fffe43566d.color', rgb_text);
      }
      
      on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
      on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
      
      

      Wenn du dieses Script nutzt dann wird sich die Farbe der Lampe nicht anpassen, allerdings solltest du Log-Einträge von der Umrechnung bekommen.

      als 2. möchte ich dich bitten die folgenden 4 Farben mal von hand in den color Datenpunkt zu schreiben (incl. gross/kleinschreibung):

      FF0000
      00ff00
      0000Ff
      FFFFFF

      Dabei sollte die Lampe ihre Farbe aendern (rot beim ersten, grün beim zweiten, blau beim dritten, weiss beim vierten)

      A.

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

      E 1 Antwort Letzte Antwort
      1
      • AsgothianA Asgothian

        @el_malto
        Nimm mal bitte das setState raus, und auch die Verbindung zu Yahka. Lass uns erst einmal die Umrechnung testen Dazu hab ich das Script etwas erweitert:.

        var cc = require('color-convert');
        var valchanged = null;
        
        function clamp(a, b, c)
        {
          return Math.max(b, Math.min(c, Math.floor(a)));
        }
        
        
        function updateLightColor()
        {
            let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue').val;
            let s = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val;
            let l = getState('zigbee.0.14b457fffe43566d.brightness').val;
         
           h = clamp(h, 0, 360)
           s = clamp(s, 0, 100)
           l = clamp(l, 0, 100)
           log("convert hsl to hex - HSL:" + h + ","+ s+ "," + l);
           let rgb_numeric =  cc.hsl.rgb(h, s, l);
           log("convert hsl to hex - RGB:" + JSON.stringify(rgb_numeric);
           let rgb_text = cc.rgb.hex(rgb_numeric);
           log("convert hsl to hex - HEX:" + JSON.stringify(rgb_text) );
        //    setState('zigbee.0.14b457fffe43566d.color', rgb_text);
        }
        
        on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
        on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
        
        

        Wenn du dieses Script nutzt dann wird sich die Farbe der Lampe nicht anpassen, allerdings solltest du Log-Einträge von der Umrechnung bekommen.

        als 2. möchte ich dich bitten die folgenden 4 Farben mal von hand in den color Datenpunkt zu schreiben (incl. gross/kleinschreibung):

        FF0000
        00ff00
        0000Ff
        FFFFFF

        Dabei sollte die Lampe ihre Farbe aendern (rot beim ersten, grün beim zweiten, blau beim dritten, weiss beim vierten)

        A.

        E Offline
        E Offline
        el_malto
        schrieb am zuletzt editiert von
        #28

        @Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

        @el_malto
        Nimm mal bitte das setState raus, und auch die Verbindung zu Yahka. Lass uns erst einmal die Umrechnung testen Dazu hab ich das Script etwas erweitert:.

        var cc = require('color-convert');
        var valchanged = null;
        
        function clamp(a, b, c)
        {
          return Math.max(b, Math.min(c, Math.floor(a)));
        }
        
        
        function updateLightColor()
        {
            let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue').val;
            let s = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val;
            let l = getState('zigbee.0.14b457fffe43566d.brightness').val;
         
           h = clamp(h, 0, 360)
           s = clamp(s, 0, 100)
           l = clamp(l, 0, 100)
           log("convert hsl to hex - HSL:" + h + ","+ s+ "," + l);
           let rgb_numeric =  cc.hsl.rgb(h, s, l);
           log("convert hsl to hex - RGB:" + JSON.stringify(rgb_numeric);
           let rgb_text = cc.rgb.hex(rgb_numeric);
           log("convert hsl to hex - HEX:" + JSON.stringify(rgb_text) );
        //    setState('zigbee.0.14b457fffe43566d.color', rgb_text);
        }
        
        on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
        on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
        
        

        Wenn du dieses Script nutzt dann wird sich die Farbe der Lampe nicht anpassen, allerdings solltest du Log-Einträge von der Umrechnung bekommen.

        Wie meinst du das mit "die Verbindung zu Yahka raus? Dann kann ich die hue/sat Datenpunkte ja nicht mit der Homekit App wechseln und somit greift das Skript doch auch nicht. Oder soll ich die per Hand mit Werten beschreiben? Wenn ja welche Werte soll ich testen?

        als 2. möchte ich dich bitten die folgenden 4 Farben mal von hand in den color Datenpunkt zu schreiben (incl. gross/kleinschreibung):

        FF0000
        00ff00
        0000Ff
        FFFFFF

        Dabei sollte die Lampe ihre Farbe aendern (rot beim ersten, grün beim zweiten, blau beim dritten, weiss beim vierten)

        Das läuft soweit. Da scheint die Ikea Lampe ganz flexible zu sein. Ich glaube Alexa schreibt da immer alles groß, der color picker schreibt alle klein mit # davor. Das schluckt die Lampe immer alles Problemlos.

        AsgothianA 1 Antwort Letzte Antwort
        0
        • E el_malto

          @Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

          @el_malto
          Nimm mal bitte das setState raus, und auch die Verbindung zu Yahka. Lass uns erst einmal die Umrechnung testen Dazu hab ich das Script etwas erweitert:.

          var cc = require('color-convert');
          var valchanged = null;
          
          function clamp(a, b, c)
          {
            return Math.max(b, Math.min(c, Math.floor(a)));
          }
          
          
          function updateLightColor()
          {
              let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue').val;
              let s = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val;
              let l = getState('zigbee.0.14b457fffe43566d.brightness').val;
           
             h = clamp(h, 0, 360)
             s = clamp(s, 0, 100)
             l = clamp(l, 0, 100)
             log("convert hsl to hex - HSL:" + h + ","+ s+ "," + l);
             let rgb_numeric =  cc.hsl.rgb(h, s, l);
             log("convert hsl to hex - RGB:" + JSON.stringify(rgb_numeric);
             let rgb_text = cc.rgb.hex(rgb_numeric);
             log("convert hsl to hex - HEX:" + JSON.stringify(rgb_text) );
          //    setState('zigbee.0.14b457fffe43566d.color', rgb_text);
          }
          
          on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
          on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
          
          

          Wenn du dieses Script nutzt dann wird sich die Farbe der Lampe nicht anpassen, allerdings solltest du Log-Einträge von der Umrechnung bekommen.

          Wie meinst du das mit "die Verbindung zu Yahka raus? Dann kann ich die hue/sat Datenpunkte ja nicht mit der Homekit App wechseln und somit greift das Skript doch auch nicht. Oder soll ich die per Hand mit Werten beschreiben? Wenn ja welche Werte soll ich testen?

          als 2. möchte ich dich bitten die folgenden 4 Farben mal von hand in den color Datenpunkt zu schreiben (incl. gross/kleinschreibung):

          FF0000
          00ff00
          0000Ff
          FFFFFF

          Dabei sollte die Lampe ihre Farbe aendern (rot beim ersten, grün beim zweiten, blau beim dritten, weiss beim vierten)

          Das läuft soweit. Da scheint die Ikea Lampe ganz flexible zu sein. Ich glaube Alexa schreibt da immer alles groß, der color picker schreibt alle klein mit # davor. Das schluckt die Lampe immer alles Problemlos.

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

          @el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

          Wie meinst du das mit "die Verbindung zu Yahka raus? Dann kann ich die hue/sat Datenpunkte ja nicht mit der Homekit App wechseln und somit greift das Skript doch auch nicht. Oder soll ich die per Hand mit Werten beschreiben? Wenn ja welche Werte soll ich testen?

          Ja, ich möchte dich bitten von hand zu testen, und verschiedene Werte einzutragen. Welche sind dabei egal, so lange du die 3 Script Ausgaben jeweils mit angibst.

          A.

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

          E 1 Antwort Letzte Antwort
          1
          • AsgothianA Asgothian

            @el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

            Wie meinst du das mit "die Verbindung zu Yahka raus? Dann kann ich die hue/sat Datenpunkte ja nicht mit der Homekit App wechseln und somit greift das Skript doch auch nicht. Oder soll ich die per Hand mit Werten beschreiben? Wenn ja welche Werte soll ich testen?

            Ja, ich möchte dich bitten von hand zu testen, und verschiedene Werte einzutragen. Welche sind dabei egal, so lange du die 3 Script Ausgaben jeweils mit angibst.

            A.

            E Offline
            E Offline
            el_malto
            schrieb am zuletzt editiert von
            #30

            @Asgothian
            Start des Skriptes:

            javascript.0	2019-09-23 13:45:46.551	error	at TCP.onread (net.js:601:20)
            javascript.0	2019-09-23 13:45:46.550	error	at Socket.Readable.push (_stream_readable.js:208:10)
            javascript.0	2019-09-23 13:45:46.550	error	at readableAddChunk (_stream_readable.js:250:11)
            javascript.0	2019-09-23 13:45:46.550	error	at addChunk (_stream_readable.js:263:12)
            javascript.0	2019-09-23 13:45:46.549	error	at Socket.emit (events.js:211:7)
            javascript.0	2019-09-23 13:45:46.549	error	at emitOne (events.js:116:13)
            javascript.0	2019-09-23 13:45:46.549	error	at Socket.<anonymous> (/opt/iobroker/node_modules/redis/index.js:274:27)
            javascript.0	2019-09-23 13:45:46.548	error	at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12)
            javascript.0	2019-09-23 13:45:46.548	error	at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
            javascript.0	2019-09-23 13:45:46.548	error	at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:824:9)
            javascript.0	2019-09-23 13:45:46.547	error	at normal_reply (/opt/iobroker/node_modules/redis/index.js:726:21)
            javascript.0	2019-09-23 13:45:46.547	error	at Command.callback (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:238:17)
            javascript.0	2019-09-23 13:45:46.547	error	at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:745:17)
            javascript.0	2019-09-23 13:45:46.546	error	at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1123:17)
            javascript.0	2019-09-23 13:45:46.546	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1070:37)
            javascript.0	2019-09-23 13:45:46.546	error	at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:878:28)
            javascript.0	2019-09-23 13:45:46.545	error	at Object.createScript (vm.js:80:10)
            javascript.0	2019-09-23 13:45:46.545	error	SyntaxError: missing ) after argument list
            javascript.0	2019-09-23 13:45:46.545	error	^
            javascript.0	2019-09-23 13:45:46.544	error	log("convert hsl to hex - RGB:" + JSON.stringify(rgb_numeric);
            javascript.0	2019-09-23 13:45:46.544	error	at script.js.common.Test_rgb:21
            javascript.0	2019-09-23 13:45:46.544	error	script.js.common.Test_rgb compile failed:
            javascript.0	2019-09-23 13:45:46.537	info	Start javascript script.js.common.Test_rgb
            

            Da hattest du in Zeile 21 ein ) vergessen.

            Habe ich verbessert. Log nach starten des berichtigten Skript:

            javascript.0	2019-09-23 13:49:48.404	info	script.js.common.Test_rgb: registered 2 subscriptions and 0 schedules
            javascript.0	2019-09-23 13:49:48.374	info	Start javascript script.js.common.Test_rgb
            javascript.0	2019-09-23 13:49:48.352	info	Stop script script.js.common.Test_rgb
            

            hue auf 300 gesetzt:

            javascript.0	2019-09-23 13:52:04.323	info	script.js.common.Test_rgb: convert hsl to hex - HEX:"FFFFFF"
            javascript.0	2019-09-23 13:52:04.322	info	script.js.common.Test_rgb: convert hsl to hex - RGB:[255,255,255]
            javascript.0	2019-09-23 13:52:04.322	info	script.js.common.Test_rgb: convert hsl to hex - HSL:300,100,100
            

            sat auf 150 gesetzt:
            Keine Änderung im Log.

            hue auf 10 gesetzt:
            Keine Änderung im Log.

            Skript noch mal aus und an gemacht (weil ich vermutet habe, das wieder nur beim ersten ändern von hue/sat das Skript arbeitet):

            javascript.0	2019-09-23 13:57:28.676	info	script.js.common.Test_rgb: registered 2 subscriptions and 0 schedules
            javascript.0	2019-09-23 13:57:28.675	info	Start javascript script.js.common.Test_rgb
            javascript.0	2019-09-23 13:57:21.341	info	Stop script script.js.common.Test_rgb
            

            sat auf 250 gesetzt:

            javascript.0	2019-09-23 13:57:53.116	info	script.js.common.Test_rgb: convert hsl to hex - HEX:"FFFFFF"
            javascript.0	2019-09-23 13:57:53.116	info	script.js.common.Test_rgb: convert hsl to hex - RGB:[255,255,255]
            javascript.0	2019-09-23 13:57:53.115	info	script.js.common.Test_rgb: convert hsl to hex - HSL:10,100,100
            

            hue auf 100 gesetzt:
            Keine Veränderung im Log.

            Hier tritt wieder das gleiche Phänomen auf. Das Skript arbeitet nach start nur ein mal bei einer veränderung von hue/sat. Wenn man dann noch mal was ändern will, merkt das Skript das nicht. Da ist also irgendwo noch ein fehler drin.

            1 Antwort Letzte Antwort
            0
            • E Offline
              E Offline
              el_malto
              schrieb am zuletzt editiert von
              #31

              @Asgothian
              Habe im Forum noch ein anderes Skript von @Sinalco gefunden.
              https://forum.iobroker.net/topic/16282/yahka-hue-color-nach-hex-convertieren/61
              Da sind wohl die funktionen von "color-convert" mit im Skript drin (soweit ich das beurteilen kann). Das habe ich mal ausprobiert und läuft soweit. Das einzige was nicht so gut war, ist das wenn ich nur Dimmen wollte, die Farbe sich mit geändert hat. Das lag aber daran, weil in den hue/sat Datenpunkt ja die Werte von der letzten Farbe stehen. Habe dann in Zeile 28 den brightness Datenpunkt raus genommen, da die umrechnung ja nur gemacht werden soll, wenn in den hue/sat Datenpunkt eine Änderung gemacht wird, nicht jedoch im brightness.

              Hab das Skript angepasst und das läuft so super bei mir.

              ////////////////Variablen/////////////////
              var h, s, v, r, g, b
              
              ////////////////Funktionen////////////////
              //HSVtoRGB
              function HSVtoRGB() {
                  var r1, g1, b1, i, f, p, q, t;
              
                  i = Math.floor(h * 6);
                  f = h * 6 - i;
                  p = v * (1 - s);
                  q = v * (1 - f * s);
                  t = v * (1 - (1 - f) * s);
              
                  switch (i % 6) {
                      case 0: r1 = v, g1 = t, b1 = p; break;
                      case 1: r1 = q, g1 = v, b1 = p; break;
                      case 2: r1 = p, g1 = v, b1 = t; break;
                      case 3: r1 = p, g1 = q, b1 = v; break;
                      case 4: r1 = t, g1 = p, b1 = v; break;
                      case 5: r1 = v, g1 = p, b1 = q; break;
                  }
                  r=Math.round(255 * r1);
                  g=Math.round(255 * g1);
                  b=Math.round(255 * b1);    
              }
              
              //In HEX konvertieren
              function toHex(number) {
                  if (number < 0) number = 0xFFFFFFFF + number + 1;
                  var n = number.toString(16).toUpperCase();
                  if (n.length == 1) {
                      n = '0' + n;
                  }
                  return n;
              }
              
              ///////////////////Variablenzuweisung//////////////////
              // Bei Farbänderung oder Helligkeitsänderung
              
              on(["javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue","javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat"] , function (dp) {
              h = getState("javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue").val / 360;
              s = getState("javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat").val / 255;
              v = getState("zigbee.0.14b457fffe43566d.brightness").val / 100;
              
              HSVtoRGB();
              setState('zigbee.0.14b457fffe43566d.color', '#' + toHex(r) + toHex(g) + toHex(b));
              });
              
              

              Danke dir auf jeden fall für deine Gedult und Zeit die du dir genommen hast 🙂

              Was ich an der ganzen Sache aber bisher noch nicht verstanden hab, in deinem Skript rechnen wir HSL Werte in RGB um und ich den anderen Skript HSV in RGB 😵

              1 Antwort Letzte Antwort
              0
              • AsgothianA Asgothian

                @el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

                @Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

                @el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

                Issue

                Das Problem mit der Farbtemperatur lässt sich nicht so ohne weiteres lösen. Lt. der aktuellen Version des Zigbee-Shepherds ist die Einstellung der Farbtemperatur unterstützt, aber die Fehlermeldung deutet darauf hin das das nicht so ohne weiteres geht. Um da etwas zu tun bräuchte ich eine Lampe.

                Hmm, der User im Foum hat ja geschriben, dass es mit einer älteren Version ml funktioniert hat.

                PS: Mit einer alten Version hat es schon mal funktioniert, allerdings hat da die RGB Farbe nicht funktioniert.
                

                Das Problem ist das nicht mehr heraus zu bekommen ist mit welcher Version des Adapters bzw. des Zigbee-Shepherd das mal funktioniert hat. Und ohne eine Möglichkeit das zu testen mag ich da nicht dran Gehen.

                Zum Thema RGB sieht es besser aus. Ich nutze selber dazu die Bibliothek color-convert (von Qix- auf GitHub). Yahka unterstützt bei der Farbe nur das HSL Modell, der Datenpunkt bei der Ikea Lampe ist RGB als Hex wert wie im Web (rrggbb). Der da zu nutzende Weg ist einfach: Du brauchst 2 Datenpunkte (hue, saturation ), die du mit einen Script und der color-convert Bibliothek dazu benutzt die RGB codes zu berechnen. der 3. Datenpunkt im HSL Farbmodell ist brightness, wobei du darauf achten musst das das HSL Farbmodel folgende Wertebereich benötigt:

                • hue: 0..360
                • sat: 0..100
                • lightness: 0..100

                Falls der Datenpunkt "brightness" zwischen 0 und 255 angesteuert wird musst du den bei der Verwendung im Script entsprechend anpassen.

                A.

                Kannst du mir da mit dem JS Skript helfen? Ich kann leider nur Blockly.

                Kann ich machen. 1. Frage: ist brightness zwischen 0 und 255 nutzbar oder zwischen 0 und 100 ?

                Ansonsten musst du zunächst folgendes Tun :

                im JS adapter die Funktion für color-convert hinzufügen :

                Screen Shot 2019-09-22 at 22.03.15 .png (Da wo bei mir Add Module steht einfach "color-convert" eintragen)

                Dann musst du dir 2 Datenpunkte anlegen. Ich mache so etwas immer unter javascript.0

                Für das Beispiel unten sind das javascript.0.farbumsetzung.hue und javascript.0.farbumsetzung.sat.

                Diese bindest Du bei Yahka als Datenpunkte für hue und sat ein.

                Das Script sollte dann so aussehen:

                var cc = require('color-convert');
                var valchanged = null;
                
                function updateLightColor()
                {
                    let h = getState('javascript.0.farbumsetzung.sat').val;
                    let s = getState('javascript.0.farbumsetzung.sat').val;
                    let l = getState('lampObject.brightness').val
                
                    let rgb_numeric = cc.hsl.rgb(h, s*100, l);
                    let rgb_text = cc.rgb.hex(rgb_numeric);
                    setState('LampObj.color', rgb_text);
                }
                
                on ({ id:'javascript.0.farbumsetzung.sat', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
                on ({ id:'javascript.0.farbumsetzung.hue', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
                

                Wichtig ist das sich die Farbe nur dann ändert, wenn du hue oder sat veränderst. Wenn du nur mit der Helligkeit spielst bleibt wird der Farb-Wert nicht angepasst - das sollte die Lampe selber tun.

                A.

                L Offline
                L Offline
                leonracer
                schrieb am zuletzt editiert von
                #32

                @Asgothian

                Hi,

                ich habe ein ähnliches Problem. Habe deinen Code verwendet um auch die Farben in YAHKA zu schalen. Nun habe ich das Problem, dass ich jedes mal das Skript neustarten muss, dass eine Änderung der Farbe ausgelöst wird. Was mache ich denn falsch? Liegt das irgendwie am Trigger? So sieht mein Code dann aus:

                
                
                var cc = require('color-convert');
                
                var valchanged = null;
                
                 
                
                function updateLightColor()
                
                {
                
                    let h = getState('schalter.0.beleuchtung.huewert').val;
                
                    let s = getState('schalter.0.beleuchtung.satwert').val;
                
                    let l = getState('zigbee.0.7cb03eaa00aa10dc.brightness').val
                
                 
                
                    let rgb_numeric = cc.hsl.rgb(h, s*100, l);
                
                    let rgb_text = cc.rgb.hex(rgb_numeric);
                
                    setState('zigbee.0.7cb03eaa00aa10dc.color', rgb_text);
                
                }
                
                on ({ id:'schalter.0.beleuchtung.huewert', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
                on ({ id:'schalter.0.beleuchtung.satwert', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
                
                

                Schon mal lieben Dank an die Experten hier.

                AsgothianA 1 Antwort Letzte Antwort
                0
                • L leonracer

                  @Asgothian

                  Hi,

                  ich habe ein ähnliches Problem. Habe deinen Code verwendet um auch die Farben in YAHKA zu schalen. Nun habe ich das Problem, dass ich jedes mal das Skript neustarten muss, dass eine Änderung der Farbe ausgelöst wird. Was mache ich denn falsch? Liegt das irgendwie am Trigger? So sieht mein Code dann aus:

                  
                  
                  var cc = require('color-convert');
                  
                  var valchanged = null;
                  
                   
                  
                  function updateLightColor()
                  
                  {
                  
                      let h = getState('schalter.0.beleuchtung.huewert').val;
                  
                      let s = getState('schalter.0.beleuchtung.satwert').val;
                  
                      let l = getState('zigbee.0.7cb03eaa00aa10dc.brightness').val
                  
                   
                  
                      let rgb_numeric = cc.hsl.rgb(h, s*100, l);
                  
                      let rgb_text = cc.rgb.hex(rgb_numeric);
                  
                      setState('zigbee.0.7cb03eaa00aa10dc.color', rgb_text);
                  
                  }
                  
                  on ({ id:'schalter.0.beleuchtung.huewert', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
                  on ({ id:'schalter.0.beleuchtung.satwert', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
                  
                  

                  Schon mal lieben Dank an die Experten hier.

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

                  @leonracer dir fehlt ein

                  valchanged = null
                  

                  in der Funktion updateLightColor.

                  A.

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

                  L 1 Antwort Letzte Antwort
                  0
                  • AsgothianA Asgothian

                    @leonracer dir fehlt ein

                    valchanged = null
                    

                    in der Funktion updateLightColor.

                    A.

                    L Offline
                    L Offline
                    leonracer
                    schrieb am zuletzt editiert von
                    #34

                    @Asgothian

                    Super, danke...

                    Werde ich morgen gleich mal testen.

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      marco-mh
                      schrieb am zuletzt editiert von marco-mh
                      #35

                      ich hab mich auch mal daran versucht, da ich die selben Probleme habe.
                      ich hab die Ikea Lampe über den ConBee2 und dem deconz Adapter. das ganze in den Yahka Adapter für Homekit. in Home Kit kan ich dan leider nur an/aus und hell/ Dunkel machen, wobei Hell 100% in Homekit nicht 100% hell sind.
                      Farben funktionieren garnicht.

                      Ich habe die Datenpunkte erstellt, sieht so aus
                      Bildschirmfoto 2019-12-04 um 17.43.52.png

                      Das Script entsprechend geändert

                      ////////////////Variablen/////////////////
                      var h, s, v, r, g, b
                       
                      ////////////////Funktionen////////////////
                      //HSVtoRGB
                      function HSVtoRGB() {
                          var r1, g1, b1, i, f, p, q, t;
                       
                          i = Math.floor(h * 6);
                          f = h * 6 - i;
                          p = v * (1 - s);
                          q = v * (1 - f * s);
                          t = v * (1 - (1 - f) * s);
                       
                          switch (i % 6) {
                              case 0: r1 = v, g1 = t, b1 = p; break;
                              case 1: r1 = q, g1 = v, b1 = p; break;
                              case 2: r1 = p, g1 = v, b1 = t; break;
                              case 3: r1 = p, g1 = q, b1 = v; break;
                              case 4: r1 = t, g1 = p, b1 = v; break;
                              case 5: r1 = v, g1 = p, b1 = q; break;
                          }
                          r=Math.round(255 * r1);
                          g=Math.round(255 * g1);
                          b=Math.round(255 * b1);    
                      }
                       
                      //In HEX konvertieren
                      function toHex(number) {
                          if (number < 0) number = 0xFFFFFFFF + number + 1;
                          var n = number.toString(16).toUpperCase()
                          if (n.length == 1) {
                              n = '0' + n;
                          }
                          return n;
                      }
                       
                      ///////////////////Variablenzuweisung//////////////////
                      // Bei Farbänderung oder Helligkeitsänderung
                       
                      on(["javascript.0.Beleuchtung.Test_farbumsetzung.hue","javascript.0.Beleuchtung.Test_farbumsetzung.sat"] , function (dp) {
                      h = getState("javascript.0.Beleuchtung.Test-farbumsetzung.hue").val / 360;
                      s = getState("javascript.0.Beleuchtung.Test-farbumsetzung.sat").val / 255;
                      v = getState("deconz.0.Lights.8.bri").val / 100;
                      
                      HSVtoRGB();
                      setState('deconz.0.Lights.8.xy', '#' + toHex(r) + toHex(g) + toHex(b));
                      });
                      

                      leider funktioniert es nicht.

                      das sind die Datenpunkte im deconz Adapter
                      Bildschirmfoto 2019-12-04 um 17.41.20.png

                      und das die einstellungen im Yahka Adapter

                      Bildschirmfoto 2019-12-04 um 17.42.22.png Bildschirmfoto 2019-12-04 um 17.42.57.png

                      kann mir da jemand helfen?

                      node.js 16.15.1, NPM 8.11, js.Controller 4.0.23

                      AsgothianA 1 Antwort Letzte Antwort
                      0
                      • M marco-mh

                        ich hab mich auch mal daran versucht, da ich die selben Probleme habe.
                        ich hab die Ikea Lampe über den ConBee2 und dem deconz Adapter. das ganze in den Yahka Adapter für Homekit. in Home Kit kan ich dan leider nur an/aus und hell/ Dunkel machen, wobei Hell 100% in Homekit nicht 100% hell sind.
                        Farben funktionieren garnicht.

                        Ich habe die Datenpunkte erstellt, sieht so aus
                        Bildschirmfoto 2019-12-04 um 17.43.52.png

                        Das Script entsprechend geändert

                        ////////////////Variablen/////////////////
                        var h, s, v, r, g, b
                         
                        ////////////////Funktionen////////////////
                        //HSVtoRGB
                        function HSVtoRGB() {
                            var r1, g1, b1, i, f, p, q, t;
                         
                            i = Math.floor(h * 6);
                            f = h * 6 - i;
                            p = v * (1 - s);
                            q = v * (1 - f * s);
                            t = v * (1 - (1 - f) * s);
                         
                            switch (i % 6) {
                                case 0: r1 = v, g1 = t, b1 = p; break;
                                case 1: r1 = q, g1 = v, b1 = p; break;
                                case 2: r1 = p, g1 = v, b1 = t; break;
                                case 3: r1 = p, g1 = q, b1 = v; break;
                                case 4: r1 = t, g1 = p, b1 = v; break;
                                case 5: r1 = v, g1 = p, b1 = q; break;
                            }
                            r=Math.round(255 * r1);
                            g=Math.round(255 * g1);
                            b=Math.round(255 * b1);    
                        }
                         
                        //In HEX konvertieren
                        function toHex(number) {
                            if (number < 0) number = 0xFFFFFFFF + number + 1;
                            var n = number.toString(16).toUpperCase()
                            if (n.length == 1) {
                                n = '0' + n;
                            }
                            return n;
                        }
                         
                        ///////////////////Variablenzuweisung//////////////////
                        // Bei Farbänderung oder Helligkeitsänderung
                         
                        on(["javascript.0.Beleuchtung.Test_farbumsetzung.hue","javascript.0.Beleuchtung.Test_farbumsetzung.sat"] , function (dp) {
                        h = getState("javascript.0.Beleuchtung.Test-farbumsetzung.hue").val / 360;
                        s = getState("javascript.0.Beleuchtung.Test-farbumsetzung.sat").val / 255;
                        v = getState("deconz.0.Lights.8.bri").val / 100;
                        
                        HSVtoRGB();
                        setState('deconz.0.Lights.8.xy', '#' + toHex(r) + toHex(g) + toHex(b));
                        });
                        

                        leider funktioniert es nicht.

                        das sind die Datenpunkte im deconz Adapter
                        Bildschirmfoto 2019-12-04 um 17.41.20.png

                        und das die einstellungen im Yahka Adapter

                        Bildschirmfoto 2019-12-04 um 17.42.22.png Bildschirmfoto 2019-12-04 um 17.42.57.png

                        kann mir da jemand helfen?

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

                        @marco-mh sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:

                        ich hab mich auch mal daran versucht, da ich die selben Probleme habe.
                        ich hab die Ikea Lampe über den ConBee2 und dem deconz Adapter. das ganze in den Yahka Adapter für Homekit. in Home Kit kan ich dan leider nur an/aus und hell/ Dunkel machen, wobei Hell 100% in Homekit nicht 100% hell sind.

                        Dafür musst du im Yahka die Konversionsfunktion "level255" auch für die Helligkeit aktivieren.
                        Die Umrechnung hsv in RGB brauchst du nicht, da deconz das intern macht. Du verbindest also einfach hue und saturation mit hue und saturation. Wenn ich das richtig erinnere brauchst du so wie eingestellt auch bei saturation die level255 Umrechnung, während hue so bleiben kann wie es ist.

                        Das gleiche gilt für die Farbtemperatur.

                        A.

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

                        1 Antwort Letzte Antwort
                        0
                        • M Offline
                          M Offline
                          marco-mh
                          schrieb am zuletzt editiert von
                          #37

                          Danke für deine Antwort. die helligkeit habe ich schon hinbekommen.
                          die Farbänderungen leider nicht. hab das alles so eingegeben doch er macht es leider nicht.
                          Bildschirmfoto 2019-12-04 um 19.54.05.png
                          Bildschirmfoto 2019-12-04 um 19.54.28.png
                          ast du eine idee?

                          node.js 16.15.1, NPM 8.11, js.Controller 4.0.23

                          AsgothianA 1 Antwort Letzte Antwort
                          0
                          • M marco-mh

                            Danke für deine Antwort. die helligkeit habe ich schon hinbekommen.
                            die Farbänderungen leider nicht. hab das alles so eingegeben doch er macht es leider nicht.
                            Bildschirmfoto 2019-12-04 um 19.54.05.png
                            Bildschirmfoto 2019-12-04 um 19.54.28.png
                            ast du eine idee?

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

                            @marco-mh
                            Was macht er denn, und wie ?

                            Was passiert wenn du die Datenpunkte direkt in den Objekten im ioBroker veränderst ?

                            A.

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

                            1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              marco-mh
                              schrieb am zuletzt editiert von marco-mh
                              #39

                              ich hab noch hue Lampen, wenn ich von der den xy wert in die Ikea kopiere verändert sich die Farbe.
                              wenn ich bei zb hue den wert verändere und enter drücke passiert nichts. wenn ich aber nach der Eingabe in das Feld xy Clicke und ohne Änderung enter drücke verändert sich auch das licht. bei sat das selbe

                              node.js 16.15.1, NPM 8.11, js.Controller 4.0.23

                              1 Antwort Letzte Antwort
                              0
                              • M Offline
                                M Offline
                                marco-mh
                                schrieb am zuletzt editiert von
                                #40

                                was er jetzt in Homekit ganz neu macht ist wenn ich die Farbe verändere das er auf Farbtemperatur springt.
                                und es erscheinen kurzzeitig Riesen zahlen in den Datenpunkten.
                                Bildschirmfoto 2019-12-04 um 20.20.33.png

                                node.js 16.15.1, NPM 8.11, js.Controller 4.0.23

                                AsgothianA 1 Antwort Letzte Antwort
                                0
                                • M marco-mh

                                  was er jetzt in Homekit ganz neu macht ist wenn ich die Farbe verändere das er auf Farbtemperatur springt.
                                  und es erscheinen kurzzeitig Riesen zahlen in den Datenpunkten.
                                  Bildschirmfoto 2019-12-04 um 20.20.33.png

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

                                  @marco-mh Welche version deconz hast du laufen ? Wenn die Ikea Lampen auf Anpassung von hue und sat nicht reagieren dann liegt das nicht an deinen Einstellungen, sondern an deconz.

                                  A.

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

                                  1 Antwort Letzte Antwort
                                  0
                                  • M Offline
                                    M Offline
                                    marco-mh
                                    schrieb am zuletzt editiert von
                                    #42

                                    ich hab die 1.1.2 laufen.

                                    node.js 16.15.1, NPM 8.11, js.Controller 4.0.23

                                    AsgothianA 1 Antwort Letzte Antwort
                                    0
                                    • M marco-mh

                                      ich hab die 1.1.2 laufen.

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

                                      @marco-mh deconz software, nicht iobroker adapter.

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

                                      1 Antwort Letzte Antwort
                                      0
                                      • M Offline
                                        M Offline
                                        marco-mh
                                        schrieb am zuletzt editiert von
                                        #44

                                        läuft auf einem ubuntu 18.04 VM auf meiner QNAP

                                        Bildschirmfoto 2019-12-04 um 20.51.04.png

                                        node.js 16.15.1, NPM 8.11, js.Controller 4.0.23

                                        AsgothianA 1 Antwort Letzte Antwort
                                        0
                                        • M marco-mh

                                          läuft auf einem ubuntu 18.04 VM auf meiner QNAP

                                          Bildschirmfoto 2019-12-04 um 20.51.04.png

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

                                          @marco-mh Ich fürchte du brauchst eine Funktion die bis auf xy umrechnet. Ich kann mal schauen ob ich die für mich noch habe. Zusätzlich solltest du einen bug request bei deconz (GitHub) stellen, das die Ikea Lampen nicht auf hue und sat reagieren - das sollen sie eigentlich.

                                          A.

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

                                          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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          415

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe