diff --git a/server/backend/internal/scheduler/scheduler.go b/server/backend/internal/scheduler/scheduler.go index 441c4fc..23e09fa 100644 --- a/server/backend/internal/scheduler/scheduler.go +++ b/server/backend/internal/scheduler/scheduler.go @@ -37,6 +37,7 @@ func Run(ctx context.Context, schedules *store.ScreenScheduleStore, screens Scre // check prüft alle aktiven Zeitpläne und sendet ggf. Befehle. func check(ctx context.Context, schedules *store.ScreenScheduleStore, screens ScreenSlugGetter, notifier DisplayCommander) { + // Uses process-local timezone — ensure TZ env var is set in the container (e.g. Europe/Berlin). now := time.Now().Format("15:04") enabled, err := schedules.ListEnabled(ctx) diff --git a/server/backend/internal/store/store.go b/server/backend/internal/store/store.go index 9435e90..bc7e556 100644 --- a/server/backend/internal/store/store.go +++ b/server/backend/internal/store/store.go @@ -353,10 +353,12 @@ func (s *ScreenStore) GetDisplayState(ctx context.Context, screenID string) (str err := s.pool.QueryRow(ctx, `select coalesce(display_state,'unknown') from screen_status where screen_id = $1`, screenID).Scan(&state) - if err != nil { - // Kein Eintrag → unbekannt, kein Fehler + if errors.Is(err, pgx.ErrNoRows) { return "unknown", nil } + if err != nil { + return "unknown", err + } return state, nil }