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. JavaScript
  5. Cronjobs anzeigen [gelöst]

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Cronjobs anzeigen [gelöst]

Geplant Angeheftet Gesperrt Verschoben JavaScript
20 Beiträge 2 Kommentatoren 1.3k 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.
  • paul53P paul53

    @joergh sagte: mit einem anderen gezielt wieder löschen kann.

    Du möchtest in einem anderen Skript einen bestimmten Cronjob löschen? Das wird wohl nicht funktionieren, da der Bezeichner und die ID nicht übereinstimmen.

    J Offline
    J Offline
    JoergH
    schrieb am zuletzt editiert von
    #9

    @paul53 Wenn man in Blockly ein cronjob anlegt, gibt man den Namen an und wenn man ihn löschen will, dann nimmt man den gleichen Namen in dem entsprechenden Block. Ich will die dynamisieren, also einrichten können mit einem Namen in einem JS-Script Baustein und mit einem anderen Baustein wieder löschen. Irgendwie müssen die doch identifzierbar sein oder geht das überhaupt nicht?
    Dann bliebe nur die Einrichtung und Löschung in einem JS-Script anzulegen und über ein Flag von außen zu steuern was er ausführt?

    1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @joergh sagte: Wie hast Du denn genau die Abfrage mit getSchedules(true) durchgeführt?

      const list = getSchedules(true);
      list.forEach(schedule => log(JSON.stringify(schedule)));
      
      J Offline
      J Offline
      JoergH
      schrieb am zuletzt editiert von JoergH
      #10

      @paul53 sagte in Cronjobs anzeigen:

      @joergh sagte: Wie hast Du denn genau die Abfrage mit getSchedules(true) durchgeführt?

      const list = getSchedules(true);
      list.forEach(schedule => log(JSON.stringify(schedule)));
      

      Warum kriege ich keinen Wert, wenn ich versuche die Länge abzufragen?

      const schedulesBefore = getSchedules(true);
      console.info("Länge der schedulesBefore: ", schedulesBefore.length);
      

      [EDIT] - Ist ein Array...habs jetzt...

      1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @joergh sagte: mit einem anderen gezielt wieder löschen kann.

        Du möchtest in einem anderen Skript einen bestimmten Cronjob löschen? Das wird wohl nicht funktionieren, da der Bezeichner und die ID nicht übereinstimmen.

        J Offline
        J Offline
        JoergH
        schrieb am zuletzt editiert von JoergH
        #11

        @paul53

        Wenn ich mit einem Blockly Element einen erzeuge, dann nutzt er doch den Namen um zu identifizieren welcher Job das ist.

        schedule1 = schedule('* * * * *', async () => {
          console.info('test');
        });
        

        Was wird denn an schedule1 übergeben? Wenn ich das mit JS abfrage, erhalte ich immer eine leere consolen-Ausgabe.

        Wenn ich den cronjob hinterher mit einem anderen Blockly stoppen möchte, dann benutze ich doch den gleichen Namen erneut...speichert er hier nicht eine Referenz oder ein Objekt o.ä. ab?

        (() => { if (schedule1) { clearSchedule(schedule1); schedule1 = null; }})();
        

        Irgendwie muss er doch den cronjob identifizieren...?

        paul53P 1 Antwort Letzte Antwort
        0
        • J JoergH

          @paul53

          Wenn ich mit einem Blockly Element einen erzeuge, dann nutzt er doch den Namen um zu identifizieren welcher Job das ist.

          schedule1 = schedule('* * * * *', async () => {
            console.info('test');
          });
          

          Was wird denn an schedule1 übergeben? Wenn ich das mit JS abfrage, erhalte ich immer eine leere consolen-Ausgabe.

          Wenn ich den cronjob hinterher mit einem anderen Blockly stoppen möchte, dann benutze ich doch den gleichen Namen erneut...speichert er hier nicht eine Referenz oder ein Objekt o.ä. ab?

          (() => { if (schedule1) { clearSchedule(schedule1); schedule1 = null; }})();
          

          Irgendwie muss er doch den cronjob identifizieren...?

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

          @joergh sagte: speichert er hier nicht eine Referenz oder ein Objekt o.ä. ab?

          Es wird ein komplexes Objekt in schedule1 gespeichert, das u.a. das Attribut _ioBroker enthält:

          const sched1 = schedule('0 12 * * *', function() {
              log('12:00 Uhr');
          });
          log(sched1._ioBroker);
          

          Log-Ausgabe:

          javascript.0	15:46:18.560	info	script.js.common.Neuer_Test: { type: 'cron', pattern: '0 12 * * *', scriptName: 'script.js.common.Neuer_Test', id: 'cron_1731941178560_46833' }
          

          Gesamter Inhalt von sched1:

          <ref *1> Job { pendingInvocations: [ Invocation { job: [Circular *1], fireDate: [CronDate], endDate: undefined, recurrenceRule: [CronExpression], timerID: null } ], job: [Function (anonymous)], callback: false, running: 0, name: '<Anonymous Job 21 2024-11-18T14:47:48.946Z>', trackInvocation: [Function (anonymous)], stopTrackingInvocation: [Function (anonymous)], triggeredJobs: [Function (anonymous)], setTriggeredJobs: [Function (anonymous)], deleteFromSchedule: [Function (anonymous)], cancel: [Function (anonymous)], cancelNext: [Function (anonymous)], reschedule: [Function (anonymous)], nextInvocation: [Function (anonymous)], _ioBroker: { type: 'cron', pattern: '0 12 * * *', scriptName: 'script.js.common.Neuer_Test', id: 'cron_1731941268946_41631' } }
          

          Ich habe keine Ahnung, was davon verwendet wird, um clearSchedule(sched1) den richtigen Schedule löschen zu lassen.

          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

          J 2 Antworten Letzte Antwort
          0
          • paul53P paul53

            @joergh sagte: speichert er hier nicht eine Referenz oder ein Objekt o.ä. ab?

            Es wird ein komplexes Objekt in schedule1 gespeichert, das u.a. das Attribut _ioBroker enthält:

            const sched1 = schedule('0 12 * * *', function() {
                log('12:00 Uhr');
            });
            log(sched1._ioBroker);
            

            Log-Ausgabe:

            javascript.0	15:46:18.560	info	script.js.common.Neuer_Test: { type: 'cron', pattern: '0 12 * * *', scriptName: 'script.js.common.Neuer_Test', id: 'cron_1731941178560_46833' }
            

            Gesamter Inhalt von sched1:

            <ref *1> Job { pendingInvocations: [ Invocation { job: [Circular *1], fireDate: [CronDate], endDate: undefined, recurrenceRule: [CronExpression], timerID: null } ], job: [Function (anonymous)], callback: false, running: 0, name: '<Anonymous Job 21 2024-11-18T14:47:48.946Z>', trackInvocation: [Function (anonymous)], stopTrackingInvocation: [Function (anonymous)], triggeredJobs: [Function (anonymous)], setTriggeredJobs: [Function (anonymous)], deleteFromSchedule: [Function (anonymous)], cancel: [Function (anonymous)], cancelNext: [Function (anonymous)], reschedule: [Function (anonymous)], nextInvocation: [Function (anonymous)], _ioBroker: { type: 'cron', pattern: '0 12 * * *', scriptName: 'script.js.common.Neuer_Test', id: 'cron_1731941268946_41631' } }
            

            Ich habe keine Ahnung, was davon verwendet wird, um clearSchedule(sched1) den richtigen Schedule löschen zu lassen.

            J Offline
            J Offline
            JoergH
            schrieb am zuletzt editiert von
            #13

            @paul53

            Aha, danke.

            Wenn ich das abspeichern will, kann ich dazu dann ein Datenpunkt manuell als Typ Objekt anlegen und die variable sched1._iobroker da einfach reinschreiben und dann sind die hier aufgelisteten Werte drin?
            Wenn das geht, reicht es dann diese Daten beim Löschen des cronjobs wieder anzugeben, oder benötige ich das komplette Objekt?
            Wenn ich das komplette Objekt benötige, kann ich dieses dann einfach in den Datenpunkt speichern oder gibt es da irgendwelche Zugriffsprobleme, wenn ich das aus einem JS-Script aus Blockly versuche?

            paul53P 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @joergh sagte: speichert er hier nicht eine Referenz oder ein Objekt o.ä. ab?

              Es wird ein komplexes Objekt in schedule1 gespeichert, das u.a. das Attribut _ioBroker enthält:

              const sched1 = schedule('0 12 * * *', function() {
                  log('12:00 Uhr');
              });
              log(sched1._ioBroker);
              

              Log-Ausgabe:

              javascript.0	15:46:18.560	info	script.js.common.Neuer_Test: { type: 'cron', pattern: '0 12 * * *', scriptName: 'script.js.common.Neuer_Test', id: 'cron_1731941178560_46833' }
              

              Gesamter Inhalt von sched1:

              <ref *1> Job { pendingInvocations: [ Invocation { job: [Circular *1], fireDate: [CronDate], endDate: undefined, recurrenceRule: [CronExpression], timerID: null } ], job: [Function (anonymous)], callback: false, running: 0, name: '<Anonymous Job 21 2024-11-18T14:47:48.946Z>', trackInvocation: [Function (anonymous)], stopTrackingInvocation: [Function (anonymous)], triggeredJobs: [Function (anonymous)], setTriggeredJobs: [Function (anonymous)], deleteFromSchedule: [Function (anonymous)], cancel: [Function (anonymous)], cancelNext: [Function (anonymous)], reschedule: [Function (anonymous)], nextInvocation: [Function (anonymous)], _ioBroker: { type: 'cron', pattern: '0 12 * * *', scriptName: 'script.js.common.Neuer_Test', id: 'cron_1731941268946_41631' } }
              

              Ich habe keine Ahnung, was davon verwendet wird, um clearSchedule(sched1) den richtigen Schedule löschen zu lassen.

              J Offline
              J Offline
              JoergH
              schrieb am zuletzt editiert von
              #14

              @paul53 Ok, danke. Das hat sich mit meinem letzten Posting gerade überschnitten...

              Also am besten alles speichern und alles wieder zurückgeben, dann sollte es klappen...warum nur sehe ich davon nichts, wenn ich sched1 auf der console ausgebe?

              1 Antwort Letzte Antwort
              0
              • J JoergH

                @paul53

                Aha, danke.

                Wenn ich das abspeichern will, kann ich dazu dann ein Datenpunkt manuell als Typ Objekt anlegen und die variable sched1._iobroker da einfach reinschreiben und dann sind die hier aufgelisteten Werte drin?
                Wenn das geht, reicht es dann diese Daten beim Löschen des cronjobs wieder anzugeben, oder benötige ich das komplette Objekt?
                Wenn ich das komplette Objekt benötige, kann ich dieses dann einfach in den Datenpunkt speichern oder gibt es da irgendwelche Zugriffsprobleme, wenn ich das aus einem JS-Script aus Blockly versuche?

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

                @joergh sagte: Wenn ich das komplette Objekt benötige, kann ich dieses dann einfach in den Datenpunkt speichern

                Nein, dieses spezielle Objekt kann nicht "stringifiziert" werden.

                @joergh sagte in Cronjobs anzeigen:

                sched1._iobroker da einfach reinschreiben und dann sind die hier aufgelisteten Werte drin?

                Dieses Objekt kann in einem DP gespeichert werden. Ich weiß aber nicht, ob das zum Löschen des richtigen Schedules ausreicht.

                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

                J 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @joergh sagte: Wenn ich das komplette Objekt benötige, kann ich dieses dann einfach in den Datenpunkt speichern

                  Nein, dieses spezielle Objekt kann nicht "stringifiziert" werden.

                  @joergh sagte in Cronjobs anzeigen:

                  sched1._iobroker da einfach reinschreiben und dann sind die hier aufgelisteten Werte drin?

                  Dieses Objekt kann in einem DP gespeichert werden. Ich weiß aber nicht, ob das zum Löschen des richtigen Schedules ausreicht.

                  J Offline
                  J Offline
                  JoergH
                  schrieb am zuletzt editiert von
                  #16

                  @paul53 sagte in Cronjobs anzeigen:

                  @joergh sagte: Wenn ich das komplette Objekt benötige, kann ich dieses dann einfach in den Datenpunkt speichern

                  Nein, dieses spezielle Objekt kann nicht "stringifiziert" werden.

                  Ok, das erklärt so manches...bin schon langsam verzweifelt, warum das nicht gehen will...:confounded:

                  @joergh sagte in Cronjobs anzeigen:

                  sched1._iobroker da einfach reinschreiben und dann sind die hier aufgelisteten Werte drin?

                  Dieses Objekt kann in einem DP gespeichert werden. Ich weiß aber nicht, ob das zum Löschen des richtigen Schedules ausreicht.

                  Das probiere ich dann mal aus :grin:

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • J JoergH

                    @paul53 sagte in Cronjobs anzeigen:

                    @joergh sagte: Wenn ich das komplette Objekt benötige, kann ich dieses dann einfach in den Datenpunkt speichern

                    Nein, dieses spezielle Objekt kann nicht "stringifiziert" werden.

                    Ok, das erklärt so manches...bin schon langsam verzweifelt, warum das nicht gehen will...:confounded:

                    @joergh sagte in Cronjobs anzeigen:

                    sched1._iobroker da einfach reinschreiben und dann sind die hier aufgelisteten Werte drin?

                    Dieses Objekt kann in einem DP gespeichert werden. Ich weiß aber nicht, ob das zum Löschen des richtigen Schedules ausreicht.

                    Das probiere ich dann mal aus :grin:

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

                    @joergh sagte: Das probiere ich dann mal aus

                    Gerade getestet: Dieses Objekt genügt anscheinend zum Löschen des richtigen Schedules.

                    const sched1 = schedule('0 12 * * *', function() {
                        log('12:00 Uhr');
                    });
                    
                    const obj = sched1._ioBroker;
                    log(obj);
                    
                    log('Löschen');
                    clearSchedule(obj);
                    
                    let list = getSchedules(true);
                    list.forEach(schedule => log(JSON.stringify(schedule)));
                    

                    Log:

                    javascript.0	16:10:04.538	info	script.js.common.Neuer_Test: { type: 'cron', pattern: '0 12 * * *', scriptName: 'script.js.common.Neuer_Test', id: 'cron_1731942604538_1726' }
                    javascript.0	16:10:04.538	info	script.js.common.Neuer_Test: Löschen
                    javascript.0	16:10:04.538	info	script.js.common.Neuer_Test: {"type":"cron","pattern":"* * * * *","scriptName":"script.js.aktiv.Emulation_Leistung","id":"cron_1731918921222_50447"}
                    javascript.0	16:10:04.538	info	script.js.common.Neuer_Test: {"type":"cron","pattern":"* * * * *","scriptName":"script.js.aktiv.Astro","id":"cron_1731926504927_69249"}
                    javascript.0	16:10:04.538	info	script.js.common.Neuer_Test: {"type":"cron","pattern":"59 1 * * *","scriptName":"script.js.aktiv.Astro","id":"cron_1731926504930_16594"}
                    javascript.0	16:10:04.539	info	script.js.common.Neuer_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                    

                    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

                    J 1 Antwort Letzte Antwort
                    1
                    • paul53P paul53

                      @joergh sagte: Das probiere ich dann mal aus

                      Gerade getestet: Dieses Objekt genügt anscheinend zum Löschen des richtigen Schedules.

                      const sched1 = schedule('0 12 * * *', function() {
                          log('12:00 Uhr');
                      });
                      
                      const obj = sched1._ioBroker;
                      log(obj);
                      
                      log('Löschen');
                      clearSchedule(obj);
                      
                      let list = getSchedules(true);
                      list.forEach(schedule => log(JSON.stringify(schedule)));
                      

                      Log:

                      javascript.0	16:10:04.538	info	script.js.common.Neuer_Test: { type: 'cron', pattern: '0 12 * * *', scriptName: 'script.js.common.Neuer_Test', id: 'cron_1731942604538_1726' }
                      javascript.0	16:10:04.538	info	script.js.common.Neuer_Test: Löschen
                      javascript.0	16:10:04.538	info	script.js.common.Neuer_Test: {"type":"cron","pattern":"* * * * *","scriptName":"script.js.aktiv.Emulation_Leistung","id":"cron_1731918921222_50447"}
                      javascript.0	16:10:04.538	info	script.js.common.Neuer_Test: {"type":"cron","pattern":"* * * * *","scriptName":"script.js.aktiv.Astro","id":"cron_1731926504927_69249"}
                      javascript.0	16:10:04.538	info	script.js.common.Neuer_Test: {"type":"cron","pattern":"59 1 * * *","scriptName":"script.js.aktiv.Astro","id":"cron_1731926504930_16594"}
                      javascript.0	16:10:04.539	info	script.js.common.Neuer_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                      
                      J Offline
                      J Offline
                      JoergH
                      schrieb am zuletzt editiert von
                      #18

                      @paul53

                      Super, danke!

                      Dann kriege ich meine Fenster-Lösung ja vielleicht doch mal hin...

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • J JoergH

                        @paul53

                        Super, danke!

                        Dann kriege ich meine Fenster-Lösung ja vielleicht doch mal hin...

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

                        @joergh sagte: Dann kriege ich meine Fenster-Lösung ja vielleicht doch mal hin...

                        Ich habe es mal über Skriptgrenzen mit dem Objekt im Datenpunkt getestet: Leider wird der Cronjob nicht gestoppt!

                        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

                        J 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @joergh sagte: Dann kriege ich meine Fenster-Lösung ja vielleicht doch mal hin...

                          Ich habe es mal über Skriptgrenzen mit dem Objekt im Datenpunkt getestet: Leider wird der Cronjob nicht gestoppt!

                          J Offline
                          J Offline
                          JoergH
                          schrieb am zuletzt editiert von
                          #20

                          @paul53

                          Brauche keine Scriptgrenzen überschreiten, sondern nur in einem Script mehrere JS-Script Funktionen. Hab alles erledigt, sitze nun am nächsten Problem, welches noch einmal kniffliger ist. Dazu mache ich einen neuen Thread auf. Danke Dir jedenfalls! Du hast mir wieder sehr weitergeholfen!

                          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

                          689

                          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