Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Countdown Script hat einen Fehler

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Countdown Script hat einen Fehler

Scheduled Pinned Locked Moved JavaScript
3 Posts 2 Posters 277 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    Kaschi68
    wrote on last edited by
    #1

    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

    paul53P 1 Reply Last reply
    0
    • K Kaschi68

      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

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #2

      @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);
      }
      

      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

      K 1 Reply Last reply
      1
      • paul53P 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 Offline
        K Offline
        Kaschi68
        wrote on last edited by
        #3

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

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        Support us

        ioBroker
        Community Adapters
        Donate

        583

        Online

        32.6k

        Users

        82.1k

        Topics

        1.3m

        Posts
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Home
        • Recent
        • Tags
        • Unread 0
        • Categories
        • Unreplied
        • Popular
        • GitHub
        • Docu
        • Hilfe