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. Best practice: Verzögert schalten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Best practice: Verzögert schalten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
6 Beiträge 4 Kommentatoren 1.8k 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.
  • htreckslerH Offline
    htreckslerH Offline
    htrecksler
    Forum Testing
    schrieb am zuletzt editiert von
    #1

    in den Programmen auf der CCU konnte man Programme mit einer Verzögerung ausführen. Ich habe das genutzt um z. B. den Nachtmodus zu aktivieren.

    Da wurden dann Lichter mit einer Verzögerung von 10 - 20 Minuten gestaffelt ausgeschaltet.

    Da ich die Programme von der CCU komplett durch Scripte ersetzen möchte jetzt die Frage an die Allgemeinheit.

    Wie macht man so etwas am besten in einem Script. Für kurze Verzögerungen kann man sicher den setTimeout nutzen. Aber was macht man bei Verzögerungen von bis zu 20 Minuten oder mehr?

    Hat jemand einen Tipp für mich?

    Gruss Hermann

    ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

    1 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #2

      setTimeout ist auch für 20 Minuten sehr geeignet.

      setTimeout(function () {
          log('Timeout of 20 minutes');
      }, 20 * 60000);
      
      
      1 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        rascal
        schrieb am zuletzt editiert von
        #3

        hey,

        frage, warum führt er die Funktion nicht verzögert aus? was ist falsch?

        Danke für die Hilfe im Voraus

        var temp_switch = 2.5; //über welcher Differenztemperatur die Sonne scheint
        var timer_ein;
        var timer_aus;
        
        function sonne(dp)
        {
            if(dp=="ein") log("-------------------------------SONNE SCHEINT - Timer: ", "info");
                else log("-------------------------------SONNE SCHEINT NICHT", "info");
        }
        
        on({id: "hm-rpc.0.LEQ0244813.3.TEMPERATURE"/*Sonnensensor_3.TEMPERATURE*/, valGt: temp_switch}, function() {
            log("-------------------------------SONNE SCHEINT HAT GETRIGGERT - Timer: ", "info");
            setTimeout(sonne("ein"), 30000);
        });
        on({id: "hm-rpc.0.LEQ0244813.3.TEMPERATURE"/*Sonnensensor_3.TEMPERATURE*/, valLe: temp_switch}, function() {
            log("-------------------------------SONNE SCHEINT NICHT HAT GETRIGGERT", "info");
            setTimeout(sonne("ein"), 90000);
        });
        
        1 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #4

          @rascal:

          hey,

          frage, warum führt er die Funktion nicht verzögert aus? was ist falsch?

          Danke für die Hilfe im Voraus

          var temp_switch = 2.5; //über welcher Differenztemperatur die Sonne scheint
          var timer_ein;
          var timer_aus;
          
          function sonne(dp)
          {
              if(dp=="ein") log("-------------------------------SONNE SCHEINT - Timer: ", "info");
                  else log("-------------------------------SONNE SCHEINT NICHT", "info");
          }
          
          on({id: "hm-rpc.0.LEQ0244813.3.TEMPERATURE"/*Sonnensensor_3.TEMPERATURE*/, valGt: temp_switch}, function() {
              log("-------------------------------SONNE SCHEINT HAT GETRIGGERT - Timer: ", "info");
              setTimeout(sonne("ein"), 30000);
          });
          on({id: "hm-rpc.0.LEQ0244813.3.TEMPERATURE"/*Sonnensensor_3.TEMPERATURE*/, valLe: temp_switch}, function() {
              log("-------------------------------SONNE SCHEINT NICHT HAT GETRIGGERT", "info");
              setTimeout(sonne("ein"), 90000);
          });
          ```` `  
          
          setTimeout(sonne, 30000, "ein");
          

          oder

          setTimeout(function () {
          	sonne("ein");
          }, 30000);
          
          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            mabas
            schrieb am zuletzt editiert von
            #5

            Für deinen Einsatzzweck vielleicht nicht geeignet, aber für die, die diesen Beitrag noch mal finden mögen:

            Für die, die Geräte zeitversetzt starten wollen, gibt es auch die imho sehr elegante setStateDelayed Funktion. Ich benutze die sehr gerne in Verbindung mit einer Zufallszahl, um die Funkhygiene bei meiner Homematic zu wahren. So fahren meine Rollläden alle zeitlich versetzt in einem Zeitraum von 30 Sekunden herunter.

            setStateDelayed("hm-rpc.0.MEQ0516226.1.LEVEL"/*Rollladen OG 3 Arbeitszimmer Ost.LEVEL*/, 100, Math.floor(Math.random()*30000));
            

            Produktiv mit ioBroker/vis auf ASRock Beebox

            >40 Homematic-Geräte, Sonos, 3xFernseher, Lightify, Hue, Yahka, Weinor Markise, Sonnenbatterie, Feinstaubsensor, bisher erst ein 9" Display mit vis

            1 Antwort Letzte Antwort
            0
            • R Offline
              R Offline
              rascal
              schrieb am zuletzt editiert von
              #6

              die Random Funktion ist gut zu kennen, danke.

              Bei mir hat jeder Rolladen seine eigene Verzögerungszeit fix zugewiesen :)

              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

              400

              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