Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Adventssonntage ermitteln

    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

    [gelöst] Adventssonntage ermitteln

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

      Hi zusammen.

      Wie kann ich mit hilfe eines Skriptes Adventssonntage als Trigger ermitteln?

      Ich möchte nen digitalen Adventskranz bauen und da würde ich die jährlichen Adventssonntage als Auslöser benötigen.

      Kann mir da vielleicht jemand weiterhelfen?

      Gruß

      Johnny

      1 Reply Last reply Reply Quote 0
      • W
        Wildbill last edited by

        Hi,

        schau Dir mal den Feiertage-Adapter viewtopic.php?t=2754 an. Der schreibt, soweit ich es im Kopf habe, den aktuellen Feiertag in einen Datenpunkt auf den Du dann triggern könntest. AFAIK konnte man im Adapter auch die Feiertage einstellen, die man gerne hätte und die Adventsonntage waren auch dabei.

        Gruss, Jürgen

        1 Reply Last reply Reply Quote 0
        • P
          pix last edited by

          Hallo,

          ich freue mich natürlich über jede Installation des Feiertage Adapters.

          Wer es ohne Adapter machen will, kann dieses kleine Skript nehmen. Es basiert wesentlich auf dem Skript im Adapter. Es prüft, ob in der Woche vor dem 1. Weihnachtstag ein Sonntag liegt und setzt ihn als 4. Advent. Der dritte Advent ist entsprechend 7 Tage davor, der zweite 14 Tage davor, … alles wird natürlich nur für das aktuelle Jahr berechnet.

          ! ````
          var jetzt = new Date(); // Dieses Jahr
          var year = jetzt.getFullYear();
          var christmas1 = new Date(year, 11, 25, 0, 0, 0);
          var advent4date = new Date(christmas1.getTime() - (((christmas1.getDay() === 0) ? 7 : christmas1.getDay()) * (24 * 60 * 60 * 1000)));
          var advent3date = new Date(christmas1.getTime() - (((christmas1.getDay() === 0) ? 7 : christmas1.getDay() +7) * (24 * 60 * 60 * 1000)));
          var advent2date = new Date(christmas1.getTime() - (((christmas1.getDay() === 0) ? 7 : christmas1.getDay() + 14) * (24 * 60 * 60 * 1000)));
          var advent1date = new Date(christmas1.getTime() - (((christmas1.getDay() === 0) ? 7 : christmas1.getDay() + 21) * (24 * 60 * 60 * 1000)));
          ! log("4. Advent: " + advent4date);
          log("3. Advent: " + advent3date);
          log("2. Advent: " + advent2date);
          log("1. Advent: " + advent1date);

          
          Gruß
          
          Pix
          1 Reply Last reply Reply Quote 0
          • P
            PrinzEisenherz1 last edited by

            Hi Ihr beiden!

            Erstmal Danke für eure Antwort.

            Der Feiertagsadapter ist zwar interessant aber für meine Zwecke doch dann zuviel des guten.

            Möchte nur die Adventskerzen damit steuern und da ist dann das Skript von Pix genau das was ich gesucht habe.

            Funktioniert perfekt.

            Danke euch beiden

            Gruß

            Johnny

            1 Reply Last reply Reply Quote 0
            • P
              pix last edited by

              Hallo Johnny,

              das Skript in dieser Form kommt von jensmaus. Will ich hier nicht unerwähnt lassen 8-)

              Ich frage mich aber trotzdem, ob es für diese Anwendung nicht einfacher wäre, kurz im Kalender die vier Tage für dieses Jahr rauszusuchen und dann per Schedule auszulösen. Du musst ja die Uhrzeit auch noch als Trigger setzen.

              schedule("30 15 2 12 0", function() { // 2.12\. jedes Jahr (wenn Sonntag)
                 log("Es ist der 1\. Advent 15:30 Uhr");
              });
              

              ! Cron

              *     *     *     *     *  Befehl der ausgeführt werden soll
              -     -     -     -     -
              |     |     |     |     |
              |     |     |     |     +----- Wochentag (0 - 7) (Sonntag ist 0 und 7; oder Namen, siehe unten)
              |     |     |     +------- Monat (1 - 12)
              |     |     +--------- Tag (1 - 31)
              |     +----------- Stunde (0 - 23)
              +------------- Minute (0 - 59; oder Namen, siehe unten)
              

              Pix

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

              Support us

              ioBroker
              Community Adapters
              Donate

              420
              Online

              31.9k
              Users

              80.2k
              Topics

              1.3m
              Posts

              3
              5
              658
              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