From f6308d61eb04bb2229b035546b69cf2501a71fb0 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Sun, 7 Jun 2026 16:29:08 +0200 Subject: [PATCH] fix looping of immediate schedule, fix errormessage nvs --- src/web/WebSchedulerService.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/web/WebSchedulerService.cpp b/src/web/WebSchedulerService.cpp index 7705de4b0..b975b5aa8 100644 --- a/src/web/WebSchedulerService.cpp +++ b/src/web/WebSchedulerService.cpp @@ -76,13 +76,15 @@ StateUpdateResult WebScheduler::update(JsonObject root, WebScheduler & webSchedu for (ScheduleItem & scheduleItem : webScheduler.scheduleItems) { char key[sizeof(scheduleItem.name) + 2]; snprintf(key, sizeof(key), "s:%s", scheduleItem.name); - EMSESP::nvs_.remove(key); + if (EMSESP::nvs_.isKey(key)) { + EMSESP::nvs_.remove(key); + } } webScheduler.scheduleItems.clear(); EMSESP::webSchedulerService.ha_reset(); // build up the list of schedule items - auto scheduleItems = root["schedule"].as(); + auto scheduleItems = root["schedule"].as(); for (const JsonObject schedule : scheduleItems) { // create each schedule item, overwriting any previous settings // ignore the id (as this is only used in the web for table rendering) @@ -491,7 +493,7 @@ void WebSchedulerService::loop() { for (ScheduleItem & scheduleItem : *scheduleItems_) { if (scheduleItem.active && scheduleItem.flags == SCHEDULEFLAG_SCHEDULE_IMMEDIATE) { command(scheduleItem.name, scheduleItem.cmd.c_str(), compute_cmd_value(scheduleItem.cmd, scheduleItem.value)); - // scheduleItem.active = false; + scheduleItem.active = false; publish_single(scheduleItem.name, false); if (EMSESP::mqtt_.get_publish_onchange(0)) { publish();