Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • E
      el_malto @Asgothian last edited by

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

      @el_malto schalte mal bitte das Script ab und prüfe in welchem Wertebereich der yahka Adapter den hue Wert anpasst. Soll ist 0-360. Wenn da andere Werte stehen musst du den h Wert im Script so umrechnen zwischen 0 und 360 bleibt.

      Das passt. Wenn ich am "farbigen Rad" in der Homekit App "drehe" gehen die Werte von 0-360.

      @el_malto Ja, das ist ein Tippfehler. Eine Umrechnung brauchst du nicht - der Wertebereich ist 0-100.

      Wie muss es denn richtig heißen?

      Könntest du das nochmal beantworten?

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

        @el_malto

        let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val;
        

        Wird zu

        let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue').val;
        

        A.

        E 1 Reply Last reply Reply Quote 1
        • Asgothian
          Asgothian Developer @el_malto last edited by

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

          Die neu angelegten Datenpunkte ändern sich immer wenn ich ein Farbe einstelle.
          1.JPG
          Der color Datepunkt ändert sich meistens nur nachdem ich die Lampe eingeschaltet

          Wenn hue 0-360 ist, wie ist dann der oben stehende Screenshot entstanden ?

          A.

          1 Reply Last reply Reply Quote 1
          • E
            el_malto @Asgothian last edited by

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

            let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val;
            

            Wird zu

            let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue').val;
            

            Erledigt.

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

            Wenn hue 0-360 ist, wie ist dann der oben stehende Screenshot entstanden ?

            Das frage ich mich auch gerade. Kann es so jetzt nicht mehr reprodzieren. Jetzt passt es auf jeden fall.
            Hier noch mal das aktuelle Skript.

            var cc = require('color-convert');
            var valchanged = null;
            
            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
            
                let rgb_numeric = cc.hsl.rgb(h, s*100, l);
                let rgb_text = cc.rgb.hex(rgb_numeric);
                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); });
            

            Jetzt stellt stellt sich nur noch die Frage, warum das Skript den color Datenpunkt nicht aktualisiert wenn man die Farbe ändert...

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

              @el_malto gibt Fehlermeldungen im log ?
              Füge bitte den folgenden Text vor dem “set state” hinzu und schau was im log auftaucht.

              log(“convert hsl to rgb “ + JSON.stringify(rgb_numreic) + “(“ + JSON.stringify(rgb_text) + “)” );
              
              

              A.

              E 1 Reply Last reply Reply Quote 1
              • E
                el_malto @Asgothian last edited by el_malto

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

                @el_malto gibt Fehlermeldungen im log ?

                Nein, im Log war nichts zu sehen.

                Füge bitte den folgenden Text vor dem “set state” hinzu und schau was im log auftaucht.

                log(“convert hsl to rgb “ + JSON.stringify(rgb_numreic) + “(“ + JSON.stringify(rgb_text) + “)” );
                
                

                A.

                Skript neu:

                var cc = require('color-convert');
                var valchanged = null;
                
                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
                
                    let rgb_numeric = cc.hsl.rgb(h, s*100, l);
                    let rgb_text = cc.rgb.hex(rgb_numeric);
                    log("convert hsl to rgb " + JSON.stringify(rgb_numreic) + "(" + 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); });
                

                So sieht der Log nun aus:

                javascript.0	2019-09-23 11:28:05.936	error	at Timer.listOnTimeout (timers.js:290:5)
                javascript.0	2019-09-23 11:28:05.936	error	at tryOnTimeout (timers.js:323:5)
                javascript.0	2019-09-23 11:28:05.935	error	at ontimeout (timers.js:511:34)
                javascript.0	2019-09-23 11:28:05.935	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1869:34)
                javascript.0	2019-09-23 11:28:05.935	error	at Object.updateLightColor (script.js.common.DL_SZ_farbumwandlung:12:48)
                javascript.0	2019-09-23 11:28:05.935	error	Error in callback: ReferenceError: rgb_numreic is not defined
                javascript.0	2019-09-23 11:27:38.491	info	script.js.common.DL_SZ_farbumwandlung: registered 2 subscriptions and 0 schedules
                javascript.0	2019-09-23 11:27:38.490	info	Start javascript script.js.common.DL_SZ_farbumwandlung
                javascript.0	2019-09-23 11:27:38.459	info	Stop script script.js.common.DL_SZ_farbumwandlung
                

                EDIT: War ein Tippfehler in deiner neuen Zeile.

                (rgb_numreic)
                

                Habe ich in

                (rgb_numeric)
                

                geändert.
                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
                

                Wie gesagt, bei der ersten Farbänderung nach dem die Lampe eingeschaltet wurde, wird die Farbe geändert (aber in einer falschen Farbe). Danach geht keine Farbänderung mehr.

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

                  @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 2 Replies Last reply Reply Quote 1
                  • E
                    el_malto @Asgothian last edited by el_malto

                    @Asgothian die hue/sat Werte ändern sich immer. Nur die Lampe ändert nach dem die eingeschaltet wurde und ich eine erste Farbänderung machen will die Farbe (also im color Datenpunkt wird der neue HEX Wert geschrieben, jedoch ist die Farbe falsch). Wenn ich dann ein weiteres mal die Farbe ändern will, wird kein neuer HEX Wert mehr im color Datenpunkt geschrieben (hue/sat ändert sich aber immer).

                    1 Reply Last reply Reply Quote 0
                    • E
                      el_malto @Asgothian last edited by

                      @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
                      
                      Asgothian 1 Reply Last reply Reply Quote 0
                      • Asgothian
                        Asgothian Developer @el_malto last edited by

                        @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 1 Reply Last reply Reply Quote 1
                        • E
                          el_malto @Asgothian last edited by

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

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

                            @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 1 Reply Last reply Reply Quote 1
                            • E
                              el_malto @Asgothian last edited by

                              @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 Reply Last reply Reply Quote 0
                              • E
                                el_malto last edited by

                                @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 Reply Last reply Reply Quote 0
                                • L
                                  leonracer @Asgothian last edited by

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

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

                                    @leonracer dir fehlt ein

                                    valchanged = null
                                    

                                    in der Funktion updateLightColor.

                                    A.

                                    L 1 Reply Last reply Reply Quote 0
                                    • L
                                      leonracer @Asgothian last edited by

                                      @Asgothian

                                      Super, danke...

                                      Werde ich morgen gleich mal testen.

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        marco-mh last edited by 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?

                                        Asgothian 1 Reply Last reply Reply Quote 0
                                        • Asgothian
                                          Asgothian Developer @marco-mh last edited by

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

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            marco-mh last edited by

                                            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?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            600
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            tradfri
                                            8
                                            65
                                            8773
                                            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