From 449da5203f0cc813cea2214e026ca558d4e98a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xose=20P=C3=A9rez?= Date: Wed, 10 Jan 2018 19:24:28 +0100 Subject: [PATCH] Clean up code, stick to conventions in settings naming --- code/espurna/ascheduler.ino | 117 ------------------------ code/espurna/data/index.html.gz | Bin 62286 -> 62292 bytes code/espurna/scheduler.ino | 155 ++++++++++++++++++++++++++++++++ code/html/custom.js | 15 ++-- code/html/index.html | 33 +++---- 5 files changed, 182 insertions(+), 138 deletions(-) delete mode 100644 code/espurna/ascheduler.ino create mode 100644 code/espurna/scheduler.ino diff --git a/code/espurna/ascheduler.ino b/code/espurna/ascheduler.ino deleted file mode 100644 index b78d6f57..00000000 --- a/code/espurna/ascheduler.ino +++ /dev/null @@ -1,117 +0,0 @@ -/* - -A SCHEDULER MODULE - -Copyright (C) 2017 by faina09 - -*/ - -#if SCHEDULER_SUPPORT - -#include - -void _schWebSocketOnSend(JsonObject &root){ - root["maxScheduled"] = MAX_SCHEDULED; - JsonArray &sch = root.createNestedArray("schedule"); - for (byte i = 0; i < MAX_SCHEDULED; i++) { - if (!hasSetting("sch_switch", i)) - break; - JsonObject &scheduler = sch.createNestedObject(); - scheduler["sch_switch"] = getSetting("sch_switch", i, ""); - scheduler["sch_operation"] = getSetting("sch_operation", i, ""); - scheduler["sch_hour"] = getSetting("sch_hour", i, ""); - scheduler["sch_minute"] = getSetting("sch_minute", i, ""); - scheduler["sch_weekdays"] = getSetting("sch_weekdays", i, ""); - } -} - -void schSetup(){ - // Update websocket clients - #if WEB_SUPPORT - wsOnSendRegister(_schWebSocketOnSend); - #endif - - int i; - for (i = 0; i < MAX_SCHEDULED; i++) { - if (getSetting("sch_switch" + String(i)).length() == 0) - break; - String sch_weekdays = getSetting("sch_weekdays" + String(i)); - int sch_switch = getSetting("sch_switch" + String(i)).toInt(); - int sch_operation = getSetting("sch_operation" + String(i)).toInt(); - int sch_hour = getSetting("sch_hour" + String(i)).toInt(); - int sch_minute = getSetting("sch_minute" + String(i)).toInt(); - DEBUG_MSG_P(PSTR("[SCH] Turn switch #%d %s at %02d:%02d on %s\n"), sch_switch, sch_operation ? "ON" : "OFF", sch_hour, sch_minute, (char *)sch_weekdays.c_str()); - } -} - -void schLoop(){ - // Check if we should compare scheduled and actual times - static unsigned long last_update = 0; - static int sec = 0; - if ((millis() - last_update > ((SCH_UPDATE_SEC + 60 - sec)*1000)) || (last_update == 0)) { - last_update = millis(); - if (!ntpConnected()){ - time_t t = now(); - sec = second(t); - DEBUG_MSG_P(PSTR("[SCH] no NTP, time now=%02d:%02d:%02d\n"),hour(t),minute(t),second(t)); - } - else { - // compare at next minute and SCH_UPDATE_SEC seconds - sec = NTP.getTimeDateString().substring(6, 8).toInt(); - } - int i; - for (i = 0; i < MAX_SCHEDULED; i++) { - if (getSetting("sch_switch" + String(i)).length() == 0) - break; - String sch_weekdays = getSetting("sch_weekdays" + String(i)); - if (isThisWday(sch_weekdays)) { - int sch_switch = getSetting("sch_switch" + String(i)).toInt(); - int sch_operation = getSetting("sch_operation" + String(i)).toInt(); - int sch_hour = getSetting("sch_hour" + String(i)).toInt(); - int sch_minute = getSetting("sch_minute" + String(i)).toInt(); - //DEBUG_MSG_P(PSTR("[SCH] Today it will turn switch #%d %d @ %02d:%02d\n"), sch_switch, sch_operation, sch_hour, sch_minute); - int minToTrigger = diffTime(sch_hour, sch_minute); - if (minToTrigger == 0) { - relayStatus(sch_switch, sch_operation); - DEBUG_MSG_P(PSTR("[SCH] TRIGGERED!! switch #%d is %s\n"), sch_switch, sch_operation ? "ON" : "OFF"); - } - if (minToTrigger < 0) { - //DEBUG_MSG_P(PSTR("[SCH] Time now: %s\n"), (char *)ntpDateTime().c_str()); // aaaa/mm/dd hh:mm:ss - DEBUG_MSG_P(PSTR("[SCH] Time now: %s, %d minutes to trigger %02d:%02d switch #%d %s\n"), - (char *)ntpDateTime().c_str(), -minToTrigger, sch_hour, sch_minute, sch_switch, sch_operation ? "ON" : "OFF"); - } - } - } - } -} - -bool isThisWday(String weekdays){ - //Sunday = 1, Monday = 2, ... - int w = weekday(now()); - //DEBUG_MSG_P(PSTR("[SCH] ntp weekday: %d\n"), w); - char * pch; - char * p = (char *)weekdays.c_str(); - while ((pch = strtok_r(p, ",", &p)) != NULL) { - //DEBUG_MSG_P(PSTR("[SCH] w found: %d\n"), atoi(pch)); - if (atoi(pch) == w) return true; - } - return false; -} - -int diffTime(int schhour, int schminute){ - if (!ntpConnected()){ - time_t t = now(); - DEBUG_MSG_P(PSTR("[SCH] no NTP time = %02d:%02d:%02d\n"),hour(t),minute(t),second(t)); - return (hour(t) - schhour) * 60 + minute(t) - schminute; - } - else { - String value = NTP.getTimeDateString(); - int hour = value.substring(0, 2).toInt(); - int minute = value.substring(3, 5).toInt(); - //DEBUG_MSG_P(PSTR("[SCH] ntp time: %02d:%02d\n"), hour, minute); - //DEBUG_MSG_P(PSTR("[SCH] cmp time: %02d:%02d\n"), schhour, schminute); - return (hour - schhour) * 60 + minute - schminute; - } -} - -#endif // SCHEDULER_SUPPORT diff --git a/code/espurna/data/index.html.gz b/code/espurna/data/index.html.gz index b7dbcd47726913781ecd9c07ff6a84482da17ed9..a8b64c489dbce543ce37cc9a5333b9b6cd6df3cc 100644 GIT binary patch delta 47705 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 jJ?2_fR&!|Ow!Rm3*edTj^ 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 z zpRIvj&SCYY)~51&Bu~p);h9P!3mulm87?(C0Lx$${x?36NLRKmZYY8bnP22S_K2bc z>sNrH14aVy81T1cfWOfLvRXSPb0A|TL<@O2V4*hjgPh7~pTrzhItO!E#;*{nMHy0Ii+}43g0pb6!9NpxNZ0jT(ntN$+`)-o3fs>Zsg=Ax<{HZ@7+%X_f2X&>tt~lrc)e>k<}h|6_}8}<5f6oC zp`e*~T+m*KUk%G;upv}fw3T^f7QuOi4Wu-)Yz64i)GQD*#{w^V5qd!_7r|Dl&=N13 zc_B(5wafbj8WJ*oW)*8dC&R+xtgcwp4L0=v^Z>TLACl|wL|BBPl7jTic;L6>+0MtU zf8lUXPv22nOS`32Ak}m&8I{L;xZs3N%l*sWJarFY&~MqvsAsC(L{Or$n0rb~qd*QI zxx&(OQK%YVW(Q$A(nmtl(>VRNf&cgY$YXTS=s1Rnk>;=C(gd8F zPy-QTTs7!bj3L#aXE8=ogWgrLw(k!;Ff3*!o zP15u7l@6!ej>0v1oIRw+lYxmdfVQ?4S6r;LQLeIHsPcZ1ZYEONX0>i; zOW=oJsro>dPaMj(u(FK%zB#OwgU3pFv{?u(TmSBUk#?}50HR}D>9<|#e}W1x8WOso z$4b#y>{+}P!wh410Cjc8@vsw!Ykh^n?7b^C`e|?zje-oeFx0X=9O1QFcvCu@4int; znmZdmMzGZ4PrHE4(gtll}&zdq5Nb)U0 zh?;1dzy-lI1OGJ|VMtXGf7rl=BI)Q_r8kSPL+u=$i_BYhyKp#1ITx9Fn{7+8jL}zZ zH_BI$a>@=9qGux0LhA?#DE+!`ZEXV9j$@KhtDWuqq>N7QPTAOD?V;wgQA!aLW8>FE zg>ZWk11j1U`q_>RpMvSZ7ve-Bhs7G<(PE8oY0@ICaYB@!0qU+ae|j>L>G&$gsSwW0 z?=ZJ>esQ0R{(vVe7+XqNAK6?6RAF;APsg?NJjNikM#s~6iYl_<@C74)p@$clrF^|H z-ZTdp*G_5KT1K9>C=*AUv2it?fKb8#uF_1CHcH+0d`LM+v!$>9d=V|^JX~C>I*;6T zpl!R_Wymz=aqof(1|iP7&bu`=a{0sCH)oe;z>>dwadP?M*B5WjPO-g*+ndD?v^Nu1 z_ITk2?CM+lRBi1Oyu3qIsP)?&KAXrreh7Pfj*nBXVZhDF7y0m_iP2=zSuhBDj?;0P zPTfp(J^CIqlicy4Sw1eUbrLJh2xSZ(S6u(KJ2U(cUXS$qlw4O~lf&dCaA%P}o7eF_ zqsfF~yjnHqq`AMe1n`@C?o!-Mb6)m^h_Qcp(!7J!&0$lOFT`1#MiiK7Bj~5`WS*1O p@+ARSll<};5Fh;*eKPK{92)SeA{BD@Rg)(3AP9L{)~0b}0{~GqTb=*_ delta 47760 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%0A(#@=n|16Ws{&0` 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 diff --git a/code/espurna/scheduler.ino b/code/espurna/scheduler.ino new file mode 100644 index 00000000..2f005a23 --- /dev/null +++ b/code/espurna/scheduler.ino @@ -0,0 +1,155 @@ +/* + +A SCHEDULER MODULE + +Copyright (C) 2017 by faina09 + +*/ + +#if SCHEDULER_SUPPORT + +#include + +#if WEB_SUPPORT + +void _schWebSocketOnSend(JsonObject &root){ + + root["maxScheduled"] = MAX_SCHEDULED; + JsonArray &sch = root.createNestedArray("schedule"); + for (byte i = 0; i < MAX_SCHEDULED; i++) { + if (!hasSetting("schSwitch", i)) break; + JsonObject &scheduler = sch.createNestedObject(); + scheduler["schSwitch"] = getSetting("schSwitch", i, ""); + scheduler["schAction"] = getSetting("schAction", i, ""); + scheduler["schHour"] = getSetting("schHour", i, ""); + scheduler["schMinute"] = getSetting("schMinute", i, ""); + scheduler["schWDs"] = getSetting("schWDs", i, ""); + } +} + +void _schConfigure() { + + bool delete_flag = false; + + for (unsigned char i = 0; i < MAX_SCHEDULED; i++) { + + int sch_switch = getSetting("schSwitch", i, 0xFF).toInt(); + if (sch_switch == 0xFF) delete_flag = true; + + if (delete_flag) { + + delSetting("schSwitch", i); + delSetting("schAction", i); + delSetting("schHour", i); + delSetting("schMinute", i); + delSetting("schWDs", i); + + } else { + + #if DEBUG_SUPPORT + + int sch_operation = getSetting("schAction", i, 0).toInt(); + int sch_hour = getSetting("schHour", i, 0).toInt(); + int sch_minute = getSetting("schMinute", i, 0).toInt(); + String sch_weekdays = getSetting("schWDs", i, ""); + DEBUG_MSG_P(PSTR("[SCH] Turn switch #%d %s at %02d:%02d on %s\n"), sch_switch, sch_operation ? "ON" : "OFF", sch_hour, sch_minute, (char *)sch_weekdays.c_str()); + + #endif // DEBUG_SUPPORT + + } + + } + +} + +#endif // WEB_SUPPORT + +bool _isThisWeekday(String weekdays){ + + //Sunday = 1, Monday = 2, ... + int w = weekday(now()); + //DEBUG_MSG_P(PSTR("[SCH] NTP weekday: %d\n"), w); + + char * pch; + char * p = (char *) weekdays.c_str(); + while ((pch = strtok_r(p, ",", &p)) != NULL) { + //DEBUG_MSG_P(PSTR("[SCH] w found: %d\n"), atoi(pch)); + if (atoi(pch) == w) return true; + } + return false; + +} + +int _diffTime(unsigned char schedule_hour, unsigned char schedule_minute){ + + unsigned char now_hour; + unsigned char now_minute; + + if (ntpConnected()) { + String value = NTP.getTimeDateString(); + now_hour = value.substring(0, 2).toInt(); + now_minute = value.substring(3, 5).toInt(); + } else { + time_t t = now(); + now_hour = hour(t); + now_minute = minute(t); + } + + return (schedule_hour - now_hour) * 60 + schedule_minute - now_minute; + +} + +// ----------------------------------------------------------------------------- + +void schSetup() { + + _schConfigure(); + + // Update websocket clients + #if WEB_SUPPORT + wsOnSendRegister(_schWebSocketOnSend); + wsOnAfterParseRegister(_schConfigure); + #endif + +} + +void schLoop(){ + + static unsigned long last_update = 0; + static int update_time = 0; + + // Check if we should compare scheduled and actual times + if ((millis() - last_update > update_time) || (last_update == 0)) { + last_update = millis(); + + // Calculate next update time + unsigned char current_second = ntpConnected() ? + NTP.getTimeDateString().substring(6, 8).toInt() : + second(now()) + ; + update_time = (SCH_UPDATE_SEC + 60 - current_second) * 1000; + + for (unsigned char i = 0; i < MAX_SCHEDULED; i++) { + + int sch_switch = getSetting("schSwitch", i, 0xFF).toInt(); + if (sch_switch == 0xFF) break; + + String sch_weekdays = getSetting("schWDs", i, ""); + if (_isThisWeekday(sch_weekdays)) { + + int sch_hour = getSetting("schHour", i, 0).toInt(); + int sch_minute = getSetting("schMinute", i, 0).toInt(); + int minutes_to_trigger = _diffTime(sch_hour, sch_minute); + if (minutes_to_trigger == 0) { + int sch_operation = getSetting("schAction", i, 0).toInt(); + relayStatus(sch_switch, sch_operation); + DEBUG_MSG_P(PSTR("[SCH] Schedule #%d TRIGGERED!!\n"), sch_switch); + } else if (minutes_to_trigger > 0) { + DEBUG_MSG_P(PSTR("[SCH] %d minutes to trigger schedule #%d\n"), minutes_to_trigger, sch_switch); + } + } + } + } +} + +#endif // SCHEDULER_SUPPORT diff --git a/code/html/custom.js b/code/html/custom.js index eb4c477a..b066579e 100644 --- a/code/html/custom.js +++ b/code/html/custom.js @@ -101,7 +101,7 @@ function validateForm(form) { // These fields will always be a list of values var is_group = [ "ssid", "pass", "gw", "mask", "ip", "dns", - "sch_switch","sch_operation","sch_hour","sch_minute","sch_weekdays", + "schSwitch","schAction","schHour","schMinute","schWDs", "relayBoot", "relayPulse", "relayTime", "mqttGroup", "mqttGroupInv", "dczRelayIdx", "dczMagnitude", @@ -146,6 +146,9 @@ function getData(form) { } }); + // Post process + if ("schSwitch" in data) data["schSwitch"].push(0xFF); + return data; } @@ -479,16 +482,16 @@ function moreSchedule() { var parent = $(this).parents(".pure-g"); $("div.more", parent).toggle(); } - -function addSchedule() { + +function addSchedule() { var numSchedules = $("#schedules > div").length; if (numSchedules >= maxSchedules) { alert("Max number of schedules reached"); return; - } + } var tabindex = 200 + numSchedules * 10; var template = $("#scheduleTemplate").children(); - var line = $(template).clone(); + var line = $(template).clone(); $(line).find("input").each(function() { $(this).attr("tabindex", tabindex++); }); @@ -1118,7 +1121,7 @@ $(function() { $(".button-add-schedule").on('click', function() { $("div.more", addSchedule()).toggle(); }); - + $(document).on('change', 'input', hasChanged); $(document).on('change', 'select', hasChanged); diff --git a/code/html/index.html b/code/html/index.html index 1c01a153..a6a2a1a8 100644 --- a/code/html/index.html +++ b/code/html/index.html @@ -1047,34 +1047,37 @@