FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Marko1976 am 16 Februar 2026, 17:34:56

Titel: Wie gestalte ich die Bedingung für jede zweite oder dritte Wochen am Besten?
Beitrag von: Marko1976 am 16 Februar 2026, 17:34:56
Hallo,
mal eine Frage an die Profis.
Ich möchte gerne eine Aufgabe jede zweite oder dritte Woche ausführen lassen.
Für ungrade Wochen kann ich ja folgenden Code nutzen:
int(($mday-1)/7)==2))
Aber wie kann ich das zum Beispiel für jeden 2. Sonntag schreiben, also der 2., der 4., der 6. Sonntag etc.?

Das einzige was ich gefunden habe ist "$week". Mein Ansatz wäre jetzt die Kalenderwoche durch 2 und dann zu prüfen ob das Ergebnis eine Ganzzahl ist, also 2/2=1, 4/2=2, 6/2=3, aber 1/2=0,5, 3/2=1,5 etc.
Zur Prüfung ob es sich um eine Ganzzahl handelt habe ich dies gefunden:
if ($variable eq int($variable)) {
    Log 1, "Ist eine Ganzzahl";
}
Doch wie bekomme ich das kombiniert und beides dann in die Bedingungsabfrage des DOIF?
Außerdem wäre das keine Lösung für die 3. Woche, die 4. Woche Woche etc..

Gibt es keine einfachere Alternative?
Titel: Aw: Wie gestalte ich die Bedingung für jede zweite oder dritte Wochen am Besten?
Beitrag von: rabehd am 16 Februar 2026, 18:19:32
Bei DOIF würde ich damit mal Überlegungen anstellen.
https://forum.fhem.de/index.php?msg=951310 (https://forum.fhem.de/index.php?msg=951310)
Vermutlich brauchst Du die Startwoche als Reading.
Titel: Aw: Wie gestalte ich die Bedingung für jede zweite oder dritte Wochen am Besten?
Beitrag von: betateilchen am 16 Februar 2026, 19:12:29
Grundsätzliches Vorgehen (Vorschlag):




Alternativ kannst Du auch mit $yday rechnen.

Wenn Du $yday%21 rechnest und dabei 3 rauskommt, hast Du einen "jeden dritten" Sonntag. Der Wert "3" zum Vergleichen gilt aber nur für 2026, da es davon abhängig ist, mit welchem Wochentag das Jahr begonnen hat. Aber auch das lässt sich ja leicht herausfinden, indem man den Wochentag zu 01.01.$year ermittelt.