From b252c2f95ae3365ba96e185f507e222c63522802 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Tue, 8 Apr 2025 17:53:06 +0200 Subject: [PATCH 1/4] FB100 controls hc1, fixes #2510 --- CHANGELOG_LATEST.md | 1 + interface/package.json | 4 +- interface/yarn.lock | 126 ++++++++++++++++++------------------- src/devices/thermostat.cpp | 4 +- src/emsesp_version.h | 2 +- 5 files changed, 69 insertions(+), 68 deletions(-) diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 055a5a87c..dd4794682 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -18,6 +18,7 @@ For more details go to [docs.emsesp.org](https://docs.emsesp.org/). - update link buttons [#2497](https://github.com/emsesp/EMS-ESP32/issues/2497) - refresh scheduler states [#2502](https://github.com/emsesp/EMS-ESP32/discussions/2502) - also rebuild HA config on mqtt connect for scheduler, custom and shower +- FB100 controls the hc, not the master [#2510](https://github.com/emsesp/EMS-ESP32/issues/2510) ## Changed diff --git a/interface/package.json b/interface/package.json index 6cbae2ec3..755e1cf9f 100644 --- a/interface/package.json +++ b/interface/package.json @@ -31,7 +31,7 @@ "async-validator": "^4.2.5", "jwt-decode": "^4.0.0", "mime-types": "^3.0.1", - "preact": "^10.26.4", + "preact": "^10.26.5", "react": "^19.1.0", "react-dom": "^19.1.0", "react-icons": "^5.5.0", @@ -57,7 +57,7 @@ "prettier": "^3.5.3", "rollup-plugin-visualizer": "^5.14.0", "terser": "^5.39.0", - "typescript-eslint": "8.29.0", + "typescript-eslint": "8.29.1", "vite": "^6.2.5", "vite-plugin-imagemin": "^0.6.1", "vite-tsconfig-paths": "^5.1.4" diff --git a/interface/yarn.lock b/interface/yarn.lock index 417fc4ee2..a285920e7 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -1492,15 +1492,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.29.0": - version: 8.29.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.29.0" +"@typescript-eslint/eslint-plugin@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/eslint-plugin@npm:8.29.1" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.29.0" - "@typescript-eslint/type-utils": "npm:8.29.0" - "@typescript-eslint/utils": "npm:8.29.0" - "@typescript-eslint/visitor-keys": "npm:8.29.0" + "@typescript-eslint/scope-manager": "npm:8.29.1" + "@typescript-eslint/type-utils": "npm:8.29.1" + "@typescript-eslint/utils": "npm:8.29.1" + "@typescript-eslint/visitor-keys": "npm:8.29.1" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -1509,64 +1509,64 @@ __metadata: "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/3b05a7376a0752484229369af6eb60d13cf06d2331e79c2d471cb0b963dcf5b25a31617cafdc71d74e98921091f479f3da10725b761878a89421191d23866b54 + checksum: 10c0/a3ed7556edcac374cab622862f2f9adedc91ca305d6937db6869a0253d675858c296cb5413980e8404fc39737117faaf35b00c6804664b3c542bdc417502532f languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.29.0": - version: 8.29.0 - resolution: "@typescript-eslint/parser@npm:8.29.0" +"@typescript-eslint/parser@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/parser@npm:8.29.1" dependencies: - "@typescript-eslint/scope-manager": "npm:8.29.0" - "@typescript-eslint/types": "npm:8.29.0" - "@typescript-eslint/typescript-estree": "npm:8.29.0" - "@typescript-eslint/visitor-keys": "npm:8.29.0" + "@typescript-eslint/scope-manager": "npm:8.29.1" + "@typescript-eslint/types": "npm:8.29.1" + "@typescript-eslint/typescript-estree": "npm:8.29.1" + "@typescript-eslint/visitor-keys": "npm:8.29.1" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/270b9b27e3edb54b2f98a97b7f026f95580214002a04167809b1b71233c36d1585041cdcf26f9e08f48b9eb92652f4f9c756a83dc230f48fd204a4e5e054831c + checksum: 10c0/af3570ff58c42c2014e5c117bebf91120737fb139d94415ca2711844990e95252c3006ccc699871fe3f592cc1a3f4ebfdc9dd5f6cb29b6b128c2524fcf311b75 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.29.0": - version: 8.29.0 - resolution: "@typescript-eslint/scope-manager@npm:8.29.0" +"@typescript-eslint/scope-manager@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/scope-manager@npm:8.29.1" dependencies: - "@typescript-eslint/types": "npm:8.29.0" - "@typescript-eslint/visitor-keys": "npm:8.29.0" - checksum: 10c0/330d777043a99485b51197ad24927f1276d61e61adaf710f012b3fe7db2ab67c8925c0526f801715b498e7d8fa7cef390006b6f7ae40cee89abe22e8e438de9a + "@typescript-eslint/types": "npm:8.29.1" + "@typescript-eslint/visitor-keys": "npm:8.29.1" + checksum: 10c0/8b87a04f01ebc13075e352509bca8f31c757c3220857fa473ac155f6bdf7f30fe82765d0c3d8e790f7fad394a32765bd9f716b97c08e17581d358c76086d51af languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.29.0": - version: 8.29.0 - resolution: "@typescript-eslint/type-utils@npm:8.29.0" +"@typescript-eslint/type-utils@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/type-utils@npm:8.29.1" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.29.0" - "@typescript-eslint/utils": "npm:8.29.0" + "@typescript-eslint/typescript-estree": "npm:8.29.1" + "@typescript-eslint/utils": "npm:8.29.1" debug: "npm:^4.3.4" ts-api-utils: "npm:^2.0.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/f254c8d22fc29ea088d16b06e4be1756cb5ad05ccf5989e163637b9c582e5fc8c27aa7003aad6e6a8158d56d7711ea1e4e9d361702c1a18945e0e6aaff1267c5 + checksum: 10c0/72cc01dbac866b0a7c7b1f637ad03ffd22f6d3617f70f06f485cf3096fddfc821fdc56de1a072cc6af70250c63698a3e5a910f67fe46eea941955b6e0da1b2bd languageName: node linkType: hard -"@typescript-eslint/types@npm:8.29.0": - version: 8.29.0 - resolution: "@typescript-eslint/types@npm:8.29.0" - checksum: 10c0/fc1e3f3071102973a9cfb8ae843c51398bd74b5583b7b0edad182ea605ef85e72ceac7987513581869958b3a65303af6b3471bfba5b7be1338e8add62019c858 +"@typescript-eslint/types@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/types@npm:8.29.1" + checksum: 10c0/bbcb9e4f38df4485092b51ac6bb62d65f321d914ab58dc0ff1eaa7787dc0b4a39e237c2617b9f2c2bcb91a343f30de523e3544f69affa1ee4287a3ef2fc10ce7 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.29.0": - version: 8.29.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.29.0" +"@typescript-eslint/typescript-estree@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.29.1" dependencies: - "@typescript-eslint/types": "npm:8.29.0" - "@typescript-eslint/visitor-keys": "npm:8.29.0" + "@typescript-eslint/types": "npm:8.29.1" + "@typescript-eslint/visitor-keys": "npm:8.29.1" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -1575,32 +1575,32 @@ __metadata: ts-api-utils: "npm:^2.0.1" peerDependencies: typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/61dd52229a0758e0bd29f732115c16e640a2418fb25488877c74ef03cdbeb43ddc592a37094abd794ef49812f33d6f814c5b662b95ea796ed0a6c6bfc849299b + checksum: 10c0/33c46c667d9262e5625d5d0064338711b342e62c5675ded6811a2cb13ee5de2f71b90e9d0be5cb338b11b1a329c376a6bbf6c3d24fa8fb457b2eefc9f3298513 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.29.0": - version: 8.29.0 - resolution: "@typescript-eslint/utils@npm:8.29.0" +"@typescript-eslint/utils@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/utils@npm:8.29.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.29.0" - "@typescript-eslint/types": "npm:8.29.0" - "@typescript-eslint/typescript-estree": "npm:8.29.0" + "@typescript-eslint/scope-manager": "npm:8.29.1" + "@typescript-eslint/types": "npm:8.29.1" + "@typescript-eslint/typescript-estree": "npm:8.29.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/e259d7edd12946b2dc8e1aa3bbea10f66c5277f27dda71368aa2b2923487f28cd1c123681aaae22518a31c8aeabd60a5365f8a832d0f6e6efadb03745a2d8a31 + checksum: 10c0/1b2704b769b0c9353cf26a320ecf9775ba51c94c7c30e2af80ca31f4cb230f319762ab06535fcb26b6963144bbeaa53233b34965907c506283861b013f5b95fc languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.29.0": - version: 8.29.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.29.0" +"@typescript-eslint/visitor-keys@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.29.1" dependencies: - "@typescript-eslint/types": "npm:8.29.0" + "@typescript-eslint/types": "npm:8.29.1" eslint-visitor-keys: "npm:^4.2.0" - checksum: 10c0/7f5452b137c4edd258b2289cddf5d92687780375db33421bc4f5e2e9b0c94064c7c5ed3a7b5d96dc9c2d09ca7842b4415b3f3ed3e3f1ae3ac2e625ecb5e87efc + checksum: 10c0/0c12e83c84a754161c89e594a96454799669979c7021a8936515ec574a1fa1d6e3119e0eacf502e07a0fa7254974558ea7a48901c8bfed3c46579a61b655e4f5 languageName: node linkType: hard @@ -1631,7 +1631,7 @@ __metadata: formidable: "npm:^3.5.2" jwt-decode: "npm:^4.0.0" mime-types: "npm:^3.0.1" - preact: "npm:^10.26.4" + preact: "npm:^10.26.5" prettier: "npm:^3.5.3" react: "npm:^19.1.0" react-dom: "npm:^19.1.0" @@ -1642,7 +1642,7 @@ __metadata: terser: "npm:^5.39.0" typesafe-i18n: "npm:^5.26.2" typescript: "npm:^5.8.3" - typescript-eslint: "npm:8.29.0" + typescript-eslint: "npm:8.29.1" vite: "npm:^6.2.5" vite-plugin-imagemin: "npm:^0.6.1" vite-tsconfig-paths: "npm:^5.1.4" @@ -5471,10 +5471,10 @@ __metadata: languageName: node linkType: hard -"preact@npm:^10.26.4": - version: 10.26.4 - resolution: "preact@npm:10.26.4" - checksum: 10c0/8abf64ec6f9773f0c4fb3746b7caa3d83e2de4d464928e7f64fc779c96ef9e135d23c1ade8d0923c9191f6d203d9f22bb92d8a50dc0f4f310073dfaa51a56922 +"preact@npm:^10.26.5": + version: 10.26.5 + resolution: "preact@npm:10.26.5" + checksum: 10c0/542a924009489c21b24e9588a5580dac03239a60951d10e6ad1207db66c8e719e1d46a38af6577c8f324b238fbe2aa92e0ffc04d3a71dbe182f56426c8abe632 languageName: node linkType: hard @@ -6678,17 +6678,17 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:8.29.0": - version: 8.29.0 - resolution: "typescript-eslint@npm:8.29.0" +"typescript-eslint@npm:8.29.1": + version: 8.29.1 + resolution: "typescript-eslint@npm:8.29.1" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.29.0" - "@typescript-eslint/parser": "npm:8.29.0" - "@typescript-eslint/utils": "npm:8.29.0" + "@typescript-eslint/eslint-plugin": "npm:8.29.1" + "@typescript-eslint/parser": "npm:8.29.1" + "@typescript-eslint/utils": "npm:8.29.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/1438b80fc875acc65acc842dc870070be31d6a30f756a6d9985fadd063f4f568e74a83bac7aaf94d2320e434df3c033a6e2ab7258b1429cae2aa7c4b16fb5088 + checksum: 10c0/31319c891d224ec8d7cf96ad7e6c84480b3d17d4c46c5beccca06fc7891f41eabd5593e44867e69dbfb79459f5545c2cc2e985c950bdd7b4e7c3bb1ec8941030 languageName: node linkType: hard diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index 5cc84fde9..433acbcb1 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -201,8 +201,8 @@ Thermostat::Thermostat(uint8_t device_type, uint8_t device_id, uint8_t product_i } else if (model == EMSdevice::EMS_DEVICE_FLAG_JUNKERS) { if (device_id >= 0x18 && device_id <= 0x1B) { // remote hc1-hc4 register_telegram_type(0x123, "JunkersRemote", false, MAKE_PF_CB(process_JunkersRemoteMonitor)); - register_device_values(); // register device values for common values (not heating circuit) - return; // no values to add + // register_device_values(); // register device values for common values (not heating circuit) + // return; // no values to add } monitor_typeids = {0x016F, 0x0170, 0x0171, 0x0172}; diff --git a/src/emsesp_version.h b/src/emsesp_version.h index 4ea796314..284d96474 100644 --- a/src/emsesp_version.h +++ b/src/emsesp_version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.7.3-dev.6" +#define EMSESP_APP_VERSION "3.7.3-dev.7" From 70035b059cd5a0c03a6d891bfb9673fc39d16b36 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Tue, 8 Apr 2025 17:59:01 +0200 Subject: [PATCH 2/4] comment out HA config of shower timestamp --- src/core/shower.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/shower.cpp b/src/core/shower.cpp index 88226cd79..b92ccd84f 100644 --- a/src/core/shower.cpp +++ b/src/core/shower.cpp @@ -237,6 +237,7 @@ void Shower::set_shower_state(bool state, bool force) { // // shower timestamp // + /* commented out as the publish of timestamp doc.clear(); snprintf(str, sizeof(str), "%s_shower_timestamp", Mqtt::basename().c_str()); @@ -255,6 +256,7 @@ void Shower::set_shower_state(bool state, bool force) { snprintf(topic, sizeof(topic), "sensor/%s/shower_timestamp/config", Mqtt::basename().c_str()); Mqtt::queue_ha(topic, doc.as()); // publish the config payload with retain flag + */ } } From 99b769626e38902e6af72cf22374da0aebc203e4 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 9 Apr 2025 13:30:40 +0200 Subject: [PATCH 3/4] check dv.hasValue for commands --- src/core/emsdevice.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/emsdevice.cpp b/src/core/emsdevice.cpp index 3deebfd3c..bfd8f6fa9 100644 --- a/src/core/emsdevice.cpp +++ b/src/core/emsdevice.cpp @@ -393,7 +393,7 @@ bool EMSdevice::has_tags(const int8_t tag) const { // check if the device has a command with this tag. bool EMSdevice::has_cmd(const char * cmd, const int8_t id) const { for (const auto & dv : devicevalues_) { - if ((id < 1 || dv.tag == id) && dv.has_cmd && strcmp(dv.short_name, cmd) == 0) { + if ((id < 1 || dv.tag == id) && dv.has_cmd && strcmp(dv.short_name, cmd) == 0 && (dv.hasValue() || dv.type == DeviceValueType::CMD)) { return true; } } @@ -1675,7 +1675,7 @@ void EMSdevice::get_value_json(JsonObject json, DeviceValue & dv) { // add uom, state class and device class Mqtt::add_ha_uom(json, dv.type, dv.uom, dv.short_name, false); // no icon - json["readable"] = !dv.has_state(DeviceValueState::DV_API_MQTT_EXCLUDE); + json["readable"] = dv.type != DeviceValueType::CMD && !dv.has_state(DeviceValueState::DV_API_MQTT_EXCLUDE); json["writeable"] = dv.has_cmd && !dv.has_state(DeviceValueState::DV_READONLY); json["visible"] = !dv.has_state(DeviceValueState::DV_WEB_EXCLUDE); } From d7b9754ddbe399416b260898f4e59070abdcb58c Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 9 Apr 2025 17:38:58 +0200 Subject: [PATCH 4/4] do not create hc on empty message --- interface/package.json | 6 +- interface/yarn.lock | 124 ++++++++++++++++++------------------- platformio.ini | 2 +- src/devices/thermostat.cpp | 4 ++ 4 files changed, 70 insertions(+), 66 deletions(-) diff --git a/interface/package.json b/interface/package.json index 755e1cf9f..a9c1c1248 100644 --- a/interface/package.json +++ b/interface/package.json @@ -24,8 +24,8 @@ "@alova/adapter-xhr": "2.1.1", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", - "@mui/icons-material": "^7.0.1", - "@mui/material": "^7.0.1", + "@mui/icons-material": "^7.0.2", + "@mui/material": "^7.0.2", "@table-library/react-table-library": "4.1.12", "alova": "3.2.10", "async-validator": "^4.2.5", @@ -49,7 +49,7 @@ "@types/formidable": "^3", "@types/node": "^22.14.0", "@types/react": "^19.1.0", - "@types/react-dom": "^19.1.1", + "@types/react-dom": "^19.1.2", "concurrently": "^9.1.2", "eslint": "^9.24.0", "eslint-config-prettier": "^10.1.1", diff --git a/interface/yarn.lock b/interface/yarn.lock index a285920e7..ad6fe0c6a 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -218,7 +218,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.26.10, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.27.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": version: 7.27.0 resolution: "@babel/runtime@npm:7.27.0" dependencies: @@ -799,49 +799,49 @@ __metadata: languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^7.0.1": - version: 7.0.1 - resolution: "@mui/core-downloads-tracker@npm:7.0.1" - checksum: 10c0/8291211a5aefd9348c9fddd4b12340087f2d661bfbdcf6797b09b2e58ae9a4a37ae80de7124613b870ea3a8ea5661b6a35849214eeb2d5f238cdba10d381d056 +"@mui/core-downloads-tracker@npm:^7.0.2": + version: 7.0.2 + resolution: "@mui/core-downloads-tracker@npm:7.0.2" + checksum: 10c0/20cb142d8c38b93c6290eb7d57f0d1d34a6821168e3085d139dbe6b82e9e9101095521869e6e0c9c12126757a32300bb01c15aacd3f308a0d9d18ce42944116c languageName: node linkType: hard -"@mui/icons-material@npm:^7.0.1": - version: 7.0.1 - resolution: "@mui/icons-material@npm:7.0.1" +"@mui/icons-material@npm:^7.0.2": + version: 7.0.2 + resolution: "@mui/icons-material@npm:7.0.2" dependencies: - "@babel/runtime": "npm:^7.26.10" + "@babel/runtime": "npm:^7.27.0" peerDependencies: - "@mui/material": ^7.0.1 + "@mui/material": ^7.0.2 "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/375ba909363cc248154937bcc8522ba98566311bf20d4c0c3114ed4bd31430354b0d5779523b3f7cf78bb15ba7544d137a7ccbde63cf75ec957ae30e73083693 + checksum: 10c0/5c4e6348046cbdc305477a26fe100ad47f0f88a8d2eca37f5807c9c55c05bce61e66a1e1f7e57c239a1132de3fdbe7a13a79d661e4ebf2d9586fa292a88eb687 languageName: node linkType: hard -"@mui/material@npm:^7.0.1": - version: 7.0.1 - resolution: "@mui/material@npm:7.0.1" +"@mui/material@npm:^7.0.2": + version: 7.0.2 + resolution: "@mui/material@npm:7.0.2" dependencies: - "@babel/runtime": "npm:^7.26.10" - "@mui/core-downloads-tracker": "npm:^7.0.1" - "@mui/system": "npm:^7.0.1" - "@mui/types": "npm:^7.4.0" - "@mui/utils": "npm:^7.0.1" + "@babel/runtime": "npm:^7.27.0" + "@mui/core-downloads-tracker": "npm:^7.0.2" + "@mui/system": "npm:^7.0.2" + "@mui/types": "npm:^7.4.1" + "@mui/utils": "npm:^7.0.2" "@popperjs/core": "npm:^2.11.8" "@types/react-transition-group": "npm:^4.4.12" clsx: "npm:^2.1.1" csstype: "npm:^3.1.3" prop-types: "npm:^15.8.1" - react-is: "npm:^19.0.0" + react-is: "npm:^19.1.0" react-transition-group: "npm:^4.4.5" peerDependencies: "@emotion/react": ^11.5.0 "@emotion/styled": ^11.3.0 - "@mui/material-pigment-css": ^7.0.1 + "@mui/material-pigment-css": ^7.0.2 "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -854,16 +854,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10c0/95203b299dc5481f8fe903f7604dea641067db431c0606bffa5fafa8a4e9e0a0203a8d5ef9af3e314186c779c08654d6e0c1b85c70d8320397f2ce7a05ee633d + checksum: 10c0/ca854ca668ec06d57ea9b26d968c1187b56e12cd48b1ed9cccf1c7c1753878e161364cfadbb826cfa2274137080d3cc87d4968a77a71d61f80c123e6978984f8 languageName: node linkType: hard -"@mui/private-theming@npm:^7.0.1": - version: 7.0.1 - resolution: "@mui/private-theming@npm:7.0.1" +"@mui/private-theming@npm:^7.0.2": + version: 7.0.2 + resolution: "@mui/private-theming@npm:7.0.2" dependencies: - "@babel/runtime": "npm:^7.26.10" - "@mui/utils": "npm:^7.0.1" + "@babel/runtime": "npm:^7.27.0" + "@mui/utils": "npm:^7.0.2" prop-types: "npm:^15.8.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -871,15 +871,15 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/15f0037925d9dd59b0bdc4bf6031407e31ef008ebe0e437f424eeed3f433bafd585676b995739f0362c9d403c0cbe2f99478d5eeadd60bfa8b1d968a6be7185d + checksum: 10c0/a2154b0473cab717742abe8f54e2c674ba53f4cd495970addfa5c9c0f3dcbf9d49000503b592873ad389e0c42fae28b40912e0c47d44378a0afbb70fbbb4613a languageName: node linkType: hard -"@mui/styled-engine@npm:^7.0.1": - version: 7.0.1 - resolution: "@mui/styled-engine@npm:7.0.1" +"@mui/styled-engine@npm:^7.0.2": + version: 7.0.2 + resolution: "@mui/styled-engine@npm:7.0.2" dependencies: - "@babel/runtime": "npm:^7.26.10" + "@babel/runtime": "npm:^7.27.0" "@emotion/cache": "npm:^11.13.5" "@emotion/serialize": "npm:^1.3.3" "@emotion/sheet": "npm:^1.4.0" @@ -894,19 +894,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: 10c0/cdef1c15ea645198440cd87a53c1a0155f444688387ed816b98890e42bd22a9204242cae8fb1b56124fe05c163d9e38fa482901804dee0bef6f88da1cddd8579 + checksum: 10c0/3a8293bf2e28afe0a11e655634881ac1cf814a8fa56bd4eb4d7a9b97e007c6eb6b991f4f1b780bdac81481f9a28b0b690d4e6ed184315ce2c9bd81c0ef12165b languageName: node linkType: hard -"@mui/system@npm:^7.0.1": - version: 7.0.1 - resolution: "@mui/system@npm:7.0.1" +"@mui/system@npm:^7.0.2": + version: 7.0.2 + resolution: "@mui/system@npm:7.0.2" dependencies: - "@babel/runtime": "npm:^7.26.10" - "@mui/private-theming": "npm:^7.0.1" - "@mui/styled-engine": "npm:^7.0.1" - "@mui/types": "npm:^7.4.0" - "@mui/utils": "npm:^7.0.1" + "@babel/runtime": "npm:^7.27.0" + "@mui/private-theming": "npm:^7.0.2" + "@mui/styled-engine": "npm:^7.0.2" + "@mui/types": "npm:^7.4.1" + "@mui/utils": "npm:^7.0.2" clsx: "npm:^2.1.1" csstype: "npm:^3.1.3" prop-types: "npm:^15.8.1" @@ -922,41 +922,41 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10c0/58de50dceef8a85aa24cda596836c034068b6f3e960c47520b9401a3f6f5bdf013e6ad7adb1a31cc57707ae304d524813ed53d4d12c1193ec8ca6b31d90f8dcf + checksum: 10c0/d8a399d8e9ebd0021a355299e46389c9c5ad6e22f308e268b2a07fe99cc8106a4fa026f4fe3050bc1f31959ca9a98e10115d278a9ab412ade0cbc5ec8e7b2af4 languageName: node linkType: hard -"@mui/types@npm:^7.4.0": - version: 7.4.0 - resolution: "@mui/types@npm:7.4.0" +"@mui/types@npm:^7.4.1": + version: 7.4.1 + resolution: "@mui/types@npm:7.4.1" dependencies: - "@babel/runtime": "npm:^7.26.10" + "@babel/runtime": "npm:^7.27.0" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/1f456206e8c6742a76c265d6c407a930d7126b03aac98949bd35a1edd14db1fd98c5169266a7948b9e24d0295adbeb3b58635eceb38217ee5f2d04d88b6b7d1c + checksum: 10c0/958a1dd29956b4646058c7bf5615cb5211736568b9997e8baac4698b02189cdfd7aa880fa935c59138dfa9e9163549ca6c509142da28add835abeff3c68d6ccf languageName: node linkType: hard -"@mui/utils@npm:^7.0.1": - version: 7.0.1 - resolution: "@mui/utils@npm:7.0.1" +"@mui/utils@npm:^7.0.2": + version: 7.0.2 + resolution: "@mui/utils@npm:7.0.2" dependencies: - "@babel/runtime": "npm:^7.26.10" - "@mui/types": "npm:^7.4.0" + "@babel/runtime": "npm:^7.27.0" + "@mui/types": "npm:^7.4.1" "@types/prop-types": "npm:^15.7.14" clsx: "npm:^2.1.1" prop-types: "npm:^15.8.1" - react-is: "npm:^19.0.0" + react-is: "npm:^19.1.0" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/bf5d721c9e09f2eba359db227dfafca51152a47753c6f32d020f8a9af572f8f14515e03592b2a95b5bea8207efe775d7d1ae4a0e42f0638f03a15fd1d303ffce + checksum: 10c0/2409d6f9ede9b5c5bdff6893d1f077eb84fa816ac5a7e36a9b6878b1f228e89d9b3bf684d64328f7a62d5036a2c02fb4934a4f9a12648796b833e5390e48d0dd languageName: node linkType: hard @@ -1447,12 +1447,12 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^19.1.1": - version: 19.1.1 - resolution: "@types/react-dom@npm:19.1.1" +"@types/react-dom@npm:^19.1.2": + version: 19.1.2 + resolution: "@types/react-dom@npm:19.1.2" peerDependencies: "@types/react": ^19.0.0 - checksum: 10c0/83833af502f501a372b370fdeb7cf933dfc8780903fe0e0d6e6a76b4ea3adbe5316159a62a0388d8afdd409afd76a40959e2ce82fbb788f57d32c786a63601ee + checksum: 10c0/100c341cacba9ec8ae1d47ee051072a3450e9573bf8eeb7262490e341cb246ea0f95a07a1f2077e61cf92648f812a0324c602fcd811bd87b7ce41db2811510cd languageName: node linkType: hard @@ -1613,8 +1613,8 @@ __metadata: "@emotion/react": "npm:^11.14.0" "@emotion/styled": "npm:^11.14.0" "@eslint/js": "npm:^9.24.0" - "@mui/icons-material": "npm:^7.0.1" - "@mui/material": "npm:^7.0.1" + "@mui/icons-material": "npm:^7.0.2" + "@mui/material": "npm:^7.0.2" "@preact/compat": "npm:^18.3.1" "@preact/preset-vite": "npm:^2.10.1" "@table-library/react-table-library": "npm:4.1.12" @@ -1622,7 +1622,7 @@ __metadata: "@types/formidable": "npm:^3" "@types/node": "npm:^22.14.0" "@types/react": "npm:^19.1.0" - "@types/react-dom": "npm:^19.1.1" + "@types/react-dom": "npm:^19.1.2" alova: "npm:3.2.10" async-validator: "npm:^4.2.5" concurrently: "npm:^9.1.2" @@ -5626,7 +5626,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^19.0.0": +"react-is@npm:^19.1.0": version: 19.1.0 resolution: "react-is@npm:19.1.0" checksum: 10c0/b6c6cadd172d5d39f66d493700d137a5545c294a62ce0f8ec793d59794c97d2bed6bad227626f16bd0e90004ed7fdc8ed662a004e6edcf5d2b7ecb6e3040ea6b diff --git a/platformio.ini b/platformio.ini index 3989f8c1d..4346078b2 100644 --- a/platformio.ini +++ b/platformio.ini @@ -102,7 +102,7 @@ board_build.filesystem = littlefs lib_deps = bblanchon/ArduinoJson @ 7.3.1 ESP32Async/AsyncTCP @ 3.3.8 - ESP32Async/ESPAsyncWebServer @ 3.7.4 + ESP32Async/ESPAsyncWebServer @ 3.7.6 https://github.com/emsesp/EMS-ESP-Modules.git @ 1.0.5 ; diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index 433acbcb1..478722457 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -272,6 +272,10 @@ std::shared_ptr Thermostat::heating_circuit(const in // returns pointer to the HeatingCircuit or nullptr if it can't be found // if its a new one, the heating circuit object will be created and also the fetch flags set std::shared_ptr Thermostat::heating_circuit(std::shared_ptr telegram) { + // do not create a hc on empty messages + if (telegram->message_length == 0) { + return nullptr; + } // look through the Monitor and Set arrays to see if there is a match uint8_t hc_num = 0; // 0 means we haven't found it yet bool toggle_ = false;