mirror of
https://github.com/lumapu/ahoy.git
synced 2025-04-29 10:16:21 +02:00
Merge branch 'dev4' of https://github.com/tastendruecker123/ahoy into tastendruecker123-dev4
default of scheduled reboot is now 'false'
This commit is contained in:
commit
81a7f09e3a
5 changed files with 19 additions and 0 deletions
|
@ -233,6 +233,14 @@ void app::tickNtpUpdate(void) {
|
|||
uint32_t midTrig = gTimezone.toUTC(localTime - (localTime % 86400) + 86400); // next midnight local time
|
||||
onceAt(std::bind(&app::tickMidnight, this), midTrig, "midNi");
|
||||
}
|
||||
if (mConfig->sys.schedReboot) {
|
||||
uint32_t localTime = gTimezone.toLocal(mTimestamp);
|
||||
uint32_t rebootTrig = gTimezone.toUTC(localTime - (localTime % 86400) + 86410); // reboot 10 secs after midnght
|
||||
if (rebootTrig <= mTimestamp) { //necessary for times other than midnight to prevent reboot loop
|
||||
rebootTrig += 86400;
|
||||
}
|
||||
onceAt(std::bind(&app::tickReboot, this), rebootTrig, "midRe");
|
||||
}
|
||||
}
|
||||
|
||||
nxtTrig = isOK ? 43200 : 60; // depending on NTP update success check again in 12 h or in 1 min
|
||||
|
|
|
@ -64,6 +64,7 @@ typedef struct {
|
|||
char adminPwd[PWD_LEN];
|
||||
uint16_t protectionMask;
|
||||
bool darkMode;
|
||||
bool schedReboot;
|
||||
|
||||
// wifi
|
||||
char stationSsid[SSID_LEN];
|
||||
|
@ -356,6 +357,7 @@ class settings {
|
|||
mCfg.sys.protectionMask = DEF_PROT_INDEX | DEF_PROT_LIVE | DEF_PROT_SERIAL | DEF_PROT_SETUP
|
||||
| DEF_PROT_UPDATE | DEF_PROT_SYSTEM | DEF_PROT_API | DEF_PROT_MQTT;
|
||||
mCfg.sys.darkMode = false;
|
||||
mCfg.sys.schedReboot = false;
|
||||
// restore temp settings
|
||||
if(keepWifi)
|
||||
memcpy(&mCfg.sys, &tmp, sizeof(cfgSys_t));
|
||||
|
@ -438,6 +440,7 @@ class settings {
|
|||
obj[F("adm")] = mCfg.sys.adminPwd;
|
||||
obj[F("prot_mask")] = mCfg.sys.protectionMask;
|
||||
obj[F("dark")] = mCfg.sys.darkMode;
|
||||
obj[F("reb")] = (bool) mCfg.sys.schedReboot;
|
||||
ah::ip2Char(mCfg.sys.ip.ip, buf); obj[F("ip")] = String(buf);
|
||||
ah::ip2Char(mCfg.sys.ip.mask, buf); obj[F("mask")] = String(buf);
|
||||
ah::ip2Char(mCfg.sys.ip.dns1, buf); obj[F("dns1")] = String(buf);
|
||||
|
@ -452,6 +455,7 @@ class settings {
|
|||
getChar(obj, F("adm"), mCfg.sys.adminPwd, PWD_LEN);
|
||||
getVal<uint16_t>(obj, F("prot_mask"), &mCfg.sys.protectionMask);
|
||||
getVal<bool>(obj, F("dark"), &mCfg.sys.darkMode);
|
||||
getVal<bool>(obj, F("reb"), &mCfg.sys.schedReboot);
|
||||
if(obj.containsKey(F("ip"))) ah::ip2Arr(mCfg.sys.ip.ip, obj[F("ip")].as<const char*>());
|
||||
if(obj.containsKey(F("mask"))) ah::ip2Arr(mCfg.sys.ip.mask, obj[F("mask")].as<const char*>());
|
||||
if(obj.containsKey(F("dns1"))) ah::ip2Arr(mCfg.sys.ip.dns1, obj[F("dns1")].as<const char*>());
|
||||
|
|
|
@ -210,6 +210,7 @@ class RestApi {
|
|||
obj[F("hidd")] = mConfig->sys.isHidden;
|
||||
obj[F("device_name")] = mConfig->sys.deviceName;
|
||||
obj[F("dark_mode")] = (bool)mConfig->sys.darkMode;
|
||||
obj[F("sched_reboot")] = (bool)mConfig->sys.schedReboot;
|
||||
|
||||
obj[F("mac")] = WiFi.macAddress();
|
||||
obj[F("hostname")] = mConfig->sys.deviceName;
|
||||
|
|
|
@ -18,6 +18,10 @@
|
|||
<div class="col-12 col-sm-3">Device Name</div>
|
||||
<div class="col-12 col-sm-9"><input type="text" name="device"/></div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-8 col-sm-3">Reboot Ahoy at midnight</div>
|
||||
<div class="col-4 col-sm-9"><input type="checkbox" name="schedReboot"/></div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-8 col-sm-3">Dark Mode</div>
|
||||
<div class="col-4 col-sm-9"><input type="checkbox" name="darkMode"/></div>
|
||||
|
@ -634,6 +638,7 @@
|
|||
document.getElementsByName(i[0])[0].value = obj[i[1]];
|
||||
document.getElementsByName("hidd")[0].checked = obj["hidd"];
|
||||
document.getElementsByName("darkMode")[0].checked = obj["dark_mode"];
|
||||
document.getElementsByName("schedReboot")[0].checked = obj["sched_reboot"];
|
||||
e = document.getElementsByName("adminpwd")[0];
|
||||
if(!obj["pwd_set"])
|
||||
e.value = "";
|
||||
|
|
|
@ -454,6 +454,7 @@ class Web {
|
|||
if (request->arg("device") != "")
|
||||
request->arg("device").toCharArray(mConfig->sys.deviceName, DEVNAME_LEN);
|
||||
mConfig->sys.darkMode = (request->arg("darkMode") == "on");
|
||||
mConfig->sys.schedReboot = (request->arg("schedReboot") == "on");
|
||||
|
||||
// protection
|
||||
if (request->arg("adminpwd") != "{PWD}") {
|
||||
|
|
Loading…
Add table
Reference in a new issue