diff --git a/src/web/WebSchedulerService.cpp b/src/web/WebSchedulerService.cpp index d2e90b629..eac54c7f1 100644 --- a/src/web/WebSchedulerService.cpp +++ b/src/web/WebSchedulerService.cpp @@ -82,7 +82,8 @@ StateUpdateResult WebScheduler::update(JsonObject root, WebScheduler & webSchedu EMSESP::webSchedulerService.ha_reset(); // build up the list of schedule items - auto scheduleItems = root["schedule"].as(); + uint8_t i = 0; + 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) @@ -94,6 +95,10 @@ StateUpdateResult WebScheduler::update(JsonObject root, WebScheduler & webSchedu si.value = schedule["value"].as(); strlcpy(si.name, schedule["name"].as(), sizeof(si.name)); + if (si.name[0] == '\0') { + snprintf(si.name, sizeof(si.name), "schedule_%d", i++); // set a default name. Before v3.9.0 we allowed empty schedule names. + } + // calculated elapsed minutes si.elapsed_min = Helpers::string2minutes(si.time.c_str()); si.retry_cnt = 0xFF; // no startup retries