Flow nur an gerade Tagen starten

Ahoy,

ich steh gerade etwas auf dem Schlauch, liegt wahrscheinlich daran, dass ich ewig nichts an meinen Flows gedreht habe.

Wir kann ich es am smartesten umsetzen, dass ich in einer “und”-Bedingung einen Flow nur an ungerade Tagen laufen lasse?

Wenn Uhrzeit = 04:00h → und → Es ist ein ungerader Tag → dann.

Ich dachte, dass es die Option in “Datum & Zeit” gibt, aber hier gibt es nur die Möglichkeit der Wochen.

Ich denke, ich muss das mit Better Logic berechnen
 oder hat jemand ne smartere Idee?

Danke <3

Hallo @schmucke
Die einfachste Methode geht mit cronjob.

Hier eine Karte
Cronjob - jeden ungeraden tag um 4 00 17
Damit hast Du alles in einer Karte.

Viel Spaß damit
Dirk

Danke.

Das ist aber eine “wenn” Bedingung, dass heißt, ich mĂŒsste damit den Flow Aktivieren bzw. deaktivieren. Aber das wĂ€re eine Möglichkeit. Danke.

Das verstehe ich nicht, vielleicht weil ich nicht weiß, was Du willst.
Das ist eine Wenn oder besser Sobald Bedingung, d. h. an jedem ungeraden Tag um 4:00:17 startet Dein Flow (weil ich die Sekunden immer abÀndere um mögliche Spitzenlasten zu vermeiden), die Sekunden kannst Du aber auch Àndern.
Vielleicht hĂ€tte ich es kurz erklĂ€ren sollen. Wenn Du aber die Karte mit den vielen Parametern nimmst, steht dort genau , was Du eingibst ‘*’ steht fĂŒr jeden Wert und a/b heißt ab Wert a, jeden b-ten Wert.
Oder Du zeigst uns Deinen Flow, damit wir sehen, was Du brauchst.
Dirk

Es gibt auch viele “tag”;mƍtlichkeiten:
image

Image

Dirk, ist Dein Cron Job nicht falsch?

Der Flow soll ja nicht jeden 2. Tag, sondern an jedem ungeraden Tag, also am 1., 3., 5., 
 29., 31. Tag, laufen. Wenn alle Monate eine gerade Anzahl an Tagen hĂ€tten, z.b. 30 Tage, dann wĂ€re der korrekt, weil er dann immer wieder am 1. (ungerade!) Tag eines Monats beginnen wĂŒrde. Aber das ist bekanntlich nicht der Fall.

Demnach mĂŒsste der Cron Job mMn wie folgt aussehen:

Damit nicht zu viel Verwirrung entsteht, habe ich die 17 Sekunden mal mit einbezogen.

Die Jobs habe ich auf dieser Seite erstellt: Cron Expression Parser and Creator Tool - 100% free and online

@schmucke, ob es mal eine entsprechende Flow-Karte gab, weiß ich nicht. WĂŒrde aber durchaus Sinn machen, da die Karte fĂŒr Wochen ja existiert.

Vermutlich ist das auch mit einem HomeyScript umsetzbar. Das hier spuckt zumindest ChatGPT Deutsch raus:

Hallo! Gerne helfe ich dir dabei, deinen Cron-Job in ein HomeyScript umzuwandeln. Der Cron-Job, den du angegeben hast, lÀuft immer am 1., 3., 5., 7., 9., 11., 13., 15., 17., 19., 21., 23., 25., 27., 29. und 31. Tag eines Monats um 4:00 Uhr morgens.nnHier ist ein Beispiel, wie du das in HomeyScript umsetzen könntest:

// Hole das aktuelle Datum und die aktuelle Uhrzeit
const now = new Date();

// ÜberprĂŒfe, ob heute einer der angegebenen Tage ist
const daysToCheck = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31];
const currentDay = now.getDate();
const isCorrectDay = daysToCheck.includes(currentDay);

// ÜberprĂŒfe die aktuelle Uhrzeit (4:00 Uhr)
const currentHour = now.getHours();
const currentMinute = now.getMinutes();
const isCorrectTime = (currentHour === 4 && currentMinute === 0);

// Wenn beide Bedingungen erfĂŒllt sind, fĂŒhre deine Aktion aus
if (isCorrectDay && isCorrectTime) {
    // Hier kannst du deine Aktion einfĂŒgen, z.B. eine Lampe einschalten
    // Beispiel:
    // await Homey.devices.getDevice({ id: 'device_id' }).then(device => device.setCapabilityValue('onoff', true));
    console.log('Cron-Ă€hnliche Bedingung erfĂŒllt! Aktion wird ausgefĂŒhrt.');
}

Bitte ersetze den Kommentar im Script durch die tatsĂ€chliche Aktion, die du ausfĂŒhren möchtest. Dieses Script kannst du dann in Homey als Zeitplan oder regelmĂ€ĂŸig ausfĂŒhren lassen, um dein gewĂŒnschtes Verhalten zu automatisieren.

Ehrlich gesagt habe ich keine Ahnung von HomeyScripts bzw. Programmiersprache im Allgemeinen, aber fĂŒr die ÜberprĂŒfung im Bereich Und
 sollten die ersten beiden Abschnitte ja reichen.

OT
In der Topic Überschrift steht ĂŒbrigens „an geraden Tagen“. Soll vermutlich auch „an ungeraden Tagen“ heißen, oder?

Entschuldige, war schon spĂ€t. Ich glaube, dass wĂŒrde tatsĂ€chlich so passen, nachteil: wieder ne App die ich fĂŒr eine Aktion brauche :confused:

Leider aber keine, die mir explizit jeden zweiten Tag bzw. gerade oder ungerade Tage erlaubt.

Im Prinzip ist jeder zweite Tag viel Besser, da es ja beim Wechsel vom 31. zum 01. zwei ungerade Tage nacheinander kommen.

An Homeyscript habe ich auch schon gedacht - wollte das aber eigentlich nur einfach haben. Hintergrund ist, dass ich jeden Morgen um 04:00h die Feuchtigkeit meines Rasens, und meiner Terassenpflanzen ĂŒberprĂŒfe, die sind aktuell unter dem Wert den sie haben mĂŒssten. Beim Rasen ist das aber nicht so schlimm, weswegen ich den nur alle zwei Tage sprengen lassen möchte (das sind jedes mal um die 400L Wasser).

Jain, ich wusste nicht, wie es sonst passend im Topic beschreiben soll. :slight_smile:

So?

Das wĂŒrde funktionieren, wenn die Woche eine gerade Anzahl an Tagen hĂ€tte.

Ich hÀtte sowas als Tageskarte erwartet:
image

Nein Dirk,
dieser Parser ĂŒbersetzt ungenau. Es fehlt “starting with day 1” oder so etwas.
Crontab.guru - The cron schedule expression generator*
sagt:
“At 04:00 on every 2nd day-of-month from 1 through 31.”
Genauer: Er startet immer am 1. Tag des Monats und dann jeden 2. Tag bis zum 31. Das sind genau die ungeraden Tage. Und am nÀchsten Monat startet er wieder neu mit Tag 1.

Wenn man wirklich jeden 2. Tag haben will, wird es mit crontab etwas schwieriger, besonders wenn man auch noch Schaltjahre berĂŒcksichtigen möchte.

Gruß Dirk

Da ich mir ziemlich sicher bin, dass Du irgendeine eine Timer App bereits installiert hast:

Das wÀre zumindest eine Möglichkeit.

Ich vermute, Du hast mich nicht verstanden. In der Überschrift steht “an geraden Tagen”, in Deinen Posts schreibst Du aber von “ungeraden Tagen”. Was ich meine ist, dass Überschrift und Inhalt nicht ĂŒbereinstimmen, mehr nicht.
Als ich das Beispiel mit dem Cron Job gemacht hatte, hatte ich nÀmlich zuerst alle geraden Tage mit aufgelistet. Dann habe ich mir Deine Posts noch mal angeschaut, und darin steht dann alle ungeraden Tage. Also hatte ich den Cron Job noch mal auf ungerade Tage geÀndert. Deshalb wat ich ein wenig irritiert.


@DirkH, heute Morgen wollte ich Deinen Cron Job mal in der von Dir verlinkten Seite eingeben. Diese Seite ist ja auch im App Topic verlinkt. Das Problem ist nur, das ich kein in Worten ausgeschriebenes Ergebnis, sondern nur einen Hinweis bekommen habe, dass es keine Standardschreibweise ist:

Ein Problem wird eventuell sein, dass diese Seite keine Sekunden akzeptiert. Lasse ich die 17 Sekunden weg, dann entspricht das dem gewĂŒnschten Intervall:

Deshalb hatte ich mir eine andere Seite gesucht die auch Sekunden akzeptiert. Und auf dieser Seite wurde Dein Cron Job dann falsch angezeigt
 :man_shrugging:

Wenn Du das willst, ist es viel einfacher
Erst eine Nummern-Variable UngeraderTag mit enem Wert von 0 oder 1 anlegen.


Keine komplizierten Dinge, keine App, nur eine einfache Variable, die immer zwischen 0 und 1 wechselt,

Manchmal kommste auf die einfachsten Dinge nicht.

So werd ich es machen.