Fix schedule timezone handling (#52)

- Add proper timezone support to _check_schedule() method
- Use configured timezone instead of system local time
- Add pytz import for timezone handling
- Ensures schedule respects America/Chicago timezone setting
- Fixes issue where display wouldn't turn off at configured end_time
This commit is contained in:
Chuck
2025-09-21 21:15:57 -04:00
committed by GitHub
parent 1f2c1bfe0b
commit cf15409973

View File

@@ -1,6 +1,7 @@
import time import time
import logging import logging
import sys import sys
import pytz
from typing import Dict, Any, List from typing import Dict, Any, List
from datetime import datetime, time as time_obj from datetime import datetime, time as time_obj
@@ -930,7 +931,15 @@ class DisplayController:
self.is_display_active = True self.is_display_active = True
return return
now_time = datetime.now().time() # Get current time in configured timezone
timezone_str = self.config.get('timezone', 'UTC')
try:
tz = pytz.timezone(timezone_str)
except pytz.exceptions.UnknownTimeZoneError:
logger.warning(f"Unknown timezone: {timezone_str}, falling back to UTC")
tz = pytz.UTC
now_time = datetime.now(tz).time()
# Handle overnight schedules # Handle overnight schedules
if self.start_time <= self.end_time: if self.start_time <= self.end_time: