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.
    • M
      marco-mh last edited by marco-mh

      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

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

        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

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

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

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

            ich hab die 1.1.2 laufen.

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

              @marco-mh deconz software, nicht iobroker adapter.

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

                läuft auf einem ubuntu 18.04 VM auf meiner QNAP

                Bildschirmfoto 2019-12-04 um 20.51.04.png

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

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

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

                    das wäre klasse wenn du da mal gucken könntest.
                    die meldung beim support werde ich gleich machen.

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

                      noch eine kleine anmerkung, in der Phoscon APP funktioniert es aber .

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

                        @marco-mh dann schau doch mal bitte im log ob der korrekte Befehl geschickt wird, und/oder versuch den Befehl direkt an die REST-api zu schicken.

                        Auch: in der App wird meines Wissens immer xy geschaltet

                        A.

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

                          ich hab nach der eingabe bei Hue und sat jedesmal enter gedrückt. erst nach Clicken und enter in XY kam die änderung an der lampe.

                          deconz.0	2019-12-04 21:27:14.464	info	(19314) options: {"url":"http://192.168.178.7:8080/api/6DDBBD345E/lights/8/state","method":"PUT","headers":"Content-Type\" : \"application/json","body":"{\"transitiontime\": 0, \"xy\": [0.3269,0.4426]
                          deconz.0	2019-12-04 21:27:14.453	info	(19314) setLightState: {"transitiontime": 0, "xy": [0.3269,0.4426]} 8 deconz.0.Lights.8.xy
                          deconz.0	2019-12-04 21:27:06.690	info	(19314) options: {"url":"http://192.168.178.7:8080/api/6DDBBD345E/lights/8/state","method":"PUT","headers":"Content-Type\" : \"application/json","body":"{\"transitiontime\": 0, \"sat\": 100}"}
                          deconz.0	2019-12-04 21:27:06.667	info	(19314) setLightState: {"transitiontime": 0, "sat": 100} 8 deconz.0.Lights.8.sat
                          deconz.0	2019-12-04 21:26:30.986	info	(19314) options: {"url":"http://192.168.178.7:8080/api/6DDBBD345E/lights/8/state","method":"PUT","headers":"Content-Type\" : \"application/json","body":"{\"transitiontime\": 0, \"hue\": 18204}"}
                          deconz.0	2019-12-04 21:26:30.980	info	(19314) setLightState: {"transitiontime": 0, "hue": 18204} 8 deconz.0.Lights.8.hue
                          

                          was meinst du mit direkt an Rest api schicken, wie mache ich das?

                          Edit:wobei ich bei hue 100 eingegeben habe

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

                            @marco-mh

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

                            was meinst du mit direkt an Rest api schicken, wie mache ich das?

                            wenn du hier schaust kannst du sehen was du tun musst um einen Befehl an die api zu schicken. Den Befehl findest du hier :

                             {"url":"http://192.168.178.7:8080/api/6DDBBD345E/lights/8/state","method":"PUT","headers":"Content-Type\" : \"application/json","body":"{\"transitiontime\": 0, \"hue\": 18204}"}
                            
                            M 1 Reply Last reply Reply Quote 0
                            • M
                              marco-mh @Asgothian last edited by marco-mh

                              @Asgothian
                              das hat er mir im Addon ausgegeben

                              8: {
                              "ctmax": 454,
                              "ctmin": 250,
                              "etag": "1df88ead883bb7843b662ffe4948526c",
                              "hascolor": true,
                              "manufacturername": "IKEA of Sweden",
                              "modelid": "TRADFRI bulb E14 CWS opal 600lm",
                              "name": "Weihnachtsstern",
                              "state": {
                              "alert": "none",
                              "bri": 150,
                              "colormode": "xy",
                              "effect": "none",
                              "hue": 18204,
                              "on": true,
                              "reachable": true,
                              "sat": 254,
                              "xy": [
                                0.3161,
                                0.587
                              ],
                              },
                              "swversion": "1.3.002",
                              "type": "Color light",
                              "uniqueid": "cc:cc:cc:ff:fe:99:56:xx-xx"
                              }
                              

                              das kann ich dir anbieten. das andere hab ich nicht hinbekommen-

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

                                das kommt im terminal

                                iobroker@ubuntu1804vm:/opt/iobroker$ curl -H 'Content-Type: application/json' -X PUT -d '{"hue": 18204}' http://192.168.178.7:8080/api/6DDBBDxxxx/lights/8/config
                                [{"error":{"address":"/lights/8/config","description":"method, PUT, not available for resource, /lights/8/config","type":4}}]iobroker@ubuntu1804vm:/opt/iobroker$ 
                                
                                

                                sorry, ich stehngrad auf dem schlauch. alles nicht so leicht
                                Danke für deine mühe

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

                                  @marco-mh ersetz bitte das 'config' durch 'state' im Befehl
                                  wenn das klappt, bitte hinterher noch einmal, aber das "hue":18204 ersetzen durch

                                  "hue":18204, "sat": 230, "bri":230

                                  und danach noch :

                                  "hue":18204, "sat": 230, "bri":230 , "colormode": hue

                                  A.

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

                                    das hat geklappt.

                                    [{"success":{"/lights/8/state/hue":18204}}]iobroker@ubuntu1804vm:/opt/iobroker$ 
                                    
                                    

                                    aber selbes problem. erst änderung wenn ich in xy klicke und enter drücke

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

                                      @marco-mh was ist mit den beiden zusätzlichen Befehlen die ich oben gepostet habe ?

                                      A.

                                      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:

                                        das wäre klasse wenn du da mal gucken könntest.
                                        die meldung beim support werde ich gleich machen.

                                        Im Spoiler ist das Script. ich hatte das damals fuer die Hue Lampen gemacht, bei denen es im deconz auch noch einen bug gab.

                                        Wichtig: fuer eine korrekte Umrechnung der Farben musst du eine der Philips Lampenbezeichnungen mit angeben, damit korrekt umgerechnet wird. Da heist es schauen und spielen.

                                        Ansonsten musst du nur in den LightID's jeweils die Objektbezeichnungen vorgeben.. als erstes den Namen für die Scriptgesteuerten Objekte, als zweites den Namen des Objektes im deconz, als drittes halt den typstring.

                                        Die States legt er beim ersten start selber an.

                                        var colorconv = require('color-convert');
                                        var converter = require('@q42philips/hue-color-converter');
                                        var JS = "javascript.0."
                                        var LightIDs = [ ["Light1","deconz.0.Light_1","LCT015"]];
                                        
                                        /*
                                        * Setup
                                        */
                                        
                                        for (i=0; i<LightIDs.length; i++)
                                        {
                                         createState(LightIDs[i][0]+"-y_hue"); 
                                         createState(LightIDs[i][0]+"-y_sat");
                                         createState(LightIDs[i][0]+"-y_ct")
                                         var LinkedObject = { self: JS+LightIDs[i][0], id: LightIDs[i][1], type:[i][2], v: ".bri", xy: '.xy', ct: '.ct' };
                                         createState(LightIDs[i][0]+"-LinkedObject");
                                         setState(LightIDs[i][0]+"-LinkedObject", { val: LinkedObject, ack:false });
                                         on({ id:LightIDs[i][0] + "-y_hue", change: "ne"}, CalcXYfromHueSat);
                                         on({ id:LightIDs[i][0] + "-y_sat", change: "ne"}, CalcXYfromHueSat);
                                         on({ id:LightIDs[i][0] + "-y_ct", change: "ne"}, CalcXYfromct);
                                        }
                                        
                                        var timer = null;
                                        
                                        function CalcXYfromHueSat(obj)
                                        {
                                         console.log('Object ' + JSON.stringify(obj.id) + ' was changed set');
                                         var ChangedIdName = JSON.stringify(obj.id);
                                         
                                         var i = ChangedIdName.lastIndexOf("-");
                                         ObjectName = ChangedIdName.substring(1, i);
                                         var Link = getState(ObjectName + "-LinkedObject").val
                                         console.log('Link = '+JSON.stringify(Link))
                                        
                                         console.log('Getting ' + Link.self + '-y_hue');
                                         var Hue = getState(Link.self + '-y_hue').val; // 0 .. 360
                                         console.log('Getting ' + Link.self + '-y_sat');
                                         var Sat = getState(Link.self + '-y_sat').val; // 0 .. 100
                                         console.log('Getting ' + Link.id + Link.v);
                                         var Val = getState(Link.id + Link.v).val * 255 / 100; // 0 .. 100 
                                        
                                         console.log('Hue ' + JSON.stringify(Hue) + ' Sat ' + JSON.stringify(Sat) + ' Bri '+JSON.stringify(Val));
                                        
                                         var rgb = colorconv.hsv.rgb(Hue, Sat, Val);
                                         console.log('RGB returned ' + JSON.stringify(rgb))
                                         var xy = converter.calculateXY(rgb[0], rgb[1], rgb[2], 'LCT015');
                                         console.log('xy returned ' + JSON.stringify(xy))
                                         if (!timer) {  setState(Link.id + Link.xy, xy[0]+','+xy[1]); }
                                        }
                                        
                                        
                                        function CalcXYfromct(obj)
                                        {
                                         var ct = obj.state.val
                                         var ctk = 6500 - ((ct-153) / (500-153) * 4500);
                                         console.log('Object ' + JSON.stringify(obj.id) + ' was set to raw'+ct+' '+ctk+'K')
                                         
                                         var ChangedIdName = JSON.stringify(obj.id);
                                         var i = ChangedIdName.lastIndexOf("-");
                                         ObjectName = ChangedIdName.substring(1, i);
                                         var Link = getState(ObjectName + "-LinkedObject").val
                                         console.log('Link = '+JSON.stringify(Link))
                                        
                                         var rgb = colorTemperatureToRGB(ctk);
                                         console.log('RGB returned ' + JSON.stringify(rgb))
                                         var hsv = colorconv.rgb.hsv(rgb.r, rgb.g, rgb.b);
                                         console.log('hsv returned ' + JSON.stringify(hsv))
                                         if (!timer) {
                                             timer = setTimeout(function() { timer = null; }, 50); 
                                             setState(Link.self+"-y_hue", hsv[0], false)
                                             setState(Link.self+"-y_sat", hsv[1], false)
                                             setState(Link.id + Link.ct, ct);
                                         }
                                        }
                                        
                                        function colorTemperatureToRGB(kelvin){
                                        
                                           var temp = kelvin / 100;
                                           var red, green, blue;
                                        
                                           if( temp <= 66 ){ 
                                               red = 255; 
                                               green = temp;
                                               green = 99.4708025861 * Math.log(green) - 161.1195681661;
                                               if( temp <= 19){
                                                   blue = 0;
                                               } else {
                                                   blue = temp-10;
                                                   blue = 138.5177312231 * Math.log(blue) - 305.0447927307;
                                               }
                                           } else {
                                               red = temp - 60;
                                               red = 329.698727446 * Math.pow(red, -0.1332047592);
                                               green = temp - 60;
                                               green = 288.1221695283 * Math.pow(green, -0.0755148492 );
                                               blue = 255;
                                           }
                                           return {
                                               r : clamp(red,   0, 255),
                                               g : clamp(green, 0, 255),
                                               b : clamp(blue,  0, 255)
                                           }
                                        }
                                        
                                        function clamp( x, min, max ) {
                                           if(x<min){ return min; }
                                           if(x>max){ return max; }
                                           return x;
                                        }
                                        

                                        M G 2 Replies Last reply Reply Quote 0
                                        • M
                                          marco-mh @Asgothian last edited by

                                          @Asgothian
                                          Hey Asgothian, ich bin noch voll bei dir. Nur is gerade wenig Zeit. Ich komme gerade von der Weihnachtsfeier 🥃🥳🍺😇🍸🎊🍼. Am we ist auch wenig Zeit, Weihnachtszeit eben, du weißt was ich meine. Ich teste spätestens am Montag, ev schaffe ich es auch am Samstag.
                                          Aber ich bedanke mich schon einmal bei dir. Gruß Marco

                                          1 Reply Last reply Reply Quote 0
                                          • G
                                            goeks @Asgothian last edited by

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

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

                                            das wäre klasse wenn du da mal gucken könntest.
                                            die meldung beim support werde ich gleich machen.

                                            Im Spoiler ist das Script. ich hatte das damals fuer die Hue Lampen gemacht, bei denen es im deconz auch noch einen bug gab.

                                            Wichtig: fuer eine korrekte Umrechnung der Farben musst du eine der Philips Lampenbezeichnungen mit angeben, damit korrekt umgerechnet wird. Da heist es schauen und spielen.

                                            Ansonsten musst du nur in den LightID's jeweils die Objektbezeichnungen vorgeben.. als erstes den Namen für die Scriptgesteuerten Objekte, als zweites den Namen des Objektes im deconz, als drittes halt den typstring.

                                            Die States legt er beim ersten start selber an.

                                            var colorconv = require('color-convert');
                                            var converter = require('@q42philips/hue-color-converter');
                                            var JS = "javascript.0."
                                            var LightIDs = [ ["Light1","deconz.0.Light_1","LCT015"]];
                                            
                                            /*
                                            * Setup
                                            */
                                            
                                            for (i=0; i<LightIDs.length; i++)
                                            {
                                             createState(LightIDs[i][0]+"-y_hue"); 
                                             createState(LightIDs[i][0]+"-y_sat");
                                             createState(LightIDs[i][0]+"-y_ct")
                                             var LinkedObject = { self: JS+LightIDs[i][0], id: LightIDs[i][1], type:[i][2], v: ".bri", xy: '.xy', ct: '.ct' };
                                             createState(LightIDs[i][0]+"-LinkedObject");
                                             setState(LightIDs[i][0]+"-LinkedObject", { val: LinkedObject, ack:false });
                                             on({ id:LightIDs[i][0] + "-y_hue", change: "ne"}, CalcXYfromHueSat);
                                             on({ id:LightIDs[i][0] + "-y_sat", change: "ne"}, CalcXYfromHueSat);
                                             on({ id:LightIDs[i][0] + "-y_ct", change: "ne"}, CalcXYfromct);
                                            }
                                            
                                            var timer = null;
                                            
                                            function CalcXYfromHueSat(obj)
                                            {
                                             console.log('Object ' + JSON.stringify(obj.id) + ' was changed set');
                                             var ChangedIdName = JSON.stringify(obj.id);
                                             
                                             var i = ChangedIdName.lastIndexOf("-");
                                             ObjectName = ChangedIdName.substring(1, i);
                                             var Link = getState(ObjectName + "-LinkedObject").val
                                             console.log('Link = '+JSON.stringify(Link))
                                            
                                             console.log('Getting ' + Link.self + '-y_hue');
                                             var Hue = getState(Link.self + '-y_hue').val; // 0 .. 360
                                             console.log('Getting ' + Link.self + '-y_sat');
                                             var Sat = getState(Link.self + '-y_sat').val; // 0 .. 100
                                             console.log('Getting ' + Link.id + Link.v);
                                             var Val = getState(Link.id + Link.v).val * 255 / 100; // 0 .. 100 
                                            
                                             console.log('Hue ' + JSON.stringify(Hue) + ' Sat ' + JSON.stringify(Sat) + ' Bri '+JSON.stringify(Val));
                                            
                                             var rgb = colorconv.hsv.rgb(Hue, Sat, Val);
                                             console.log('RGB returned ' + JSON.stringify(rgb))
                                             var xy = converter.calculateXY(rgb[0], rgb[1], rgb[2], 'LCT015');
                                             console.log('xy returned ' + JSON.stringify(xy))
                                             if (!timer) {  setState(Link.id + Link.xy, xy[0]+','+xy[1]); }
                                            }
                                            
                                            
                                            function CalcXYfromct(obj)
                                            {
                                             var ct = obj.state.val
                                             var ctk = 6500 - ((ct-153) / (500-153) * 4500);
                                             console.log('Object ' + JSON.stringify(obj.id) + ' was set to raw'+ct+' '+ctk+'K')
                                             
                                             var ChangedIdName = JSON.stringify(obj.id);
                                             var i = ChangedIdName.lastIndexOf("-");
                                             ObjectName = ChangedIdName.substring(1, i);
                                             var Link = getState(ObjectName + "-LinkedObject").val
                                             console.log('Link = '+JSON.stringify(Link))
                                            
                                             var rgb = colorTemperatureToRGB(ctk);
                                             console.log('RGB returned ' + JSON.stringify(rgb))
                                             var hsv = colorconv.rgb.hsv(rgb.r, rgb.g, rgb.b);
                                             console.log('hsv returned ' + JSON.stringify(hsv))
                                             if (!timer) {
                                                 timer = setTimeout(function() { timer = null; }, 50); 
                                                 setState(Link.self+"-y_hue", hsv[0], false)
                                                 setState(Link.self+"-y_sat", hsv[1], false)
                                                 setState(Link.id + Link.ct, ct);
                                             }
                                            }
                                            
                                            function colorTemperatureToRGB(kelvin){
                                            
                                               var temp = kelvin / 100;
                                               var red, green, blue;
                                            
                                               if( temp <= 66 ){ 
                                                   red = 255; 
                                                   green = temp;
                                                   green = 99.4708025861 * Math.log(green) - 161.1195681661;
                                                   if( temp <= 19){
                                                       blue = 0;
                                                   } else {
                                                       blue = temp-10;
                                                       blue = 138.5177312231 * Math.log(blue) - 305.0447927307;
                                                   }
                                               } else {
                                                   red = temp - 60;
                                                   red = 329.698727446 * Math.pow(red, -0.1332047592);
                                                   green = temp - 60;
                                                   green = 288.1221695283 * Math.pow(green, -0.0755148492 );
                                                   blue = 255;
                                               }
                                               return {
                                                   r : clamp(red,   0, 255),
                                                   g : clamp(green, 0, 255),
                                                   b : clamp(blue,  0, 255)
                                               }
                                            }
                                            
                                            function clamp( x, min, max ) {
                                               if(x<min){ return min; }
                                               if(x>max){ return max; }
                                               return x;
                                            }
                                            

                                            Ich habe mir schon viele Lösungsansätze angeschaut, jedoch konnte ich keins finden, mit dem ich Kelvin sowie die Farben einstellen kann.
                                            Einzig und allein was ich auch hinbekommen habe, ist das Ein- und Ausschalten, sowie die Anpassung der Helligkeit.

                                            Ich bin wie folgt vorgegangen:

                                            0: Hue Lampe mit cc2531
                                            1: Script unter Scirpte/Global eingefügt
                                            2: LightsIDs definiert
                                            3: Yahka folgende Einträge getätigt
                                            7ce811e0-0ca5-4078-aebf-b63be6ac12a6-grafik.png
                                            d089145d-8569-4f2f-9cb1-8b91c5b35b73-grafik.png

                                            Ich wäre mit Euch sehr verbunden, wenn mich jemand aufklären könnte...😬

                                            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

                                            536
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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