Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Countdown Script hat einen Fehler

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Countdown Script hat einen Fehler

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

      Hallo,
      habe mir diesen Countdown Script von @bahnuhr geklaut. Er hatte den Timer für Minuten und Sekunden geschrieben.
      Ich habe versucht ihn in Stunden und Minuten (Restminute in Sekunden) umzubauen.
      Leider zeigt er mir im String bei z.B. 1h 30m ---> 1 Std. 90min an.
      Was mache ich falsch ?

      
      
      // Countdown mähen 2 Stunden
      
       
      
      var count,timer;
      
       
      
      function countdown(){
      
        count--;
      
        if(count > 0) {
      
              setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countdown', count);
      
              if (count > 60) {
      
                  var std = parseInt(count/3600);
      			
      			var min = parseInt(count/60);
      
                  var sek = count - (min*60);
      			
      			
      
                  setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countdown', count);
      
                  setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countdown2', std + " Std.  " + min + " Min.");
      
              } else {
      
                  setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countdown', count);
      
                  setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countdown2', count + " Sek.");
      
              }
      
        }
      
        else {
      
              setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countTrigger', false );
      
        }
      
      }
      
       
      
      on({id: "0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countTrigger", change: "ne"}, function(obj){
      
          if(obj.state.val) { 
      
              count = 7200;  // in Sekunden
      
              timer = setInterval(countdown, 1000);   // 1000 = 1 Sek. ;  60000 = 60 Sek.
      
          } else {
      
              clearInterval(timer);
      
              setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countdown', 0 );
      
              setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countdown2', "" );
      
          }
      
      });
      
      

      Vielen Dank und Gruß,
      Kaschi

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Kaschi68 last edited by paul53

        @kaschi68 sagte: Was mache ich falsch ?

        Berechnung:

                    let std = Math.floor(count / 3600);
                    let min = Math.floor(count / 60 - std * 60);
                    let sek = count - min * 60 - std * 3600;
        

        EDIT: Komplette Funktion:

        function countdown(){
            count--;
            let txt = '';
            if(count > 0) {
                let std = Math.floor(count / 3600);
                let min = Math.floor(count / 60 - std * 60);
                let sek = count - min * 60 - std * 3600;
                if(count >= 3600) {
                    txt = std + " Std.  " + min + " Min.";
                } else if(count >= 60) {
                    txt = min + " Min. " + sek + " Sek.";
                } else txt = count + " Sek.";
            } else {
                setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countTrigger', false, true);
            }
            setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countdown', count, true);
            setState('0_userdata.0.Husqvarna.Timer.Timer_2_Stunden_steuern.2_Stunden.2h_countdown2', txt, true);
        }
        
        K 1 Reply Last reply Reply Quote 1
        • K
          Kaschi68 @paul53 last edited by

          @paul53
          Klasse, funktioniert 1A. Vielen Dank....

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

          Support us

          ioBroker
          Community Adapters
          Donate

          637
          Online

          31.6k
          Users

          79.6k
          Topics

          1.3m
          Posts

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