Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Array funktioniert nicht [gelöst]

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Array funktioniert nicht [gelöst]

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

      'javascript.0.variables.Zeit_v_2'/*Zeit v 2*/
       
      var Zeit_v_2 = 0;
      var max = 4;
      var zeit = [10000, 60000, 60000, 120000, 120000];
       
      function counter() {
         if(Zeit_v_2 <= max)  Zeit_v_2++; 
         else Zeit_v_2 = 0;
         setState('javascript.0.variables.Zeit_v_2', Zeit_v_2, false);
      }
       
      setInterval(counter, zeit[Zeit_v_2]); 
      

      hi das Programm funktioniert so weit allerdings zählt es immer 10s mein array bewegt sich nicht. Was ist da das Problem?

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @lws.naja last edited by paul53

        @lws-naja sagte: Was ist da das Problem?

        setInterval() wird nur einmal bei Skript-Start aufgerufen mit der Variablen Zeit_v_2 = 0, die bei Start deklariert wurde.

        Versuche es mal so:

        function counter() {
           if(Zeit_v_2 <= max)  Zeit_v_2++; 
           else Zeit_v_2 = 0;
           setState('javascript.0.variables.Zeit_v_2', Zeit_v_2);
           setTimeout(counter, zeit[Zeit_v_2]);
        }
         
        counter(); 
        
        lws.naja 1 Reply Last reply Reply Quote 0
        • lws.naja
          lws.naja @paul53 last edited by

          @paul53 Ich habe es nun gelöst dennoch danke für die Antwort. Hier die Lösung für die es benötigen.

          'javascript.0.variables.Zeit_v_2'/*Zeit v 2*/
           
          var Zeit_v_2 = 0;
          var max = 4;
          var zeit = [ 300000, 60000, 60000, 60000, 120000];
          var interval = setInterval(counter, zeit[Zeit_v_2]);
           
          function counter() {
             if(Zeit_v_2 <= max)  Zeit_v_2++; 
             else Zeit_v_2 = 0;
             setState('javascript.0.variables.Zeit_v_2', Zeit_v_2, false);
             clearInterval(interval);
             interval = setInterval(counter, zeit[Zeit_v_2]);
          }  
          
          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          674
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          148
          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