From d09abc1b495ff6a880b042f7d4e4eda360c18dec Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Tue, 27 Feb 2024 16:17:50 +0100 Subject: [PATCH 01/10] back to platform 24.01.00 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index b8b634186..50a7f2d7e 100644 --- a/platformio.ini +++ b/platformio.ini @@ -51,7 +51,7 @@ extra_scripts = [espressi32_base_tasmota] ; use Tasmota's library which removes some unused libs (like mbedtsl, so no WiFi_secure.h) and increases available heap ; Tasmota Arduino Core 2.0.14 with IPv6 support, based on IDF 4.4.6 -platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.01/platform-espressif32.zip +platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.00/platform-espressif32.zip ; Tasmota Arduino Core 3.0.0-alpha based on IDF v5.1.2 ; platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.02.10/platform-espressif32.zip framework = arduino From 56c958a141742b21eb6885b3bdcf5672cce7ad86 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Tue, 27 Feb 2024 16:58:24 +0100 Subject: [PATCH 02/10] back to tasmota 2024.01.00, fix dns issue --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index a61fb66ef..f7533a727 100644 --- a/platformio.ini +++ b/platformio.ini @@ -50,7 +50,7 @@ extra_scripts = [espressi32_base_tasmota] ; use Tasmota's library which removes some unused libs (like mbedtsl, so no WiFi_secure.h) and increases available heap ; Tasmota Arduino Core 2.0.14 with IPv6 support, based on IDF 4.4.6 -platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.01/platform-espressif32.zip +platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.00/platform-espressif32.zip ; Tasmota Arduino Core 3.0.0-alpha based on IDF v5.1.2 ; platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.02.10/platform-espressif32.zip framework = arduino From 626c32763ffd197eb46bae4931a6834452440f83 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Tue, 27 Feb 2024 17:48:54 +0100 Subject: [PATCH 03/10] add weather compensation, #1642 --- src/devices/boiler.cpp | 39 +++++++++++++++++++++++++++++++++++++++ src/devices/boiler.h | 9 +++++++++ src/locale_translations.h | 4 ++++ 3 files changed, 52 insertions(+) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index 8a54d7429..489116a3c 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -64,6 +64,7 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const register_telegram_type(0xE6, "UBAParametersPlus", true, MAKE_PF_CB(process_UBAParametersPlus)); register_telegram_type(0xE9, "UBAMonitorWWPlus", false, MAKE_PF_CB(process_UBAMonitorWWPlus)); register_telegram_type(0xEA, "UBAParameterWWPlus", true, MAKE_PF_CB(process_UBAParameterWWPlus)); + register_telegram_type(0x28, "WeatherComp", true, MAKE_PF_CB(process_WeatherComp)); } if (model() == EMSdevice::EMS_DEVICE_FLAG_HEATPUMP) { @@ -241,6 +242,9 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const MAKE_CF_CB(set_hyst2_off), 0, 20); + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &curveOn_, DeviceValueType::BOOL, FL_(curveOn), DeviceValueUOM::NONE, MAKE_CF_CB(set_curveOn)); + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &curveBase_, DeviceValueType::UINT, FL_(curveBase), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_curveBase)); + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &curveEnd_, DeviceValueType::UINT, FL_(curveEnd), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_curveEnd)); } register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &heatingActivated_, @@ -1994,6 +1998,14 @@ void Boiler::process_HIUSettings(std::shared_ptr telegram) { has_update(telegram, setReturnTemp_, 2); } +// Weather compensation, #1642 +// boiler(0x08) -W-> Me(0x0B), ?(0x28), data: 00 3C 32 10 00 05 +void Boiler::process_WeatherComp(std::shared_ptr telegram) { + has_update(telegram, curveOn_, 0); + has_update(telegram, curveEnd_, 1); + has_update(telegram, curveBase_, 2); +} + // HIU Settings bool Boiler::set_keepWarmTemp(const char * value, const int8_t id) { int v; @@ -3137,4 +3149,31 @@ bool Boiler::set_nomPower(const char * value, const int8_t id) { return true; } +bool Boiler::set_curveOn(const char * value, const int8_t id) { + bool v; + if (Helpers::value2bool(value, v)) { + write_command(0x28, 0, v ? 0xFF : 0); + return true; + } + return false; +} + +bool Boiler::set_curveBase(const char * value, const int8_t id) { + int v; + if (!Helpers::value2temperature(value, v)) { + return false; + } + write_command(0x28, 2, v); + return true; +} + +bool Boiler::set_curveEnd(const char * value, const int8_t id) { + int v; + if (!Helpers::value2temperature(value, v)) { + return false; + } + write_command(0x28, 1, v); + return true; +} + } // namespace emsesp diff --git a/src/devices/boiler.h b/src/devices/boiler.h index ff9f7f66b..c3a67ed32 100644 --- a/src/devices/boiler.h +++ b/src/devices/boiler.h @@ -155,6 +155,11 @@ class Boiler : public EMSdevice { uint16_t headertemp_; // see #1317 uint16_t heatblock_; // see #1317 + // weather compensation, see #1642 + uint8_t curveOn_; + uint8_t curveBase_; + uint8_t curveEnd_; + // info uint32_t upTimeTotal_; // Operating time uint32_t upTimeControl_; // Operating time control @@ -351,6 +356,7 @@ class Boiler : public EMSdevice { void process_HpSettings3(std::shared_ptr telegram); void process_HpEnergy(std::shared_ptr telegram); void process_HpMeters(std::shared_ptr telegram); + void process_WeatherComp(std::shared_ptr telegram); // HIU void process_HIUSettings(std::shared_ptr telegram); void process_HIUMonitor(std::shared_ptr telegram); @@ -523,6 +529,9 @@ class Boiler : public EMSdevice { bool set_delayBoiler(const char * value, const int8_t id); bool set_tempDiffBoiler(const char * value, const int8_t id); */ + bool set_curveOn(const char * value, const int8_t id); + bool set_curveBase(const char * value, const int8_t id); + bool set_curveEnd(const char * value, const int8_t id); bool set_nrgHeat(const char * value, const int8_t id); bool set_nrgWw(const char * value, const int8_t id); diff --git a/src/locale_translations.h b/src/locale_translations.h index 824d0703a..a856d33b4 100644 --- a/src/locale_translations.h +++ b/src/locale_translations.h @@ -346,6 +346,10 @@ MAKE_TRANSLATION(pumpMode, "pumpmode", "boiler pump mode", "Kesselpumpen Modus", MAKE_TRANSLATION(headertemp, "headertemp", "low loss header", "Hydr. Weiche", "open verdeler", "", "sprzęgło hydrauliczne", "", "bouteille de déc. hydr.", "isı bloğu gidiş suyu sıc.", "comp. idr.", "nízkostratová hlavica") // TODO translate MAKE_TRANSLATION(heatblock, "heatblock", "heating block", "Wärmezelle", "Aanvoertemp. warmtecel", "", "blok grzewczy", "", "départ corps de chauffe", "Hid.denge kabı sıcaklığı", "mandata scamb. pr.", "vykurovací blok") // TODO translate +MAKE_TRANSLATION(curveOn, "curveon", "heatingcurve on", "Heizkurve an", "", "", "", "", "", "", "", "") // TODO translate +MAKE_TRANSLATION(curveBase, "curvebase", "heatingcurve base", "Heizkurve Basis", "", "", "", "", "", "", "", "") // TODO translate +MAKE_TRANSLATION(curveEnd, "curveend", "heatingcurve end", "Heizkurve Ende", "", "", "", "", "", "", "", "") // TODO translate + // heatpump/compress specific MAKE_TRANSLATION(upTimeTotal, "uptimetotal", "heatpump total uptime", "Wärmpepumpe Gesamtbetriebszeit", "", "", "łączny czas pracy pompy ciepła", "", "", "", "", "celková doba prevádzky tepelného čerpadla") // TODO translate MAKE_TRANSLATION(upTimeControl, "uptimecontrol", "total operating time heat", "Betriebszeit Heizen gesamt", "Totale bedrijfstijd", "Total tid uppvärmning", "łączny czas generowania ciepła", "total driftstid", "durée totale de fonctionnement chauffage", "ısınma toplam işletme süresi", "Tempo di funzionamento totale riscaldamento", "celkový prevádzkový čas tepla") From 8699bd4eb05eb96afec5765a0ade05ff1d8efe63 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 28 Feb 2024 07:45:17 +0100 Subject: [PATCH 04/10] update packages --- interface/package.json | 14 +-- interface/yarn.lock | 220 ++++++++++++++++++++--------------------- 2 files changed, 117 insertions(+), 117 deletions(-) diff --git a/interface/package.json b/interface/package.json index c4ac5ecbd..9d4fd882e 100644 --- a/interface/package.json +++ b/interface/package.json @@ -24,15 +24,15 @@ "dependencies": { "@alova/adapter-xhr": "^1.0.3", "@babel/core": "^7.23.9", - "@emotion/react": "^11.11.3", + "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.15.10", - "@mui/material": "^5.15.10", + "@mui/icons-material": "^5.15.11", + "@mui/material": "^5.15.11", "@table-library/react-table-library": "4.1.7", "@types/imagemin": "^8.0.5", "@types/lodash-es": "^4.17.12", - "@types/node": "^20.11.20", - "@types/react": "^18.2.58", + "@types/node": "^20.11.21", + "@types/react": "^18.2.60", "@types/react-dom": "^18.2.19", "@types/react-router-dom": "^5.3.3", "alova": "^2.17.0", @@ -54,8 +54,8 @@ "devDependencies": { "@preact/compat": "^17.1.2", "@preact/preset-vite": "^2.8.1", - "@typescript-eslint/eslint-plugin": "^7.0.2", - "@typescript-eslint/parser": "^7.0.2", + "@typescript-eslint/eslint-plugin": "^7.1.0", + "@typescript-eslint/parser": "^7.1.0", "concurrently": "^8.2.2", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", diff --git a/interface/yarn.lock b/interface/yarn.lock index daee28683..2ac16ce8b 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -556,9 +556,9 @@ __metadata: languageName: node linkType: hard -"@emotion/react@npm:^11.11.3": - version: 11.11.3 - resolution: "@emotion/react@npm:11.11.3" +"@emotion/react@npm:^11.11.4": + version: 11.11.4 + resolution: "@emotion/react@npm:11.11.4" dependencies: "@babel/runtime": "npm:^7.18.3" "@emotion/babel-plugin": "npm:^11.11.0" @@ -573,7 +573,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/f7b98557b7d5236296dda48c2fc8a6cde4af7399758496e9f710f85a80c7d66fee1830966caabd7b237601bfdaca4e1add8c681d1ae4cc3d497fe88958d541c4 + checksum: 10/e7da3a1ddc1d72a4179010bdfd17423c13b1a77bf83a8b18271e919fd382d08c62dc2313ed5347acfd1ef85bb1bae8932597647a986e8a1ea1462552716cd495 languageName: node linkType: hard @@ -992,14 +992,14 @@ __metadata: languageName: node linkType: hard -"@mui/base@npm:5.0.0-beta.36": - version: 5.0.0-beta.36 - resolution: "@mui/base@npm:5.0.0-beta.36" +"@mui/base@npm:5.0.0-beta.37": + version: 5.0.0-beta.37 + resolution: "@mui/base@npm:5.0.0-beta.37" dependencies: "@babel/runtime": "npm:^7.23.9" "@floating-ui/react-dom": "npm:^2.0.8" "@mui/types": "npm:^7.2.13" - "@mui/utils": "npm:^5.15.9" + "@mui/utils": "npm:^5.15.11" "@popperjs/core": "npm:^2.11.8" clsx: "npm:^2.1.0" prop-types: "npm:^15.8.1" @@ -1010,20 +1010,20 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/32be203df3ffa2e36095d37295adae7870489fb2ed82a156c10f9ea4a51c3d06b0c3415e8503b110aa2ee98d3d86d6c1c50e190e85130aa1c1db694afa56ab7a + checksum: 10/28ac58e46ecf7d43fec77f501604e16687df499c82ace9cb32228623cf2549ebf2b74815aacae2920ccb2feed5402c68ad8c599b1bdc717fa5c4caaa408e9c0a languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^5.15.10": - version: 5.15.10 - resolution: "@mui/core-downloads-tracker@npm:5.15.10" - checksum: 10/aeb16b31f60c08cc03585fedadceadd54aa48dda394fb945ab885f884c1b1692efb72309465641b6ca2367bd53d5fdce15f189d4691f42b59206622ffb2d6f0f +"@mui/core-downloads-tracker@npm:^5.15.11": + version: 5.15.11 + resolution: "@mui/core-downloads-tracker@npm:5.15.11" + checksum: 10/7b6b9dc9fbe63e80cd0de85db73eb397031c8e60fbfc4fcd9d6c396f9222c1467bfb2bbe817973e6090576a0016fb0189b4a8ccee3e42210ace99efb5ace52d3 languageName: node linkType: hard -"@mui/icons-material@npm:^5.15.10": - version: 5.15.10 - resolution: "@mui/icons-material@npm:5.15.10" +"@mui/icons-material@npm:^5.15.11": + version: 5.15.11 + resolution: "@mui/icons-material@npm:5.15.11" dependencies: "@babel/runtime": "npm:^7.23.9" peerDependencies: @@ -1033,20 +1033,20 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/ce22c02dc7ed960a21f8d5ea7c4d4fc03d9f71e8a26ced02f75da1ffd6c768e6fa0682a308a03be53bffc2325a5aaf68be69f9e192b0a57c6752f7548e5b9045 + checksum: 10/2b337aa7c39e8e75cffd92742aaf7e1a8196597b9e3285322cd3aa3dc7c7f0142ac00d768affaf3a8c7eeab7fd3535de70419a6a8b599fdfa00d65323b6982f8 languageName: node linkType: hard -"@mui/material@npm:^5.15.10": - version: 5.15.10 - resolution: "@mui/material@npm:5.15.10" +"@mui/material@npm:^5.15.11": + version: 5.15.11 + resolution: "@mui/material@npm:5.15.11" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/base": "npm:5.0.0-beta.36" - "@mui/core-downloads-tracker": "npm:^5.15.10" - "@mui/system": "npm:^5.15.9" + "@mui/base": "npm:5.0.0-beta.37" + "@mui/core-downloads-tracker": "npm:^5.15.11" + "@mui/system": "npm:^5.15.11" "@mui/types": "npm:^7.2.13" - "@mui/utils": "npm:^5.15.9" + "@mui/utils": "npm:^5.15.11" "@types/react-transition-group": "npm:^4.4.10" clsx: "npm:^2.1.0" csstype: "npm:^3.1.3" @@ -1066,16 +1066,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10/a88ad1287a905549ed516742544c8ba32f0cd7e1b184564efc8ceba5f43060d37b5cd113db605f1bb5be6c74cbdad7321d3fd7df410ba33d55548cf7c5bbf8d0 + checksum: 10/1f95143a9704829179c504404449994cd4c5bcdb6ea536bd15a85113a92874c6ecdbd2cf18df46a2982d98c6855e2d1a9198ea53a059abb02a7411eaa1c630ec languageName: node linkType: hard -"@mui/private-theming@npm:^5.15.9": - version: 5.15.9 - resolution: "@mui/private-theming@npm:5.15.9" +"@mui/private-theming@npm:^5.15.11": + version: 5.15.11 + resolution: "@mui/private-theming@npm:5.15.11" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/utils": "npm:^5.15.9" + "@mui/utils": "npm:^5.15.11" prop-types: "npm:^15.8.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 @@ -1083,13 +1083,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/ca6d0643289eb14e127d46a516311807a7935994dcbb14a108e756ba9fe39bf08e2fe2f2bd75cec5a71817f3b2fe74de2f3322b67931539ced5e2f13aa9e2326 + checksum: 10/ec185f586586bb1460cf93ebe82cf7bc0b62822d70e5836d95fa50e1525ce84c32b937ce005a32226bc9bab45c3763cb2865c503eac7c96bb98a58498b2d64f5 languageName: node linkType: hard -"@mui/styled-engine@npm:^5.15.9": - version: 5.15.9 - resolution: "@mui/styled-engine@npm:5.15.9" +"@mui/styled-engine@npm:^5.15.11": + version: 5.15.11 + resolution: "@mui/styled-engine@npm:5.15.11" dependencies: "@babel/runtime": "npm:^7.23.9" "@emotion/cache": "npm:^11.11.0" @@ -1104,19 +1104,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: 10/ddf0bda85507419829c8fe3735b5b05d9544fea0f954de574a9841d46d14dd750050834aae5b1f0b676a1dc5fe1278c22fb16415df7d6202d6aa49fea12d59de + checksum: 10/fedbb9891abd633e5072d30aae7405cec9e5e22ac63c9e117c49ddb66e86ec7baaed58f934efc7847ea86cc856a8c9a9ec5a08cd0072a7850184321a968704ad languageName: node linkType: hard -"@mui/system@npm:^5.15.9": - version: 5.15.9 - resolution: "@mui/system@npm:5.15.9" +"@mui/system@npm:^5.15.11": + version: 5.15.11 + resolution: "@mui/system@npm:5.15.11" dependencies: "@babel/runtime": "npm:^7.23.9" - "@mui/private-theming": "npm:^5.15.9" - "@mui/styled-engine": "npm:^5.15.9" + "@mui/private-theming": "npm:^5.15.11" + "@mui/styled-engine": "npm:^5.15.11" "@mui/types": "npm:^7.2.13" - "@mui/utils": "npm:^5.15.9" + "@mui/utils": "npm:^5.15.11" clsx: "npm:^2.1.0" csstype: "npm:^3.1.3" prop-types: "npm:^15.8.1" @@ -1132,7 +1132,7 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10/85c2d18f3846cc1554db48071606a52f22186cf4ac1b0be748b275a8e200c12528c477acb794b8eb545e4603e5b8566186ea022eb09b5b1a3668554dd0ea9c7d + checksum: 10/004e64a558e6d75ab0036f65555459f0769b9ab8b50aecd583a9a41a0db5358168c3bd9f4146848dec4ececfedd6f5af11f519ba3f7bd2e28224f5487a1eef81 languageName: node linkType: hard @@ -1148,9 +1148,9 @@ __metadata: languageName: node linkType: hard -"@mui/utils@npm:^5.15.9": - version: 5.15.9 - resolution: "@mui/utils@npm:5.15.9" +"@mui/utils@npm:^5.15.11": + version: 5.15.11 + resolution: "@mui/utils@npm:5.15.11" dependencies: "@babel/runtime": "npm:^7.23.9" "@types/prop-types": "npm:^15.7.11" @@ -1162,7 +1162,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/8628e4402856427bbc1ee3628afff596149ae3067ca6d62a1890d7b15217248fbeb65ec9360afc6963b330c08945fe6452deef2849d8ca35d894b42746cdad77 + checksum: 10/a3c3862a93eb646ddd212c19dee44bef4bee9232fc463a0b27ffc79b0e41a6c4b09b152953156c7ca458b1856dddd0cc4febc078e2151574e3df62868504fb59 languageName: node linkType: hard @@ -1590,12 +1590,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.11.20": - version: 20.11.20 - resolution: "@types/node@npm:20.11.20" +"@types/node@npm:^20.11.21": + version: 20.11.21 + resolution: "@types/node@npm:20.11.21" dependencies: undici-types: "npm:~5.26.4" - checksum: 10/ff449bdc94810dadb54e0f77dd587c6505ef79ffa5a208c16eb29b223365b188f4c935a3abaf0906a01d05257c3da1f72465594a841d35bcf7b6deac7a6938fb + checksum: 10/a31ecc6a3c615bca310ffe7dea23613153ff9e1e175c09d14198402b2cef9b1bb1bf3912aff6ffc6cb01b99a025ec6dd6474c797bfb0aaf83daf4edaea063760 languageName: node linkType: hard @@ -1670,14 +1670,14 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^18.2.58": - version: 18.2.58 - resolution: "@types/react@npm:18.2.58" +"@types/react@npm:^18.2.60": + version: 18.2.60 + resolution: "@types/react@npm:18.2.60" dependencies: "@types/prop-types": "npm:*" "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: 10/ec5e1a7d8acc55551efec7a3d63441d24c7e94b66bf8039944541a8408048668e51b7b4b0b6e8303cdea271b7c6da242cdc7bb8ca501eedf822956edbdbfc67e + checksum: 10/5f2f6091623f13375a5bbc7e5c222cd212b5d6366ead737b76c853f6f52b314db24af5ae3f688d2d49814c668c216858a75433f145311839d8989d46bb3cbecf languageName: node linkType: hard @@ -1713,15 +1713,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/eslint-plugin@npm:7.0.2" +"@typescript-eslint/eslint-plugin@npm:^7.1.0": + version: 7.1.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.1.0" dependencies: "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:7.0.2" - "@typescript-eslint/type-utils": "npm:7.0.2" - "@typescript-eslint/utils": "npm:7.0.2" - "@typescript-eslint/visitor-keys": "npm:7.0.2" + "@typescript-eslint/scope-manager": "npm:7.1.0" + "@typescript-eslint/type-utils": "npm:7.1.0" + "@typescript-eslint/utils": "npm:7.1.0" + "@typescript-eslint/visitor-keys": "npm:7.1.0" debug: "npm:^4.3.4" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.4" @@ -1734,44 +1734,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/430b2f7ca36ee73dc75c1d677088709f3c9d5bbb4fffa3cfbe1b7d63979ee397f7a4a2a1386e05a04991500fa0ab0dd5272e8603a2b20f42e4bf590603500858 + checksum: 10/f0b6b6e6ae2afee1df8dd2fd0c56588f9bb600468be9f255e033709a53371c6434da687e75dcb673503ef4f0416226f4ca3c94c65272828106e39b56aac87334 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/parser@npm:7.0.2" +"@typescript-eslint/parser@npm:^7.1.0": + version: 7.1.0 + resolution: "@typescript-eslint/parser@npm:7.1.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.0.2" - "@typescript-eslint/types": "npm:7.0.2" - "@typescript-eslint/typescript-estree": "npm:7.0.2" - "@typescript-eslint/visitor-keys": "npm:7.0.2" + "@typescript-eslint/scope-manager": "npm:7.1.0" + "@typescript-eslint/types": "npm:7.1.0" + "@typescript-eslint/typescript-estree": "npm:7.1.0" + "@typescript-eslint/visitor-keys": "npm:7.1.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/18d6e1bda64013f7d66164164c57a10390f7979db55b265062ae9337e11e0921bffca10870e252cd0bd198f79ffa2e87a652e57110e5b1b4cc738453154c205c + checksum: 10/39238d37f5a5f7058371ee3882fb7cd8a4579883fc5f13fda645c151fcf8d15e4c0db3ea7ffa7915a55c82451b544e9340c0228b45b83085158cb97974112f19 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/scope-manager@npm:7.0.2" +"@typescript-eslint/scope-manager@npm:7.1.0": + version: 7.1.0 + resolution: "@typescript-eslint/scope-manager@npm:7.1.0" dependencies: - "@typescript-eslint/types": "npm:7.0.2" - "@typescript-eslint/visitor-keys": "npm:7.0.2" - checksum: 10/773ea6e61f741777e69a469641f3db0d3c2301c0102667825fb235ed5a65c95f6d6b31b19e734b9a215acc0c7c576c65497635b8d5928eeddb58653ceb13d2d5 + "@typescript-eslint/types": "npm:7.1.0" + "@typescript-eslint/visitor-keys": "npm:7.1.0" + checksum: 10/3fb18de864331739c1b04fe9e3bb5d926e2fdf0d1fea2871181f68d0fb52325cbc9a5b81da58b7fe7f22d6d58d62b21c83460907146bc2f54ef0720fb3f9037f languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/type-utils@npm:7.0.2" +"@typescript-eslint/type-utils@npm:7.1.0": + version: 7.1.0 + resolution: "@typescript-eslint/type-utils@npm:7.1.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.0.2" - "@typescript-eslint/utils": "npm:7.0.2" + "@typescript-eslint/typescript-estree": "npm:7.1.0" + "@typescript-eslint/utils": "npm:7.1.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.0.1" peerDependencies: @@ -1779,23 +1779,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/63bf19c9f5bbcb0f3e127f509d85dc49be4e5e51781d78f58c96786089e7c909b25d35d0248a6a758e2f7d5b5223d2262c2d597ab71f226af6beb499ae950645 + checksum: 10/439e6fadab3df3c21adfd651af4e605e1020c86c8c2400b0127c2ee914646bc73945b4add31ca7201cafeead261ad2958362c339ebdfc0798064d56daeb60661 languageName: node linkType: hard -"@typescript-eslint/types@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/types@npm:7.0.2" - checksum: 10/2cba8a0355cc7357db142fa597d02cf39e1d1cb0ec87c80e91daaa2b87f2a794d2649def9d7b2aa435691c3810d2cbd4cdc21668b19b991863f0d54d4a22da82 +"@typescript-eslint/types@npm:7.1.0": + version: 7.1.0 + resolution: "@typescript-eslint/types@npm:7.1.0" + checksum: 10/34801a14ea1444a1707de5bd3211f0ea53afc82a3c6c4543092f123267389da607c498d1a7de554ac9f071e6ef488238728a5f279ff2abaa0cbdfaa733899b67 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/typescript-estree@npm:7.0.2" +"@typescript-eslint/typescript-estree@npm:7.1.0": + version: 7.1.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.1.0" dependencies: - "@typescript-eslint/types": "npm:7.0.2" - "@typescript-eslint/visitor-keys": "npm:7.0.2" + "@typescript-eslint/types": "npm:7.1.0" + "@typescript-eslint/visitor-keys": "npm:7.1.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -1805,34 +1805,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/307080e29c22fc69f0ce7ab7101e1629e05f45a9e541c250e03d06b61336ab0ccb5f0a7354ee3da4e38d5cade4dd2fb7bb396cd7cbe74c2c4b3e29706a70abcc + checksum: 10/7dfc6fc70ff00875728ce5d85a3c5d6cb01435082b20ff9301ebe4d8e4a31a0c997282c762c636937bd66a40b4e0154e2ce98f85d888a6c46d433e9a24c46c4c languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/utils@npm:7.0.2" +"@typescript-eslint/utils@npm:7.1.0": + version: 7.1.0 + resolution: "@typescript-eslint/utils@npm:7.1.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" "@types/json-schema": "npm:^7.0.12" "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:7.0.2" - "@typescript-eslint/types": "npm:7.0.2" - "@typescript-eslint/typescript-estree": "npm:7.0.2" + "@typescript-eslint/scope-manager": "npm:7.1.0" + "@typescript-eslint/types": "npm:7.1.0" + "@typescript-eslint/typescript-estree": "npm:7.1.0" semver: "npm:^7.5.4" peerDependencies: eslint: ^8.56.0 - checksum: 10/e68bac777419cd529371f7f29f534efaeca130c90ed9723bfc7aac451d61ca3fc4ebd310e2c015e29e8dc7be4734ae46258ca8755897d7f5e3bb502660d5372f + checksum: 10/26d64094d8b828ce6cfea660c95cdbd4d0193d338646fc773312093388bc781653fc1ca16977b3be5288579fe43f14c7108fc431da66dd95b6ed680ad44712a0 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/visitor-keys@npm:7.0.2" +"@typescript-eslint/visitor-keys@npm:7.1.0": + version: 7.1.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.1.0" dependencies: - "@typescript-eslint/types": "npm:7.0.2" + "@typescript-eslint/types": "npm:7.1.0" eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/da6c1b0729af99216cde3a65d4e91584a81fc6c9dff7ba291089f01bf7262de375f58c4c4246e5fbc29f51258db7725d9c830f82ccbd1cda812fd13c51480cda + checksum: 10/c3e98ebf166fd1854adb0e9599dc108cdbbd95f6eb099d31deae2fd1d4df8fcd8dc9c24ad4f509b961ad900b474c246f6b4b228b5711cc504106c3e0f751a11c languageName: node linkType: hard @@ -1849,21 +1849,21 @@ __metadata: dependencies: "@alova/adapter-xhr": "npm:^1.0.3" "@babel/core": "npm:^7.23.9" - "@emotion/react": "npm:^11.11.3" + "@emotion/react": "npm:^11.11.4" "@emotion/styled": "npm:^11.11.0" - "@mui/icons-material": "npm:^5.15.10" - "@mui/material": "npm:^5.15.10" + "@mui/icons-material": "npm:^5.15.11" + "@mui/material": "npm:^5.15.11" "@preact/compat": "npm:^17.1.2" "@preact/preset-vite": "npm:^2.8.1" "@table-library/react-table-library": "npm:4.1.7" "@types/imagemin": "npm:^8.0.5" "@types/lodash-es": "npm:^4.17.12" - "@types/node": "npm:^20.11.20" - "@types/react": "npm:^18.2.58" + "@types/node": "npm:^20.11.21" + "@types/react": "npm:^18.2.60" "@types/react-dom": "npm:^18.2.19" "@types/react-router-dom": "npm:^5.3.3" - "@typescript-eslint/eslint-plugin": "npm:^7.0.2" - "@typescript-eslint/parser": "npm:^7.0.2" + "@typescript-eslint/eslint-plugin": "npm:^7.1.0" + "@typescript-eslint/parser": "npm:^7.1.0" alova: "npm:^2.17.0" async-validator: "npm:^4.2.5" concurrently: "npm:^8.2.2" From 7c73e7098602bf8c177451864c51e4b1dbfeec85 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 28 Feb 2024 07:46:22 +0100 Subject: [PATCH 05/10] more weather compensation entities #1642 --- src/devices/boiler.cpp | 43 ++++++++++++++++++++++++++++++++++++++++++ src/devices/boiler.h | 6 ++++++ 2 files changed, 49 insertions(+) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index 489116a3c..2dd50d12b 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -245,6 +245,19 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &curveOn_, DeviceValueType::BOOL, FL_(curveOn), DeviceValueUOM::NONE, MAKE_CF_CB(set_curveOn)); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &curveBase_, DeviceValueType::UINT, FL_(curveBase), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_curveBase)); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &curveEnd_, DeviceValueType::UINT, FL_(curveEnd), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_curveEnd)); + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, + &summerTemp_, + DeviceValueType::UINT, + FL_(summertemp), + DeviceValueUOM::DEGREES, + MAKE_CF_CB(set_summerTemp)); + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &nofrost_, DeviceValueType::BOOL, FL_(nofrostmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_nofrost)); + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, + &nofrostTemp_, + DeviceValueType::UINT, + FL_(nofrosttemp), + DeviceValueUOM::DEGREES, + MAKE_CF_CB(set_nofrostTemp)); } register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &heatingActivated_, @@ -2004,6 +2017,9 @@ void Boiler::process_WeatherComp(std::shared_ptr telegram) { has_update(telegram, curveOn_, 0); has_update(telegram, curveEnd_, 1); has_update(telegram, curveBase_, 2); + has_update(telegram, summerTemp_, 3); + has_update(telegram, nofrost_, 4); + has_update(telegram, nofrostTemp_, 5); } // HIU Settings @@ -3176,4 +3192,31 @@ bool Boiler::set_curveEnd(const char * value, const int8_t id) { return true; } +bool Boiler::set_summerTemp(const char * value, const int8_t id) { + int v; + if (!Helpers::value2temperature(value, v)) { + return false; + } + write_command(0x28, 3, v); + return true; +} + +bool Boiler::set_nofrost(const char * value, const int8_t id) { + bool v; + if (Helpers::value2bool(value, v)) { + write_command(0x28, 4, v ? 0xFF : 0); + return true; + } + return false; +} + +bool Boiler::set_nofrostTemp(const char * value, const int8_t id) { + int v; + if (!Helpers::value2temperature(value, v)) { + return false; + } + write_command(0x28, 5, v); + return true; +} + } // namespace emsesp diff --git a/src/devices/boiler.h b/src/devices/boiler.h index c3a67ed32..8cad412f4 100644 --- a/src/devices/boiler.h +++ b/src/devices/boiler.h @@ -159,6 +159,9 @@ class Boiler : public EMSdevice { uint8_t curveOn_; uint8_t curveBase_; uint8_t curveEnd_; + uint8_t summerTemp_; + uint8_t nofrost_; + uint8_t nofrostTemp_; // info uint32_t upTimeTotal_; // Operating time @@ -532,6 +535,9 @@ class Boiler : public EMSdevice { bool set_curveOn(const char * value, const int8_t id); bool set_curveBase(const char * value, const int8_t id); bool set_curveEnd(const char * value, const int8_t id); + bool set_summerTemp(const char * value, const int8_t id); + bool set_nofrost(const char * value, const int8_t id); + bool set_nofrostTemp(const char * value, const int8_t id); bool set_nrgHeat(const char * value, const int8_t id); bool set_nrgWw(const char * value, const int8_t id); From ff045b1a0173135c4f032eca0e5328238c7b951f Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 28 Feb 2024 12:40:27 +0100 Subject: [PATCH 06/10] back to platform 2024.01.01, show dns ipv6 in right format --- lib/framework/NetworkStatus.cpp | 17 +++++++++++++++-- platformio.ini | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/framework/NetworkStatus.cpp b/lib/framework/NetworkStatus.cpp index 27c37cee7..bccdcf20a 100644 --- a/lib/framework/NetworkStatus.cpp +++ b/lib/framework/NetworkStatus.cpp @@ -1,6 +1,9 @@ #include "NetworkStatus.h" #include "../../src/emsesp_stub.hpp" +#ifdef TASMOTA_SDK +#include "lwip/dns.h" +#endif NetworkStatus::NetworkStatus(AsyncWebServer * server, SecurityManager * securityManager) { server->on(NETWORK_STATUS_SERVICE_PATH, @@ -32,8 +35,13 @@ void NetworkStatus::networkStatus(AsyncWebServerRequest * request) { root["mac_address"] = ETH.macAddress(); root["subnet_mask"] = ETH.subnetMask().toString(); root["gateway_ip"] = ETH.gatewayIP().toString(); - IPAddress dnsIP1 = ETH.dnsIP(0); - IPAddress dnsIP2 = ETH.dnsIP(1); +#ifdef TASMOTA_SDK + IPAddress dnsIP1 = IPAddress(dns_getserver(0)); + IPAddress dnsIP2 = IPAddress(dns_getserver(1)); +#else + IPAddress dnsIP1 = ETH.dnsIP(0); + IPAddress dnsIP2 = ETH.dnsIP(1); +#endif if (IPUtils::isSet(dnsIP1)) { root["dns_ip_1"] = dnsIP1.toString(); } @@ -54,8 +62,13 @@ void NetworkStatus::networkStatus(AsyncWebServerRequest * request) { root["gateway_ip"] = WiFi.gatewayIP().toString(); } +#ifdef TASMOTA_SDK + IPAddress dnsIP1 = IPAddress(dns_getserver(0)); + IPAddress dnsIP2 = IPAddress(dns_getserver(1)); +#else IPAddress dnsIP1 = WiFi.dnsIP(0); IPAddress dnsIP2 = WiFi.dnsIP(1); +#endif if (dnsIP1 != INADDR_NONE) { root["dns_ip_1"] = dnsIP1.toString(); } diff --git a/platformio.ini b/platformio.ini index f7533a727..a61fb66ef 100644 --- a/platformio.ini +++ b/platformio.ini @@ -50,7 +50,7 @@ extra_scripts = [espressi32_base_tasmota] ; use Tasmota's library which removes some unused libs (like mbedtsl, so no WiFi_secure.h) and increases available heap ; Tasmota Arduino Core 2.0.14 with IPv6 support, based on IDF 4.4.6 -platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.00/platform-espressif32.zip +platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.01/platform-espressif32.zip ; Tasmota Arduino Core 3.0.0-alpha based on IDF v5.1.2 ; platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.02.10/platform-espressif32.zip framework = arduino From 2ddd2401eb2cce80fc3de3c859bf7bb620f09dcb Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 28 Feb 2024 12:41:21 +0100 Subject: [PATCH 07/10] add limits to entities #1642 --- src/devices/boiler.cpp | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index 2dd50d12b..4cade0dd3 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -243,21 +243,15 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const 0, 20); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &curveOn_, DeviceValueType::BOOL, FL_(curveOn), DeviceValueUOM::NONE, MAKE_CF_CB(set_curveOn)); - register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &curveBase_, DeviceValueType::UINT, FL_(curveBase), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_curveBase)); - register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &curveEnd_, DeviceValueType::UINT, FL_(curveEnd), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_curveEnd)); - register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, - &summerTemp_, - DeviceValueType::UINT, - FL_(summertemp), - DeviceValueUOM::DEGREES, - MAKE_CF_CB(set_summerTemp)); + register_device_value( + DeviceValueTAG::TAG_DEVICE_DATA, &curveBase_, DeviceValueType::UINT, FL_(curveBase), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_curveBase), 20, 90); + register_device_value( + DeviceValueTAG::TAG_DEVICE_DATA, &curveEnd_, DeviceValueType::UINT, FL_(curveEnd), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_curveEnd), 20, 90); + register_device_value( + DeviceValueTAG::TAG_DEVICE_DATA, &summerTemp_, DeviceValueType::UINT, FL_(summertemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_summerTemp), 0, 30); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &nofrost_, DeviceValueType::BOOL, FL_(nofrostmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_nofrost)); - register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, - &nofrostTemp_, - DeviceValueType::UINT, - FL_(nofrosttemp), - DeviceValueUOM::DEGREES, - MAKE_CF_CB(set_nofrostTemp)); + register_device_value( + DeviceValueTAG::TAG_DEVICE_DATA, &nofrostTemp_, DeviceValueType::UINT, FL_(nofrosttemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_nofrostTemp), 0, 10); } register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &heatingActivated_, From 463c68d08c5132fbb87f69885ff10485695227ed Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 29 Feb 2024 10:04:10 +0100 Subject: [PATCH 08/10] enable IPv6 for tasmota, add env:ci_16M for E32V2 --- .github/workflows/pre_release.yml | 4 + interface/package.json | 2 +- .../framework/network/NetworkSettingsForm.tsx | 12 ++- interface/src/types/network.ts | 2 +- interface/yarn.lock | 74 +++++++++---------- lib/framework/MqttSettingsService.cpp | 14 ++-- lib/framework/NetworkSettingsService.cpp | 14 +++- platformio.ini | 12 ++- 8 files changed, 79 insertions(+), 55 deletions(-) diff --git a/.github/workflows/pre_release.yml b/.github/workflows/pre_release.yml index 0f5e8d914..fbb8c27d1 100644 --- a/.github/workflows/pre_release.yml +++ b/.github/workflows/pre_release.yml @@ -48,6 +48,10 @@ jobs: run: | platformio run -e ci_s3 + - name: Build E32V2 firmware + run: | + platformio run -e ci_16M + - name: Create a GH Release id: 'automatic_releases' uses: 'marvinpinto/action-automatic-releases@latest' diff --git a/interface/package.json b/interface/package.json index 9d4fd882e..42bf1ffe8 100644 --- a/interface/package.json +++ b/interface/package.json @@ -23,7 +23,7 @@ }, "dependencies": { "@alova/adapter-xhr": "^1.0.3", - "@babel/core": "^7.23.9", + "@babel/core": "^7.24.0", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.0", "@mui/icons-material": "^5.15.11", diff --git a/interface/src/framework/network/NetworkSettingsForm.tsx b/interface/src/framework/network/NetworkSettingsForm.tsx index 20387fcf6..cf97b3d03 100644 --- a/interface/src/framework/network/NetworkSettingsForm.tsx +++ b/interface/src/framework/network/NetworkSettingsForm.tsx @@ -216,6 +216,8 @@ const WiFiSettingsForm: FC = () => { 11 dBm 8.5 dBm 7 dBm + 5 dBm + 2 dBm } @@ -257,10 +259,12 @@ const WiFiSettingsForm: FC = () => { margin="normal" /> )} - } - label={LL.NETWORK_ENABLE_IPV6()} - /> + {data.enableIPv6 !== undefined && ( + } + label={LL.NETWORK_ENABLE_IPV6()} + /> + )} } label={LL.NETWORK_FIXED_IP()} diff --git a/interface/src/types/network.ts b/interface/src/types/network.ts index 8740eb9b4..c5d8795df 100644 --- a/interface/src/types/network.ts +++ b/interface/src/types/network.ts @@ -42,7 +42,7 @@ export interface NetworkSettings { password: string; hostname: string; static_ip_config: boolean; - enableIPv6: boolean; + enableIPv6?: boolean; bandwidth20: boolean; nosleep: boolean; tx_power: number; diff --git a/interface/yarn.lock b/interface/yarn.lock index 2ac16ce8b..7c97a10e6 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -86,26 +86,26 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/core@npm:7.23.9" +"@babel/core@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/core@npm:7.24.0" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.23.5" "@babel/generator": "npm:^7.23.6" "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.9" - "@babel/parser": "npm:^7.23.9" - "@babel/template": "npm:^7.23.9" - "@babel/traverse": "npm:^7.23.9" - "@babel/types": "npm:^7.23.9" + "@babel/helpers": "npm:^7.24.0" + "@babel/parser": "npm:^7.24.0" + "@babel/template": "npm:^7.24.0" + "@babel/traverse": "npm:^7.24.0" + "@babel/types": "npm:^7.24.0" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10/268cdbb86bef1b8ea5b1300f2f325e56a1740a5051360cb228ffeaa0f80282b6674f3a2b4d6466adb0691183759b88d4c37b4a4f77232c84a49ed771c84cdc27 + checksum: 10/1e22215cc89e061e0cbfed72f265ad24d363f3e9b24b51e9c4cf3ccb9222260a29a1c1e62edb439cb7e2229a3fce924edd43300500416613236c13fc8d62a947 languageName: node linkType: hard @@ -304,14 +304,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/helpers@npm:7.23.9" +"@babel/helpers@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/helpers@npm:7.24.0" dependencies: - "@babel/template": "npm:^7.23.9" - "@babel/traverse": "npm:^7.23.9" - "@babel/types": "npm:^7.23.9" - checksum: 10/dd56daac8bbd7ed174bb00fd185926fd449e591d9a00edaceb7ac6edbdd7a8db57e2cb365b4fafda382201752789ced2f7ae010f667eab0f198a4571cda4d2c5 + "@babel/template": "npm:^7.24.0" + "@babel/traverse": "npm:^7.24.0" + "@babel/types": "npm:^7.24.0" + checksum: 10/cc82012161b30185c2698da359c7311cf019f0932f8fcb805e985fec9e0053c354f0534dc9961f3170eee579df6724eecd34b0f5ffaa155cdd456af59fbff86e languageName: node linkType: hard @@ -346,12 +346,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/parser@npm:7.23.9" +"@babel/parser@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/parser@npm:7.24.0" bin: parser: ./bin/babel-parser.js - checksum: 10/727a7a807100f6a26df859e2f009c4ddbd0d3363287b45daa50bd082ccd0d431d0c4d0e610a91f806e04a1918726cd0f5a0592c9b902a815337feed12e1cafd9 + checksum: 10/3e5ebb903a6f71629a9d0226743e37fe3d961e79911d2698b243637f66c4df7e3e0a42c07838bc0e7cc9fcd585d9be8f4134a145b9459ee4a459420fb0d1360b languageName: node linkType: hard @@ -421,14 +421,14 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/template@npm:7.23.9" +"@babel/template@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/template@npm:7.24.0" dependencies: "@babel/code-frame": "npm:^7.23.5" - "@babel/parser": "npm:^7.23.9" - "@babel/types": "npm:^7.23.9" - checksum: 10/1b011ba9354dc2e646561d54b6862e0df51760e6179faadd79be05825b0b6da04911e4e192df943f1766748da3037fd8493615b38707f7cadb0cf0c96601c170 + "@babel/parser": "npm:^7.24.0" + "@babel/types": "npm:^7.24.0" + checksum: 10/8c538338c7de8fac8ada691a5a812bdcbd60bd4a4eb5adae2cc9ee19773e8fb1a724312a00af9e1ce49056ffd3c3475e7287b5668cf6360bfb3f8ac827a06ffe languageName: node linkType: hard @@ -450,9 +450,9 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/traverse@npm:7.23.9" +"@babel/traverse@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/traverse@npm:7.24.0" dependencies: "@babel/code-frame": "npm:^7.23.5" "@babel/generator": "npm:^7.23.6" @@ -460,11 +460,11 @@ __metadata: "@babel/helper-function-name": "npm:^7.23.0" "@babel/helper-hoist-variables": "npm:^7.22.5" "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.23.9" - "@babel/types": "npm:^7.23.9" + "@babel/parser": "npm:^7.24.0" + "@babel/types": "npm:^7.24.0" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10/e2bb845f7f229feb7c338f7e150f5f1abc5395dcd3a6a47f63a25242ec3ec6b165f04a6df7d4849468547faee34eb3cf52487eb0bd867a7d3c42fec2a648266f + checksum: 10/5cc482248ebb79adcbcf021aab4e0e95bafe2a1736ee4b46abe6f88b59848ad73e15e219db8f06c9a33a14c64257e5b47e53876601e998a8c596accb1b7f4996 languageName: node linkType: hard @@ -490,14 +490,14 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/types@npm:7.23.9" +"@babel/types@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/types@npm:7.24.0" dependencies: "@babel/helper-string-parser": "npm:^7.23.4" "@babel/helper-validator-identifier": "npm:^7.22.20" to-fast-properties: "npm:^2.0.0" - checksum: 10/bed9634e5fd0f9dc63c84cfa83316c4cb617192db9fedfea464fca743affe93736d7bf2ebf418ee8358751a9d388e303af87a0c050cb5d87d5870c1b0154f6cb + checksum: 10/a0b4875ce2e132f9daff0d5b27c7f4c4fcc97f2b084bdc5834e92c9d32592778489029e65d99d00c406da612d87b72d7a236c0afccaa1435c028d0c94c9b6da4 languageName: node linkType: hard @@ -1848,7 +1848,7 @@ __metadata: resolution: "EMS-ESP@workspace:." dependencies: "@alova/adapter-xhr": "npm:^1.0.3" - "@babel/core": "npm:^7.23.9" + "@babel/core": "npm:^7.24.0" "@emotion/react": "npm:^11.11.4" "@emotion/styled": "npm:^11.11.0" "@mui/icons-material": "npm:^5.15.11" diff --git a/lib/framework/MqttSettingsService.cpp b/lib/framework/MqttSettingsService.cpp index 57d7f5313..7054faaf1 100644 --- a/lib/framework/MqttSettingsService.cpp +++ b/lib/framework/MqttSettingsService.cpp @@ -39,7 +39,7 @@ void MqttSettingsService::startClient() { delete _mqttClient; _mqttClient = nullptr; } -#if CONFIG_IDF_TARGET_ESP32S3 +#ifndef TASMOTA_SDK if (_state.enableTLS) { isSecure = true; _mqttClient = new espMqttClientSecure(espMqttClientTypes::UseInternalTask::NO); @@ -92,7 +92,7 @@ const char * MqttSettingsService::getClientId() { } void MqttSettingsService::setWill(const char * topic) { -#if CONFIG_IDF_TARGET_ESP32S3 +#ifndef TASMOTA_SDK if (_state.enableTLS) { static_cast(_mqttClient)->setWill(topic, 1, true, "offline"); return; @@ -178,7 +178,7 @@ bool MqttSettingsService::configureMqtt() { // only connect if WiFi is connected and MQTT is enabled if (_state.enabled && emsesp::EMSESP::system_.network_connected() && !_state.host.isEmpty()) { _reconfigureMqtt = false; -#if CONFIG_IDF_TARGET_ESP32S3 +#ifndef TASMOTA_SDK if (_state.enableTLS) { #if EMSESP_DEBUG emsesp::EMSESP::logger().debug("Start secure MQTT with rootCA"); @@ -208,11 +208,9 @@ bool MqttSettingsService::configureMqtt() { } void MqttSettings::read(MqttSettings & settings, JsonObject root) { -#if CONFIG_IDF_TARGET_ESP32S3 #ifndef TASMOTA_SDK root["enableTLS"] = settings.enableTLS; root["rootCA"] = settings.rootCA; -#endif #endif root["enabled"] = settings.enabled; root["host"] = settings.host; @@ -247,11 +245,11 @@ StateUpdateResult MqttSettings::update(JsonObject root, MqttSettings & settings) MqttSettings newSettings = {}; bool changed = false; -#if CONFIG_IDF_TARGET_ESP32S3 #ifndef TASMOTA_SDK newSettings.enableTLS = root["enableTLS"] | false; newSettings.rootCA = root["rootCA"] | ""; -#endif +#else + newSettings.enableTLS = false; #endif newSettings.enabled = root["enabled"] | FACTORY_MQTT_ENABLED; newSettings.host = root["host"] | FACTORY_MQTT_HOST; @@ -368,7 +366,7 @@ StateUpdateResult MqttSettings::update(JsonObject root, MqttSettings & settings) emsesp::EMSESP::mqtt_.set_publish_time_heartbeat(newSettings.publish_time_heartbeat); } -#if CONFIG_IDF_TARGET_ESP32S3 +#ifndef TASMOTA_SDK // strip down to certificate only newSettings.rootCA.replace("\r", ""); newSettings.rootCA.replace("\n", ""); diff --git a/lib/framework/NetworkSettingsService.cpp b/lib/framework/NetworkSettingsService.cpp index 90b25d396..eea7b5e43 100644 --- a/lib/framework/NetworkSettingsService.cpp +++ b/lib/framework/NetworkSettingsService.cpp @@ -70,6 +70,9 @@ void NetworkSettingsService::manageSTA() { // Connect or reconnect as required if ((WiFi.getMode() & WIFI_STA) == 0) { +#ifdef TASMOTA_SDK + WiFi.enableIPv6(_state.enableIPv6); +#endif if (_state.staticIPConfig) { WiFi.config(_state.localIP, _state.gatewayIP, _state.subnetMask, _state.dnsIP1, _state.dnsIP2); // configure for static IP } @@ -388,13 +391,15 @@ void NetworkSettings::read(NetworkSettings & settings, JsonObject root) { root["password"] = settings.password; root["hostname"] = settings.hostname; root["static_ip_config"] = settings.staticIPConfig; - root["enableIPv6"] = settings.enableIPv6; root["bandwidth20"] = settings.bandwidth20; root["nosleep"] = settings.nosleep; root["enableMDNS"] = settings.enableMDNS; root["enableCORS"] = settings.enableCORS; root["CORSOrigin"] = settings.CORSOrigin; root["tx_power"] = settings.tx_power; +#ifndef TASMOTA_SDK + root["enableIPv6"] = settings.enableIPv6; +#endif // extended settings JsonUtils::writeIP(root, "local_ip", settings.localIP); @@ -416,14 +421,17 @@ StateUpdateResult NetworkSettings::update(JsonObject root, NetworkSettings & set settings.password = root["password"] | FACTORY_WIFI_PASSWORD; settings.hostname = root["hostname"] | FACTORY_WIFI_HOSTNAME; settings.staticIPConfig = root["static_ip_config"] | false; - settings.enableIPv6 = root["enableIPv6"] | false; settings.bandwidth20 = root["bandwidth20"] | false; settings.tx_power = static_cast(root["tx_power"] | 0); settings.nosleep = root["nosleep"] | false; settings.enableMDNS = root["enableMDNS"] | true; settings.enableCORS = root["enableCORS"] | false; settings.CORSOrigin = root["CORSOrigin"] | "*"; - +#ifdef TASMOTA_SDK + settings.enableIPv6 = true; +#else + settings.enableIPv6 = root["enableIPv6"] | false; +#endif // extended settings JsonUtils::readIP(root, "local_ip", settings.localIP); JsonUtils::readIP(root, "gateway_ip", settings.gatewayIP); diff --git a/platformio.ini b/platformio.ini index a61fb66ef..ac7f8a1a1 100644 --- a/platformio.ini +++ b/platformio.ini @@ -96,6 +96,16 @@ build_flags = ${espressi32_base.build_flags} '-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"' +[env:ci_16M] +extends = espressi32_base +extra_scripts = scripts/rename_fw.py +board = esp32dev +board_build.partitions = esp32_partition_16M.csv +board_build.extra_flags = -DBOARD_HAS_PSRAM +build_flags = + ${espressi32_base.build_flags} + '-DEMSESP_DEFAULT_BOARD_PROFILE="E32V2"' + [env:esp32_4M] extends = espressi32_base_tasmota board = esp32dev @@ -111,7 +121,7 @@ board_upload.flash_size = 4MB board_build.partitions = esp32_asym_partition_4M.csv [env:esp32_16M] -extends = espressi32_base_tasmota +extends = espressi32_base board = esp32dev board_build.extra_flags = -DBOARD_HAS_PSRAM board_upload.flash_size = 16MB From 854f764b3c50bf8cc1dad5db58ad95fbeaed2308 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 29 Feb 2024 14:28:58 +0100 Subject: [PATCH 09/10] add esp32_s3_32M profile, 16M partitions with larger data space, packages --- esp32_partition_16M.csv | 12 ++++++---- esp32_partition_32M.csv | 8 +++++++ interface/package.json | 6 ++--- interface/yarn.lock | 52 ++++++++++++++++++++--------------------- platformio.ini | 13 +++++++++++ 5 files changed, 57 insertions(+), 34 deletions(-) create mode 100644 esp32_partition_32M.csv diff --git a/esp32_partition_16M.csv b/esp32_partition_16M.csv index 014e72909..4068ffaf1 100644 --- a/esp32_partition_16M.csv +++ b/esp32_partition_16M.csv @@ -1,6 +1,8 @@ # Name, Type, SubType, Offset, Size, Flags -nvs, data, nvs, 0x9000, 0x5000, -otadata, data, ota, , 0x2000, -app0, app, ota_0, , 0x7F0000, -app1, app, ota_1, , 0x7F0000, -spiffs, data, spiffs, , 64K, \ No newline at end of file +nvs, data, nvs, 0x9000, 0x005000, +otadata, data, ota, , 0x002000, +app0, app, ota_0, , 0x5D0000, +app1, app, ota_1, , 0x5D0000, +nvs1, data, nvs, , 0x040000, +spiffs, data, spiffs, , 0x400000, +coredump, data, coredump,, 0x010000, \ No newline at end of file diff --git a/esp32_partition_32M.csv b/esp32_partition_32M.csv new file mode 100644 index 000000000..25411fc99 --- /dev/null +++ b/esp32_partition_32M.csv @@ -0,0 +1,8 @@ +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0x9000, 0x005000, +otadata, data, ota, , 0x002000, +app0, app, ota_0, , 0xDD0000, +app1, app, ota_1, , 0xDD0000, +nvs1, data, nvs, , 0x040000, +spiffs, data, spiffs, , 0x400000, +coredump, data, coredump,, 0x010000, \ No newline at end of file diff --git a/interface/package.json b/interface/package.json index 42bf1ffe8..efdb1c9b3 100644 --- a/interface/package.json +++ b/interface/package.json @@ -31,8 +31,8 @@ "@table-library/react-table-library": "4.1.7", "@types/imagemin": "^8.0.5", "@types/lodash-es": "^4.17.12", - "@types/node": "^20.11.21", - "@types/react": "^18.2.60", + "@types/node": "^20.11.23", + "@types/react": "^18.2.61", "@types/react-dom": "^18.2.19", "@types/react-router-dom": "^5.3.3", "alova": "^2.17.0", @@ -45,7 +45,7 @@ "react-dom": "latest", "react-dropzone": "^14.2.3", "react-icons": "^5.0.1", - "react-router-dom": "^6.22.1", + "react-router-dom": "^6.22.2", "react-toastify": "^10.0.4", "sockette": "^2.0.6", "typesafe-i18n": "^5.26.2", diff --git a/interface/yarn.lock b/interface/yarn.lock index 7c97a10e6..5cdecba3a 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -1299,10 +1299,10 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.15.1": - version: 1.15.1 - resolution: "@remix-run/router@npm:1.15.1" - checksum: 10/d262285d155f80779894ee1d9ef07e35421986ba2546378dfe0e3b09397ce71becb6a4677e9efcd4155e2bd3f9f7f7ecbc110cd99bacee6dd7d3e5ce51b7caa8 +"@remix-run/router@npm:1.15.2": + version: 1.15.2 + resolution: "@remix-run/router@npm:1.15.2" + checksum: 10/2a2c9c062228130d0383328de2757301e878fc268a72f813b60b8463bb7ed2c1fa4018072883af8096982a4b2741ec6eb349587cd7f95acfdf09588d93adea67 languageName: node linkType: hard @@ -1590,12 +1590,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.11.21": - version: 20.11.21 - resolution: "@types/node@npm:20.11.21" +"@types/node@npm:^20.11.23": + version: 20.11.23 + resolution: "@types/node@npm:20.11.23" dependencies: undici-types: "npm:~5.26.4" - checksum: 10/a31ecc6a3c615bca310ffe7dea23613153ff9e1e175c09d14198402b2cef9b1bb1bf3912aff6ffc6cb01b99a025ec6dd6474c797bfb0aaf83daf4edaea063760 + checksum: 10/fc2a86444461fd74a77c565ff6f854f354e5b637eacc42dc1f35bc859025a11bf495a785ca0439a84e0560157491a89735c0dbff48101113334d30d4b20fb1a3 languageName: node linkType: hard @@ -1670,14 +1670,14 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^18.2.60": - version: 18.2.60 - resolution: "@types/react@npm:18.2.60" +"@types/react@npm:^18.2.61": + version: 18.2.61 + resolution: "@types/react@npm:18.2.61" dependencies: "@types/prop-types": "npm:*" "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: 10/5f2f6091623f13375a5bbc7e5c222cd212b5d6366ead737b76c853f6f52b314db24af5ae3f688d2d49814c668c216858a75433f145311839d8989d46bb3cbecf + checksum: 10/74c2920ccca83fc51190ed4eda1066fa6a644197839dd37765fcce93cbd50b7a52b75815ce0083bb95195f886c80b57745314dd49ecbf235fa93d753ae2260bc languageName: node linkType: hard @@ -1858,8 +1858,8 @@ __metadata: "@table-library/react-table-library": "npm:4.1.7" "@types/imagemin": "npm:^8.0.5" "@types/lodash-es": "npm:^4.17.12" - "@types/node": "npm:^20.11.21" - "@types/react": "npm:^18.2.60" + "@types/node": "npm:^20.11.23" + "@types/react": "npm:^18.2.61" "@types/react-dom": "npm:^18.2.19" "@types/react-router-dom": "npm:^5.3.3" "@typescript-eslint/eslint-plugin": "npm:^7.1.0" @@ -1886,7 +1886,7 @@ __metadata: react-dom: "npm:latest" react-dropzone: "npm:^14.2.3" react-icons: "npm:^5.0.1" - react-router-dom: "npm:^6.22.1" + react-router-dom: "npm:^6.22.2" react-toastify: "npm:^10.0.4" rollup-plugin-visualizer: "npm:^5.12.0" sockette: "npm:^2.0.6" @@ -7192,27 +7192,27 @@ __metadata: languageName: node linkType: hard -"react-router-dom@npm:^6.22.1": - version: 6.22.1 - resolution: "react-router-dom@npm:6.22.1" +"react-router-dom@npm:^6.22.2": + version: 6.22.2 + resolution: "react-router-dom@npm:6.22.2" dependencies: - "@remix-run/router": "npm:1.15.1" - react-router: "npm:6.22.1" + "@remix-run/router": "npm:1.15.2" + react-router: "npm:6.22.2" peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: 10/73ab964083bb407773a5c4ca61249ed6b0a1b47fa58c39afca08a361eb25b349be2bcbaf6d89e112b020f6e55e40e62689c9fe2beae524030ce5ccede3c7d9e3 + checksum: 10/1469ea32fd5b35d44909c8e64a778620e990b43a1c6f4d5989630e769a9956e0057a54771ccde2e434a9aff7591c02752dcfe0678a1868d4e53411cec7ecf7a8 languageName: node linkType: hard -"react-router@npm:6.22.1": - version: 6.22.1 - resolution: "react-router@npm:6.22.1" +"react-router@npm:6.22.2": + version: 6.22.2 + resolution: "react-router@npm:6.22.2" dependencies: - "@remix-run/router": "npm:1.15.1" + "@remix-run/router": "npm:1.15.2" peerDependencies: react: ">=16.8" - checksum: 10/f6e814b8e3005f16a5fb0e831f0e4352076cde65ab25448d56dba87a43fd3e102f55f9b366bdf1fbd8136fc1dc141bcec8d6b85d45f309e89180fb50f173744d + checksum: 10/744c9c3d3b6f3d031ef8c34d86f16075f96d4487584f2a526f722bc5b05c5879fc5056236b824472530fc5aad0ecf6eef88d2848d5b1a32aab9849bda3a5c839 languageName: node linkType: hard diff --git a/platformio.ini b/platformio.ini index ac7f8a1a1..f2d871743 100644 --- a/platformio.ini +++ b/platformio.ini @@ -169,6 +169,19 @@ build_flags = ${espressi32_base.build_flags} '-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"' +[env:esp32_s3_32M] +extends = espressi32_base +board = lolin_s3 +board_build.f_cpu = 240000000L +board_upload.flash_size = 32MB +board_build.partitions = esp32_partition_32M.csv +board_build.flash_mode = opi +board_build.arduino.memory_type: opi_opi +build_unflags = ${common.unbuild_flags} +build_flags = + ${espressi32_base.build_flags} + '-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"' + ; to build and run: pio run -e standalone -t exec [env:standalone] platform = native From f77fb12c806718e8cfc72af3f696ae62c663164f Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Sat, 2 Mar 2024 10:41:15 +0100 Subject: [PATCH 10/10] revert uart change, event.size not set for break. --- src/uart/emsuart_esp32.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/uart/emsuart_esp32.cpp b/src/uart/emsuart_esp32.cpp index e1284d2c3..84d61a57f 100644 --- a/src/uart/emsuart_esp32.cpp +++ b/src/uart/emsuart_esp32.cpp @@ -47,8 +47,9 @@ void EMSuart::uart_event_task(void * pvParameters) { while (1) { //Waiting for UART event. if (xQueueReceive(uart_queue, (void *)&event, portMAX_DELAY)) { - if (event.type == UART_BREAK) { - length += event.size ? event.size - 1 : 0; + if (event.type == UART_DATA) { + length += event.size; + } else if (event.type == UART_BREAK) { if (length == 2 || (length >= 6 && length <= EMS_MAXBUFFERSIZE)) { uart_read_bytes(EMSUART_NUM, telegram, length, portMAX_DELAY); EMSESP::incoming_telegram(telegram, (uint8_t)(length - 1)); @@ -57,8 +58,6 @@ void EMSuart::uart_event_task(void * pvParameters) { uart_read_bytes(EMSUART_NUM, buf, length, portMAX_DELAY); } length = 0; - } else if (event.type == UART_DATA) { - length += event.size; } else if (event.type == UART_BUFFER_FULL) { uart_flush_input(EMSUART_NUM); length = 0;