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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                                • liv-in-sky
                                  liv-in-sky @pix last edited by liv-in-sky

                                  @pix

                                  hallo @pix - das ursprüngliche script ist von dir - ich habe es nur abgeändert

                                  ist schon wieder eine zeit her aber ich glaube, ich habe den sommer winterzeit unterschied eingefügt

                                  wie auch immer - in meinem script /erster post) steht noch dein name drin - hoffe das stört dich nicht

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

                                    Oh, hab ich gar nicht gesehn 😄 Alles gut, schönes Wochenende

                                    1 Reply Last reply Reply Quote 0
                                    • Chaot
                                      Chaot @pix last edited by

                                      @pix Danke dir.
                                      Hast du eventuell noch das Widget als Export?
                                      Mir ist noch nicht ganz klar wo ich den Termin schreiben soll.
                                      Wenn ich den string ändere wird nichts gezählt und was anderes kann ich scheinbar nicht verändern.

                                      1 Reply Last reply Reply Quote 0
                                      • Chaot
                                        Chaot last edited by

                                        Lass mich mal bischen weiterspinnen:

                                        Ich nehme aus dem Kalender die Geburtstage der Familienmitglieder (eigenen Kalender anlegen) und zähle dann bis zum nächsten Geburtstag.
                                        Ist der Termin vorbei wird der nächste anstehende Termin genommen und gezählt.
                                        Ist sowas umsetzbar?

                                        P.S. Ich habe meinen Fehler gefunden.

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

                                          @Chaot

                                          ich weiß nicht , welches script du jetzt meinst - das von diesem thread oder ein anderes ?

                                          aber egal - mit dem script hier wäre das sicher möglich, die schwierigkeit liegt beim auslesen eines z.b goolgle-kalender termins. dieses script hier braucht ein bestimmtes format im datumsfeld, dann fängt es an zu zählen

                                          mit dem ical adapter gibt es vielleicht diese möglichkeit - es gibt das berühmte müll-script - da wird ja auch der termin für die nächste müllentleerung ausgelesen - allerdings weiß ich nicht, ob der ical-adapter ein jahr im voraus einlesen kann (z.b geburtstag)

                                          vielleicht schau ich mir das morgen mal an, aber versprechen kann ich nichts

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

                                            @liv-in-sky Der muss ja kein Jahr im Voraus lesen.
                                            Im Grunde reicht ja nur der nächste kommende Termin.
                                            Mit dem Müllkalender hast du mich da auf eine Idee gebracht. Das werde ich mir mal anschauen ob man daraus was verwenden kann.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            585
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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