mirror of
https://github.com/lumapu/ahoy.git
synced 2025-05-25 06:46:10 +02:00
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
This commit is contained in:
parent
e1b6fe1344
commit
b2fc16e030
8 changed files with 50 additions and 29 deletions
|
@ -1,5 +1,10 @@
|
||||||
# Changelog
|
# 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
|
## 0.5.55
|
||||||
* fixed static IP save
|
* fixed static IP save
|
||||||
|
|
||||||
|
|
18
src/app.cpp
18
src/app.cpp
|
@ -30,15 +30,6 @@ void app::setup() {
|
||||||
mSettings.getPtr(mConfig);
|
mSettings.getPtr(mConfig);
|
||||||
DPRINTLN(DBG_INFO, F("Settings valid: ") + String((mSettings.getValid()) ? F("true") : F("false")));
|
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 = new HmSystemType();
|
||||||
mSys->enableDebug();
|
mSys->enableDebug();
|
||||||
mSys->setup(mConfig->nrf.amplifierPower, mConfig->nrf.pinIrq, mConfig->nrf.pinCe, mConfig->nrf.pinCs);
|
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);
|
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()) {
|
if(mSys->Radio.isChipConnected()) {
|
||||||
mSys->addInverters(&mConfig->inst);
|
mSys->addInverters(&mConfig->inst);
|
||||||
mPayload.setup(mSys);
|
mPayload.setup(mSys);
|
||||||
|
|
|
@ -193,7 +193,7 @@ class settings {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool saveSettings(void) {
|
bool saveSettings(void) {
|
||||||
DPRINTLN(DBG_INFO, F("save settings"));
|
DPRINTLN(DBG_DEBUG, F("save settings"));
|
||||||
File fp = LittleFS.open("/settings.json", "w");
|
File fp = LittleFS.open("/settings.json", "w");
|
||||||
if(!fp) {
|
if(!fp) {
|
||||||
DPRINTLN(DBG_ERROR, F("can't open settings file!"));
|
DPRINTLN(DBG_ERROR, F("can't open settings file!"));
|
||||||
|
@ -221,24 +221,32 @@ class settings {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool eraseSettings(bool eraseWifi = false) {
|
bool eraseSettings(bool eraseWifi = false) {
|
||||||
loadDefaults(eraseWifi);
|
if(true == eraseWifi)
|
||||||
|
return LittleFS.format();
|
||||||
|
loadDefaults(!eraseWifi);
|
||||||
return saveSettings();
|
return saveSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadDefaults(bool wifi = true) {
|
void loadDefaults(bool keepWifi = false) {
|
||||||
DPRINTLN(DBG_VERBOSE, F("loadDefaults"));
|
DPRINTLN(DBG_VERBOSE, F("loadDefaults"));
|
||||||
if(wifi) {
|
|
||||||
|
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));
|
||||||
|
}
|
||||||
|
// 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.stationSsid, SSID_LEN, FB_WIFI_SSID);
|
||||||
snprintf(mCfg.sys.stationPwd, PWD_LEN, FB_WIFI_PWD);
|
snprintf(mCfg.sys.stationPwd, PWD_LEN, FB_WIFI_PWD);
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
cfgSys_t tmp;
|
|
||||||
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));
|
|
||||||
}
|
|
||||||
snprintf(mCfg.sys.deviceName, DEVNAME_LEN, DEF_DEVICE_NAME);
|
snprintf(mCfg.sys.deviceName, DEVNAME_LEN, DEF_DEVICE_NAME);
|
||||||
|
|
||||||
mCfg.nrf.sendInterval = SEND_INTERVAL;
|
mCfg.nrf.sendInterval = SEND_INTERVAL;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 5
|
#define VERSION_MINOR 5
|
||||||
#define VERSION_PATCH 55
|
#define VERSION_PATCH 56
|
||||||
|
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -203,6 +203,7 @@ class RestApi {
|
||||||
getMenu(obj.createNestedObject(F("menu")));
|
getMenu(obj.createNestedObject(F("menu")));
|
||||||
getSysInfo(obj.createNestedObject(F("system")));
|
getSysInfo(obj.createNestedObject(F("system")));
|
||||||
obj[F("html")] = F("<a href=\"/factory\" class=\"btn\">Factory Reset</a><br/><br/><a href=\"/reboot\" class=\"btn\">Reboot</a>");
|
obj[F("html")] = F("<a href=\"/factory\" class=\"btn\">Factory Reset</a><br/><br/><a href=\"/reboot\" class=\"btn\">Reboot</a>");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void getHtmlLogout(JsonObject obj) {
|
void getHtmlLogout(JsonObject obj) {
|
||||||
|
|
|
@ -31,11 +31,14 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<p><span class="des">Uptime: </span><span id="uptime"></span></p>
|
<p>
|
||||||
<p><span class="des">ESP-Time: </span><span id="date"></span></p>
|
<span class="des">Uptime: </span><span id="uptime"></span><br/>
|
||||||
|
<span class="des">ESP-Time: </span><span id="date"></span>
|
||||||
|
</p>
|
||||||
<div id="sun">
|
<div id="sun">
|
||||||
<span class="des">Sunrise: </span><span id="sunrise"></span><br>
|
<span class="des">Communication</span><br/>
|
||||||
<span class="des">Sunset: </span><span id="sunset"></span>
|
<span class="des">start: </span><span id="sunrise"></span><br>
|
||||||
|
<span class="des">stop: </span><span id="sunset"></span>
|
||||||
</div>
|
</div>
|
||||||
<p><span class="des">WiFi RSSI: </span><span id="wifi_rssi"></span> dBm</p>
|
<p><span class="des">WiFi RSSI: </span><span id="wifi_rssi"></span> dBm</p>
|
||||||
<p>
|
<p>
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
for (const [key, value] of Object.entries(obj)) {
|
for (const [key, value] of Object.entries(obj)) {
|
||||||
if(!data.includes(key) || (typeof value == 'undefined')) continue;
|
if(!data.includes(key) || (typeof value == 'undefined')) continue;
|
||||||
var li = document.createElement("li");
|
var li = document.createElement("li");
|
||||||
|
li.appendChild()
|
||||||
li.appendChild(document.createTextNode(key + ": " + value));
|
li.appendChild(document.createTextNode(key + ": " + value));
|
||||||
ul.appendChild(li);
|
ul.appendChild(li);
|
||||||
}
|
}
|
||||||
|
@ -86,10 +87,6 @@
|
||||||
if(null != obj) {
|
if(null != obj) {
|
||||||
parseMenu(obj["menu"]);
|
parseMenu(obj["menu"]);
|
||||||
parseSys(obj["system"]);
|
parseSys(obj["system"]);
|
||||||
parseSysInfo(obj["system"]);
|
|
||||||
parseRadio(obj["system"]["radio"]);
|
|
||||||
var e = document.getElementById("system");
|
|
||||||
e.innerHTML = obj["html"];
|
|
||||||
|
|
||||||
if(null != obj["refresh"]) {
|
if(null != obj["refresh"]) {
|
||||||
var meta = document.createElement('meta');
|
var meta = document.createElement('meta');
|
||||||
|
@ -97,6 +94,12 @@
|
||||||
meta.content = obj["refresh"] + "; URL=" + obj["refresh_url"];
|
meta.content = obj["refresh"] + "; URL=" + obj["refresh_url"];
|
||||||
document.getElementsByTagName('head')[0].appendChild(meta);
|
document.getElementsByTagName('head')[0].appendChild(meta);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
parseSysInfo(obj["system"]);
|
||||||
|
parseRadio(obj["system"]["radio"]);
|
||||||
|
}
|
||||||
|
var e = document.getElementById("system");
|
||||||
|
e.innerHTML = obj["html"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#define F(sl) (sl)
|
#define F(sl) (sl)
|
||||||
#endif
|
#endif
|
||||||
#include "ahoywifi.h"
|
#include "ahoywifi.h"
|
||||||
|
#include <ESP8266HTTPClient.h>
|
||||||
|
|
||||||
// NTP CONFIG
|
// NTP CONFIG
|
||||||
#define NTP_PACKET_SIZE 48
|
#define NTP_PACKET_SIZE 48
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue