YESLY Smart Home

Startseite Foren Fibaro Forum (Z-Wave) Fibaro HC2 (Home Center 2) Zeitgesteuerte Szene – Startzeit Unterschied bis knapp 60 Sekunden

Dieses Thema enthält 2 Antworten und 3 Teilnehmer. Es wurde zuletzt aktualisiert von  Rene2 vor 8 Monate, 1 Woche.

Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
  • Autor
    Beiträge
  • #99313

    Roland67
    Teilnehmer

    Hallo zusammen,
    mich hat es seit einiger Zeit verwundert warum meine Zeitgesteuerten Szenen nicht mehr exakt Starten.
    Beispiel: Ich habe ein Licht welches am Morgen um 6:29 einschaltet. Mein Wecker (Fibaro unabhängig) macht sich um 6:30 bemerkbar.
    Nun Schaltet das Licht ein und es kann sein das der Wecker kurz danach klingelt.
    Ich dachte zuerst das es eventuell an den Szenen liegt oder die Zentrale mit was anderem (andere Szenen, Prüfen der Sensoren oder was auch immer beschäftigt ist.
    Heute bin ich mehr per Zufall wohl auf das Problem gestossen.
    Ich habe mal eine Testszene erstellt.
    Das Problem falls es eines ist liegt in dieser Zeile –> setTimeout(tempFunc, 60*1000)

    Wenn ich die Szene um hh:mm:55 speichere bekomme ich folgendes ergebniss. (Für mich wird die Szene 55 Sek zu spät ausgelöst.)

    [DEBUG] 09:22:55: Test 1
    [DEBUG] 09:22:55: Test 2
    [DEBUG] 09:22:55: Vor Sleep
    [DEBUG] 09:22:55: Nach Sleep
    [DEBUG] 09:23:55: Test 2
    [DEBUG] 09:23:55: Test ausgeführt
    [DEBUG] 09:23:55: Vor Sleep
    [DEBUG] 09:23:55: Nach Sleep

    Wenn ich die Szene aber um hh:hh:02 Speicher sieht es so aus.

    [DEBUG] 09:25:03: Test 1
    [DEBUG] 09:25:03: Test 2
    [DEBUG] 09:25:03: Vor Sleep
    [DEBUG] 09:25:03: Nach Sleep
    [DEBUG] 09:26:03: Test 2
    [DEBUG] 09:26:03: Test ausgeführt
    [DEBUG] 09:26:03: Vor Sleep
    [DEBUG] 09:26:03: Nach Sleep

    Nach dem Speichern wird die Szene ausgeführt und mit setTimeout(tempFunc, 60*1000) wird 60 Sekunden gewartet.
    Das ist im Grunde ja OK.

    Nun zu meiner Frage.
    Ist es irgendwie möglich dies in den Szenen wo ich dies benötige anzupassen.
    Ein änder auf setTimeout(tempFunc, 1*1000) sehe ich als wenig sinnvoll an.

    Wäre um eine Lösung oder Tip Dankbar.

    Gruss Roland

    #101508

    Schnuckman79
    Teilnehmer

    Taste dich langsam ran: lass die Szene eine Minute früher starten und baue eine Schleife ein, die max 60 Sekunden runterzählt und währenddessen prüft, ob sich die Minute geändert hat. Danach führe die gewünschten Aktionen aus. Dann bist du ziemlich sekundengenau dran.

    Viele Grüße
    Schnuckman

    #101536

    Rene2
    Teilnehmer

    Hallo Roland,

    das liegt an der Art und Weise wie das Home Center zeitgesteuerte Szenen startet. Diese werden nicht zum gewählten Zeitpunkt gestartet, sondern werden gestartet (Autostart, Trigger oder manuell), laufen permanent und prüfen alle 60 Sekunden ob die Uhrzeit zum starten erreicht ist.

    Wenn Deine Szene beispielsweise um 08:03 und 12 Sekunden gestartet wurde, so läuft die Timeout Funktion 99 mal (100 Minuten) ohne, dass die IF Abfrage in 15-18 zutrifft. Erst beim Durchlauf um 09:23 UND 12 Sekunden ist diese wahr.

    In welchem Szenario sind 59 Sekunden ein Problem?

    Grüße
    René

    • Diese Antwort wurde geändert vor 8 Monate, 1 Woche von  Rene2.
Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)

Du musst angemeldet sein, um auf dieses Thema antworten zu können.