Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit sunrise: "Dauertriggerung" bei "sunrise-60m"

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • callidomus
    antwortet
    Zitat von mknx Beitrag anzeigen
    Es hilft mir über das Problem zu "sprechen" :-)
    Es hat so geholfen, dass ein Fix auf github develop ist. :-)))

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • umatz
    antwortet
    Problem mit sunrise: "Dauertriggerung" bei "sunrise-60m"

    Zitat von mknx Beitrag anzeigen

    Wer hängt an dem Feature? Es scheint ja keiner zu Nutzen.
    Also ich nutze das in der Form zur Steuerung meiner Außenbeleuchtung und Raffstores. Ich finde den Offset in Minuten wesentlich intuitiver als in Azimut(?) Grad.

    Ist aber auch kein Showstopper, wenn es wegen zu großer Komplexität wieder rausfliegt.

    Greetinx,
    Udo

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Also ich nutze sowas "im Prinzip", will sagen: Ich nutze das, im Augenblick noch in linknx, die Rollläden sind noch nicht nach sh.py migriert. Im Prinzip liesse sich das aber auch mit Winkel lösen. Also von mir: nice-to-have, aber kein Show-Stopper.

    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Problem mit sunrise: "Dauertriggerung" bei "sunrise-60m"

    Hi Robert,

    verstanden, war auch mehr ein Selbstgespräch ;-)
    Es hilft mir über das Problem zu "sprechen" :-)

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Hi Marcus,

    wie gesagt: Ich hänge nicht dran!

    Grüße
    Robert

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hallo Robert,

    "0 8 * *" ist klar eine feste Zeit.
    sunrise ändert sich von Tag zu Tag.

    Für sunrise-6 wird folgende Operation durchgeführt:
    Code:
    sh.sun.rise(-6)
    Für sunrise-60m dagegen:
    Code:
    sh.sun.rise() - 60m
    Das Problem ist, das mir sun.rise immer nur den nächsten Sonnenaufgang liefert. Ich müsste diesen Zeitoffset in die Funktion sun.rise und sun.set integrieren.

    Darüber möchte ich noch mal schlafen.

    Gute Nacht

    Marcus

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Hi Marcus,

    ich muss gestehen, dass ich deiner Erklärung aufgrund meiner Unkenntnis des Schedulers nicht hundertprozentig folgen konnte. Aus Interesse aber mal meine Gedanken:

    Initial wird der Wert berechnet, die Logik ausgeführt, ein neuer Aufrufzeitpunkt berechnet. Ok, wenn du jetzt zur Sicherheit bei einem neuen Aufruf sagst, dass auch Logiken die z.B. 5s in der Vergangenheit liegen ausgeführt werden (um eine gewisse Sicherheit zu erhalten), dann sollte die Logik doch bestenfalls ca. 3 mal aufgerufen werden. Nämlich Sunrise-60m (exakt), Sunrise-60m (mit ca. 2s Verspätung), Sunrise-60m (mit ca. 4s Verspätung) - irgendwann sagst du "jetzt ists zu spät, morgen wieder"!?

    Oder genereller: Ob Sunrise-60m, Sunrise-6 oder einfach " 0 8 * * " - alles sind doch exakte Zeitpunkte? Bei " 0 8 * * " sagst du ja nach der Logik auch nicht noch mal "oh, nur 2s später - noch mal!". Da scheint doch auch die "Umschaltung" auf den nächsten Tag zu klappen?

    Liegt es vielleicht eher daran, dass "Sunrise" am nächsten Tag (momentan zu dieser Jahreszeit) minimal später liegt?

    Egal, wie auch immer: Ich hänge nicht an dem Zeitoffset. Zugegebenermaßen hatte ich nicht wirklich darüber nachgedacht, ob Zeit oder Winkel jetzt besser sind, sollte wollte erstmal was ausprobieren um vorab eine Idee davon zu haben wie die cron-Einträge funktionieren. Komme auch perfekt mit dem Winkeloffset klar! - Von mir aus kann das Minutenoffset entfallen - wird dadurch auch weniger verwirrend.

    Grüße
    Robert

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hallo Robert,

    ist ein Bug, ich habe auch das entsprechende Icon gesetzt.

    Ich bin am überlegen ob bzw. wie ich ihn am besten beseitige. Leider ist das nicht so einfach, deshalb überlege ich noch mal. Wenn jemand eine gute Idee/Patch hat, immer her damit!

    Zusammenfassung des Problems:
    Das Problem tritt immer dann auf wenn man sunrise/sunset gepaart einem negativen Offset in Minuten angibt.
    Code:
    # logic.conf
    ...
    crontab = sunset-60m
    Angenommen der Sonnenaufgang ist um 06:00, dann wird die Logik 60 Minuten vorher also um 05:00 aufgerufen. Anschließend wird die Zeit für den nächsten Durchlauf bestimmt. Der nächste Sonnenaufgang ist um 06:00 (am gleichen Tag), davon wird halt wieder die 60 Minuten abgezogen. Der Zeitpunkt liegt damit leicht in der Vergangenheit, damit wird die Logik sofort wieder getriggert. Und das Spiel beginnt von vorn. Das geht solange bis der nächste Sonnenaufgang am nächsten Tag ist.

    Eigentlich müsste ich überprüfen ob der Zeitpunkt in der Vergangenheit ist und dann den Sonnenaufgang vom nächsten Tag anfragen und davon die 60 Minuten abziehen. Leider ist der Code dafür (der in meinem Kopf ist) relativ kompliziert und der ganze Bereich (scheduler) ist sowieso nicht der trivialste.

    Wer hängt an dem Feature? Es scheint ja keiner zu Nutzen.

    Ich persönlich finde den Offset in Grad eh viel besser, den nutze ich selbst.
    Damit kann man einfach die "bürgerliche Dämmerung" verwenden:
    Code:
    # logic.conf
    ...
    crontab = sunset-6
    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hallo Robert,

    scheint ein Bug zu sein. Ich habe einen Verdacht. Ich versuche es im laufe des Tages zu fixen.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • Robert
    hat ein Thema erstellt Problem mit sunrise: "Dauertriggerung" bei "sunrise-60m"

    Problem mit sunrise: "Dauertriggerung" bei "sunrise-60m"

    Hi!

    Ich wollte die Aussenbeleuchtung jetzt nicht mehr zu einer statische Uhrzeit (ein-)schalten, sondern z.B. "60 Minuten vor Sonnenaufgang, spätestens aber 06:00".

    Daher auch versucht
    Code:
    crontab = sunrise-60m<06:00
    , was dazu führte, dass die Logik (sie war testweise leer) gestern ein paar tausend irgendwo zwischen 05:00 und 06:00 (ungefähr!) ausgeführt wurde. Ok dachte ich, habe ich die Syntax nicht verstanden, also testweise:
    Code:
    crontab = init | sunrise-60m = 'sunrise-60m' | sunset-60m = 'sunset-60m'
    was heute dazu führte, dass zwischen 04:55:36 und 05:55:07 ca. 3x pro Sekunde die Logik getriggert wurde.

    Verstehe ich die Syntax falsch?

    Grüße
    Robert
Lädt...
X