diff --git a/Scripts/web_server.py b/Scripts/web_server.py index 0ec6256..7007ff3 100644 --- a/Scripts/web_server.py +++ b/Scripts/web_server.py @@ -97,6 +97,29 @@ class TempWebServer: # Load current config config = self._load_config() + # Check if this is a "Resume Schedule" request + if params.get('resume_schedule') == 'true': + config['schedule_enabled'] = True + + # Save to file + if self._save_config_to_file(config): + print("▶️ Schedule resumed") + + # Reload schedule monitor + if schedule_monitor: + schedule_monitor.reload_config(config) + + # Send Discord notification + try: + from scripts.discord_webhook import send_discord_message + message = "▶️ Schedule resumed - Automatic temperature control active" + send_discord_message(message) + except: + pass + + return self._get_status_page(sensors, ac_monitor, heater_monitor, show_success=True) + + # Otherwise, handle normal schedule update # Update schedule enabled status config['schedule_enabled'] = params.get('schedule_enabled') == 'on' @@ -144,7 +167,7 @@ class TempWebServer: sys.print_exception(e) return self._get_status_page(sensors, ac_monitor, heater_monitor, show_success=True) - + def _handle_update(self, request, sensors, ac_monitor, heater_monitor, schedule_monitor): """Handle form submission and update settings.""" try: @@ -637,8 +660,26 @@ class TempWebServer: enabled_checked = 'checked' if config.get('schedule_enabled') else '' - form = """ -
+ # Check if in HOLD mode + is_hold_mode = not config.get('schedule_enabled', False) and len(config.get('schedules', [])) > 0 + + # Build header with toggle or resume button + if is_hold_mode: + # Show Resume Schedule button instead of toggle + header = """ +
+

⚙️ Edit Schedules

+ + + + +
+ """ + else: + # Show toggle switch for enable/disable + header = """

⚙️ Edit Schedules

- """.format(enabled_checked=enabled_checked) + """.format(enabled_checked=enabled_checked) + + form = """ +
+ {header} + """.format(header=header) for i, schedule in enumerate(schedules[:4]): form += """