diff --git a/.gitignore b/.gitignore index 8b14dd99..8d8cf763 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ .vscode/settings.json platformio-device-monitor*.log platformio_override.ini +.DS_Store diff --git a/README.md b/README.md index 26bfb437..3655c435 100644 --- a/README.md +++ b/README.md @@ -377,7 +377,14 @@ A documentation of the Web API can be found here: [Web-API Documentation](docs/W * * * +* +* +## Available layouts for printed circuit boards +* [BreakoutBoard - sample printed circuit board for OpenDTU and Ahoy](https://github.com/dokuhn/openDTU-BreakoutBoard) +* [Board for OpenDTU with Display](https://github.com/SteffMUC/openDTU_wDisplay2) +* [OpenDTU PCB mit Display](https://github.com/turrican944/OpenDTU-PCB) +* [PCB for OpenDTU in Cable Branchbox](https://github.com/plewka/ESP-Solar_OpenDTU) ## Building * Building the WebApp @@ -411,4 +418,3 @@ A documentation of the Web API can be found here: [Web-API Documentation](docs/W - [Ahoy](https://github.com/grindylow/ahoy) - [DTU Simulator](https://github.com/Ziyatoe/DTUsimMI1x00-Hoymiles) - [OpenDTU extended to talk to Victrons MPPT battery chargers (Ve.Direct)](https://github.com/helgeerbe/OpenDTU_VeDirect) -- [BreakoutBoard - sample printed circuit board for OpenDTU and Ahoy](https://github.com/dokuhn/openDTU-BreakoutBoard) diff --git a/docs/Web-API.md b/docs/Web-API.md index f772b05c..dbdd8a2a 100644 --- a/docs/Web-API.md +++ b/docs/Web-API.md @@ -9,7 +9,9 @@ may be incomplete | -------- | --- | -- | | Get | yes | /api/config/get | | Post | yes | /api/config/delete | +| Get | yes | /api/config/list | | Post | yes | /api/config/upload | +| Get+Post | yes | /api/device/config | | Get | no | /api/devinfo/status | | Get+Post | yes | /api/dtu/config | | Get | no | /api/eventlog/status?inv=inverter-serialnumber | @@ -21,6 +23,7 @@ may be incomplete | Post | yes | /api/limit/config | | Get | no | /api/limit/status | | Get | no | /api/livedata/status | +| Post | yes | /api/maintenance/reboot | | Get+Post | yes | /api/mqtt/config | | Get | no | /api/mqtt/status | | Get+Post | yes | /api/network/config | @@ -30,7 +33,9 @@ may be incomplete | Get+Post | yes | /api/ntp/time | | Get | no | /api/power/status | | Post | yes | /api/power/config | -| Get+Post | yes | /api/security/password | +| Get | no | /api/prometheus/metrics | +| Get+Post | yes | /api/security/config | +| Get | yes | /api/security/authenticate | | Get | no | /api/system/status | @@ -46,6 +51,7 @@ may be incomplete - Other API calls use e.g. `/api/limit/status` to GET data and a different URL `/api/limit/config` to POST data. - If you want to investigate the web api communication, a good tool is [Postman](https://www.postman.com/) - Settings API require username and password provided with Basic Authentication credentials +- If you disable the readonly access to the web API, every endpoint requires authentication ### Get information diff --git a/lib/ResetReason/src/ResetReason.cpp b/lib/ResetReason/src/ResetReason.cpp index 5e664145..b3ceea5d 100644 --- a/lib/ResetReason/src/ResetReason.cpp +++ b/lib/ResetReason/src/ResetReason.cpp @@ -34,7 +34,7 @@ String ResetReasonClass::get_reset_reason_verbose(uint8_t cpu_id) case 3: reason_str = F("Software reset digital core"); break; -#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) +#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) && !defined(CONFIG_IDF_TARGET_ESP32S2) case 4: reason_str = F("Legacy watch dog reset digital core"); break; @@ -42,7 +42,7 @@ String ResetReasonClass::get_reset_reason_verbose(uint8_t cpu_id) case 5: reason_str = F("Deep Sleep reset digital core"); break; -#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) +#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) && !defined(CONFIG_IDF_TARGET_ESP32S2) case 6: reason_str = F("Reset by SLC module, reset digital core"); break; @@ -68,7 +68,7 @@ String ResetReasonClass::get_reset_reason_verbose(uint8_t cpu_id) case 13: reason_str = F("RTC Watch dog Reset CPU"); break; -#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) +#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) && !defined(CONFIG_IDF_TARGET_ESP32S2) case 14: reason_str = F("for APP CPU, reset by PRO CPU"); break; @@ -100,7 +100,7 @@ String ResetReasonClass::get_reset_reason_short(uint8_t cpu_id) case 3: reason_str = F("SW_RESET"); break; -#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) +#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) && !defined(CONFIG_IDF_TARGET_ESP32S2) case 4: reason_str = F("OWDT_RESET"); break; @@ -108,7 +108,7 @@ String ResetReasonClass::get_reset_reason_short(uint8_t cpu_id) case 5: reason_str = F("DEEPSLEEP_RESET"); break; -#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) +#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) && !defined(CONFIG_IDF_TARGET_ESP32S2) case 6: reason_str = F("SDIO_RESET"); break; @@ -134,7 +134,7 @@ String ResetReasonClass::get_reset_reason_short(uint8_t cpu_id) case 13: reason_str = F("RTCWDT_CPU_RESET"); break; -#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) +#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3) && !defined(CONFIG_IDF_TARGET_ESP32S2) case 14: reason_str = F("EXT_CPU_RESET"); break; diff --git a/platformio.ini b/platformio.ini index 5ccc4346..f1ef5b6a 100644 --- a/platformio.ini +++ b/platformio.ini @@ -153,3 +153,13 @@ build_flags = ${env.build_flags} -DHOYMILES_PIN_IRQ=16 -DHOYMILES_PIN_CE=17 -DHOYMILES_PIN_CS=5 + +[env:lolin_s2_mini] +board = lolin_s2_mini +build_flags = ${env.build_flags} + -DHOYMILES_PIN_MISO=13 + -DHOYMILES_PIN_MOSI=11 + -DHOYMILES_PIN_SCLK=12 + -DHOYMILES_PIN_CS=10 + -DHOYMILES_PIN_IRQ=4 + -DHOYMILES_PIN_CE=5 \ No newline at end of file diff --git a/webapp/package.json b/webapp/package.json index f09ffa31..538e91a7 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@popperjs/core": "^2.11.6", - "bootstrap": "^5.2.3", + "bootstrap": "^5.3.0-alpha1", "bootstrap-icons-vue": "^1.8.1", "mitt": "^3.0.0", "spark-md5": "^3.0.2", @@ -24,7 +24,7 @@ "@intlify/unplugin-vue-i18n": "^0.8.2", "@rushstack/eslint-patch": "^1.2.0", "@types/bootstrap": "^5.2.6", - "@types/node": "^18.14.2", + "@types/node": "^18.14.6", "@types/spark-md5": "^3.0.2", "@vitejs/plugin-vue": "^4.0.0", "@vue/eslint-config-typescript": "^11.0.2", diff --git a/webapp/src/components/NavBar.vue b/webapp/src/components/NavBar.vue index 82466086..033e213b 100644 --- a/webapp/src/components/NavBar.vue +++ b/webapp/src/components/NavBar.vue @@ -1,5 +1,5 @@