mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-06-15 12:26:33 +03:00
fix looping of immediate schedule, fix errormessage nvs
This commit is contained in:
@@ -76,13 +76,15 @@ StateUpdateResult WebScheduler::update(JsonObject root, WebScheduler & webSchedu
|
|||||||
for (ScheduleItem & scheduleItem : webScheduler.scheduleItems) {
|
for (ScheduleItem & scheduleItem : webScheduler.scheduleItems) {
|
||||||
char key[sizeof(scheduleItem.name) + 2];
|
char key[sizeof(scheduleItem.name) + 2];
|
||||||
snprintf(key, sizeof(key), "s:%s", scheduleItem.name);
|
snprintf(key, sizeof(key), "s:%s", scheduleItem.name);
|
||||||
EMSESP::nvs_.remove(key);
|
if (EMSESP::nvs_.isKey(key)) {
|
||||||
|
EMSESP::nvs_.remove(key);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
webScheduler.scheduleItems.clear();
|
webScheduler.scheduleItems.clear();
|
||||||
EMSESP::webSchedulerService.ha_reset();
|
EMSESP::webSchedulerService.ha_reset();
|
||||||
|
|
||||||
// build up the list of schedule items
|
// build up the list of schedule items
|
||||||
auto scheduleItems = root["schedule"].as<JsonArray>();
|
auto scheduleItems = root["schedule"].as<JsonArray>();
|
||||||
for (const JsonObject schedule : scheduleItems) {
|
for (const JsonObject schedule : scheduleItems) {
|
||||||
// create each schedule item, overwriting any previous settings
|
// create each schedule item, overwriting any previous settings
|
||||||
// ignore the id (as this is only used in the web for table rendering)
|
// 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_) {
|
for (ScheduleItem & scheduleItem : *scheduleItems_) {
|
||||||
if (scheduleItem.active && scheduleItem.flags == SCHEDULEFLAG_SCHEDULE_IMMEDIATE) {
|
if (scheduleItem.active && scheduleItem.flags == SCHEDULEFLAG_SCHEDULE_IMMEDIATE) {
|
||||||
command(scheduleItem.name, scheduleItem.cmd.c_str(), compute_cmd_value(scheduleItem.cmd, scheduleItem.value));
|
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);
|
publish_single(scheduleItem.name, false);
|
||||||
if (EMSESP::mqtt_.get_publish_onchange(0)) {
|
if (EMSESP::mqtt_.get_publish_onchange(0)) {
|
||||||
publish();
|
publish();
|
||||||
|
|||||||
Reference in New Issue
Block a user