mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-06-15 04:16:27 +03:00
don't show Scheduler items of type immediate in Dashboard
This commit is contained in:
@@ -488,24 +488,25 @@ void WebDataService::dashboard_data(AsyncWebServerRequest * request) {
|
|||||||
|
|
||||||
EMSESP::webSchedulerService.read([&](const WebScheduler & webScheduler) {
|
EMSESP::webSchedulerService.read([&](const WebScheduler & webScheduler) {
|
||||||
for (const ScheduleItem & scheduleItem : webScheduler.scheduleItems) {
|
for (const ScheduleItem & scheduleItem : webScheduler.scheduleItems) {
|
||||||
// only add if we have a name and it's not of type SCHEDULE_IMMEDIATE - we don't need a u (UOM) for this
|
JsonObject node = nodes.add<JsonObject>();
|
||||||
if (scheduleItem.name[0] != '\0' && scheduleItem.flags != SCHEDULEFLAG_SCHEDULE_IMMEDIATE) {
|
node["id"] = (EMSdevice::DeviceTypeUniqueID::SCHEDULER_UID * 100) + count++;
|
||||||
JsonObject node = nodes.add<JsonObject>();
|
|
||||||
node["id"] = (EMSdevice::DeviceTypeUniqueID::SCHEDULER_UID * 100) + count++;
|
|
||||||
|
|
||||||
JsonObject dv = node["dv"].to<JsonObject>();
|
JsonObject dv = node["dv"].to<JsonObject>();
|
||||||
dv["id"] = std::string("00") + scheduleItem.name;
|
dv["id"] = std::string("00") + scheduleItem.name;
|
||||||
dv["c"] = scheduleItem.name;
|
dv["c"] = scheduleItem.name;
|
||||||
char s[12];
|
char s[12];
|
||||||
dv["v"] = Helpers::render_boolean(s, scheduleItem.active, true);
|
dv["v"] = Helpers::render_boolean(s, scheduleItem.active, true);
|
||||||
JsonArray l = dv["l"].to<JsonArray>();
|
JsonArray l = dv["l"].to<JsonArray>();
|
||||||
l.add(Helpers::render_boolean(s, false, true));
|
l.add(Helpers::render_boolean(s, false, true));
|
||||||
l.add(Helpers::render_boolean(s, true, true));
|
l.add(Helpers::render_boolean(s, true, true));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Serial.println("All dashboard_data: ");
|
||||||
|
serializeJson(root, Serial);
|
||||||
|
Serial.println();
|
||||||
|
|
||||||
#if defined(EMSESP_TEST) && defined(EMSESP_STANDALONE)
|
#if defined(EMSESP_TEST) && defined(EMSESP_STANDALONE)
|
||||||
Serial.println();
|
Serial.println();
|
||||||
Serial.print("All dashboard_data: ");
|
Serial.print("All dashboard_data: ");
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ StateUpdateResult WebScheduler::update(JsonObject root, WebScheduler & webSchedu
|
|||||||
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)
|
||||||
@@ -333,10 +333,12 @@ void WebSchedulerService::publish(const bool force) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// count number of entries, default: only named items
|
// count number of entries, default: only named items
|
||||||
uint8_t WebSchedulerService::count_entities(bool cmd_only) {
|
// if exclude_immediate is true, include those that are of type SCHEDULEFLAG_SCHEDULE_IMMEDIATE
|
||||||
|
uint8_t WebSchedulerService::count_entities(bool exclude_immediate) {
|
||||||
uint8_t count = 0;
|
uint8_t count = 0;
|
||||||
for (const ScheduleItem & scheduleItem : *scheduleItems_) {
|
for (const ScheduleItem & scheduleItem : *scheduleItems_) {
|
||||||
if (scheduleItem.name[0] != '\0' || !cmd_only) {
|
// count all except SCHEDULE_IMMEDIATE if exclude_immediate is true, else count all
|
||||||
|
if (!exclude_immediate || scheduleItem.flags != SCHEDULEFLAG_SCHEDULE_IMMEDIATE) {
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ namespace emsesp {
|
|||||||
class ScheduleItem {
|
class ScheduleItem {
|
||||||
public:
|
public:
|
||||||
boolean active;
|
boolean active;
|
||||||
uint8_t flags; // bit flags, see SCHEDULEFLAG_* defines
|
uint8_t flags; // bit flags, see SCHEDULEFLAG_* defines
|
||||||
uint16_t elapsed_min; // total mins from 00:00
|
uint16_t elapsed_min; // total mins from 00:00
|
||||||
stringPSRAM time; // HH:MM
|
stringPSRAM time; // HH:MM
|
||||||
stringPSRAM cmd;
|
stringPSRAM cmd;
|
||||||
@@ -85,7 +85,7 @@ class WebSchedulerService : public StatefulService<WebScheduler> {
|
|||||||
void ha_reset() {
|
void ha_reset() {
|
||||||
ha_configdone_ = false;
|
ha_configdone_ = false;
|
||||||
}
|
}
|
||||||
uint8_t count_entities(bool cmd_only = false);
|
uint8_t count_entities(bool exclude_immediate = false);
|
||||||
bool onChange(const char * cmd);
|
bool onChange(const char * cmd);
|
||||||
|
|
||||||
bool executeSchedule(const char * name);
|
bool executeSchedule(const char * name);
|
||||||
|
|||||||
Reference in New Issue
Block a user