From 0305c114cfa83eb03c75d2913868e8beb78df090 Mon Sep 17 00:00:00 2001 From: lumapu Date: Thu, 17 Nov 2022 22:15:50 +0100 Subject: [PATCH 01/11] improved system infos - not yet nice but informal --- src/web/html/api.js | 27 ------------------ src/web/html/system.html | 17 +++++++++++- src/web/webApi.cpp | 59 ++++++++++++++++++++++++++-------------- 3 files changed, 54 insertions(+), 49 deletions(-) diff --git a/src/web/html/api.js b/src/web/html/api.js index 3a8ad7f1..508a671d 100644 --- a/src/web/html/api.js +++ b/src/web/html/api.js @@ -31,32 +31,6 @@ function parseESP(obj) { document.getElementById("esp_type").innerHTML="Board: " + obj["esp_type"]; } -function parseSysInfo(obj) { - const data = ["sdk_version", "cpu_freq", "chip_revision", "chip_model", "chip_cores", "esp_type"]; - - var ul = document.getElementById("info"); - - if(!isNaN(obj["heap_total"])) { - document.getElementById("info").innerHTML = 'Heap: bytes ( bytes)'; - changeProgressbar("heap", obj["heap_used"], obj["heap_total"]); - } - - for (const [key, value] of Object.entries(obj)) { - if(!data.includes(key) || (typeof value == 'undefined')) continue; - var li = document.createElement("li"); - li.appendChild(document.createTextNode(key + ": " + value)); - ul.appendChild(li); - } -} - -function changeProgressbar(id, value, max) { - document.getElementById(id).value = value; - document.getElementById(id).max = max; - - document.getElementById("heap_used").textContent = value; - document.getElementById("heap_total").textContent = max; -} - function setHide(id, hide) { var elm = document.getElementById(id); if(hide) { @@ -67,7 +41,6 @@ function setHide(id, hide) { elm.classList.remove('hide'); } - function toggle(id) { var e = document.getElementById(id); if(!e.classList.contains("hide")) diff --git a/src/web/html/system.html b/src/web/html/system.html index a3219d6b..d8a473a2 100644 --- a/src/web/html/system.html +++ b/src/web/html/system.html @@ -18,7 +18,7 @@
-
+
    @@ -44,6 +44,21 @@ parseESP(obj); } + function parseSysInfo(obj) { + const data = ["sdk", "cpu_freq", "chip_revision", + "chip_model", "chip_cores", "esp_type", "mac", "wifi_rssi", + "flash_size", "sketch_used", "heap_total", "heap_free", "heap_frag", + "max_free_blk", "version", "core_version", "reboot_reason"]; + + var ul = document.getElementById("info"); + for (const [key, value] of Object.entries(obj)) { + if(!data.includes(key) || (typeof value == 'undefined')) continue; + var li = document.createElement("li"); + li.appendChild(document.createTextNode(key + ": " + value)); + ul.appendChild(li); + } + } + function parse(obj) { if(null != obj) { parseMenu(obj["menu"]); diff --git a/src/web/webApi.cpp b/src/web/webApi.cpp index f06b8bb0..e71aa511 100644 --- a/src/web/webApi.cpp +++ b/src/web/webApi.cpp @@ -142,30 +142,47 @@ void webApi::onDwnldSetup(AsyncWebServerRequest *request) { //----------------------------------------------------------------------------- void webApi::getSysInfo(JsonObject obj) { - obj[F("ssid")] = mConfig->sys.stationSsid; - obj[F("device_name")] = mConfig->sys.deviceName; - obj[F("version")] = String(mVersion); - obj[F("build")] = String(AUTO_GIT_HASH); - obj[F("ts_uptime")] = mApp->getUptime(); - obj[F("ts_now")] = mApp->getTimestamp(); - obj[F("ts_sunrise")] = mApp->getSunrise(); - obj[F("ts_sunset")] = mApp->getSunset(); - obj[F("ts_sun_upd")] = mApp->getLatestSunTimestamp(); - obj[F("wifi_rssi")] = WiFi.RSSI(); - obj[F("pwd_set")] = (strlen(mConfig->sys.adminPwd) > 0); - - obj[F("hostname")] = WiFi.getHostname(); - obj[F("sdk_version")] = ESP.getSdkVersion(); - obj[F("cpu_freq")] = ESP.getCpuFreqMHz(); + obj[F("ssid")] = mConfig->sys.stationSsid; + obj[F("device_name")] = mConfig->sys.deviceName; + obj[F("version")] = String(mVersion); + obj[F("build")] = String(AUTO_GIT_HASH); + obj[F("ts_uptime")] = mApp->getUptime(); + obj[F("ts_now")] = mApp->getTimestamp(); + obj[F("ts_sunrise")] = mApp->getSunrise(); + obj[F("ts_sunset")] = mApp->getSunset(); + obj[F("ts_sun_upd")] = mApp->getLatestSunTimestamp(); + obj[F("wifi_rssi")] = WiFi.RSSI(); + obj[F("mac")] = WiFi.macAddress(); + obj[F("hostname")] = WiFi.getHostname(); + obj[F("pwd_set")] = (strlen(mConfig->sys.adminPwd) > 0); + + obj[F("sdk")] = ESP.getSdkVersion(); + obj[F("cpu_freq")] = ESP.getCpuFreqMHz(); + obj[F("heap_free")] = ESP.getFreeHeap(); + obj[F("sketch_total")] = ESP.getFreeSketchSpace(); + obj[F("sketch_used")] = ESP.getSketchSize() / 1024; // in kb + #if defined(ESP32) obj[F("heap_total")] = ESP.getHeapSize(); - obj[F("heap_used")] = ESP.getHeapSize() - ESP.getFreeHeap(); - obj[F("chip_revision")] = ESP.getChipRevision(); - obj[F("chip_model")] = ESP.getChipModel(); - obj[F("chip_cores")] = ESP.getChipCores(); + obj[F("chip_revision")] = ESP.getChipRevision(); + obj[F("chip_model")] = ESP.getChipModel(); + obj[F("chip_cores")] = ESP.getChipCores(); + //obj[F("core_version")] = F("n/a"); + //obj[F("flash_size")] = F("n/a"); + //obj[F("heap_frag")] = F("n/a"); + //obj[F("max_free_blk")] = F("n/a"); + //obj[F("reboot_reason")] = F("n/a"); +#else + //obj[F("heap_total")] = F("n/a"); + //obj[F("chip_revision")] = F("n/a"); + //obj[F("chip_model")] = F("n/a"); + //obj[F("chip_cores")] = F("n/a"); + obj[F("core_version")] = ESP.getCoreVersion(); + obj[F("flash_size")] = ESP.getFlashChipRealSize() / 1024; // in kb + obj[F("heap_frag")] = ESP.getHeapFragmentation(); + obj[F("max_free_blk")] = ESP.getMaxFreeBlockSize(); + obj[F("reboot_reason")] = ESP.getResetReason(); #endif - obj[F("sketch_total")] = ESP.getFreeSketchSpace(); - obj[F("sketch_used")] = ESP.getSketchSize(); //obj[F("littlefs_total")] = LittleFS.totalBytes(); //obj[F("littlefs_used")] = LittleFS.usedBytes(); From c1eed6eef226a01faf6dfbe01251c1c29806fdb3 Mon Sep 17 00:00:00 2001 From: lumapu Date: Fri, 18 Nov 2022 12:03:09 +0100 Subject: [PATCH 02/11] fix #416 --- src/app.cpp | 1 + src/publisher/pubMqtt.h | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/app.cpp b/src/app.cpp index 10e60c92..a7cc64a3 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -42,6 +42,7 @@ void app::setup(uint32_t timeout) { mMqtt.setup(&mConfig->mqtt, mConfig->sys.deviceName, mVersion, mSys, &mUtcTimestamp, &mSunrise, &mSunset); mPayload.addListener(std::bind(&PubMqttType::payloadEventListener, &mMqtt, std::placeholders::_1)); addListener(EVERY_SEC, std::bind(&PubMqttType::tickerSecond, &mMqtt)); + addListener(EVERY_MIN, std::bind(&PubMqttType::tickerMinute, &mMqtt)); } #endif setupLed(); diff --git a/src/publisher/pubMqtt.h b/src/publisher/pubMqtt.h index f3ff4eb1..629edf1c 100644 --- a/src/publisher/pubMqtt.h +++ b/src/publisher/pubMqtt.h @@ -67,6 +67,14 @@ class PubMqtt { sendIvData(); } + void tickerMinute() { + if(mAddressSet) { + char val[40]; + snprintf(val, 40, "%ld", millis() / 1000); + sendMsg("uptime", val); + } + } + void setCallback(MQTT_CALLBACK_SIGNATURE) { mClient->setCallback(callback); } @@ -218,13 +226,10 @@ class PubMqtt { return; isConnected(true); // really needed? See comment from HorstG-57 #176 - char topic[32 + MAX_NAME_LENGTH], val[32]; + char topic[32 + MAX_NAME_LENGTH], val[40]; float total[4]; bool sendTotal = false; bool totalIncomplete = false; - snprintf(val, 40, "%ld", millis() / 1000); - - sendMsg("uptime", val); sendMsg("wifi_rssi", String(WiFi.RSSI()).c_str()); From 4c52e9c30723fdf1224c3fc8a815daafc9f6eeb2 Mon Sep 17 00:00:00 2001 From: lumapu Date: Fri, 18 Nov 2022 13:15:32 +0100 Subject: [PATCH 03/11] mqtt improvement (sunrise, sunset, wifi rssi) --- src/app.cpp | 1 + src/publisher/pubMqtt.h | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/app.cpp b/src/app.cpp index a7cc64a3..fcfee586 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -43,6 +43,7 @@ void app::setup(uint32_t timeout) { mPayload.addListener(std::bind(&PubMqttType::payloadEventListener, &mMqtt, std::placeholders::_1)); addListener(EVERY_SEC, std::bind(&PubMqttType::tickerSecond, &mMqtt)); addListener(EVERY_MIN, std::bind(&PubMqttType::tickerMinute, &mMqtt)); + addListener(EVERY_HR, std::bind(&PubMqttType::tickerHour, &mMqtt)); } #endif setupLed(); diff --git a/src/publisher/pubMqtt.h b/src/publisher/pubMqtt.h index 629edf1c..90f27d45 100644 --- a/src/publisher/pubMqtt.h +++ b/src/publisher/pubMqtt.h @@ -72,6 +72,15 @@ class PubMqtt { char val[40]; snprintf(val, 40, "%ld", millis() / 1000); sendMsg("uptime", val); + + sendMsg("wifi_rssi", String(WiFi.RSSI()).c_str()); + } + } + + void tickerHour() { + if(mAddressSet) { + sendMsg("sunrise", String(*mSunrise).c_str()); + sendMsg("sunset", String(*mSunset).c_str()); } } @@ -231,11 +240,6 @@ class PubMqtt { bool sendTotal = false; bool totalIncomplete = false; - sendMsg("wifi_rssi", String(WiFi.RSSI()).c_str()); - - sendMsg("sunrise", String(*mSunrise).c_str()); - sendMsg("sunset", String(*mSunset).c_str()); - while(!mSendList.empty()) { memset(total, 0, sizeof(float) * 4); for (uint8_t id = 0; id < mSys->getNumInverters(); id++) { From 59b8baab418bcd1dbe04efd2f8292732f1ac3711 Mon Sep 17 00:00:00 2001 From: lumapu Date: Sat, 19 Nov 2022 23:53:26 +0100 Subject: [PATCH 04/11] release v0.5.41 --- src/defines.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/defines.h b/src/defines.h index 36949daf..16369764 100644 --- a/src/defines.h +++ b/src/defines.h @@ -13,7 +13,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 5 -#define VERSION_PATCH 40 +#define VERSION_PATCH 41 //------------------------------------- typedef struct { From 133fefe5e1b0d99e223814c9deb52813c95cb42d Mon Sep 17 00:00:00 2001 From: lumapu Date: Sat, 19 Nov 2022 23:57:00 +0100 Subject: [PATCH 05/11] release v0.5.41 --- .github/workflows/compile_esp8266.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/compile_esp8266.yml b/.github/workflows/compile_esp8266.yml index cf61b1f9..0ced33db 100644 --- a/.github/workflows/compile_esp8266.yml +++ b/.github/workflows/compile_esp8266.yml @@ -4,10 +4,10 @@ on: push: branches: main paths: - - 'tools/esp8266/**' # build only when changes occur here - - '!tools/esp8266/README.md' - - '!tools/esp8266/CHANGES.md' - - '!tools/esp8266/User_Manual.md' + - 'src/**' # build only when changes occur here + - '!README.md' + - '!CHANGES.md' + - '!User_Manual.md' jobs: build: runs-on: ubuntu-latest @@ -48,8 +48,9 @@ jobs: - name: Convert HTML files working-directory: src/web/html run: python convert.py + - name: Run PlatformIO - run: pio run -d tools/esp8266 --environment esp8266-release --environment esp8285-release --environment esp32-wroom32-release + run: pio run -d src --environment esp8266-release --environment esp8285-release --environment esp32-wroom32-release - name: Rename Binary files id: rename-binary-files @@ -64,17 +65,17 @@ jobs: prerelease: false release_name: ${{ steps.rename-binary-files.outputs.name }} tag_name: ${{ steps.rename-binary-files.outputs.name }} - body_path: tools/esp8266/CHANGES.md + body_path: CHANGES.md env: GITHUB_TOKEN: ${{ github.token }} - name: set-version uses: cschleiden/replace-tokens@v1 with: - files: tools/esp8266/User_Manual.md + files: User_Manual.md env: VERSION: ${{ steps.rename-binary-files.outputs.name }} - name: create-artifact - run: zip --junk-paths ${{ steps.rename-binary-files.outputs.name }}.zip tools/esp8266/.pio/build/out/* tools/esp8266/User_Manual.md + run: zip --junk-paths ${{ steps.rename-binary-files.outputs.name }}.zip src/.pio/build/out/* User_Manual.md - name: Upload Release id: upload-release From 49def93dab8fec4cdd3321eb830532cd7e9a923c Mon Sep 17 00:00:00 2001 From: lumapu Date: Sat, 19 Nov 2022 23:58:52 +0100 Subject: [PATCH 06/11] release v0.5.41 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52c5283d..df276ccb 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ List of approaches ## Quick Start with ESP8266 - [Go here ✨](Getting_Started.md#things-needed) +- [Our Website](https://ahoydtu.de) ## Success Stories From 9da3a1a3706cdb2a629a7ebe2111dad01ab69237 Mon Sep 17 00:00:00 2001 From: lumapu Date: Sun, 20 Nov 2022 00:01:02 +0100 Subject: [PATCH 07/11] release v0.5.41 --- src/app.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app.cpp b/src/app.cpp index fcfee586..5fc3d089 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -227,7 +227,6 @@ void app::resetSystem(void) { mRxTicker = 0; mSendLastIvId = 0; - mShowRebootRequest = false; memset(&mStat, 0, sizeof(statistics_t)); From 12ca78e4b16585f13e8b61f446a333f1b86839c8 Mon Sep 17 00:00:00 2001 From: lumapu Date: Sun, 20 Nov 2022 00:09:33 +0100 Subject: [PATCH 08/11] release v0.5.41 --- src/CHANGES.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/CHANGES.md diff --git a/src/CHANGES.md b/src/CHANGES.md new file mode 100644 index 00000000..4bf99ac5 --- /dev/null +++ b/src/CHANGES.md @@ -0,0 +1,13 @@ +# Changelog + +* fix browser sync NTP button +* added login feature (protect web ui) +* added static IP option +* improved initial boot - don't connect to `YOUR_WIFI_SSID` any more, directly boot into AP mode +* added status LED support +* improved MQTT handling (boot, periodic updates, no zero values any more) +* replaced deprecated workflow functions +* refactored code to make it more clearly +* added scheduler to register functions which need to be run each second / minute / ... +* changed settings to littlefs (-> no currupt settings in future on memory layout changes) +* added a lot of system infos to `System` page for support From e9b4c6bd00eaac70dba1fe25e7c011de6d17bec5 Mon Sep 17 00:00:00 2001 From: lumapu Date: Sun, 20 Nov 2022 00:14:38 +0100 Subject: [PATCH 09/11] release v0.5.41 --- .github/workflows/compile_esp8266.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/compile_esp8266.yml b/.github/workflows/compile_esp8266.yml index 0ced33db..490ee17d 100644 --- a/.github/workflows/compile_esp8266.yml +++ b/.github/workflows/compile_esp8266.yml @@ -65,7 +65,7 @@ jobs: prerelease: false release_name: ${{ steps.rename-binary-files.outputs.name }} tag_name: ${{ steps.rename-binary-files.outputs.name }} - body_path: CHANGES.md + body_path: src/CHANGES.md env: GITHUB_TOKEN: ${{ github.token }} - name: set-version From fe21b86957b50b7dea9f84fba0c2f5090a185386 Mon Sep 17 00:00:00 2001 From: lumapu Date: Sun, 20 Nov 2022 00:25:04 +0100 Subject: [PATCH 10/11] release v0.5.41 --- .github/workflows/{compile_esp8266.yml => compile_release.yml} | 1 + 1 file changed, 1 insertion(+) rename .github/workflows/{compile_esp8266.yml => compile_release.yml} (98%) diff --git a/.github/workflows/compile_esp8266.yml b/.github/workflows/compile_release.yml similarity index 98% rename from .github/workflows/compile_esp8266.yml rename to .github/workflows/compile_release.yml index 490ee17d..6a541304 100644 --- a/.github/workflows/compile_esp8266.yml +++ b/.github/workflows/compile_release.yml @@ -5,6 +5,7 @@ on: branches: main paths: - 'src/**' # build only when changes occur here + - '.github/workflows/compile_release.yml' - '!README.md' - '!CHANGES.md' - '!User_Manual.md' From dec333fdf904a857fdf1873167803388a81af34e Mon Sep 17 00:00:00 2001 From: lumapu Date: Sun, 20 Nov 2022 00:45:42 +0100 Subject: [PATCH 11/11] release v0.5.41 --- .github/workflows/compile_release.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/compile_release.yml b/.github/workflows/compile_release.yml index 6a541304..91ae35bf 100644 --- a/.github/workflows/compile_release.yml +++ b/.github/workflows/compile_release.yml @@ -69,14 +69,16 @@ jobs: body_path: src/CHANGES.md env: GITHUB_TOKEN: ${{ github.token }} - - name: set-version + + - name: Set Version uses: cschleiden/replace-tokens@v1 with: files: User_Manual.md env: VERSION: ${{ steps.rename-binary-files.outputs.name }} - - name: create-artifact - run: zip --junk-paths ${{ steps.rename-binary-files.outputs.name }}.zip src/.pio/build/out/* User_Manual.md + + - name: Create Artifact + run: zip --junk-paths ${{ steps.rename-binary-files.outputs.name }}.zip src/firmware/* User_Manual.md - name: Upload Release id: upload-release