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
    275

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

setStateDelayed - Fragen zur Funktion

Geplant Angeheftet Gesperrt Verschoben JavaScript
16 Beiträge 3 Kommentatoren 536 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.
  • 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

                            710

                            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