Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Erledigt] Hilfe Datumsscript

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[Erledigt] Hilfe Datumsscript

Scheduled Pinned Locked Moved Skripten / Logik
18 Posts 7 Posters 1.8k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    DavidFD
    wrote on last edited by
    #6

    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
    
    

    2 Raspis als Multihost, Homematic, Xiaomi und Hue.

    Bastelprojekte auf www.derfrickler.de zu finden.

    Aktuell:

    1 Reply Last reply
    0
    • Z Offline
      Z Offline
      Zippolighter
      wrote on last edited by
      #7

      @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
      0
      • paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #8

        Die Variablen sind nicht deklariert. Beispiel

            dD1 = dd + 0;
        
        

        –>

            var dD1 = dd + 0;
        
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Reply Last reply
        0
        • Z Offline
          Z Offline
          Zippolighter
          wrote on last edited by
          #9

          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
          0
          • Z Offline
            Z Offline
            Zippolighter
            wrote on last edited by
            #10

            @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
            0
            • D Offline
              D Offline
              DavidFD
              wrote on last edited by
              #11

              @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.

              2 Raspis als Multihost, Homematic, Xiaomi und Hue.

              Bastelprojekte auf www.derfrickler.de zu finden.

              Aktuell:

              1 Reply Last reply
              0
              • RöstkartoffelR Offline
                RöstkartoffelR Offline
                Röstkartoffel
                wrote on last edited by
                #12

                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. :o

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

                1826_wetterscript_monatswechsel_falsch.jpg

                Danke

                Volker

                NUC7i3BNH mit Proxmox und ioBroker (VM Debian Buster), Raspi3 (Slave Smartmeter für eHZ easymeter), Hardware CCU2, SMA SB5000TL-21

                1 Reply Last reply
                0
                • Z Offline
                  Z Offline
                  Zippolighter
                  wrote on last edited by
                  #13

                  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östkartoffelR GlasfaserG 2 Replies Last reply
                  0
                  • Z Zippolighter

                    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östkartoffelR Offline
                    RöstkartoffelR Offline
                    Röstkartoffel
                    wrote on last edited by
                    #14

                    @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?

                    NUC7i3BNH mit Proxmox und ioBroker (VM Debian Buster), Raspi3 (Slave Smartmeter für eHZ easymeter), Hardware CCU2, SMA SB5000TL-21

                    1 Reply Last reply
                    0
                    • Z Zippolighter

                      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

                      GlasfaserG Offline
                      GlasfaserG Offline
                      Glasfaser
                      wrote on last edited by Glasfaser
                      #15

                      @Zippolighter

                      Neues Jahr neues Glück .. :blush:

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

                      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                      1 Reply Last reply
                      0
                      • wendy2702W Online
                        wendy2702W Online
                        wendy2702
                        wrote on last edited by
                        #16

                        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

                        Bitte keine Fragen per PN, die gehören ins Forum!

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        GlasfaserG 1 Reply Last reply
                        2
                        • wendy2702W wendy2702

                          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

                          GlasfaserG Offline
                          GlasfaserG Offline
                          Glasfaser
                          wrote on last edited by
                          #17

                          @wendy2702

                          Sieht schon besser aus :)

                          .
                          1.JPG

                          @Nashra

                          Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                          1 Reply Last reply
                          0
                          • NashraN Offline
                            NashraN Offline
                            Nashra
                            Most Active Forum Testing
                            wrote on last edited by
                            #18

                            Klasse, jetzt ist es richtig :+1:

                            Gruß Ralf
                            Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

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


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            499

                            Online

                            32.6k

                            Users

                            82.1k

                            Topics

                            1.3m

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

                            • Don't have an account? Register

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