Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. javascript cron Unterstützung benötigt

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    javascript cron Unterstützung benötigt

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

      Hallo,
      ich brauche bitte eure Hilfe beim generieren eines cron Jobs.
      Ich habe eine funktionierende Zeitschaltuhr welche via Vis konfigurierbar ist. Bisher nur Ein- und Ausschaltzeit. Nun möchte ich die Funktionalität erweitern und die Wochentage auswählen.
      Ich habe einen State (string) pro Wochentag den ich mit der Zahl 0-6 für So. bis Sa. befülle oder leere.
      Dann generiere ich den cron Job mit:

      //setzen der 1\. Einschaltzeit der Steckdose
      function TimerEin1() {     
      clearSchedule(TimerOnEin1);
      var Vorwahl = getState(id0).val;
      var	idTimerStundeEin1 = getState(id15).val;
      var idTimerMinuteEin1 = getState(id16).val;
      var idTimerTag1Ein1 = getState(id111).val;
      var idTimerTag2Ein1 = getState(id112).val;
      var idTimerTag3Ein1 = getState(id113).val;
      var idTimerTag4Ein1 = getState(id114).val;
      var idTimerTag5Ein1 = getState(id115).val;
      var idTimerTag6Ein1 = getState(id116).val;
      var idTimerTag7Ein1 = getState(id117).val;
      
      var AufZeitEin1 = idTimerMinuteEin1 + ' ' + idTimerStundeEin1 + ' * * ' + idTimerTag1Ein1 + ',' + idTimerTag2Ein1 + ',' + idTimerTag3Ein1 + ',' + idTimerTag4Ein1 + ',' + idTimerTag5Ein1 + ',' + idTimerTag6Ein1 + ',' + idTimerTag7Ein1;
      

      Das funktioniert wenn ich alle Tage auswähle. Nehme ich aber z.B. Sa. und So. raus sieht der Job so aus:
      cron=20 6 * * 1,2,3,4,5,,
      Das führt natürlich zu einem Fehler. Ich nehme an ich muss über eine variable zuerst die befüllten Tage suchen und aneinanderreihen. Leider reichen meine Kenntnisse dafür nicht aus und ich habe leider auch hier im Forum noch keinen ähnlichen Bedarf finden können.
      Ich danke schon jetzt für eure Unterstützung.

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

        @streit187 Ändere mal ab Zeile 7:

        const tage = [];
        if(getState(id111).val) tage.push(getState(id111).val);
        if(getState(id112).val) tage.push(getState(id112).val);
        // usw.
        
        let AufZeitEin1 = idTimerMinuteEin1 + ' ' + idTimerStundeEin1 + ' * * ' + tage.join();
        
        S 1 Reply Last reply Reply Quote 0
        • S
          Streit187 @paul53 last edited by

          @paul53 Der Wahnsinn! Läuft super. Vielen vielen Dank. Das ging schneller als erwartet.

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

          Support us

          ioBroker
          Community Adapters
          Donate

          409
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          148
          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