Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Regenbogen Script

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Regenbogen Script

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

      ich hab hier zwei kleine Scripte wo einmal alle Lampen/Gruppe zeigleich die Farbewechselt und dann noch ein wo 3 Leuchten im Kreis nach einander die Farbe wechselt

      alle Lampen

      function HSVtoRGB(h, s, v) {
        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;
        }
      
        return {
          r: Math.round(r * 255),
          g: Math.round(g * 255),
          b: Math.round(b * 255)
        };
      }
      
      function componentToHex(c) {
        var hex = c.toString(16);
        return hex.length == 1 ? "0" + hex : hex;
      }
      
      function rgbToHex(r, g, b) {
        return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
      }
      
      function sleep(ms) {
        return new Promise((fnResolve) => {
          setTimeout(() => fnResolve(), ms);
        });
      }
      
      var speed = 100;
      var refreshRate = 1500; //new color every 10ms
      var i = 0;
      
      var loop = async function() {
          while (getState('0_userdata.0.Regenbogen').val == true) {
          await sleep(refreshRate);
          var color = HSVtoRGB(i, 1, 1);
          var hexColor = rgbToHex(color.r, color.g, color.b);
      
          setState('zigbee.0.group_4.color', hexColor) ;
      
          i += 1 / 10000 * speed;
          if (i > 1) {
            i = 0;
          }
        }
      };
      
      loop();
      

      und hier wo man 3 Leuchten hat

      function HSVtoRGB(h, s, v) {
        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;
        }
      
        return {
          r: Math.round(r * 255),
          g: Math.round(g * 255),
          b: Math.round(b * 255)
        };
      }
      
      function componentToHex(c) {
        var hex = c.toString(16);
        return hex.length == 1 ? "0" + hex : hex;
      }
      
      function rgbToHex(r, g, b) {
        return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
      }
      
      function sleep(ms) {
        return new Promise((fnResolve) => {
          setTimeout(() => fnResolve(), ms);
        });
      }
      
      var speed = 150;
      var refreshRate = 2000; //new color every 10ms
      var i1 = 0;
      var i2 = 0.2;
      var i3 = 0.4;
      
      var loop = async function() {
          while (getState('0_userdata.0.Regenbogen').val == true) {
          await sleep(refreshRate);
          var color1 = HSVtoRGB(i1, 1, 1);
          var hexColor1 = rgbToHex(color1.r, color1.g, color1.b);
      
      var color2 = HSVtoRGB(i2, 1, 1);
          var hexColor2 = rgbToHex(color2.r, color2.g, color2.b);
      
      var color3 = HSVtoRGB(i3, 1, 1);
          var hexColor3 = rgbToHex(color3.r, color3.g, color3.b);
          setState('zigbee.0.b40ecfd053650000.color', hexColor1) ;
      
          setState('zigbee.0.b40ecfd139860000.color', hexColor2) ;
      
          setState('zigbee.0.b40ecfd080ef0000.color', hexColor3) ;
      
          i1 += 1 / 10000 * speed;
          if (i1 > 1) {
            i1 = 0;
          }
      
       i2 += 1 / 10000 * speed;
          if (i2 > 1) {
            i2 = 0;
          }
       i3 += 1 / 10000 * speed;
          if (i3 > 1) {
            i3 = 0;
          }
        }
      };
      
      loop();
      
      Asgothian 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @leovandavart last edited by

        @leovandavart zumindest bei den meisten Zigbee-Leuchten (leider aktuell nicht bei den Gruppen) geht das ganze viel einfacher:
        Es gibt den Datenpunkt hue_move. Wenn man hier eine Zahl (<>0) einträgt dann gibt die Zahl die Geschwindigkeit vor mit der die Farbe gewechselt wird. Das gilt natürlich nur für Geräte die auch per hue/sat eingestellt werden können - das sollten inzwischen aber die meisten sein.

        Zum anhalten einfach den Wert 0 eintragen.

        leovandavart 2 Replies Last reply Reply Quote 2
        • leovandavart
          leovandavart @Asgothian last edited by

          @asgothian meine haben das halt nicht und das ist daraus geworden

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

            @asgothian ich habe mal nachgeforscht nach dem hue/sat wert angeblich haben die das aber der zigbee adapter hat die leuchten falsch erkannt

            kein plan wie ich ich das richtig hinbekomme oder wie ich das anders programieren kann

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

              @leovandavart sagte in Regenbogen Script:

              @asgothian ich habe mal nachgeforscht nach dem hue/sat wert angeblich haben die das aber der zigbee adapter hat die leuchten falsch erkannt

              kein plan wie ich ich das richtig hinbekomme oder wie ich das anders programieren kann

              Du kannst die Lampen in die ausschlussliste eintragen - (eigene Seite in der Adapter Konfiguration), danach den Adapter neu starten und einen ‘State cleanup’ durchführen.

              Danach solltest Du die passenden datenpunkte haben.

              A.

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

                @asgothian hat nix gebracht werden immer noch mit der falschen lampe erkannt

                laut zigbee adapter eine e27 leuchtmittel aber es ist eine gu10

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

                  @leovandavart poste mal die Details zu dem Gerät. (Bezeichnung, zigbee-Model usw.)

                  A.

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

                    @asgothian dies wird erkannt in zigbee p1.png

                    es ist eine ewlink gu10 smart

                    und eigendlich sollte es diese sein https://www.zigbee2mqtt.io/devices/GL-S-007Z.html

                    kann man nicht probieren eine payload zu senden ? ich muss sagen ich hab davon leider null plan

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

                      @leovandavart sagte in Regenbogen Script:

                      @asgothian dies wird erkannt in zigbee p1.png

                      es ist eine ewlink gu10 smart

                      und eigendlich sollte es diese sein https://www.zigbee2mqtt.io/devices/GL-S-007Z.html

                      Lt. Der Daten die die Leuchte schickt ist die Zuordnung im Adapter korrekt. Eine Gledopto Leuchte ist es sicher nicht - das sagt auch schon der Hersteller den die Leuchte meldet (eWeLink)

                      kann man nicht probieren eine payload zu senden ? ich muss sagen ich hab davon leider null plan

                      Das kannst du auf verschiedene Arten versuchen. Zunächst solltest du schauen ob die Leuchte Hue überhaupt unterstützt:
                      0b2f672b-688e-4f03-88b1-52305903e90c-image.png

                      Zunächst musst du die Leuchte auf Farbe einstellen. Dann kannst du die folgenden Schritte versuchen.

                      Dazu öffnest du die Konfiguration des Zigbee Adapters (nicht den Tab), und wechselst auf die Entwickler Ansicht.

                      An Stelle des gelben im Screenshot musst du deine Leuchte auswählen.
                      An Stelle des roten gehört 1 rein - der Endpunkt der den Cluster unterstützen soll
                      Dann auf ausführen flicken und 30 s warten ob es im schwarzen Feld eine Meldung gibt.

                      Diese mal posten. Wenn da success steht kannst du versuchen den currentHue auch zu beschreiben (umstellen auf Write, needs value auswählen, wert angeben (0<x<350) und schauen ob du die Farbe anpassen kannst.

                      Mit dem Ergebnis können wir dann weiter schauen.

                      A.
                      P.s. Willkommen im Wahnsinn von TuYa. Gleiche Dinge melden sich unterschiedlich, und unterschiedliche Dinge melden sich gleich.
                      Nachtrag; TuYa und ich werden keine Freunde, da viele TuYa Geräte Support von zigbee clustern melden, diesen aber unvollständig implementieren und statt dessen am Standard vorbei einen sonder weg gehen. Insbesondere bei leuchten ist das doof.
                      A.

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

                        @asgothian leider kommt immer

                        undefined "attributes.map is not a function"

                        aber die meldung kommt auch bei hue lampen die das untersützen

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

                          @leovandavart sagte in Regenbogen Script:

                          @asgothian leider kommt immer

                          undefined "attributes.map is not a function"

                          aber die meldung kommt auch bei hue lampen die das untersützen

                          Mist. Das muss ich mir im Code anschauen - das kann ich aber in den nächsten 6 Wochen wahrscheinlich nicht.

                          Wie schon oben geschrieben gehe ich davon aus das die Leuchte zwar von außen wie die gledopto als sieht, aber im inneren genau die zigbee Steuereinheit verbaut hat wie die Erwerber Leuchte.

                          A.
                          Nachtrag: ein Issue auf github ist erstellt.

                          A.

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

                            @asgothian okay weiß ich erst mal bescheid

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            988
                            Online

                            31.8k
                            Users

                            80.0k
                            Topics

                            1.3m
                            Posts

                            2
                            12
                            570
                            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