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. JavaScript
  5. setStateDelayed - Fragen zur Funktion

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    228

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

setStateDelayed - Fragen zur Funktion

Geplant Angeheftet Gesperrt Verschoben JavaScript
16 Beiträge 3 Kommentatoren 535 Aufrufe 2 Watching
  • Ä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.
  • paul53P paul53

    @hardy sagte: Lasse ich den Timer nicht neu starten, dann habe ich das Problem, dass es sein kann, das der Ein- und Ausschaltbefehl zu undefinierten Zeitpunkten geschrieben werden.

    In deinem Beispiel wird setStatedelayed() alle 10 s aufgerufen, wenn die Bedingungen erfüllt sind. Das Schreiben des Wertes erfolgt erstmalig nach 60 s und dann jede weitere 10 s. Es laufen 6 Timer parallel.

    @hardy sagte in setStateDelayed - Fragen zur Funktion:

    Lasse ich den Timer bei jedem Aufruf neu starten, dann schaltet der Befehl meinen Ausgang nicht.

    Der 60-s-Timer wird alle 10 s gestoppt, kann also nie ablaufen.

    @hardy sagte in setStateDelayed - Fragen zur Funktion:

    Hier mal noch das Script

    Wozu die Verzögerungen? Die Hysterese ist doch groß genug, um zu häufiges Schalten zu vermeiden.

    L Offline
    L Offline
    Laser
    schrieb am zuletzt editiert von
    #3

    @paul53 ich habe ebenfalls ein Problem mit setstatedelayed
    Ich möchte einen Ausgang für eine Zeit setzen und dann wieder zurücksetzen. Funktioniert aber nicht:
    Console.log nur, um zu sehen, das das überhaupt angestoßen wird)

    function einschalten() {
        setState('rpi2.0.gpio.22.state'/**/,true);  //  true ist einschalten
        setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/,true,2000,false, function(){console.log("ein")}); 
      
    };  // Ende einschalten
    
    paul53P 1 Antwort Letzte Antwort
    0
    • L Laser

      @paul53 ich habe ebenfalls ein Problem mit setstatedelayed
      Ich möchte einen Ausgang für eine Zeit setzen und dann wieder zurücksetzen. Funktioniert aber nicht:
      Console.log nur, um zu sehen, das das überhaupt angestoßen wird)

      function einschalten() {
          setState('rpi2.0.gpio.22.state'/**/,true);  //  true ist einschalten
          setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/,true,2000,false, function(){console.log("ein")}); 
        
      };  // Ende einschalten
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #4

      @laser sagte: Ausgang für eine Zeit setzen und dann wieder zurücksetzen.

      Dein setStateDelayed() schaltet nur "power_on" um 2 s verzögert ein.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      L 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @laser sagte: Ausgang für eine Zeit setzen und dann wieder zurücksetzen.

        Dein setStateDelayed() schaltet nur "power_on" um 2 s verzögert ein.

        L Offline
        L Offline
        Laser
        schrieb am zuletzt editiert von Laser
        #5

        @paul53 Ja, das merke ich. Und wie schalte ich wieder aus? Hatte gehofft, das passiert mit dem "false"

        paul53P 1 Antwort Letzte Antwort
        0
        • L Laser

          @paul53 Ja, das merke ich. Und wie schalte ich wieder aus? Hatte gehofft, das passiert mit dem "false"

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #6

          @laser sagte: wie schalte ich wieder aus?

          Was soll wann wieder ausgeschaltet werden? GPIO22 oder "power_on"?

          @laser sagte in setStateDelayed - Fragen zur Funktion:

          Hatte gehofft, das passiert mit dem "false"

          Das false hinter der Verzögerungszeit bedeutet, dass der Timer bei erneutem Aufruf nicht gestoppt wird.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          L 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @laser sagte: wie schalte ich wieder aus?

            Was soll wann wieder ausgeschaltet werden? GPIO22 oder "power_on"?

            @laser sagte in setStateDelayed - Fragen zur Funktion:

            Hatte gehofft, das passiert mit dem "false"

            Das false hinter der Verzögerungszeit bedeutet, dass der Timer bei erneutem Aufruf nicht gestoppt wird.

            L Offline
            L Offline
            Laser
            schrieb am zuletzt editiert von
            #7

            @paul53
            power_on

            paul53P 1 Antwort Letzte Antwort
            0
            • L Laser

              @paul53
              power_on

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #8

              @laser
              Wenn "power_on" verzögert ausgeschaltet werden soll, muss false (anstelle von true) vor der Verzögerungszeit verwendet werden.

                  setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/, false, 2000, false, function() {
                      console.log("aus")
                  }); 
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              L 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @laser
                Wenn "power_on" verzögert ausgeschaltet werden soll, muss false (anstelle von true) vor der Verzögerungszeit verwendet werden.

                    setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/, false, 2000, false, function() {
                        console.log("aus")
                    }); 
                
                L Offline
                L Offline
                Laser
                schrieb am zuletzt editiert von Laser
                #9

                @paul53 versuche es jetzt so:

                function einschalten() {
                    setState('rpi2.0.gpio.22.state'/**/,true);  //  true ist einschalten Relais
                    setState('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,true); 
                    setStateDelayed('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,false,6000); 
                };  // Ende einschalten
                

                EDIT: das ging so schnell, daß ich es in "Objekte" nicht gesehen habe. Bin jetzt auf 6000 gegangen.

                L 1 Antwort Letzte Antwort
                0
                • L Laser

                  @paul53 versuche es jetzt so:

                  function einschalten() {
                      setState('rpi2.0.gpio.22.state'/**/,true);  //  true ist einschalten Relais
                      setState('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,true); 
                      setStateDelayed('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,false,6000); 
                  };  // Ende einschalten
                  

                  EDIT: das ging so schnell, daß ich es in "Objekte" nicht gesehen habe. Bin jetzt auf 6000 gegangen.

                  L Offline
                  L Offline
                  Laser
                  schrieb am zuletzt editiert von Laser
                  #10

                  @paul53 zweimal "delayed" geht wohl nicht? Nach Einschalten über Relais muß der Inverter erst hochlaufen...
                  und: gibt es einen Höchstwert für Delay?

                  function einschalten() {
                    //  setState('rpi2.0.gpio.22.state'/**/,true);  //  true ist einschalten Relais
                      setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/,true,5000); 
                      setStateDelayed('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,false,8000); 
                  };  // Ende einschalten
                  
                  paul53P 1 Antwort Letzte Antwort
                  0
                  • L Laser

                    @paul53 zweimal "delayed" geht wohl nicht? Nach Einschalten über Relais muß der Inverter erst hochlaufen...
                    und: gibt es einen Höchstwert für Delay?

                    function einschalten() {
                      //  setState('rpi2.0.gpio.22.state'/**/,true);  //  true ist einschalten Relais
                        setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/,true,5000); 
                        setStateDelayed('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,false,8000); 
                    };  // Ende einschalten
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #11

                    @laser sagte: zweimal "delayed" geht wohl nicht?

                    Sollte funktionieren. Ich würde allerdings setTimeout() bevorzugen.

                    @laser sagte in setStateDelayed - Fragen zur Funktion:

                    gibt es einen Höchstwert für Delay?

                    Ja, der ist aber sehr hoch.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    L 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @laser sagte: zweimal "delayed" geht wohl nicht?

                      Sollte funktionieren. Ich würde allerdings setTimeout() bevorzugen.

                      @laser sagte in setStateDelayed - Fragen zur Funktion:

                      gibt es einen Höchstwert für Delay?

                      Ja, der ist aber sehr hoch.

                      L Offline
                      L Offline
                      Laser
                      schrieb am zuletzt editiert von Laser
                      #12

                      @paul53 das setzen funktioniert nicht. Erst wenn ich das zweite "setstateDelayed" auskommentiere, wird gesetzt nach Ablauf der Zeit. "setTimeout" muß ich mir ansehen.

                      
                      function einschalten() {
                        //  setState('rpi2.0.gpio.22.state'/**/,true);  //  true ist einschalten Relais
                          setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/,true,5000); 
                       // setStateDelayed('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,false,8000); 
                      };  // Ende einschalten
                      
                      paul53P 1 Antwort Letzte Antwort
                      0
                      • L Laser

                        @paul53 das setzen funktioniert nicht. Erst wenn ich das zweite "setstateDelayed" auskommentiere, wird gesetzt nach Ablauf der Zeit. "setTimeout" muß ich mir ansehen.

                        
                        function einschalten() {
                          //  setState('rpi2.0.gpio.22.state'/**/,true);  //  true ist einschalten Relais
                            setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/,true,5000); 
                         // setStateDelayed('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,false,8000); 
                        };  // Ende einschalten
                        
                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #13

                        @laser sagte: "setTimeout" muß ich mir ansehen.

                        function einschalten() {
                            setState('rpi2.0.gpio.22.state'/**/,true);  //  true ist einschalten Relais
                            setTimeout(function() {
                                setState('opendtu.1.114184537824.power_control.power_on'/**/, true); 
                                setStateDelayed('opendtu.1.114184537824.power_control.power_on', false, 3000); // 3 s Impuls
                            }, 5000); // 5 s Hochlauf
                        }; // Ende einschalten
                        

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        L 1 Antwort Letzte Antwort
                        1
                        • paul53P paul53

                          @laser sagte: "setTimeout" muß ich mir ansehen.

                          function einschalten() {
                              setState('rpi2.0.gpio.22.state'/**/,true);  //  true ist einschalten Relais
                              setTimeout(function() {
                                  setState('opendtu.1.114184537824.power_control.power_on'/**/, true); 
                                  setStateDelayed('opendtu.1.114184537824.power_control.power_on', false, 3000); // 3 s Impuls
                              }, 5000); // 5 s Hochlauf
                          }; // Ende einschalten
                          
                          L Offline
                          L Offline
                          Laser
                          schrieb am zuletzt editiert von Laser
                          #14

                          @paul53 Danke, das Absetzen der Impulse klappt so. Muß nur noch die Zeiten für den Inverter- Hochlauf hinbekommen, damit die Impulse auch wirken.
                          EDIT: Klappt auch mit dem Hochlauf abwarten... ,40000

                          L 1 Antwort Letzte Antwort
                          0
                          • L Laser

                            @paul53 Danke, das Absetzen der Impulse klappt so. Muß nur noch die Zeiten für den Inverter- Hochlauf hinbekommen, damit die Impulse auch wirken.
                            EDIT: Klappt auch mit dem Hochlauf abwarten... ,40000

                            L Offline
                            L Offline
                            Laser
                            schrieb am zuletzt editiert von Laser
                            #15

                            @paul53
                            irgendwelche Nebenwirkungen hat das aber nicht (Unterbrechen von JS- Abarbeitung für die timeout-Zeit?)

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • L Laser

                              @paul53
                              irgendwelche Nebenwirkungen hat das aber nicht (Unterbrechen von JS- Abarbeitung für die timeout-Zeit?)

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #16

                              @laser sagte: Unterbrechen von JS- Abarbeitung für die timeout-Zeit?

                              Nein, setTimeout() wird asynchron ausgeführt.

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

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


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              381

                              Online

                              32.5k

                              Benutzer

                              81.9k

                              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