Hallo,
ich habe seit ca 2 Wochen ein Problem mit einer Logik, die vorher ewig unauffällig lief.
Nach einem restart des smarthomeNG Service wird die Logik aufgerufen. An den Folgetagen nicht mehr.
Es gibt weitere Logiken die bei sunset-59m und sunset-60m gestartet werden. Diese starten an jedem Abend problemlos.
das Problem hat ohne Konfigurationsänderung von smarthomeNG angefangen. Auch ein Neustart des Prozesses wurde nicht durchgeführt.
Der Debug aus lib.scheduler zeigt das Problem:
ich erwarte die Logik jeden Abend und nicht erst in 26 Tagen. Mir ist völlig unklar, warum es plötzlich nicht mehr funktioniert.
die KI hatte zum 14.7. einen Meinungsbeitrag:
Ich habe im gitlab keine relevante Änderung zu lib.scheduler gefunden. Deshalb wollte ich erstmal nicht updaten. Der Fehler ist gerade gut reproduzierbar.
Kann jemand mit mehr lib.scheduler Wissen damit etwas anfangen?
ich habe seit ca 2 Wochen ein Problem mit einer Logik, die vorher ewig unauffällig lief.
- SmartHomeNG Version: 1.9.5
- Python: v3.12.10
- Betriebssystem: archlinux
- Standort/Koordinaten in smarthome.yaml korrekt gesetzt: ja
Code:
shutter_down_sunset:
filename: rollladensteuerung.py
crontab: sunset+35m = sunset
nw: yes
# ich denke 'nw' kann ich rausnehmen, es hat keine Funktion mehr
Es gibt weitere Logiken die bei sunset-59m und sunset-60m gestartet werden. Diese starten an jedem Abend problemlos.
das Problem hat ohne Konfigurationsänderung von smarthomeNG angefangen. Auch ein Neustart des Prozesses wurde nicht durchgeführt.
Der Debug aus lib.scheduler zeigt das Problem:
Code:
nach dem neustart:
2026-06-18 21:21:29 DEBUG lib.scheduler logics.shutter_down_sunset next time: 2026-06-18 22:07:52.114261+02:00
die logik beim ersten mal:
2026-06-18 22:07:52 DEBUG logics.shutter_down_sunset Getriggert durch: {'by': 'Scheduler', 'source': 'cron', 'source_details': 'sunset+35m', 'dest': None, 'value': 'sunset'}
2026-06-18 22:07:52 DEBUG lib.scheduler logics.shutter_down_sunset next time: 2026-07-14 21:58:51.139826+02:00
die KI hatte zum 14.7. einen Meinungsbeitrag:
Code:
[B]Warum ausgerechnet der 14. Juli?[/B] Das ist der verräterische Punkt: Um den [B]21. Juni[/B] herum liegt die [B]Sommersonnenwende[/B], also der späteste/„höchste" Sonnenuntergang des Jahres. Der berechnete Wert von 21:58:51 am 14. Juli entspricht ziemlich genau dem Sonnenuntergangs-Zeitpunkt, der dem aktuellen wieder gleicht, nachdem die Tage über die Sonnenwende hinweg erst länger und dann wieder kürzer werden. Das deutet stark darauf hin, dass der Scheduler bei der Neuberechnung nach dem Feuern [B]nicht einfach „nächster Tag"[/B] rechnet, sondern den [B]nächsten Zeitpunkt sucht, der echt in der Zukunft liegt und die Bedingung erfüllt[/B] – und dabei durch den +35m-Offset in einen Randfall läuft. Weil sich der Sonnenuntergang um die Sonnenwende kaum noch verändert (teils sogar minimal nach hinten), wird der für den Folgetag berechnete sunset+35m-Zeitpunkt fälschlich als „bereits vergangen/ungültig" verworfen, und der Algorithmus läuft so lange weiter, bis er einen passenden Tag findet – das ist erst der 14. Juli.
Kann jemand mit mehr lib.scheduler Wissen damit etwas anfangen?



Kommentar