Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Problem beim Skript für Farbwechsel mit Hue

NEWS

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

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

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

Problem beim Skript für Farbwechsel mit Hue

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 2 Kommentatoren 1.3k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Offline
    J Offline
    Juliri
    schrieb am zuletzt editiert von
    #1

    Hallo, ich habe versucht ein Skript zu bauen, sodass meine Hue-Lampe regelmäßig die Farbe wechselt. Das Skript sieht wie folgt aus

    ~~![](</s><URL url=)http://fs1.directupload.net/images/180324/xmc36zoz.jpg" />

    Aus irgendein Grund wechselt das Licht nur zweimal, sobald die Hue angschaltet wird und das wars dann. Jemand eine Idee wo der Denkfehler ist?~~

    1 Antwort Letzte Antwort
    0
    • BuZZyB Offline
      BuZZyB Offline
      BuZZy
      schrieb am zuletzt editiert von
      #2

      Kannst du mal den Javascript-Code zeigen den dieses Blockly "produziert" hat?

      Gruß

      1 Antwort Letzte Antwort
      0
      • J Offline
        J Offline
        Juliri
        schrieb am zuletzt editiert von
        #3

        Der Skript sieht wie folgt aus:

        ![](</s><URL url=)http://fs1.directupload.net/images/180326/zjnmxgjg.jpg" />

        1 Antwort Letzte Antwort
        0
        • BuZZyB Offline
          BuZZyB Offline
          BuZZy
          schrieb am zuletzt editiert von
          #4

          Okay, hier ist dein Denkfehler:

          setStateDelayed ist gültig ab SOFORT bei ausführen des Befehls bzw. die Zeit läuft sofort wenn der setStateDelayed Befehl abgesetzt wird.

          In deinem geposteten Script läuft es ungefähr so:

          Innerhalb von 1 Sekunde läuft die while schleife 50 mal durch.

          Du setzt also innerhalb von einer Sekunde sehr sehr viele setStateDelayed(..,1000)..

          Also um 00:00:00.000 das erste mal

          dann um 00:00:00.020 das zweite mal

          dann um 00:00:00.040 das dritte mal..

          Und die 1000 ms Verzögerung bezieht sich immer auf die Zeit wann das setStateDelayed gesetzt wurde.

          Ausgehend von dem oben genannten Beispiel feuerst du also unglaublich viele setStateDelayed Befehle in einer wahnsinns Geschwindigkeit ab..

          Dann wird der Datenpunkt gesetzt um 00:00:01.000 der zweite getStateDelayed läuft ab um 00:00:01.020 der dritte um 00:00:01.040 (immer 1000 ms nach dem du den setStateDelayed ausgelöst hast).

          Du hast also nicht 1 Sekunde Pause zwischen jedem setState.. Sondern nur so viel Pause wie das Script braucht um die while loop EIN mal zu durchlaufen - weil die Schleife dann sofort wieder von vorne läuft..

          Ich hoffe das war einigermaßen verständlich ausgedrückt.. :lol:

          Bei dieser Masse an Daten wird hue wahrscheinlich einfach "dicht" machen..

          Ich würde hier mit einem schedule arbeiten..

          Also so:

          var sched = null;
          
          function mathRandomInt(a, b) {
              if (a > b) {
                  var c = a;
                  a = b;
                  b = c;
              }
              return Math.floor(Math.random() * (b - a + 1) + a);
          }
          
          on({id: "hue.0.Phillips_hue.Innr_1.on", change: 'ne'}, function (obj) {
              if (obj.newState.val) {
                  sched = schedule("*/1 * * * * *", function () {
                          setState("hue.0.Phillips_hue.Innr_1.b", (mathRandomInt(0, 255)));
                          setState("hue.0.Phillips_hue.Innr_1.g", (mathRandomInt(0, 255)));
                          setState("hue.0.Phillips_hue.Innr_1.r", (mathRandomInt(0, 255)));
                      });
              } else {
                  if (sched) clearSchedule(sched);
              }
          });
          

          ….

          Wenn das nicht funktioniert ist 1 Sekunde eventuell auch noch zu viel für hue.. Dann kannst du auf "alle 5 Sekunden" erhöhen..

          Also stattsched = schedule("*/1 * * * * *", function () {dann````
          sched = schedule("*/5 * * * * *", function () {

          
          Gruß
          1 Antwort Letzte Antwort
          0
          • J Offline
            J Offline
            Juliri
            schrieb am zuletzt editiert von
            #5

            hmm also dein Skript hab ich versucht, es regt sich da allerdings rein gar nix ^^

            Ich hab mir in der Zeit mal ein zweites Skript mit Blockly gebastelt. Das funktioniert soweit. Allerdings ist die Problematik, dass das Objekt Philips_hue.Innr_r1.b (Der der die blaue Farbe der LED steuert) auch die Helligkeit ändert.

            Durch einfügen vom Objekt Helligkeit_Wohnzimmer. Springt die Helligkeit zwar wieder auf den Ursprungswert zurück. Jedoch erhöht sich die Helligkeit einmal auf 100% und fällt dann runter, was ein unschönen "Blitz"-Effekt erzeugt.

            Wer eine Idee wieso Philips_hue.Innr_r1.b die Änderung der Helligkeit (Philips_hue.Innr_r1.bri bzw. Philips_hue.Innr_r1.level) vornimmt?

            ~~![](</s><URL url=)http://fs1.directupload.net/images/180331/yaqgnxrd.jpg" />

            ![](</s><URL url=)http://fs1.directupload.net/images/180331/dqpncdvx.jpg" />~~

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            832

            Online

            32.4k

            Benutzer

            81.5k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe