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. [Frage] Wie 5 Sekundentakt innerhalb einer If-Bedingung

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    946

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[Frage] Wie 5 Sekundentakt innerhalb einer If-Bedingung

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 4 Kommentatoren 720 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.
  • PeoplesP Offline
    PeoplesP Offline
    Peoples
    schrieb am zuletzt editiert von
    #1

    Guten Morgen,

    ich bräuchte mal wieder Hilfe, ich möchte in Abhängigkeit einer Variablen meine Yeelight Rgb-Lampen alle 8 Sekunden die Farbe wechseln lassen. Dazu habe ich eine kleine If-Bedingung, wird diese positiv ausgewertet möchte ich eben die Farben wechseln lassen, wird diese negativ ausgewertet wird eine voreingestellte Farbe zugewiesen.

    Ich bekomme es nun nicht hin dass der schedule Befehl nur bei "ja" ausgeführt und bei "nein" gestopt wird. Es wird zwar gestartet aber nicht gestoppt.

    Ich wollte bewusst den ganzen schedule Befehl in die If-Bedingung packen um bei ausgeschalteter Lampe nicht trotzdem alle 8 Sekunden einen Durchlauf zu haben. Anscheinend geht das jedoch nicht.

    Hier mal ein Auszug von dem Versuch der Umsetzung:

    //Sonstige Steuerungen
    //
    // Zufallsfarbe alle x sekunden im Wechsel
    on({id: "javascript.0.Yeelight.Automatischer_Farbwechsel"}, function (dp) {
        if(dp.state.val){
            schedule("*/8 * * * * *", function () {
                var min = 0;
                var max = 255;
                var r = Math.round(Math.random() * (max - min)) + min;
                var g = Math.round(Math.random() * (max - min)) + min;
                var b = Math.round(Math.random() * (max - min)) + min;
                log(r + ' ' + g + ' ' + b);
                setState("javascript.0.Yeelight.RGB_Lampe_1.rgb"/*RGB-Farbwerte*/, r + ' ' + g + ' ' + b);
                setState("javascript.0.Yeelight.RGB_Lampe_2.rgb"/*RGB-Farbwerte*/, r + ' ' + g + ' ' + b); 
            });
        }
        else{
            setState("javascript.0.Yeelight.RGB_Lampe_1.rgb"/*RGB-Farbwerte*/, '203 26 209');
            setState("javascript.0.Yeelight.RGB_Lampe_2.rgb"/*RGB-Farbwerte*/, '203 26 209'); 
        }
    });
    
    

    Hoffe jemand hat ne Idee

    Gruß

    Peoples

    Ich beantworte keine Fragen zu Themen via PN

    1 Antwort Letzte Antwort
    0
    • arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      das geht nicht

      ein schedule läuft systemseitig und das halt immer ..

      
      schedule("*/8 * * * * *", function () {
          if (getState('javascript.0.Yeelight.Automatischer_Farbwechsel').val) { 
      
                  var min = 0;
                  var max = 255;
                  var r = Math.round(Math.random() * (max - min)) + min;
                  var g = Math.round(Math.random() * (max - min)) + min;
                  var b = Math.round(Math.random() * (max - min)) + min;
                  log(r + ' ' + g + ' ' + b);
                  setState("javascript.0.Yeelight.RGB_Lampe_1.rgb"/*RGB-Farbwerte*/, r + ' ' + g + ' ' + b);
                  setState("javascript.0.Yeelight.RGB_Lampe_2.rgb"/*RGB-Farbwerte*/, r + ' ' + g + ' ' + b); 
      
          }
          else{
              setState("javascript.0.Yeelight.RGB_Lampe_1.rgb"/*RGB-Farbwerte*/, '203 26 209');
              setState("javascript.0.Yeelight.RGB_Lampe_2.rgb"/*RGB-Farbwerte*/, '203 26 209'); 
          }
      
      });
      

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      1 Antwort Letzte Antwort
      0
      • apollon77A Offline
        apollon77A Offline
        apollon77
        schrieb am zuletzt editiert von
        #3

        Das ist nicht ganz korrekt. Es geht.

        schedule gibt eine id zurück die man verwenden kann um das schedule zu stoppen.

        mySchedule = schedule(…);

        clearSchedule(mySchedule);

        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #4

          Naja oder eben setInterval und clearInterval.

          Gruß

          Pix

          EDIT VORSCHLAG:

          ! ````
          var interval = setInterval(farbwechsel, 8000);
          ! function farbwechsel() {
          var min = 0;
          var max = 255;
          var r = Math.round(Math.random() * (max - min)) + min;
          var g = Math.round(Math.random() * (max - min)) + min;
          var b = Math.round(Math.random() * (max - min)) + min;
          log(r + ' ' + g + ' ' + b);
          setState("javascript.0.Yeelight.RGB_Lampe_1.rgb"/RGB-Farbwerte/, r + ' ' + g + ' ' + b);
          setState("javascript.0.Yeelight.RGB_Lampe_2.rgb"/RGB-Farbwerte/, r + ' ' + g + ' ' + b);
          }
          ! on({id: "javascript.0.Yeelight.Automatischer_Farbwechsel"}, function (dp) {
          if (dp.state.val) {
          farbwechsel();
          } else {
          clearInterval(interval);
          setState("javascript.0.Yeelight.RGB_Lampe_1.rgb"/RGB-Farbwerte/, '203 26 209');
          setState("javascript.0.Yeelight.RGB_Lampe_2.rgb"/RGB-Farbwerte/, '203 26 209');
          }
          });

          >! Und schließlich sollte ein EIN/AUS der Lampe noch überwacht werden. Wenn aus, dann clearInterval

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Antwort Letzte Antwort
          0
          • PeoplesP Offline
            PeoplesP Offline
            Peoples
            schrieb am zuletzt editiert von
            #5

            Tausend Dank euch werde es gleich mal probieren

            Gruß

            Peoples

            Ich beantworte keine Fragen zu Themen via PN

            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

            688

            Online

            32.6k

            Benutzer

            82.2k

            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