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ß
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
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.
Frage: Was heißt ausgerichtet? So, das immer eine volle Stunde dabei ist?
Ein AT mit alignTime sollte sekundengenau funktionieren.
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.
Super! Danke für die Antworten. Ich werde es mal ausprobieren.