Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Erledigt] Hilfe Datumsscript

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Erledigt] Hilfe Datumsscript

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

      Hallo, zuerst ich kann kein Javascript, aber ich versuche immer durch lesen und ausprobieren sachen hinzubekommen.

      Ich habe ein kleines Script mir zusammengestellt aus vielen Beiträgen und dem Internet was das Datum in der Ansicht "02 Januar 2019" für den aktuellen und die nächsten 4 Tage erstellt. (Benötige ich für meine Wetter Anzeige)

      Allerdings wird bei mir die Variable var d = new Date(); nicht aktualisiert. Da aber alles darauf aufbaut, müsste die Variable um 00:00 Uhr neu gesetzt werden.

      //   Datum für Wetter Widget in der richtigen Reihenfolge anzeigen
      
      createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 1Tag", {name: 'Datum_ 1Tag', common: 'string'}, function () {});  
      createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 2Tag", {name: 'Datum_ 2Tag', common: 'string'}, function () {});
      createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 3Tag", {name: 'Datum_ 3Tag', common: 'string'}, function () {});
      createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 4Tag", {name: 'Datum_ 4Tag', common: 'string'}, function () {});
      createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 5Tag", {name: 'Datum_ 5Tag', common: 'string'}, function () {});
      
      // Berechnung des aktuellen Monats
      
          var d = new Date();
          var dm = d.getMonth() +1;
          var dd = d.getDate();
          var dJ = d.getFullYear();
          var Monat;
          log('Monat ' + dm);
          log('Tag ' + dd);
      log('Datum neu berechnet');
      
          var Tag1 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 1Tag";
          var Tag2 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 2Tag";
          var Tag3 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 3Tag";
          var Tag4 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 4Tag";
          var Tag5 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 5Tag";
      
      //Variable Tag des Jahres
          var idTagDesJahres = "javascript.0.Manuell.Systemvariable.Allgemein.TagDesJahres";
      
          dD1 = dd + 0;
          if (dD1 < 10) {
              var dD1 = ('0' + dd);
      //        log('Tag zweistellig ' + dD1);
          }
          dD2 = dd + 1;
          if (dD2 < 10) {
              var dD2 = ('0' + (dd + 1));
      //        log('Tag zweistellig ' + dD2);
          }
          dD3 = dd + 2;
          if (dD3 < 10) {
              var dD3 = ('0' + (dd + 2));
      //        log('Tag zweistellig ' + dD3);
          }
      //    log(dD3);
          dD4 = dd + 3;
          if (dD4 < 10) {
              var dD4 = ('0' + (dd + 3));
      //        log('Tag zweistellig ' + dD4);
          }
          dD5 = dd + 4;
          if (dD5 < 10) {
              var dD5 = ('0' + (dd + 4));
      //        log('Tag zweistellig ' + dD5);
          }
      
          dM = dm;
          if (dm < 10) {
              var dM = ('0' + dm);
      //        log('Monat zweistellig ' + dM);
          }     
      
      //VorMonat als Namen
      
      Date.prototype.getFullMonth = function () {
        return (["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"])[this.getMonth()];
      };
      
          var VdM = d.getFullMonth(); 
      
      schedule("1,3 0 * * *", function () {
          setState(Tag1, (dD1 + ' ' + VdM + ' ' + dJ));
          log(dD1 + ' ' + VdM + ' ' + dJ);
          setState(Tag2, (dD2 + ' ' + VdM + ' ' + dJ));
      //    log(dD2 + ' ' + VdM + ' ' + dJ);
          setState(Tag3, (dD3 + ' ' + VdM + ' ' + dJ));
      //    log(dD3 + ' ' + VdM + ' ' + dJ);
          setState(Tag4, (dD4 + ' ' + VdM + ' ' + dJ));
      //    log(dD4 + ' ' + VdM + ' ' + dJ);
          setState(Tag5, (dD5 + ' ' + VdM + ' ' + dJ));
      //    log(dD5 + ' ' + VdM + ' ' + dJ);
      
      });
      
      

      Seit nicht zu streng mit mir über die Art und Weise des Scripts

      Hoffe Ihr habt eine Idee, wie ich es zu lösen ist.

      Ganz herzlichen Dank

      Gruß Zippolighter

      1 Reply Last reply Reply Quote 0
      • D
        DavidFD last edited by

        Aktuell hast du lediglich das Speichern in einem Cronjob laufen.

        Diese Function bedient sich dann aus den Werten, die weiter oben generiert wurden.

        Allerdings wird der obere Teil nur beim Starten des Scriptes ausgeführt….

        Einfachste Lösung, pack alles ab "// Berechnung des aktuellen Monats" in die Function mit rein

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

          @Zippolighter:

          Hoffe Ihr habt eine Idee, wie ich es zu lösen ist. `
          Die Berechnungen werden nur einmal bei Skriptstart ausgeführt.

          Packe die Berechnungen in eine Funktion und rufe diese Funktion innerhalb des Schedules als erstes auf.

          Die Variablen, die Du anschließend in setState() verwendest, müssen außerhalb der Funktion deklariert sein. Etwa so:

          schedule("1,3 0 * * *", function () {
             var dD1, dD2, dD3, dD4, dD5, VdM, dJ;
             berechneDatum();
             setState(Tag1, (dD1 + ' ' + VdM + ' ' + dJ));
             // usw.
          
          

          Alternativ kannst Du die setState() auch am Ende der Funktion ausführen.

          function berechneDatum() {
          // Berechnung des aktuellen Monats
             ...
              setState(Tag1, (dD1 + ' ' + VdM + ' ' + dJ));
              log(dD1 + ' ' + VdM + ' ' + dJ);
              setState(Tag2, (dD2 + ' ' + VdM + ' ' + dJ));
          //    log(dD2 + ' ' + VdM + ' ' + dJ);
              setState(Tag3, (dD3 + ' ' + VdM + ' ' + dJ));
          //    log(dD3 + ' ' + VdM + ' ' + dJ);
              setState(Tag4, (dD4 + ' ' + VdM + ' ' + dJ));
          //    log(dD4 + ' ' + VdM + ' ' + dJ);
              setState(Tag5, (dD5 + ' ' + VdM + ' ' + dJ));
          //    log(dD5 + ' ' + VdM + ' ' + dJ);
          }
          
          berechneDatum(); // Skriptstart
          schedule("1,3 0 * * *", berechneDatum);   
          
          
          1 Reply Last reply Reply Quote 0
          • Z
            Zippolighter last edited by

            Danke an Euch beiden für die Infos. Wieder was dazugelernt

            Habe das jetzt so angepasst

            //   Datum für Wetter Widget in der richtigen Reihenfolge anzeigen
            
            createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 1Tag", {name: 'Datum_ 1Tag', common: 'string'}, function () {});  
            createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 2Tag", {name: 'Datum_ 2Tag', common: 'string'}, function () {});
            createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 3Tag", {name: 'Datum_ 3Tag', common: 'string'}, function () {});
            createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 4Tag", {name: 'Datum_ 4Tag', common: 'string'}, function () {});
            createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 5Tag", {name: 'Datum_ 5Tag', common: 'string'}, function () {});
            
            schedule("5 0 0 * * *", function () {
            // Berechnung des aktuellen Monats
            
                var d = new Date();
                var dm = d.getMonth() +1;
                var dd = d.getDate();
                var dJ = d.getFullYear();
                var Monat;
                log('Monat ' + dm);
                log('Tag ' + dd);
            log('Datum neu berechnet');
            
                var Tag1 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 1Tag";
                var Tag2 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 2Tag";
                var Tag3 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 3Tag";
                var Tag4 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 4Tag";
                var Tag5 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 5Tag";
            
            //Variable Tag des Jahres
                var idTagDesJahres = "javascript.0.Manuell.Systemvariable.Allgemein.TagDesJahres";
            
                dD1 = dd + 0;
                if (dD1 < 10) {
                    var dD1 = ('0' + dd);
            //        log('Tag zweistellig ' + dD1);
                }
                dD2 = dd + 1;
                if (dD2 < 10) {
                    var dD2 = ('0' + (dd + 1));
            //        log('Tag zweistellig ' + dD2);
                }
                dD3 = dd + 2;
                if (dD3 < 10) {
                    var dD3 = ('0' + (dd + 2));
            //        log('Tag zweistellig ' + dD3);
                }
            //    log(dD3);
                dD4 = dd + 3;
                if (dD4 < 10) {
                    var dD4 = ('0' + (dd + 3));
            //        log('Tag zweistellig ' + dD4);
                }
                dD5 = dd + 4;
                if (dD5 < 10) {
                    var dD5 = ('0' + (dd + 4));
            //        log('Tag zweistellig ' + dD5);
                }
            
                dM = dm;
                if (dm < 10) {
                    var dM = ('0' + dm);
            //        log('Monat zweistellig ' + dM);
                }     
            
            //VorMonat als Namen
            
            Date.prototype.getFullMonth = function () {
              return (["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"])[this.getMonth()];
            };
            
                var VdM = d.getFullMonth(); 
            
            function berechneDatum() {
            // Berechnung des aktuellen Monats
               ...
                setState(Tag1, (dD1 + ' ' + VdM + ' ' + dJ));
                log(dD1 + ' ' + VdM + ' ' + dJ);
                setState(Tag2, (dD2 + ' ' + VdM + ' ' + dJ));
            //    log(dD2 + ' ' + VdM + ' ' + dJ);
                setState(Tag3, (dD3 + ' ' + VdM + ' ' + dJ));
            //    log(dD3 + ' ' + VdM + ' ' + dJ);
                setState(Tag4, (dD4 + ' ' + VdM + ' ' + dJ));
            //    log(dD4 + ' ' + VdM + ' ' + dJ);
                setState(Tag5, (dD5 + ' ' + VdM + ' ' + dJ));
            //    log(dD5 + ' ' + VdM + ' ' + dJ);
            }
            
            berechneDatum(); // Skriptstart
            schedule("25 0 0 * * *", berechneDatum);   
            
            });
            

            Könnt Ihr bitte nochmal kurz schauen ob das so klappt. Habe ja leider immer nur den Tageswechsel um zu sehen ob es geht.

            Vielen Dank

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

              @Zippolighter:

              ob das so klappt. `
              Nein. Die 3 Punkte nach dem Start-Kommentar in der Funktion sind durch die <u>gesamte Berechnung</u> zu ersetzen.

              1 Reply Last reply Reply Quote 0
              • D
                DavidFD last edited by

                Hab das grad mal runtergegebrochen dein Script, da ich es für meine Views auch gebrauchen kann (was ich bis dato noch gar nicht wusste ;))

                
                // States beim Start erzeugen
                for (var i = 1; i <= 5; i++) {
                    var objectid = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ " + i + "Tag";
                    createState(objectid, "", {
                        name: 'Datum Tag ' + i,
                    });
                }
                
                function pad(n){return n<10 ? '0'+n : n}
                
                function generateDates() {
                
                    var heute = new Date();
                
                    Date.prototype.getFullMonth = function () {
                        return (["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"])[this.getMonth()];
                    };
                
                    for (var i = 1; i <= 5; i++) {
                        var objectid = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ " + i + "Tag";
                        console.log(objectid);
                        var tempdate = new Date();
                        tempdate.setDate(heute.getDate() + i);
                        var datestring = pad(tempdate.getDate()) + " " + tempdate.getFullMonth() + " " + tempdate.getFullYear();
                        console.log("Tag "+ i+" - "+ datestring);
                        setState(objectid, datestring);
                    }
                }
                
                generateDates(); // funktion direkt aufrufen, damit sie beim Start auch die Daten generiert 
                
                schedule('1,5 0 * * *', generateDates);  // Nachts um 00:05 und 00:01 den Job ausführen
                
                
                1 Reply Last reply Reply Quote 0
                • Z
                  Zippolighter last edited by

                  @paul53:

                  Nein. Die 3 Punkte nach dem Start-Kommentar in der Funktion sind durch die <u>gesamte Berechnung</u> zu ersetzen. `

                  //   Datum für Wetter Widget in der richtigen Reihenfolge anzeigen
                  
                  createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 1Tag", {name: 'Datum_ 1Tag', common: 'string'}, function () {});  
                  createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 2Tag", {name: 'Datum_ 2Tag', common: 'string'}, function () {});
                  createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 3Tag", {name: 'Datum_ 3Tag', common: 'string'}, function () {});
                  createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 4Tag", {name: 'Datum_ 4Tag', common: 'string'}, function () {});
                  createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 5Tag", {name: 'Datum_ 5Tag', common: 'string'}, function () {});
                  
                  function berechneDatum() {
                  
                  // Berechnung des aktuellen Monats
                  
                      var d = new Date();
                      var dm = d.getMonth() +1;
                      var dd = d.getDate();
                      var dJ = d.getFullYear();
                      var Monat;
                      log('Monat ' + dm);
                      log('Tag ' + dd);
                  log('Datum neu berechnet');
                  
                      var Tag1 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 1Tag";
                      var Tag2 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 2Tag";
                      var Tag3 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 3Tag";
                      var Tag4 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 4Tag";
                      var Tag5 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 5Tag";
                  
                      dD1 = dd + 0;
                      if (dD1 < 10) {
                          var dD1 = ('0' + dd);
                  //        log('Tag zweistellig ' + dD1);
                      }
                      dD2 = dd + 1;
                      if (dD2 < 10) {
                          var dD2 = ('0' + (dd + 1));
                  //        log('Tag zweistellig ' + dD2);
                      }
                      dD3 = dd + 2;
                      if (dD3 < 10) {
                          var dD3 = ('0' + (dd + 2));
                  //        log('Tag zweistellig ' + dD3);
                      }
                  //    log(dD3);
                      dD4 = dd + 3;
                      if (dD4 < 10) {
                          var dD4 = ('0' + (dd + 3));
                  //        log('Tag zweistellig ' + dD4);
                      }
                      dD5 = dd + 4;
                      if (dD5 < 10) {
                          var dD5 = ('0' + (dd + 4));
                  //        log('Tag zweistellig ' + dD5);
                      }
                  
                      dM = dm;
                      if (dm < 10) {
                          var dM = ('0' + dm);
                  //        log('Monat zweistellig ' + dM);
                      }     
                  
                  //VorMonat als Namen
                  
                  Date.prototype.getFullMonth = function () {
                    return (["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"])[this.getMonth()];
                  };
                  
                      var VdM = d.getFullMonth(); 
                  
                      setState(Tag1, (dD1 + ' ' + VdM + ' ' + dJ));
                      log(dD1 + ' ' + VdM + ' ' + dJ);
                      setState(Tag2, (dD2 + ' ' + VdM + ' ' + dJ));
                  //    log(dD2 + ' ' + VdM + ' ' + dJ);
                      setState(Tag3, (dD3 + ' ' + VdM + ' ' + dJ));
                  //    log(dD3 + ' ' + VdM + ' ' + dJ);
                      setState(Tag4, (dD4 + ' ' + VdM + ' ' + dJ));
                  //    log(dD4 + ' ' + VdM + ' ' + dJ);
                      setState(Tag5, (dD5 + ' ' + VdM + ' ' + dJ));
                  //    log(dD5 + ' ' + VdM + ' ' + dJ);
                  }
                  
                  berechneDatum(); // Skriptstart
                  schedule("25 0 0 * * *", berechneDatum);   
                  
                  

                  Irgend was mache ich nocht falsch

                  1304_screenshot_319.jpg

                  Wäre toll wenn paul oder jemand anderes mir hier nochmal auf die Sprünge helfen kann.

                  Vielen Dank

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

                    Die Variablen sind nicht deklariert. Beispiel

                        dD1 = dd + 0;
                    
                    

                    –>

                        var dD1 = dd + 0;
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • Z
                      Zippolighter last edited by

                      Danke paul, mal wieder vor lauter Bäumen den Wald nicht gesehen.

                      Keine Fehlermeldungen mehr. Bin dann mal gespannt auf heute Nacht

                      1 Reply Last reply Reply Quote 0
                      • Z
                        Zippolighter last edited by

                        @DavidFD:

                        Hab das grad mal runtergegebrochen dein Script, da ich es für meine Views auch gebrauchen kann (was ich bis dato noch gar nicht wusste ;)) `

                        Hallo David, habe jetzt dank paul mein Script erstmal hinbekommen. Ist für mein Verständnis immer wichtig.

                        Werde mich aber auch mit Deinem Script nochmal beschäftigen. Ist halt in anderer Art und Weise geschrieben. Finde ich super interessant.

                        Gruß Zippolighter

                        1 Reply Last reply Reply Quote 0
                        • D
                          DavidFD last edited by

                          @Zippolighter:

                          Hallo David, habe jetzt dank paul mein Script erstmal hinbekommen. Ist für mein Verständnis immer wichtig.

                          Werde mich aber auch mit Deinem Script nochmal beschäftigen. Ist halt in anderer Art und Weise geschrieben. Finde ich super interessant.

                          Gruß Zippolighter `

                          Viele Wege führen nach Rom, das ist das Schöne.

                          Super das dein Script jetzt läuft.

                          Ein Tipp noch, klappt auch der Monatswechsel?

                          Kannst es ja mal testen mit: var d = new Date(2019,0,29);

                          Beim überfliegen scheinst +1 auf die Tage zu addieren.

                          1 Reply Last reply Reply Quote 0
                          • Röstkartoffel
                            Röstkartoffel last edited by

                            Danke für das Wetter Widget als Ersatz für das Yahoo-Wetter.

                            Funktioniert auch Klasse mit deinem Wetterscript.

                            Nur heute sagt es mir, das in 5 Tagen der 32. Januar 2019 ist. 😮

                            Könnt ihr euch das Skript diesbezüglich nochmal ansehen?

                            1826_wetterscript_monatswechsel_falsch.jpg

                            Danke

                            Volker

                            1 Reply Last reply Reply Quote 0
                            • Z
                              Zippolighter last edited by

                              Jepp habe ich heute morgen auch gesehen. Gehe da dran sobald ich Zeit habe um das grade zu ziehen, kann aber WE werden.

                              Gruß Zippolighter

                              Röstkartoffel Glasfaser 2 Replies Last reply Reply Quote 0
                              • Röstkartoffel
                                Röstkartoffel @Zippolighter last edited by

                                @Zippolighter sagte in [Erledigt] Hilfe Datumsscript:

                                Jepp habe ich heute morgen auch gesehen. Gehe da dran sobald ich Zeit habe um das grade zu ziehen, kann aber WE werden.

                                Gruß Zippolighter

                                Hallo Zippolighter.

                                Hast du schon Zeit gefunden, dir das anzusehen und zu ändern?

                                1 Reply Last reply Reply Quote 0
                                • Glasfaser
                                  Glasfaser @Zippolighter last edited by Glasfaser

                                  @Zippolighter

                                  Neues Jahr neues Glück .. 😊

                                  2.JPG

                                  Kannst du nochmal über das Script schauen !?
                                  oder @paul53 wärst du vielleicht so Nett !?

                                  //   Datum für Wetter Widget in der richtigen Reihenfolge anzeigen
                                  
                                  createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 1Tag", {name: 'Datum_ 1Tag', common: 'string'}, function () {});  
                                  createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 2Tag", {name: 'Datum_ 2Tag', common: 'string'}, function () {});
                                  createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 3Tag", {name: 'Datum_ 3Tag', common: 'string'}, function () {});
                                  createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 4Tag", {name: 'Datum_ 4Tag', common: 'string'}, function () {});
                                  createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 5Tag", {name: 'Datum_ 5Tag', common: 'string'}, function () {});
                                  
                                  function berechneDatum() {
                                  
                                  // Berechnung des aktuellen Monats
                                  
                                     var d = new Date();
                                     var dm = d.getMonth() +1;
                                     var dd = d.getDate();
                                     var dJ = d.getFullYear();
                                     var Monat;
                                     log('Monat ' + dm);
                                     log('Tag ' + dd);
                                  log('Datum neu berechnet');
                                  
                                     
                                     var Tag1 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 1Tag";
                                     var Tag2 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 2Tag";
                                     var Tag3 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 3Tag";
                                     var Tag4 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 4Tag";
                                     var Tag5 = "javascript.0.Manuell.Systemvariable.Wetter.Datum_ 5Tag";
                                     
                                     var dD1 = dd + 0;
                                     if (dD1 < 10) {
                                         dD1 = ('0' + dd);
                                  //        log('Tag zweistellig ' + dD1);
                                     }
                                     var dD2 = dd + 1;
                                     if (dD2 < 10) {
                                         dD2 = ('0' + (dd + 1));
                                  //        log('Tag zweistellig ' + dD2);
                                     }
                                     var dD3 = dd + 2;
                                     if (dD3 < 10) {
                                         dD3 = ('0' + (dd + 2));
                                  //        log('Tag zweistellig ' + dD3);
                                     }
                                  //    log(dD3);
                                     var dD4 = dd + 3;
                                     if (dD4 < 10) {
                                         dD4 = ('0' + (dd + 3));
                                  //        log('Tag zweistellig ' + dD4);
                                     }
                                     var dD5 = dd + 4;
                                     if (dD5 < 10) {
                                         dD5 = ('0' + (dd + 4));
                                  //        log('Tag zweistellig ' + dD5);
                                     }
                                     
                                     dM = dm;
                                     if (dm < 10) {
                                         var dM = ('0' + dm);
                                  //        log('Monat zweistellig ' + dM);
                                     }     
                                     
                                  //VorMonat als Namen
                                  
                                  Date.prototype.getFullMonth = function () {
                                   return (["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"])[this.getMonth()];
                                  };
                                  
                                     var VdM = d.getFullMonth(); 
                                  
                                     setState(Tag1, (dD1 + ' ' + VdM + ' ' + dJ));
                                     log(dD1 + ' ' + VdM + ' ' + dJ);
                                     setState(Tag2, (dD2 + ' ' + VdM + ' ' + dJ));
                                  //    log(dD2 + ' ' + VdM + ' ' + dJ);
                                     setState(Tag3, (dD3 + ' ' + VdM + ' ' + dJ));
                                  //    log(dD3 + ' ' + VdM + ' ' + dJ);
                                     setState(Tag4, (dD4 + ' ' + VdM + ' ' + dJ));
                                  //    log(dD4 + ' ' + VdM + ' ' + dJ);
                                     setState(Tag5, (dD5 + ' ' + VdM + ' ' + dJ));
                                  //    log(dD5 + ' ' + VdM + ' ' + dJ);
                                  }
                                  
                                  berechneDatum(); // Skriptstart
                                  schedule("25 0 0 * * *", berechneDatum);
                                  

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

                                    Hi,

                                    versucht mal das:

                                    //   Datum für Wetter Widget in der richtigen Reihenfolge anzeigen
                                    createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 1Tag", {name: 'Datum_ 1Tag', common: 'string'}, function () {})
                                    createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 2Tag", {name: 'Datum_ 2Tag', common: 'string'}, function () {})
                                    createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 3Tag", {name: 'Datum_ 3Tag', common: 'string'}, function () {})
                                    createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 4Tag", {name: 'Datum_ 4Tag', common: 'string'}, function () {})
                                    createState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 5Tag", {name: 'Datum_ 5Tag', common: 'string'}, function () {})
                                    
                                    function berechneDatum() {
                                       function addDays(date, days) {
                                           let result = new Date(date)
                                           result.setDate(result.getDate() + days)
                                    
                                           return result
                                       }
                                    
                                       function toDateString(date) {
                                           let day = date.getDate() < 10 ? `0${date.getDate()}` : date.getDate()
                                           let month = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"][date.getMonth()]
                                           return `${day} ${month} ${date.getFullYear()}`
                                       }
                                    
                                       let currentDate = new Date()
                                    
                                       let day01 = currentDate /* = addDays(currentDate, 0) */
                                       let day02 = addDays(currentDate, 1)
                                       let day03 = addDays(currentDate, 2)
                                       let day04 = addDays(currentDate, 3)
                                       let day05 = addDays(currentDate, 4)
                                    
                                       setState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 1Tag", toDateString(day01))
                                       setState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 2Tag", toDateString(day02))
                                       setState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 3Tag", toDateString(day03))
                                       setState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 4Tag", toDateString(day04))
                                       setState("javascript.0.Manuell.Systemvariable.Wetter.Datum_ 5Tag", toDateString(day05))
                                    }
                                    
                                    berechneDatum() // Skriptstart
                                    schedule("25 0 0 * * *", berechneDatum)
                                    

                                    9affac00-f1a6-4055-b0cd-a7320b12af94-image.png

                                    Glasfaser 1 Reply Last reply Reply Quote 2
                                    • Glasfaser
                                      Glasfaser @wendy2702 last edited by

                                      @wendy2702

                                      Sieht schon besser aus 🙂

                                      .
                                      1.JPG

                                      @Nashra

                                      1 Reply Last reply Reply Quote 0
                                      • Nashra
                                        Nashra Most Active Forum Testing last edited by

                                        Klasse, jetzt ist es richtig 👍

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        495
                                        Online

                                        31.7k
                                        Users

                                        79.8k
                                        Topics

                                        1.3m
                                        Posts

                                        7
                                        18
                                        1411
                                        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