DOIF Zeitsteuerung alle 2,5 Minuten

Begonnen von mj-crawl, 13 Juni 2019, 16:09:15

Vorheriges Thema - Nächstes Thema

mj-crawl

Hallo,

ich möchte ein DOIF alle 2,5 Minuten (2 Minuten 30 Sekunden, bzw. alle 150 Sekunden) mit Zeitrasterung ausführen. Also um [hh:mm:ss]
00:02:30,
00:05:00,
00:07:30,
00:10:00,
00:12:30,
00:15:00,
00:17:30,
00:20:00,
etc.


Leider lässt die relative Zeitangabe mit Zeitraster keine Sekundenangaben zu. Beispiel aus der commandref:


Das Format lautet: [+:MM] MM sind Minutenangaben zwischen 1 und 59.
define di_gong DOIF ([+:15]) {}


Gibt es hierzu irgendwelche Ideen wie ich das Umsetzen kann?

Gruß

dieter56

Hallo,

Du könntest dir von www.lambda-script.org das Modul lambda-script installieren (ist leider noch nicht standardmäßig in FHEM enthalten).
Dann mit define di_gong lambda das Script erstellen.
Dort schreibst du rein:

repeat {
   wait 2,30;
   ..........
}

Für die  Punkte setzt du ein, was du alle 2,5 Minuten tun möchtest.

Gruß
Dieter

Damian

Zitat von: dieter56 am 13 Juni 2019, 17:18:04
Hallo,

Du könntest dir von www.lambda-script.org das Modul lambda-script installieren (ist leider noch nicht standardmäßig in FHEM enthalten).
Dann mit define di_gong lambda das Script erstellen.
Dort schreibst du rein:

repeat {
   wait 2,30;
   ..........
}

Für die  Punkte setzt du ein, was du alle 2,5 Minuten tun möchtest.

Gruß
Dieter

Ich glaube, er wollte es unbedingt ausgerichtet haben. DOIF kann ausgerichtet immer nur im Minutenabstand.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

dieter56

Frage: Was heißt ausgerichtet? So, das immer eine volle Stunde dabei ist?

Chris46

Ein AT mit alignTime sollte sekundengenau funktionieren.

dieter56

Mit lambda-script funktioniert es auf alle Fälle so:


t0 := hour;
t1 := t0;
# t1 wird der nächste Startpunkt
repeat {
   t1 := t1 + 2,30;
   case (t1 > now) {quit}
};
wait t1;
repeat {
   .................
   wait 2,30;
};


Es geht mit Sicherheit einfacher. Fällt mir nur gerade nicht ein.

mj-crawl

Super! Danke für die Antworten. Ich werde es mal ausprobieren.