Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Einfacher Countdown in VIS von festem Datum gesucht

    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

    [gelöst] Einfacher Countdown in VIS von festem Datum gesucht

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky last edited by liv-in-sky

      ändere mal diese zeile - da ist bei dir der wurm drin

      setStateDelayed("javascript.0.Countdown.Termin.Datum"/*Termin Datum*/, datecounter, 2000, false);}
      

      das auskommentierte /Termin Datum/ ist bei dir nicht auskommentiert

      Image 7.png

      1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky last edited by liv-in-sky

        bitte nutze dieses file

        // Termin Skript zählt bis Termin runter erstellt: 26.01.2016 von Pix
        // weiterverarbeitet 26-2-2019 von liv-in-sky
        var instanz = 'javascript.0'; var logging = false;
        // ab hier nix mehr ändern
        createState('Countdown.Termin.Datum', '9/4/2019', { name: 'Termin Datum', desc: 'Datum des Termins (als Objekt)', type: 'string' });
        createState('Countdown.Termin.Datum.String', '3.12.2019', { name: 'Termin Datum (als String)', desc: 'Datum des Termins als Zeichenkette', type: 'string' });
        createState('Countdown.Termin.Name', 'Name des Termins', { name: 'Termin Name', desc: 'Bezeichnung des Termins', type: 'string' });
        createState('Countdown.Termin.Rest.TotalText', 'Termingesamt', { name: 'TotalText', desc: 'TotalText', type: 'string' });
        createState('Countdown.Termin.Rest.Total', { name: 'Millisekunden bis zum Termin', desc: 'Restliche Millisekunden bis zum Datum des Termins', type: 'number', unit: 'ms' });
        createState('Countdown.Termin.Rest.Tage', { name: 'Tage bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Tage' });
        createState('Countdown.Termin.Rest.Minuten', { name: 'Minuten bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Minuten' });
        createState('Countdown.Termin.Rest.Stunden', { name: 'Stunden bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Stunden' });
        createState('Countdown.Termin.Rest.Wochen', { name: 'Wochen bis zum Termin', desc: 'Restliche Wochen bis zum Datum des Termins', type: 'number', unit: 'Wochen' });
        createState('Countdown.Termin.Rest.Alarm', { name: 'Alarm', desc: 'Alarm bis zum Datum des Termins', type: 'boolean' });
        createState('Countdown.Termin.Rest.Fertig', { name: 'Fertig', desc: 'Fertig', type: 'boolean' });
        var idFertig = instanz + '.Countdown.Termin.Rest.Fertig', idAlarm = instanz + '.Countdown.Termin.Rest.Alarm', idStunden = instanz + '.Countdown.Termin.Rest.Stunden', idMinuten = instanz + '.Countdown.Termin.Rest.Minuten', idTotalText = instanz + '.Countdown.Termin.Rest.TotalText', idTerminDatum = instanz + '.Countdown.Termin.Datum', idTerminDatumString = instanz + '.Countdown.Termin.Datum.String', idTerminName = instanz + '.Countdown.Termin.Name', idTotal = instanz + '.Countdown.Termin.Rest.Total', idTage = instanz + '.Countdown.Termin.Rest.Tage', idWochen = instanz + '.Countdown.Termin.Rest.Wochen';
        var deadline;

        function getTimeRemaining(endtime) {

        var virttime = new Date();

        var virt2time=formatDate(virttime);
        var t = Date.parse(endtime) - Date.parse(virttime);

        if (virttime.getTimezoneOffset() == -60 && virttime.getTimezoneOffset() == -120 ){t=t+3600000};
        if (virttime.getTimezoneOffset() == -120 && virttime.getTimezoneOffset() == -60 ){t=t-3600000};
        var seconds = Math.floor( (t/1000) % 60 );
        var minutes = Math.floor( (t/1000/60) % 60 );
        var hours = Math.floor( (t/(10006060)) % 24 );
        var days = Math.floor( t/(1000606024) );
        var weeks = Math.floor( t/(1000
        606024*7) );
        return { 'total': t, 'days': days, 'hours': hours, 'minutes': minutes, 'seconds': seconds, 'weeks' : weeks };

        }
        function restzeit() {

        if (deadline) deadline = new Date(getState(idTerminDatum).val);
        setState(idTerminDatumString, formatDate(deadline));
        setState(idTage, getTimeRemaining(deadline).days);
        setState(idWochen, getTimeRemaining(deadline).weeks);
        setState(idTotal, getTimeRemaining(deadline).total);
        setState(idMinuten, getTimeRemaining(deadline).minutes);
        setState(idStunden, getTimeRemaining(deadline).hours);
        //log(deadline.getTimezoneOffset());

        setState(idTotalText, getTimeRemaining(deadline).days.toString() + " Tag(e) " +getTimeRemaining(deadline).hours.toString() + " Stunde(n) " + getTimeRemaining(deadline).minutes.toString() + " Minute(n) ");
        setTimeout(function () { //The timer

        if ( getState(idTage).val == 0 && getState(idStunden).val <= 4 ){setState(idAlarm, true) ;} else {setState(idAlarm, false); } //
        }, 2000);
        setTimeout(function () { //The timer
        if ( getState(idTage).val == 0 && getState(idStunden).val == 0 && getState(idMinuten).val <= 0 ){setState(idFertig, true) ;setState(idTerminName, "FERTIG");setState(idTerminDatum, "FERTIG");} else {setState(idFertig, false); } //
        }, 3000);
        if (logging) log(getTimeRemaining(deadline).days + ' Resttage (' + getTimeRemaining(deadline).weeks + ' Wochen) bis zum ' + formatDate(deadline) + ' (' + getState(idTerminName).val + ')'); }
        // Mitternacht

        schedule('*/1 * * * *', function() { restzeit(); });
        //bei Restart
        var datecounter = getState("javascript.0.Countdown.Termin.Datum").val;
        if (getState("javascript.0.Countdown.Termin.Datum").val != "") {
        setStateDelayed("javascript.0.Countdown.Termin.Datum", datecounter, 2000, false);}
        // Bei Terminänderung
        on({id: 'javascript.0.Countdown.Termin.Datum', change: 'any'}, function (obj) { deadline = new Date(obj.state.val); restzeit();/log("jetzt gestartet");/ });
        //on(idTerminDatum, function (obj ) { deadline = new Date(obj.state.val); restzeit(); });

        // Scriptstart

        das forum verändert die sterne im script !!!

        @mehrwiedu - könntest du bitte dieses file unter spoiler in den ersten post kopieren - habe alle sterne entfernt

        @Jey-Cee hallo jeycee - ist dieser fehler bekannt - wenn man als kommentar in einem javascript ein -stern-schrägstrich- verwendet, gibt es probleme beim kopieren

        C M 2 Replies Last reply Reply Quote 0
        • C
          Camuri @liv-in-sky last edited by

          @liv-in-sky sagte in [gelöst] Einfacher Countdown in VIS von festem Datum gesucht:

          bitte nutze dieses file

          // Termin Skript zählt bis Termin runter erstellt: 26.01.2016 von Pix
          // weiterverarbeitet 26-2-2019 von liv-in-sky
          var instanz = 'javascript.0'; var logging = false;
          // ab hier nix mehr ändern
          createState('Countdown.Termin.Datum', '9/4/2019', { name: 'Termin Datum', desc: 'Datum des Termins (als Objekt)', type: 'string' });
          createState('Countdown.Termin.Datum.String', '3.12.2019', { name: 'Termin Datum (als String)', desc: 'Datum des Termins als Zeichenkette', type: 'string' });
          createState('Countdown.Termin.Name', 'Name des Termins', { name: 'Termin Name', desc: 'Bezeichnung des Termins', type: 'string' });
          createState('Countdown.Termin.Rest.TotalText', 'Termingesamt', { name: 'TotalText', desc: 'TotalText', type: 'string' });
          createState('Countdown.Termin.Rest.Total', { name: 'Millisekunden bis zum Termin', desc: 'Restliche Millisekunden bis zum Datum des Termins', type: 'number', unit: 'ms' });
          createState('Countdown.Termin.Rest.Tage', { name: 'Tage bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Tage' });
          createState('Countdown.Termin.Rest.Minuten', { name: 'Minuten bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Minuten' });
          createState('Countdown.Termin.Rest.Stunden', { name: 'Stunden bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Stunden' });
          createState('Countdown.Termin.Rest.Wochen', { name: 'Wochen bis zum Termin', desc: 'Restliche Wochen bis zum Datum des Termins', type: 'number', unit: 'Wochen' });
          createState('Countdown.Termin.Rest.Alarm', { name: 'Alarm', desc: 'Alarm bis zum Datum des Termins', type: 'boolean' });
          createState('Countdown.Termin.Rest.Fertig', { name: 'Fertig', desc: 'Fertig', type: 'boolean' });
          var idFertig = instanz + '.Countdown.Termin.Rest.Fertig', idAlarm = instanz + '.Countdown.Termin.Rest.Alarm', idStunden = instanz + '.Countdown.Termin.Rest.Stunden', idMinuten = instanz + '.Countdown.Termin.Rest.Minuten', idTotalText = instanz + '.Countdown.Termin.Rest.TotalText', idTerminDatum = instanz + '.Countdown.Termin.Datum', idTerminDatumString = instanz + '.Countdown.Termin.Datum.String', idTerminName = instanz + '.Countdown.Termin.Name', idTotal = instanz + '.Countdown.Termin.Rest.Total', idTage = instanz + '.Countdown.Termin.Rest.Tage', idWochen = instanz + '.Countdown.Termin.Rest.Wochen';
          var deadline;

          function getTimeRemaining(endtime) {

          var virttime = new Date();

          var virt2time=formatDate(virttime);
          var t = Date.parse(endtime) - Date.parse(virttime);

          if (virttime.getTimezoneOffset() == -60 && virttime.getTimezoneOffset() == -120 ){t=t+3600000};
          if (virttime.getTimezoneOffset() == -120 && virttime.getTimezoneOffset() == -60 ){t=t-3600000};
          var seconds = Math.floor( (t/1000) % 60 );
          var minutes = Math.floor( (t/1000/60) % 60 );
          var hours = Math.floor( (t/(10006060)) % 24 );
          var days = Math.floor( t/(1000606024) );
          var weeks = Math.floor( t/(1000
          606024*7) );
          return { 'total': t, 'days': days, 'hours': hours, 'minutes': minutes, 'seconds': seconds, 'weeks' : weeks };

          }
          function restzeit() {

          if (deadline) deadline = new Date(getState(idTerminDatum).val);
          setState(idTerminDatumString, formatDate(deadline));
          setState(idTage, getTimeRemaining(deadline).days);
          setState(idWochen, getTimeRemaining(deadline).weeks);
          setState(idTotal, getTimeRemaining(deadline).total);
          setState(idMinuten, getTimeRemaining(deadline).minutes);
          setState(idStunden, getTimeRemaining(deadline).hours);
          //log(deadline.getTimezoneOffset());

          setState(idTotalText, getTimeRemaining(deadline).days.toString() + " Tag(e) " +getTimeRemaining(deadline).hours.toString() + " Stunde(n) " + getTimeRemaining(deadline).minutes.toString() + " Minute(n) ");
          setTimeout(function () { //The timer

          if ( getState(idTage).val == 0 && getState(idStunden).val <= 4 ){setState(idAlarm, true) ;} else {setState(idAlarm, false); } //
          }, 2000);
          setTimeout(function () { //The timer
          if ( getState(idTage).val == 0 && getState(idStunden).val == 0 && getState(idMinuten).val <= 0 ){setState(idFertig, true) ;setState(idTerminName, "FERTIG");setState(idTerminDatum, "FERTIG");} else {setState(idFertig, false); } //
          }, 3000);
          if (logging) log(getTimeRemaining(deadline).days + ' Resttage (' + getTimeRemaining(deadline).weeks + ' Wochen) bis zum ' + formatDate(deadline) + ' (' + getState(idTerminName).val + ')'); }
          // Mitternacht

          schedule('*/1 * * * *', function() { restzeit(); });
          //bei Restart
          var datecounter = getState("javascript.0.Countdown.Termin.Datum").val;
          if (getState("javascript.0.Countdown.Termin.Datum").val != "") {
          setStateDelayed("javascript.0.Countdown.Termin.Datum", datecounter, 2000, false);}
          // Bei Terminänderung
          on({id: 'javascript.0.Countdown.Termin.Datum', change: 'any'}, function (obj) { deadline = new Date(obj.state.val); restzeit();/log("jetzt gestartet");/ });
          //on(idTerminDatum, function (obj ) { deadline = new Date(obj.state.val); restzeit(); });

          // Scriptstart

          das forum verändert die sterne im script !!!

          @mehrwiedu - könntest du bitte dieses file unter spoiler in den ersten post kopieren - habe alle sterne entfernt

          @Jey-Cee hallo jeycee - ist dieser fehler bekannt - wenn man als kommentar in einem javascript ein -stern-schrägstrich- verwendet, gibt es probleme beim kopieren

          Funktioniert muss ich jetzt mein Datum unter den Datenpunkten eintragen?

          1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky last edited by liv-in-sky

            @Camuri

            bei mir sieht es in der vis so aus

            Image 9.png

            das datum muss genau so geschrieben werden

            TAG - 3 Buchstaben Monat (engl. abkürzung!!) - jahr - uhrzeit (nicht pflicht!!!)
            (beispiel Dec,Nov, Mar, Oct)

            das ist der datenpunkt:

            Image 11.png

            auch der name ist nicht pflicht !!!

            zum ausprobieren in der vis kannst du dieses widget in deine vis importieren:

            [{"tpl":"tplFrame","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","title":"","title_color":"black","title_top":"-10","title_left":"15","header_height":"0","header_color":"black","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"110px","top":"490px","background-color":"#180c0c","width":"459px","height":"46px","border-radius":"15px","z-index":"0"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.0.Countdown.Termin.Rest.Tage","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"294px","top":"493px","width":"59px","height":"35px","font-weight":"bold","font-size":"xx-large","color":"#72f769","z-index":"15","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.0.Countdown.Termin.Rest.Stunden","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"364px","top":"493px","width":"46px","height":"38px","font-weight":"bold","font-size":"xx-large","color":"#2cc33a","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.0.Countdown.Termin.Rest.Minuten","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"419px","top":"493px","width":"49px","height":"39px","font-weight":"bold","font-size":"xx-large","color":"#13771c","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplJquiInput","data":{"oid":"javascript.0.Countdown.Termin.Datum","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","label":"","digits":"0","size":"22","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"asString":true},"style":{"left":"125px","top":"500px","color":"#998f8f","width":"150px","height":"33px","background-color":"#180c0c","z-index":"15","text-align":"center","font-weight":"bold","font-size":"smaller"},"widgetSet":"jqui"},{"tpl":"tplJquiInput","data":{"oid":"javascript.0.Countdown.Termin.Name","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","label":"","digits":"0","size":"22","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"asString":true},"style":{"left":"477px","top":"500px","color":"#998f8f","width":"75px","height":"33px","background-color":"#180c0c","z-index":"15","font-weight":"bold","font-size":"smaller","text-align":"center"},"widgetSet":"jqui"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>Day</b>"},"style":{"left":"330px","top":"523px","font-size":"small","width":"29px","height":"23px","font-style":"normal","font-family":""Lucida Sans Unicode", "Lucida Grande", sans-serif","z-index":1,"color":"#c2cbc3","line-height":"1.2"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>Hour</b>"},"style":{"left":"383px","top":"522px","font-size":"small","width":"44px","height":"24px","font-style":"normal","font-family":""Lucida Sans Unicode", "Lucida Grande", sans-serif","z-index":1,"color":"#c2cbc3","line-height":"1.2"},"widgetSet":"basic"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"<b>Min</b>"},"style":{"left":"440px","top":"522px","font-size":"small","width":"29px","height":"23px","font-style":"normal","font-family":""Lucida Sans Unicode", "Lucida Grande", sans-serif","z-index":1,"color":"#c2cbc3","line-height":"1.2"},"widgetSet":"basic"}]

            1 Reply Last reply Reply Quote 1
            • M
              mehrwiedu @liv-in-sky last edited by

              @liv-in-sky sagte in [gelöst] Einfacher Countdown in VIS von festem Datum gesucht:

              @mehrwiedu - könntest du bitte dieses file unter spoiler in den ersten post kopieren - habe alle sterne entfernt

              Habe ich oben eingefügt und auch den Code-Tag erstmal entfernt.

              liv-in-sky 1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @mehrwiedu last edited by

                @mehrwiedu vielen dank

                1 Reply Last reply Reply Quote 0
                • C
                  Camuri last edited by

                  Irgendwas läuft da noch falsch 😄 in 12 Tagen ist schon der 10.8.2019

                  46314642b30bd6a09679b1c1bcf5c79c.png

                  liv-in-sky 2 Replies Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @Camuri last edited by

                    @Camuri

                    du machst es einem aber auch nicht einfach ! 🙂

                    bei mir sieht es so aus

                    Image 12.png

                    C 1 Reply Last reply Reply Quote 0
                    • C
                      Camuri @liv-in-sky last edited by

                      @liv-in-sky sagte in [gelöst] Einfacher Countdown in VIS von festem Datum gesucht:

                      @Camuri

                      du machst es einem aber auch nicht einfach ! 🙂

                      bei mir sieht es so aus

                      Image 12.png

                      Woher bekommt er denn Uhrzeit und Datum was wir aktuell haben? Wenn ich das Datum von morgen eintrage zeigt er mir 1 Stunde und 10 Minuten an

                      1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @Camuri last edited by

                        @Camuri

                        die uhrzeit / datum deines iobrokers sollte wohl stimmen ?

                        terminal öffnen und date eingeben
                        Image 13.png

                        C 1 Reply Last reply Reply Quote 0
                        • C
                          Camuri @liv-in-sky last edited by

                          ja da passt alles 😕

                          1 Reply Last reply Reply Quote 0
                          • C
                            Camuri last edited by

                            habs jetzt auf einem anderen iobroker System probiert das Skript da zeigt es auch 12 Tage an

                            liv-in-sky 1 Reply Last reply Reply Quote 0
                            • liv-in-sky
                              liv-in-sky @Camuri last edited by

                              @Camuri

                              ich habe im moment keine idee ?

                              • hast du in den einstellungen vom admin das datum DD.MM.YYYY?
                              • lebst du auf dem mars oder einen anderen planeten ?
                              • bei dir müßte ja der 29 juli oder so sein ?
                              • was kommt den am: 8 Oct 2019 raus ?
                              C 1 Reply Last reply Reply Quote 0
                              • C
                                Camuri @liv-in-sky last edited by

                                @liv-in-sky sagte in [gelöst] Einfacher Countdown in VIS von festem Datum gesucht:

                                @Camuri

                                ich habe im moment keine idee ?

                                • hast du in den einstellungen vom admin das datum DD.MM.YYYY?
                                • lebst du auf dem mars oder einen anderen planeten ?
                                • bei dir müßte ja der 29 juli oder so sein ?
                                • was kommt den am: 8 Oct 2019 raus ?
                                1. Admin hat bei beiden Iorbokern DD.MM.YYYY
                                2. ich lebe auf der Erde 😄
                                3. das ist gut möglich
                                4. 17 Tag(e) 4 Stunde(n) 33 Minute(n)

                                wenn ich den 15.03.2020 eingebe kommt bei beiden Iobroker 31 Tag(e) 9 Stunde(n) 32 Minute(n)

                                hast du vll beim Sterne rausmachen irgendwas verändert?

                                1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky last edited by

                                  @Camuri ja du hast recht - kopiere ich den spoiler in ein script bei mir - kommt das auch raus 12 tage

                                  1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky last edited by

                                    @Camuri gehts damit

                                    script-im-txt.txt

                                    C 1 Reply Last reply Reply Quote 0
                                    • C
                                      Camuri @liv-in-sky last edited by

                                      @liv-in-sky sagte in [gelöst] Einfacher Countdown in VIS von festem Datum gesucht:

                                      @Camuri gehts damit

                                      script-im-txt.txt

                                      Funktioniert danke 😄

                                      42e236de282e9249738bb68fd9f9c9db.png

                                      1 Reply Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky last edited by

                                        1445small--robots-winzig.png

                                        yeah

                                        sorry - was ein blöder fehler

                                        1 Reply Last reply Reply Quote 1
                                        • liv-in-sky
                                          liv-in-sky last edited by

                                          es gibt eine neue version

                                          neues format bei datumseingabe: folgendes ist möglich:

                                          • 9.4.2019 10:00
                                          • 9.4.2019
                                          • 9 May 2019 10:00 - (Monat 3 Buchstaben engl. Abkürzung)
                                          • 9 May 2019 - (Monat 3 Buchstaben engl. Abkürzung)

                                          zwischen datum und uhrzeit nur ein "leerzeichen"

                                          DatumCountdownScript.txt

                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            pix last edited by pix

                                            Hallo,

                                            ist zwar schon zwei Monate alt, aber ich bin gerade auf einem Umweg auf diesen Thread gestossen. Habe eine ähnliche Lösung. Vielleicht will jemand das lieber so haben:

                                            Bildschirmfoto 2019-05-17 um 19.45.52.jpg

                                            /* Termin
                                            Skript zählt bis Termin runter
                                            http://www.sitepoint.com/build-javascript-countdown-timer-no-dependencies/
                                            
                                            Monate zu berechnen macht keinen Sinn, da Monate unterschiedliche Längen haben.
                                            Es müssten dann konkret die Monate, die vergehen werden addiert werden (Schaltjahre)
                                            
                                            26.01.2016 erstellt von Pix
                                            01.11.2018 Code optimiert anch erneutem Einbau in VIS
                                            */
                                            
                                            const instanz = "javascript.0";
                                            const logging = true;
                                            const fC = false;
                                            
                                            // ab hier nix mehr ändern
                                            
                                            const idTerminDatum =       instanz + ".Countdown.Termin.Datum",
                                                  idTerminDatumString = instanz + ".Countdown.Termin.Datum.String",
                                                  idTerminName =        instanz + ".Countdown.Termin.Name",
                                                  idTotal =             instanz + ".Countdown.Termin.Rest.Total",
                                                  idTage =              instanz + ".Countdown.Termin.Rest.Tage",
                                                  idWochen =            instanz + ".Countdown.Termin.Rest.Wochen",
                                                  idWochenRestTage =    instanz + ".Countdown.Termin.Rest.WochenResttage";
                                            
                                            createState(idTerminDatum, "9/4/2016", fC, {
                                                name: "Termin Datum",
                                                desc: "Datum des Termins (als Objekt)",
                                                type: "string",
                                                role: "date"
                                            });
                                            createState(idTerminDatumString, "3.12.2016", fC, {
                                                name: "Termin Datum (als String)",
                                                desc: "Datum des Termins als Zeichenkette",
                                                type: "string",
                                                role: "text"
                                            });
                                            createState(idTerminName, "Name des Termins", fC, {
                                                name: "Termin Name",
                                                desc: "Bezeichnung des Termins",
                                                type: "string",
                                                role : "text"
                                            });
                                            createState(idTotal, 0, fC, {
                                                name: "Millisekunden bis zum Termin",
                                                desc: "Restliche Millisekunden bis zum Datum des Termins",
                                                type: "number",
                                                unit: "ms",
                                                role: "level"
                                            });
                                            createState(idTage, 0, fC, {
                                                name: "Tage bis zum Termin",
                                                desc: "Restliche Tage bis zum Datum des Termins",
                                                type: "number",
                                                unit: "Tage",
                                                role: "level"
                                            });
                                            createState(idWochen, 0, fC, {
                                                name: "Wochen bis zum Termin",
                                                desc: "Restliche ganze Wochen bis zum Datum des Termins",
                                                type: "number",
                                                unit: "Wochen",
                                                role: "level"
                                            });
                                            createState(idWochenRestTage, 0, fC, {
                                                name: "Tage nach glatten Wochen bis zum Termin",
                                                desc: "Restliche Tage bei mehreren Wochen bis zum Datum des Termins",
                                                type: "number",
                                                unit: "Tage",
                                                role: "level"
                                            });
                                            
                                            
                                            let deadline;
                                            
                                            function getTimeRemaining(endtime){
                                              let t = Date.parse(endtime) - Date.parse(new Date());
                                              let seconds = Math.floor( (t/1000) % 60 );
                                              let minutes = Math.floor( (t/1000/60) % 60 );
                                              let hours = Math.floor( (t/(1000*60*60)) % 24 );
                                              let days = Math.floor( t/(1000*60*60*24) );
                                              let weeks = Math.floor( t/(1000*60*60*24*7) );
                                              return {
                                                "total": t,
                                                "days": days,
                                                "hours": hours,
                                                "minutes": minutes,
                                                "seconds": seconds,
                                                "weeks" : weeks,
                                                "weeks_days": days - (weeks*7)
                                              };
                                            }
                                            
                                            function restzeit() {
                                                if (!deadline) deadline = new Date(getState(idTerminDatum).val);
                                                setState(idTerminDatumString, formatDate(deadline));
                                                setState(idTage, getTimeRemaining(deadline).days);
                                                setState(idWochen, getTimeRemaining(deadline).weeks);
                                                setState(idTotal, getTimeRemaining(deadline).total);
                                                setState(idWochenRestTage, getTimeRemaining(deadline).weeks_days);
                                                if (logging) log(getTimeRemaining(deadline).days + " Resttage (" + getTimeRemaining(deadline).weeks + " Wochen) bis zum " + formatDate(deadline) + " (" + getState(idTerminName).val + ")"); 
                                            }
                                            
                                            // Mitternacht
                                            schedule("56 14 * * *", function() {
                                                restzeit();
                                            });
                                            
                                            // Bei Terminänderung
                                            on(idTerminDatum, function (obj) {
                                                deadline = new Date(obj.state.val);
                                                restzeit();
                                            });
                                            
                                            // Scriptstart
                                            //restzeit();
                                            

                                            Datenpunkte:

                                            Bildschirmfoto 2019-05-17 um 19.48.59.jpg

                                            Gruß
                                            Pix

                                            liv-in-sky Chaot 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            701
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            6
                                            72
                                            6259
                                            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