Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Einschalten mit Nachlauf

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    [gelöst]Einschalten mit Nachlauf

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 last edited by

      @tempestas:

      		timer = getState(idDauer).val * 60 * 1000;  // Dauer in Stunden mal 60 Minuten mal 1000 Milisekunden
      		setTimeout( fAusschalten, timer);
      		}
      	else {
      	 clearTimeout(timer);
      	 timer = null;
      	 }	
      ```` `  
      

      Das funktioniert so nicht, denn die Variable timer ist ein Timer-Objekt und keine Zeit. Korrektur:

         var ontime = getState(idDauer).val * 3600000;  // Dauer in Stunden mal 3600 Sekunden mal 1000 Milisekunden
         timer = setTimeout(fAusschalten, ontime);
         } else {
            clearTimeout(timer);
            timer = null;
         }
      
      1 Reply Last reply Reply Quote 0
      • T
        tempestas last edited by

        grml 🙂

        irgendwann lerne ich das noch. danke für die Korrektur; ich übernehme sie gleich mal oben ins Skript

        1 Reply Last reply Reply Quote 0
        • T
          thomasSC last edited by

          Vielen Dank hat funktioniert!!

          1 Reply Last reply Reply Quote 0
          • T
            tempestas last edited by

            Dann setze bitte im ersten Posting das Topic auf [gelöst].

            Danke

            1 Reply Last reply Reply Quote 0
            • T
              thomasSC last edited by

              muss jetzt doch nochmal nachhaken. habe das script jetzt nochmal getestet. ich kann einschalten mit "nachlaufe" zwischen 1 und 24 h . nur ich kann nicht vorzeitig abbrechen wenn ich den Schalter wieder auf aus stelle. Ich hätte war eine Idee mit "und-oder" Geschichten aber ich kann kein javascript 🙂 maximal blocky.

              1 Reply Last reply Reply Quote 0
              • D
                DeepCore last edited by

                Da es sich bei der Frage um Homematic handelt, gibt es noch einen anderen Weg:

                setState('hm-rpc.0.xEQxxxxxxx.1.ON_TIME', 300, function() {
                    setStateDelayed("hm-rpc.0.xEQxxxxxxx.1.STATE", true, 100);
                });
                

                Als erstes wird die Einschaltdauer in Sekunden übermittelt, und im Callback dann der Aktor eingeschaltet.

                Hat den Vorteil, dass sich der Aktor auch abschaltet wenn nach dem Einschalten kein Funkkontakt mehr bestehen würde.

                1 Reply Last reply Reply Quote 0
                • T
                  tempestas last edited by

                  Setze bitte bei der else Anweisung statt des "timer = null" ein fAusschalten (); ein

                  Habs oben angepasst

                  1 Reply Last reply Reply Quote 0
                  • T
                    thomasSC last edited by

                    Jetzt ists perfekt, danke.

                    1 Reply Last reply Reply Quote 0
                    • K
                      karstent last edited by

                      Hallo,

                      jetzt habe auch mal eine Frage zum obigen Script. ich möchte gerne 2 Aktoren schalten.

                      Reicht es wenn ich die Zeile

                      "var idAktor = XXXXXXXXXXXXXXXXXX ;"

                      kopiere und darunter in einer neuen Zeile einfüge.

                      also z.B.:

                      var idAktor = "hm-rpc.0.OEQ0098506.2.STATE"/Poolpumpe.STATE/ ;

                      var idAktor = "hm-rpc.0.OEQ0098506.3.STATE"/Clorinator.STATE/ ;

                      Oder wie muss ich da vorgehen. Ich hatte es in der Kombination versucht doch nur die untere Zeile wird "geschaltet".

                      Über ein wenig Hilfe wäre ich dankbar.

                      1 Reply Last reply Reply Quote 0
                      • R
                        ReverZ last edited by

                        Ist zwar schon länger her aber falls jemand hier mal drüber stolpert:

                        Klar wird nur der zweite Aktor geschaltet - du überschriebst ja auch die Variable mit dem zweiten Statement:

                        var idAktor = "hm-rpc.0.OEQ0098506.2.STATE"/Poolpumpe.STATE/ ;

                        var idAktor = "hm-rpc.0.OEQ0098506.3.STATE"/Clorinator.STATE/ ;

                        Du musst dem zweiten Aktor dann schon eine eigene Variable spendieren:

                        var idAktor1 = "hm-rpc.0.OEQ0098506.2.STATE"/Poolpumpe.STATE/ ;

                        var idAktor2 = "hm-rpc.0.OEQ0098506.3.STATE"/Clorinator.STATE/ ;

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        459
                        Online

                        32.1k
                        Users

                        80.7k
                        Topics

                        1.3m
                        Posts

                        6
                        12
                        1948
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo