Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Yahka hue color nach hex convertieren

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Yahka hue color nach hex convertieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Sinalco last edited by

      So ich hab jetzt ca. zwei Tage gesucht und experimentiert, aber jetzt komm ich leider nicht weiter.

      Ich verwende den Zigbee Adapter mit dem CC2531 Stick, da wird aber leider der Farbcode nur in HEX, Helligkeit in Brightness und Farbtemperatur in colortemp angenommen um Lampen (Osram Lightify LED Band) zu steuern.

      Ich möchte das ganze aber gern mit HomeKit steuern, im Yahka Adapeter kann man Brightness, ColorTemperature, Hue und Saturation angeben.

      Dazu hab ich zwei Skripte die auch soweit erst mal funktionieren:

      HSVtoRGB

      // Initialisierung bei Skriptstart
      var h = getState("javascript.0.scriptEnabled.logic.Licht.hue").val / 360; 
      var s = getState("zigbee.0.7cb03eaa000024ef.colortemp").val / 100;
      var v = getState("zigbee.0.7cb03eaa000024ef.brightness").val / 100;
      
      function HSVtoRGB() {
          var r, g, b, 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: r = v, g = t, b = p; break;
              case 1: r = q, g = v, b = p; break;
              case 2: r = p, g = v, b = t; break;
              case 3: r = p, g = q, b = v; break;
              case 4: r = t, g = p, b = v; break;
              case 5: r = v, g = p, b = q; break;
          }
          setState ("javascript.0.scriptEnabled.logic.Licht.r1"/*r1*/, Math.round(255 * r));
          setState ("javascript.0.scriptEnabled.logic.Licht.g1"/*g1*/, Math.round(255 * g));
          setState ("javascript.0.scriptEnabled.logic.Licht.b1"/*b1*/, Math.round(255 * b));  
      
      } // Ende der Funktion
      
      HSVtoRGB();  // Aufruf bei Skriptstart 
      
      on("javascript.0.scriptEnabled.logic.Licht.hue", function(dp) {
         h = dp.state.val / 360;
         HSVtoRGB();  // Aufruf bei Änderung von hue
      });
      on("zigbee.0.7cb03eaa000024ef.colortemp", function(dp) {
         s = dp.state.val / 100;
         HSVtoRGB();  // Aufruf bei Änderung von saturation
      });
      on("zigbee.0.7cb03eaa000024ef.brightness", function(dp) { 
         v = dp.state.val / 100;
         HSVtoRGB();  // Aufruf bei Änderung von dimmer
      });
      

      RGBtoHEX:

      var R = getState('javascript.0.scriptEnabled.logic.Licht.r1').val;
      var G = getState('javascript.0.scriptEnabled.logic.Licht.g1').val;
      var B = getState('javascript.0.scriptEnabled.logic.Licht.b1').val;
      
      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;
      }
      
      function calculateColor() {
      
          log('#' + toHex(R) + toHex(G) + toHex(B));
          setState('zigbee.0.7cb03eaa000024ef.color', '#' + toHex(R) + toHex(G) + toHex(B));
      }
      
      calculateColor(); // Skriptstart
      
      on('javascript.0.scriptEnabled.logic.Licht.r1', function(dp) {
         R = dp.state.val;
         calculateColor();
      });
      on('javascript.0.scriptEnabled.logic.Licht.g1', function(dp) {
         G = dp.state.val;
         calculateColor();
      });
      on('javascript.0.scriptEnabled.logic.Licht.b1', function(dp) {
         B = dp.state.val;
         calculateColor();
      });
      

      Damit kann ich die Farben steuern, leider funktioniert die Farbtemperatur nicht.

      Yahka setzt ColorTemp zwischen 140 und 500

      Zusätzlich ändert sich beim Dimmen auch noch der Farbwert (von RGB nur R).

      Kann mir jemand sagen was ich falsch mach?

      So sieht mein Yahka adapter aus:
      5718_unbenannt.png

      1 Reply Last reply Reply Quote 0
      • W
        Walkinlarge2010 last edited by

        Ich habe bei mir bei dem Punkt Hue in der zweiten Zeile noch HUE ausgewählt. Bei saturation habe ich in der zweiten Zeile Level 255 drin. Vielleicht funktioniert es ja mit den Einstellungen besser. Wäre aber nur ein try & error [emoji6]

        Meine Hue Lampen laufen so sauber.

        Gesendet von iPhone mit Tapatalk

        1 Reply Last reply Reply Quote 0
        • C
          CrazyCreator last edited by

          Kann mir jemand verraten wie und wo diese beiden javascript's eingebunden/eingefügt werden müssen?

          Bin da leider noch zu neu in der Materie

          1 Reply Last reply Reply Quote 0
          • E
            eagleye last edited by

            ja, würde mich auch sehr interessieren.

            1 Reply Last reply Reply Quote 0
            • C
              CrazyCreator last edited by

              Bin gespannt ob uns vielleicht doch noch jemand auf die Sprünge helfen kann/wird.

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                @CrazyCreator:

                wie und wo diese beiden javascript's eingebunden/eingefügt werden müssen? `
                2 neue Skripte im http://www.iobroker.net/docu/?page_id=6818&lang=de#Bedienung.

                1 Reply Last reply Reply Quote 0
                • C
                  CrazyCreator last edited by

                  Ok … Das ist schonmal ein Schritt vorwärts 🙂 Danke dir.

                  In den beiden Skripten muss ich natürlich die Pfade anpassen und dann die Einrichtung im yahka Adapter nachmachen, so wie im Screenshot.

                  Da stellt sich dann aber die nächste Frage: Auf welches Script wird im yahka Adapter verlinkt?

                  1 Reply Last reply Reply Quote 0
                  • H
                    hayholy last edited by

                    @CrazyCreator:

                    Da stellt sich dann aber die nächste Frage: Auf welches Script wird im yahka Adapter verlinkt? `

                    So wie ich es verstanden habe, wird im yahka-Adapter auf die angelegte Variable "hue" verlinkt.

                    Aber es funktioniert bei mir leider nicht… Bei mir kommen regelmäßig negative Werte für R G B raus. Ich habe die Einstellungen aus dem Screenshot übernommen + level255 bei Saturation und +hue bei hue (jeweils in der zweiten Zeile im yahka-Adapter).

                    Muss Saturation eigentlich aktiviert sein? Bei mir bietet der Zigbee-Adapter gar kein Saturation für die HUE-Lampen an.

                    Kann jemand mit funktionstüchtiger Lösung bitte noch mal detailliert ausführen, welche Grenzen gesetzt werden müssen und ob die Normierungen im Skript (z.B. /360 /100 /100) korrekt sind? Ich denke, dass eine Übersicht vielen Usern bei der Einrichtung helfen würde :idea: !

                    Zudem habe ich das Problem, dass die Lampe mehrmals die Farbe wechselt ehe sie bei einer (nicht der korrekten, da ja RGB-Werte falsch sind) Farbe stehen bleibt. Das kann aber auch an den fehlerhaften RGB-Werten liegen? Oder benötigt man noch eine Art Verzögerung im Skript?

                    1 Reply Last reply Reply Quote 0
                    • D
                      danw last edited by

                      Yahka, also Apple, setzt ColorTemperature als Mired. Das Objekt (z.B. hue.0.zimmer.lampe.ct) erwartet Kelvin.

                      Ähnliches Problem bei hue.0.zimmer.lampe.hue. Selbst mit der ConversionFunction kommen bei mir nur sehr seltsame Werte raus (>60000).

                      Die Objekte (hue.0.zimmer.lampe.ct & hue.0.zimmer.lampe.hue) haben andere min/max definiert, als übergeben werden.

                      Werde aktuell auch noch nicht schlau daraus.

                      1 Reply Last reply Reply Quote 0
                      • D
                        danw last edited by

                        Okay, gefunden. Liegt an der Adapter Version 1.0.1.

                        Version 0.6.9 installiert, funktioniert. Bluefox hat da wohl was geändert, was "hue" und "ct" für Werte erwarten.

                        1 Reply Last reply Reply Quote 0
                        • C
                          CrazyCreator last edited by

                          @danw

                          Ich müsste also zurück auf yahka 0.6.9?

                          Und wenn ja, könntest du mal einen Screen von deinen Yahka Einstellungen posten damit man mal sieht wie es dann funktioniert?

                          @bluefox

                          Ist das so wie @danw es geschrieben hat? Ist es dann vielleicht nur ein bug, oder soll es doch ein feature sein und wir nutzen es nur falsch?

                          1 Reply Last reply Reply Quote 0
                          • Dutchman
                            Dutchman Developer Most Active Administrators last edited by

                            Mache dazu bitte ein issue auf github auf ist übersichtlicher 🙂

                            Sent from my iPhone using Tapatalk

                            1 Reply Last reply Reply Quote 0
                            • C
                              CrazyCreator last edited by

                              @Dutchman:

                              Mache dazu bitte ein issue auf github auf ist übersichtlicher 🙂 `

                              Bei GitHub iobroker.yahka?

                              Da gibt es schon einen Eintrag:

                              https://github.com/jensweigele/ioBroker.yahka/issues/76

                              CrazyCreator13 created this issue in jensweigele/ioBroker.yahka

                              open Conversion: RGB to HEX / HEX to RGB with ZigBee Adapter and without Hue Bridge #76

                              1 Reply Last reply Reply Quote 0
                              • D
                                danw last edited by

                                Bei Yahka ist alles okay, mir ging es um Version 0.6.9 vom iobroker hue package.

                                Folgende Änderung wird das "Problem" verursachen.

                                Lösung wäre hier eine andere/angepasste Conversion Function im Yahka.

                                Mit der aktuellen neuen Version (ganz frisch von heute) kann man manuell Scripts hinzufügen, das muss ich mir noch anschauen.

                                https://github.com/ioBroker/ioBroker.hue

                                Changelog von Version 1.0.1

                                (bluefox) temperature changed from 153-cold, 500-warm to 2200-warm, 6500-cold

                                (bluefox) hue changed from 0-65535 to 0-360°

                                Apple übergibt den Wert als Einheit Mired (also das, was auch hue vorher erwartet hat und seit 1.0.1 aber Kelvin erwartet).

                                //edit: Wenn der OT tatsächlich RGB braucht, löst es sein Problem nicht.

                                1 Reply Last reply Reply Quote 0
                                • C
                                  CrazyCreator last edited by

                                  Also ich habe den hue Adapter gar nicht installiert und betreibe auch keine Hue-Bridge … Bei mir gehen die Lichter über den ZigBee Stick.

                                  Denn das gesetzte Ziel ist es ja die ganzen separaten Bridge's aus der Hausautomation verschwinden zu lassen, so das alles direkt über den ioBroker

                                  gehändelt wird.

                                  Was muss ich jetzt also tun ... Bin mittlerweile ein bisschen verwirrt.

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    danw last edited by

                                    Setz dich ein wenig näher mit dem Skript auseinander.

                                    Am Anfang wird die colortemp abgefragt, aber wenn ich mich nicht verschaue, auch nicht weiter im Script verwendet.

                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      CrazyCreator last edited by

                                      Ich befürchte um so einen Code zu "lesen" fehlen mir die Kenntnisse.

                                      Ein HowTo für diese ganze Sache, die ja scheinbar nicht nur mich betrifft wäre eine coole Aktion.

                                      Ich persönlich verstehe vielleicht was du meinst oder mir sagen willst, aber dann ist auch schon Ende Gelände.

                                      Sorry … Dafür kann ich gut kochen 😉 ... Aber das hilft hier nicht.

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        danw last edited by

                                        Ist halt auch schwierig dir zu helfen, wenn du ein Custom-Setup hast, was nur wenige haben und dann fertige Lösungen verlangst.

                                        Ich habe dein Setup nicht und kann es aus der Ferne kaum nachvollziehen.

                                        1 Reply Last reply Reply Quote 0
                                        • C
                                          CrazyCreator last edited by

                                          Oh nein … Bloß nicht.

                                          Ich verlange gar nichts ... Ehrlich nicht. Was ich mir wünsche ist natürlich eine andere Sache.

                                          Die EierlegendeWollMilchSau will ja jeder irgendwie.

                                          Dabei denke ich das mein Setup gar nicht so exotisch ist.

                                          Ich suche ja auch grundprinzipiell nur nach einer praktikablen Verbindung von ZigBeeDevice zu Yahka ... Thats all 🙂

                                          Nur mal für's Protokoll, damit ich richtig ansetze:

                                          Ich erstelle mir 2 Scripte, mit dem oben gepostetem Inhalt und passe die Pfade an?

                                          Wird die von die abgesprochene Variable: hue vom Script erzeugt, oder muss ich die selber anlegen?

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            danw last edited by

                                            Vielleicht etwas zur Verdeutlichung, was da passiert:

                                            Yahka macht da nicht viel, sofern du keine Conversion Function eingerichtet hast, mit den Werten die du per HomeKit eingibst.

                                            Soll es ja auch nicht.

                                            Das Apple nunmal den Wert in einer anderen Einheit/Berechnung übergibt, kann weder dein Lichtmodul (wie auch immer angeschlossen) oder Yahka (ohne Conversion Function) beeinflussen.

                                            Das "hue" und das "Colortemp" ist also nicht das, was Yahka vorgibt, sondern das, was du im HomeKit für eine Farbe und/oder Farbtemperatur einstellst. Der Rohwert.

                                            Soviel erstmal zur grundlegenden Erklärung.

                                            Die Verknüpfung zwischen beiden Werten muss nun, wo auch immer - ob nun im Yahka mit einer Conversion Function oder per Javascript -, passieren.

                                            Aus dem HSV Wert (also hue, saturation, brightness) wird der RGB (also Red,Green,Blue) errechnet, zwischendurch in temporäre Objekte geschrieben, und am Ende gesetzt.

                                            In deiner Yahka Config setzt du Colortemp und Brightness direkt auf das zigbee Objekt was korrekt ist, wenn Colortemp zwischen 140 und 500 sein muss und Brightness 0-100.

                                            Da Apple den hue Wert, also Color, in Mired übergibt (wie auch Colortemp zwischen 140 und 500 also) muss dieser dann genommen werden und in RGB umgerechnet werden.

                                            Anpassung von Colortemp und Brightness sollte also schon funktionieren.

                                            Jetzt muss halt einzeln geschaut werden, wo das Problem liegt.

                                            Das Script sieht nicht falsch aus. Deswegen füge doch mal bitte vor die Zeile

                                            setState ("javascript.0.scriptEnabled.logic.Licht.r1"/*r1*/, Math.round(255 * r));
                                            

                                            Die Zeilen````
                                            log(r + " " + Math.round(255 * r));
                                            log(g + " " + Math.round(255 * g));
                                            log(b + " " + Math.round(255 * b));

                                            hinzu.
                                            
                                            So können wir schauen, was die Variablen enthalten, bevor es dem temporären Objekt hinzugefügt wird.
                                            
                                            Das zweite Script reagiert auf eine Änderung von einer der drei temporären Objekte, rechnet es in RGB um und setzt es in das color Objekt vom zigbee.
                                            
                                            Da gibt es schon eine Logzeile ("log('#' + toHex(R) + toHex(G) + toHex(B));").
                                            
                                            Was gibt denn das alles aus, wenn du die Farbe anpasst?
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            913
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            28
                                            90
                                            19766
                                            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