Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] Einfacher Countdown in VIS von festem Datum gesucht

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
72 Beiträge 6 Kommentatoren 9.2k Aufrufe 9 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von
    #28

    @mehrwiedu es gibt ein update - habe festgestellt, dass nach dem booten oder nach einem neustart des adapters der countdown nicht mehr anspringt

    damit sollte es gehen - bitte im ersten post updaten - danke
    gruß

    /* 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"/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

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      mehrwiedu
      schrieb am zuletzt editiert von
      #29

      Aktueller Stand im ersten Post eingefügt. :)
      Danke für Deine Arbeit @liv-in-sky

      1 Antwort Letzte Antwort
      0
      • C Offline
        C Offline
        Camuri
        schrieb am zuletzt editiert von
        #30

        Ich hab das Script mal bei mir eingefügt und einfach gestartet bekomme aber einen Fehler da ich mit Javascripten nicht viel anfangen kann vom Verständnis her frag ich hier mal nach :D wo mein Fehler liegt.

        a37b6e1b5fb09599d29e440118533223.png

        liv-in-skyL 1 Antwort Letzte Antwort
        0
        • C Camuri

          Ich hab das Script mal bei mir eingefügt und einfach gestartet bekomme aber einen Fehler da ich mit Javascripten nicht viel anfangen kann vom Verständnis her frag ich hier mal nach :D wo mein Fehler liegt.

          a37b6e1b5fb09599d29e440118533223.png

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #31

          @Camuri

          hättest du auch das log vom log-tab ?

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          C 1 Antwort Letzte Antwort
          0
          • liv-in-skyL liv-in-sky

            @Camuri

            hättest du auch das log vom log-tab ?

            C Offline
            C Offline
            Camuri
            schrieb am zuletzt editiert von
            #32

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

            @Camuri

            hättest du auch das log vom log-tab ?

            habs nicht auf ein bild bekommen.

            c7a4a98333f76a1ed0fa661aeb16c8fa.png

            7c9e5a8833021c2ef777b9573a6a0df7.png

            liv-in-skyL 1 Antwort Letzte Antwort
            0
            • C Camuri

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

              @Camuri

              hättest du auch das log vom log-tab ?

              habs nicht auf ein bild bekommen.

              c7a4a98333f76a1ed0fa661aeb16c8fa.png

              7c9e5a8833021c2ef777b9573a6a0df7.png

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              schrieb am zuletzt editiert von
              #33

              @Camuri

              du hast auch das neuste script vom ersten post geladen ?

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              C 1 Antwort Letzte Antwort
              0
              • liv-in-skyL liv-in-sky

                @Camuri

                du hast auch das neuste script vom ersten post geladen ?

                C Offline
                C Offline
                Camuri
                schrieb am zuletzt editiert von
                #34

                @liv-in-sky ja habs einmal vom ersten post und einmal vom letzten ausprobiert sollten ja die gleichen sein.

                liv-in-skyL 1 Antwort Letzte Antwort
                0
                • C Camuri

                  @liv-in-sky ja habs einmal vom ersten post und einmal vom letzten ausprobiert sollten ja die gleichen sein.

                  liv-in-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  schrieb am zuletzt editiert von
                  #35

                  @Camuri - stimmt

                  welche version vom js adapter ?

                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                  C 1 Antwort Letzte Antwort
                  0
                  • liv-in-skyL liv-in-sky

                    @Camuri - stimmt

                    welche version vom js adapter ?

                    C Offline
                    C Offline
                    Camuri
                    schrieb am zuletzt editiert von
                    #36

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

                    @Camuri - stimmt

                    welche version vom js adapter ?

                    4.1.12

                    liv-in-skyL 1 Antwort Letzte Antwort
                    0
                    • C Camuri

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

                      @Camuri - stimmt

                      welche version vom js adapter ?

                      4.1.12

                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von liv-in-sky
                      #37

                      @Camuri

                      ich bin nicht sicher

                      schreib mal in die einstellung vom js adapter unter zusätliche module "request" rein

                      Image 6.png

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      C 1 Antwort Letzte Antwort
                      0
                      • liv-in-skyL liv-in-sky

                        @Camuri

                        ich bin nicht sicher

                        schreib mal in die einstellung vom js adapter unter zusätliche module "request" rein

                        Image 6.png

                        C Offline
                        C Offline
                        Camuri
                        schrieb am zuletzt editiert von
                        #38

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

                        @Camuri

                        ich bin nicht sicher

                        schreib mal in die einstellung vom js adapter unter zusätliche module "request" rein

                        Image 6.png

                        hat nicht geholfen Fehler ist immer noch da.

                        liv-in-skyL 1 Antwort Letzte Antwort
                        0
                        • C Camuri

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

                          @Camuri

                          ich bin nicht sicher

                          schreib mal in die einstellung vom js adapter unter zusätliche module "request" rein

                          Image 6.png

                          hat nicht geholfen Fehler ist immer noch da.

                          liv-in-skyL Offline
                          liv-in-skyL Offline
                          liv-in-sky
                          schrieb am zuletzt editiert von liv-in-sky
                          #39

                          @Camuri

                          kannst du bitte ein bild vom script unter zeile 32 einfügen bis zum ende - auf den fall sollte alles um zeile 62 zu sehen sein

                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                          1 Antwort Letzte Antwort
                          0
                          • C Offline
                            C Offline
                            Camuri
                            schrieb am zuletzt editiert von
                            #40

                            7b64dfcbd72087d6098d87793b97e5b3.png

                            1 Antwort Letzte Antwort
                            0
                            • liv-in-skyL Offline
                              liv-in-skyL Offline
                              liv-in-sky
                              schrieb am zuletzt editiert von liv-in-sky
                              #41

                              ä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

                              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                              1 Antwort Letzte Antwort
                              0
                              • liv-in-skyL Offline
                                liv-in-skyL Offline
                                liv-in-sky
                                schrieb am zuletzt editiert von liv-in-sky
                                #42

                                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

                                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                C M 2 Antworten Letzte Antwort
                                0
                                • liv-in-skyL 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 Offline
                                  C Offline
                                  Camuri
                                  schrieb am zuletzt editiert von
                                  #43

                                  @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 Antwort Letzte Antwort
                                  0
                                  • liv-in-skyL Offline
                                    liv-in-skyL Offline
                                    liv-in-sky
                                    schrieb am zuletzt editiert von liv-in-sky
                                    #44

                                    @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"}]

                                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                    1 Antwort Letzte Antwort
                                    1
                                    • liv-in-skyL 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

                                      M Offline
                                      M Offline
                                      mehrwiedu
                                      schrieb am zuletzt editiert von
                                      #45

                                      @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-skyL 1 Antwort Letzte Antwort
                                      0
                                      • M mehrwiedu

                                        @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-skyL Offline
                                        liv-in-skyL Offline
                                        liv-in-sky
                                        schrieb am zuletzt editiert von
                                        #46

                                        @mehrwiedu vielen dank

                                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                        1 Antwort Letzte Antwort
                                        0
                                        • C Offline
                                          C Offline
                                          Camuri
                                          schrieb am zuletzt editiert von
                                          #47

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

                                          46314642b30bd6a09679b1c1bcf5c79c.png

                                          liv-in-skyL 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          608

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe