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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Schedule für Monatswechsel triggert täglich

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] Schedule für Monatswechsel triggert täglich

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
6 Beiträge 4 Kommentatoren 466 Aufrufe 3 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.
  • G Offline
    G Offline
    GombersIOB
    schrieb am zuletzt editiert von GombersIOB
    #1

    Ich habe mit Blockly einen Monatswechsel programmiert. Das Ganze wird zur gewünschten Zeit, aber eben täglich ausgeführt. Ich prüfe jetzt deshalb zusätzlich, ob der Monat der Ausführung mit dem gespeicherten laufenden Monat übereinstimmt. Sieht aber als Code ziemlich häßlich aus ;-)

    55a254e8-d057-4ef3-895d-c3650102055d-grafik.png

    Wenn man sich den Schedule mit dem Blockly Wizard anschaut dann sieht es wie folgt aus:
    4ed1f3ad-963d-4b30-b634-a5acb243d833-grafik.png

    Als JavaScript so:

    var currentMonth, monthFromCurrentDate;
    
    // Beschreibe diese Funktion …
    async function getCurrentMonth() {
        let monthList = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September',    
                        'Oktober','November','Dezember'];
        let now = new Date().getMonth();
        return monthList[now];;
    }
    
    // Beschreibe diese Funktion …
    async function getTimestamp() {
        return new Date().toString();
    }
    
    
    schedule('{"time":{"exactTime":true,"start":"00:02"},"period":{"months":1}}', async function () {
      console.log('MonthlySwitch called');
      currentMonth = await getCurrentMonth();
      monthFromCurrentDate = getState("0_userdata.0.Sungrow.EarningsPerMonth.CurrentMonth.DateTeaser").val;
      if (currentMonth != monthFromCurrentDate) {
        setState("0_userdata.0.Sungrow.EarningsPerMonth.PrevMonth.EnergyOwnConsumed"/*EnergyOwnConsumedPrevMonth*/, getState("0_userdata.0.Sungrow.EarningsPerMonth.CurrentMonth.EnergyConsumed").val);
    

    Ich bin mit der Syntax des Schedule-Kommandos nicht vertraut, aber es sieht für mich plausibel aus.

    paul53P ? CodierknechtC 3 Antworten Letzte Antwort
    0
    • G GombersIOB

      Ich habe mit Blockly einen Monatswechsel programmiert. Das Ganze wird zur gewünschten Zeit, aber eben täglich ausgeführt. Ich prüfe jetzt deshalb zusätzlich, ob der Monat der Ausführung mit dem gespeicherten laufenden Monat übereinstimmt. Sieht aber als Code ziemlich häßlich aus ;-)

      55a254e8-d057-4ef3-895d-c3650102055d-grafik.png

      Wenn man sich den Schedule mit dem Blockly Wizard anschaut dann sieht es wie folgt aus:
      4ed1f3ad-963d-4b30-b634-a5acb243d833-grafik.png

      Als JavaScript so:

      var currentMonth, monthFromCurrentDate;
      
      // Beschreibe diese Funktion …
      async function getCurrentMonth() {
          let monthList = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September',    
                          'Oktober','November','Dezember'];
          let now = new Date().getMonth();
          return monthList[now];;
      }
      
      // Beschreibe diese Funktion …
      async function getTimestamp() {
          return new Date().toString();
      }
      
      
      schedule('{"time":{"exactTime":true,"start":"00:02"},"period":{"months":1}}', async function () {
        console.log('MonthlySwitch called');
        currentMonth = await getCurrentMonth();
        monthFromCurrentDate = getState("0_userdata.0.Sungrow.EarningsPerMonth.CurrentMonth.DateTeaser").val;
        if (currentMonth != monthFromCurrentDate) {
          setState("0_userdata.0.Sungrow.EarningsPerMonth.PrevMonth.EnergyOwnConsumed"/*EnergyOwnConsumedPrevMonth*/, getState("0_userdata.0.Sungrow.EarningsPerMonth.CurrentMonth.EnergyConsumed").val);
      

      Ich bin mit der Syntax des Schedule-Kommandos nicht vertraut, aber es sieht für mich plausibel aus.

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @gombersiob sagte: Ich bin mit der Syntax des Schedule-Kommandos nicht vertraut

      Nimm besser einen CRON-String: "2 0 1 * *"

      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

      G 1 Antwort Letzte Antwort
      0
      • G GombersIOB

        Ich habe mit Blockly einen Monatswechsel programmiert. Das Ganze wird zur gewünschten Zeit, aber eben täglich ausgeführt. Ich prüfe jetzt deshalb zusätzlich, ob der Monat der Ausführung mit dem gespeicherten laufenden Monat übereinstimmt. Sieht aber als Code ziemlich häßlich aus ;-)

        55a254e8-d057-4ef3-895d-c3650102055d-grafik.png

        Wenn man sich den Schedule mit dem Blockly Wizard anschaut dann sieht es wie folgt aus:
        4ed1f3ad-963d-4b30-b634-a5acb243d833-grafik.png

        Als JavaScript so:

        var currentMonth, monthFromCurrentDate;
        
        // Beschreibe diese Funktion …
        async function getCurrentMonth() {
            let monthList = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September',    
                            'Oktober','November','Dezember'];
            let now = new Date().getMonth();
            return monthList[now];;
        }
        
        // Beschreibe diese Funktion …
        async function getTimestamp() {
            return new Date().toString();
        }
        
        
        schedule('{"time":{"exactTime":true,"start":"00:02"},"period":{"months":1}}', async function () {
          console.log('MonthlySwitch called');
          currentMonth = await getCurrentMonth();
          monthFromCurrentDate = getState("0_userdata.0.Sungrow.EarningsPerMonth.CurrentMonth.DateTeaser").val;
          if (currentMonth != monthFromCurrentDate) {
            setState("0_userdata.0.Sungrow.EarningsPerMonth.PrevMonth.EnergyOwnConsumed"/*EnergyOwnConsumedPrevMonth*/, getState("0_userdata.0.Sungrow.EarningsPerMonth.CurrentMonth.EnergyConsumed").val);
        

        Ich bin mit der Syntax des Schedule-Kommandos nicht vertraut, aber es sieht für mich plausibel aus.

        ? Offline
        ? Offline
        Ein ehemaliger Benutzer
        schrieb am zuletzt editiert von Ein ehemaliger Benutzer
        #3

        @gombersiob ich würde eher cron string nehmen. Probier es mal so:

        A71B6B7D-6CDC-4B5C-952F-7BA510D1CFF6.jpeg

        //edit oh @paul53 war schneller :D

        1 Antwort Letzte Antwort
        1
        • G GombersIOB

          Ich habe mit Blockly einen Monatswechsel programmiert. Das Ganze wird zur gewünschten Zeit, aber eben täglich ausgeführt. Ich prüfe jetzt deshalb zusätzlich, ob der Monat der Ausführung mit dem gespeicherten laufenden Monat übereinstimmt. Sieht aber als Code ziemlich häßlich aus ;-)

          55a254e8-d057-4ef3-895d-c3650102055d-grafik.png

          Wenn man sich den Schedule mit dem Blockly Wizard anschaut dann sieht es wie folgt aus:
          4ed1f3ad-963d-4b30-b634-a5acb243d833-grafik.png

          Als JavaScript so:

          var currentMonth, monthFromCurrentDate;
          
          // Beschreibe diese Funktion …
          async function getCurrentMonth() {
              let monthList = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September',    
                              'Oktober','November','Dezember'];
              let now = new Date().getMonth();
              return monthList[now];;
          }
          
          // Beschreibe diese Funktion …
          async function getTimestamp() {
              return new Date().toString();
          }
          
          
          schedule('{"time":{"exactTime":true,"start":"00:02"},"period":{"months":1}}', async function () {
            console.log('MonthlySwitch called');
            currentMonth = await getCurrentMonth();
            monthFromCurrentDate = getState("0_userdata.0.Sungrow.EarningsPerMonth.CurrentMonth.DateTeaser").val;
            if (currentMonth != monthFromCurrentDate) {
              setState("0_userdata.0.Sungrow.EarningsPerMonth.PrevMonth.EnergyOwnConsumed"/*EnergyOwnConsumedPrevMonth*/, getState("0_userdata.0.Sungrow.EarningsPerMonth.CurrentMonth.EnergyConsumed").val);
          

          Ich bin mit der Syntax des Schedule-Kommandos nicht vertraut, aber es sieht für mich plausibel aus.

          CodierknechtC Online
          CodierknechtC Online
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von
          #4

          @gombersiob
          Dein Schedule sagt Dir ja schon, dass es jeden Tag läuft:
          1177a2e5-a3e5-4716-856e-ccc647dc03e4-image.png

          Nimm - wie die anderen bereits empfohlen haben - CRON

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          G 1 Antwort Letzte Antwort
          1
          • CodierknechtC Codierknecht

            @gombersiob
            Dein Schedule sagt Dir ja schon, dass es jeden Tag läuft:
            1177a2e5-a3e5-4716-856e-ccc647dc03e4-image.png

            Nimm - wie die anderen bereits empfohlen haben - CRON

            G Offline
            G Offline
            GombersIOB
            schrieb am zuletzt editiert von
            #5

            @codierknecht said in Schedule für Monatswechsel triggert täglich:

            Dein Schedule sagt Dir ja schon, dass es jeden Tag läuft:

            Shame on me!!!

            1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @gombersiob sagte: Ich bin mit der Syntax des Schedule-Kommandos nicht vertraut

              Nimm besser einen CRON-String: "2 0 1 * *"

              G Offline
              G Offline
              GombersIOB
              schrieb am zuletzt editiert von
              #6

              @paul53 said in Schedule für Monatswechsel triggert täglich:

              Nimm besser einen CRON-String: "2 0 1 * *"

              Mach ich, ist übersichtlicher! Danke

              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              702

              Online

              32.6k

              Benutzer

              82.2k

              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