diff --git a/src/CHANGES.md b/src/CHANGES.md index 089e37b5..e86a8b40 100644 --- a/src/CHANGES.md +++ b/src/CHANGES.md @@ -1,5 +1,10 @@ # Changelog +## 0.5.56 +* factory reset formats entire little fs +* renamed sunrise / sunset on indext.html to start / stop communication +* show system information only if called directly from menu + ## 0.5.55 * fixed static IP save diff --git a/src/app.cpp b/src/app.cpp index 5fec587e..a2f7f93f 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -30,15 +30,6 @@ void app::setup() { mSettings.getPtr(mConfig); DPRINTLN(DBG_INFO, F("Settings valid: ") + String((mSettings.getValid()) ? F("true") : F("false"))); - every(std::bind(&app::tickSend, this), mConfig->nrf.sendInterval); - #if !defined(AP_ONLY) - once(std::bind(&app::tickNtpUpdate, this), 2); - if((mConfig->sun.lat) && (mConfig->sun.lon)) { - mCalculatedTimezoneOffset = (int8_t)((mConfig->sun.lon >= 0 ? mConfig->sun.lon + 7.5 : mConfig->sun.lon - 7.5) / 15) * 3600; - once(std::bind(&app::tickCalcSunrise, this), 5); - } - #endif - mSys = new HmSystemType(); mSys->enableDebug(); mSys->setup(mConfig->nrf.amplifierPower, mConfig->nrf.pinIrq, mConfig->nrf.pinCe, mConfig->nrf.pinCs); @@ -51,6 +42,15 @@ void app::setup() { mWifi.setup(mConfig, &mTimestamp); + every(std::bind(&app::tickSend, this), mConfig->nrf.sendInterval); + #if !defined(AP_ONLY) + once(std::bind(&app::tickNtpUpdate, this), 2); + if((mConfig->sun.lat) && (mConfig->sun.lon)) { + mCalculatedTimezoneOffset = (int8_t)((mConfig->sun.lon >= 0 ? mConfig->sun.lon + 7.5 : mConfig->sun.lon - 7.5) / 15) * 3600; + once(std::bind(&app::tickCalcSunrise, this), 5); + } + #endif + if(mSys->Radio.isChipConnected()) { mSys->addInverters(&mConfig->inst); mPayload.setup(mSys); diff --git a/src/config/settings.h b/src/config/settings.h index f6b3a661..e1cd449f 100644 --- a/src/config/settings.h +++ b/src/config/settings.h @@ -193,7 +193,7 @@ class settings { } bool saveSettings(void) { - DPRINTLN(DBG_INFO, F("save settings")); + DPRINTLN(DBG_DEBUG, F("save settings")); File fp = LittleFS.open("/settings.json", "w"); if(!fp) { DPRINTLN(DBG_ERROR, F("can't open settings file!")); @@ -221,24 +221,32 @@ class settings { } bool eraseSettings(bool eraseWifi = false) { - loadDefaults(eraseWifi); + if(true == eraseWifi) + return LittleFS.format(); + loadDefaults(!eraseWifi); return saveSettings(); } private: - void loadDefaults(bool wifi = true) { + void loadDefaults(bool keepWifi = false) { DPRINTLN(DBG_VERBOSE, F("loadDefaults")); - if(wifi) { - snprintf(mCfg.sys.stationSsid, SSID_LEN, FB_WIFI_SSID); - snprintf(mCfg.sys.stationPwd, PWD_LEN, FB_WIFI_PWD); - } - else { - cfgSys_t tmp; + + cfgSys_t tmp; + if(keepWifi) { + // copy contents which should not be deleted memset(&tmp.adminPwd, 0, PWD_LEN); memcpy(&tmp, &mCfg.sys, sizeof(cfgSys_t)); - memset(&mCfg, 0, sizeof(settings_t)); - memcpy(&mCfg.sys, &tmp, sizeof(cfgSys_t)); } + // erase all settings and reset to default + memset(&mCfg, 0, sizeof(settings_t)); + // restore temp settings + if(keepWifi) + memcpy(&mCfg.sys, &tmp, sizeof(cfgSys_t)); + else { + snprintf(mCfg.sys.stationSsid, SSID_LEN, FB_WIFI_SSID); + snprintf(mCfg.sys.stationPwd, PWD_LEN, FB_WIFI_PWD); + } + snprintf(mCfg.sys.deviceName, DEVNAME_LEN, DEF_DEVICE_NAME); mCfg.nrf.sendInterval = SEND_INTERVAL; diff --git a/src/defines.h b/src/defines.h index 63456ab4..eca08e8e 100644 --- a/src/defines.h +++ b/src/defines.h @@ -13,7 +13,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 5 -#define VERSION_PATCH 55 +#define VERSION_PATCH 56 //------------------------------------- typedef struct { diff --git a/src/web/RestApi.h b/src/web/RestApi.h index 21650081..831f0f93 100644 --- a/src/web/RestApi.h +++ b/src/web/RestApi.h @@ -203,6 +203,7 @@ class RestApi { getMenu(obj.createNestedObject(F("menu"))); getSysInfo(obj.createNestedObject(F("system"))); obj[F("html")] = F("Factory Reset

Reboot"); + } void getHtmlLogout(JsonObject obj) { diff --git a/src/web/html/index.html b/src/web/html/index.html index 5ae212f5..d626f25a 100644 --- a/src/web/html/index.html +++ b/src/web/html/index.html @@ -31,11 +31,14 @@ } -

Uptime:

-

ESP-Time:

+

+ Uptime:
+ ESP-Time: +

- Sunrise:
- Sunset: + Communication
+ start:
+ stop:

WiFi RSSI: dBm

diff --git a/src/web/html/system.html b/src/web/html/system.html index c95d581a..9835aca3 100644 --- a/src/web/html/system.html +++ b/src/web/html/system.html @@ -55,6 +55,7 @@ for (const [key, value] of Object.entries(obj)) { if(!data.includes(key) || (typeof value == 'undefined')) continue; var li = document.createElement("li"); + li.appendChild() li.appendChild(document.createTextNode(key + ": " + value)); ul.appendChild(li); } @@ -86,10 +87,6 @@ if(null != obj) { parseMenu(obj["menu"]); parseSys(obj["system"]); - parseSysInfo(obj["system"]); - parseRadio(obj["system"]["radio"]); - var e = document.getElementById("system"); - e.innerHTML = obj["html"]; if(null != obj["refresh"]) { var meta = document.createElement('meta'); @@ -97,6 +94,12 @@ meta.content = obj["refresh"] + "; URL=" + obj["refresh_url"]; document.getElementsByTagName('head')[0].appendChild(meta); } + else { + parseSysInfo(obj["system"]); + parseRadio(obj["system"]["radio"]); + } + var e = document.getElementById("system"); + e.innerHTML = obj["html"]; } } diff --git a/src/wifi/ahoywifi.cpp b/src/wifi/ahoywifi.cpp index 203df285..294c4073 100644 --- a/src/wifi/ahoywifi.cpp +++ b/src/wifi/ahoywifi.cpp @@ -8,6 +8,7 @@ #define F(sl) (sl) #endif #include "ahoywifi.h" +#include // NTP CONFIG #define NTP_PACKET_SIZE 48