NEWS
Block CompareTime funktioniert nicht
-
@ingo-2 ist das alles?
wo ist der Trigger? -
@homoran
Ich hatte ein Intervall der alle 10s durchläuft.
Ist das falsch?
Ich dachte auch so, ohne Trigger,
funktioniert das... -
@ingo-2 sagte in Block CompareTime funktioniert nicht:
Ich dachte auch so, ohne Trigger,
funktioniert das...ohne trigger läuft ein Skript genau einmal
-
@homoran ok. Das war mir so nicht bewusst. Vielen Dank für Info.
Heißt, mit einem Intervall funktioniert es? -
@ingo-2 sagte in Block CompareTime funktioniert nicht:
Heißt, mit einem Intervall funktioniert es?
nur wenn das intervall auf die Millisekunde genau die Uhrzeit trifft.
üblicherweise wird ein Zeitplan (Cron) als Trigger genommen, der um die gewünschte Uhrzeit auslöst
-
@homoran sagte: Zeitplan (Cron) als Trigger genommen
Der löst auch nicht auf die Millisekunde genau aus.
Besser man vergleicht nur auf die Minute genau: -
@paul53 sagte in Block CompareTime funktioniert nicht:
Der löst auch nicht auf die Millisekunde genau aus.
eben!
aber muss es nicht wenn er alle 10 Sekunden Prüft ob es 18:31 is genau 18:31:00.000 sein? -
@homoran sagte in Block CompareTime funktioniert nicht:
@paul53 sagte in Block CompareTime funktioniert nicht:
Der löst auch nicht auf die Millisekunde genau aus.
eben!
aber muss es nicht wenn er alle 10 Sekunden Prüft ob es 18:31 is genau 18:31:00.000 sein?Nein. Aktuelle Zeit als SS:mm schneidet die Sekunden und ms ab. Das heisst wenn der Timeout alle 10 Sekunden läuft ist die Bedingung statistisch gesehen 5 mal mit jeweils 10 s Abstand wahr
A.
Also doch Cron, keine Timeout Schleife mit Zeitvergleich) -
@asgothian sagte in Block CompareTime funktioniert nicht:
Nein. Aktuelle Zeit als SS:mm schneidet die Sekunden und ms ab.
Danke! Wieder was gelernt!
ich würde trotzdem mit cron arbeiten -
@homoran sagte in Block CompareTime funktioniert nicht:
ich würde trotzdem mit cron arbeiten
Auf jeden Fall.
Der Timeout stream ist ggf. nicht 100% exakt, sprich
Läuft der Timeout kürzer als 1 Minute, dann gibt es das Risiko das ein Zeitvergleich irgendwann mal 2 mal während der relevanten Minute wahr ist.
Läuft der Timeout genau 1 Minute, dann gibt es das Risiko das der Zeitvergleich irgendwann mal nicht zuschlägt, wegen der Verzögerung zwischen "Auslösen des Timeouts" und "auswerten der aktuellen Zeit. Selbst wenn das nur wenige ms dauert, dann kann immer mal wieder eine Minute nicht explizit erreicht wird. (Beispiel: Timeout wird gestartet genau um 18:30:59.999. Mit Timeout 1 Minute. Wird also also aktiv (theoretisch) um 18:31:59.999. Wenn es dann nur 1 ms dauert bis die Uhrzeit ausgewertet wird, ist es bereits 18:32:00.000Das der Cron nicht ms Sekunden genau auslöst ist dabei eher weniger relevant.
A.
-
@ingo-2
Habe ich da was falsch verstanden?
Warum nicht so:
Auf die Millisekunde wird's wohl kaum ankommen.Möglicherweise ist das hilfreich:
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps -
Generell habe ich das Problem, dass bei mir die Triggerevents nie erfüllt sind.
Kann ich bei dem FALLS OBEKT das Triggerevent nicht mit einer Logik verknüpfen?
Aus welchem Grund funktioniert -
@ingo-2 sagte in Block CompareTime funktioniert nicht:
Kann ich bei dem FALLS OBEKT das Triggerevent nicht mit einer Logik verknüpfen?
richtig!
die Logik ist im Triggerblock selber (ist wahr) -
@ingo-2 sagte in Block CompareTime funktioniert nicht:
Generell habe ich das Problem, dass bei mir die Triggerevents nie erfüllt sind.
Welche "Triggerevents" werden bei Dir nicht erfüllt?
ZEIGEN!An "Falls Objekt" wird eine Objekt-ID übergeben ... kein Ausdruck!