mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-03-14 05:36:34 +03:00
save scheduler active flag to nvs
This commit is contained in:
@@ -73,6 +73,11 @@ void WebScheduler::read(WebScheduler & webScheduler, JsonObject root) {
|
|||||||
StateUpdateResult WebScheduler::update(JsonObject root, WebScheduler & webScheduler) {
|
StateUpdateResult WebScheduler::update(JsonObject root, WebScheduler & webScheduler) {
|
||||||
// reset the list
|
// reset the list
|
||||||
Command::erase_device_commands(EMSdevice::DeviceType::SCHEDULER);
|
Command::erase_device_commands(EMSdevice::DeviceType::SCHEDULER);
|
||||||
|
for (ScheduleItem & scheduleItem : webScheduler.scheduleItems) {
|
||||||
|
char key[sizeof(scheduleItem.name) + 2];
|
||||||
|
snprintf(key, sizeof(key), "s:%s", scheduleItem.name);
|
||||||
|
EMSESP::nvs_.remove(key);
|
||||||
|
}
|
||||||
webScheduler.scheduleItems.clear();
|
webScheduler.scheduleItems.clear();
|
||||||
EMSESP::webSchedulerService.ha_reset();
|
EMSESP::webSchedulerService.ha_reset();
|
||||||
|
|
||||||
@@ -95,6 +100,11 @@ StateUpdateResult WebScheduler::update(JsonObject root, WebScheduler & webSchedu
|
|||||||
|
|
||||||
webScheduler.scheduleItems.push_back(si); // add to list
|
webScheduler.scheduleItems.push_back(si); // add to list
|
||||||
if (webScheduler.scheduleItems.back().name[0] != '\0') {
|
if (webScheduler.scheduleItems.back().name[0] != '\0') {
|
||||||
|
char key[sizeof(webScheduler.scheduleItems.back().name) + 2];
|
||||||
|
snprintf(key, sizeof(key), "s:%s", webScheduler.scheduleItems.back().name);
|
||||||
|
if (EMSESP::nvs_.isKey(key)) {
|
||||||
|
webScheduler.scheduleItems.back().active = EMSESP::nvs_.getBool(key);
|
||||||
|
}
|
||||||
Command::add(
|
Command::add(
|
||||||
EMSdevice::DeviceType::SCHEDULER,
|
EMSdevice::DeviceType::SCHEDULER,
|
||||||
webScheduler.scheduleItems.back().name,
|
webScheduler.scheduleItems.back().name,
|
||||||
@@ -127,7 +137,21 @@ bool WebSchedulerService::command_setvalue(const char * value, const int8_t id,
|
|||||||
if (EMSESP::mqtt_.get_publish_onchange(0)) {
|
if (EMSESP::mqtt_.get_publish_onchange(0)) {
|
||||||
publish();
|
publish();
|
||||||
}
|
}
|
||||||
|
// save new state to nvs #2946
|
||||||
|
char key[sizeof(scheduleItem.name) + 2];
|
||||||
|
snprintf(key, sizeof(key), "s:%s", scheduleItem.name);
|
||||||
|
EMSESP::nvs_.putBool(key, scheduleItem.active);
|
||||||
|
/* save to filesystem
|
||||||
|
EMSESP::webSchedulerService.update([&](WebScheduler & webSchedule) {
|
||||||
|
for (auto si : webSchedule.scheduleItems) {
|
||||||
|
if (!strcmp(si.name, scheduleItem.name)) {
|
||||||
|
si.active = scheduleItem.active;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return StateUpdateResult::CHANGED;
|
||||||
|
});
|
||||||
|
*/
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user