From 5777d7cb0a6e542bfbf6e7ba25f7e5befc5a13ca Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 6 Nov 2024 09:26:26 +0100 Subject: [PATCH 01/12] fix standalone --- CHANGELOG_LATEST.md | 1 + lib_standalone/emsuart_standalone.h | 3 +++ 2 files changed, 4 insertions(+) diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 235d65aeb..9feddd546 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -10,6 +10,7 @@ For more details go to [www.emsesp.org](https://www.emsesp.org/). - include HA "unit_of_meas", "stat_cla" and "dev_cla" attributes for Number sensors [#2149](https://github.com/emsesp/EMS-ESP32/issues/2149) - Bosch CS6800i AW - Silent Mode + Electrical Power Reduction (HP) [#2147](https://github.com/emsesp/EMS-ESP32/issues/2147) +- system commands for showertimer and showeralert [#2168](https://github.com/emsesp/EMS-ESP32/discussions/2168) ## Fixed diff --git a/lib_standalone/emsuart_standalone.h b/lib_standalone/emsuart_standalone.h index f657964c3..018c71afd 100644 --- a/lib_standalone/emsuart_standalone.h +++ b/lib_standalone/emsuart_standalone.h @@ -36,6 +36,9 @@ class EMSuart { static void restart(); static void send_poll(uint8_t data); static uint16_t transmit(uint8_t * buf, uint8_t len); + static uint8_t last_tx_src() { + return 0; + } private: static char * hextoa(char * result, const uint8_t value); From 6ab3ce8b0232849df5d7e13befd4caa7b4a21daf Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 6 Nov 2024 18:27:33 +0100 Subject: [PATCH 02/12] boilerstate from 0xE3 for heatpumps, fix #2132 --- src/devices/boiler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index c25b32e05..412fe9bb7 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -1434,7 +1434,7 @@ void Boiler::process_UBAMonitorFastPlus(std::shared_ptr telegram // at this point do a quick check to see if the hot water or heating is active uint8_t state = EMS_VALUE_UINT8_NOTSET; - if (telegram->read_value(state, 11) && model() != EMSdevice::EMS_DEVICE_FLAG_HIU) { + if (telegram->read_value(state, 11) && model() != EMSdevice::EMS_DEVICE_FLAG_HIU && model() != EMSdevice::EMS_DEVICE_FLAG_HEATPUMP) { boilerState_ = state & 0x01 ? 0x08 : 0; // burnGas boilerState_ |= state & 0x02 ? 0x01 : 0; // heatingPump boilerState_ |= state & 0x04 ? 0x02 : 0; // 3-way-valve @@ -1473,7 +1473,7 @@ void Boiler::process_UBAMonitorSlow(std::shared_ptr telegram) { */ void Boiler::process_UBAMonitorSlowPlus2(std::shared_ptr telegram) { has_update(telegram, absBurnPow_, 13); // current burner absolute power (percent of rating plate power) - if (model() == EMSdevice::EMS_DEVICE_FLAG_HIU) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_HIU || model() == EMSdevice::EMS_DEVICE_FLAG_HEATPUMP) { uint8_t state = EMS_VALUE_UINT8_NOTSET; boilerState_ = 0; if (telegram->read_value(state, 2)) { From afc2afbac09cc175789fcce9f97bf5ed14383468 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Fri, 8 Nov 2024 16:08:53 +0100 Subject: [PATCH 03/12] heatpump uoms fix #2188 --- interface/src/app/main/types.ts | 6 ++++-- src/devices/heatpump.cpp | 14 +++++++------- src/emsdevicevalue.cpp | 2 +- src/emsdevicevalue.h | 3 ++- src/locale_common.h | 1 + 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/interface/src/app/main/types.ts b/interface/src/app/main/types.ts index d037d338e..4c20fd57f 100644 --- a/interface/src/app/main/types.ts +++ b/interface/src/app/main/types.ts @@ -181,7 +181,8 @@ export enum DeviceValueUOM { K, VOLTS, MBAR, - LH + LH, + CTKWH } export const DeviceValueUOM_s = [ @@ -210,7 +211,8 @@ export const DeviceValueUOM_s = [ 'K', 'V', 'mbar', - 'l/h' + 'l/h', + 'ct/kWh' ]; export enum AnalogType { diff --git a/src/devices/heatpump.cpp b/src/devices/heatpump.cpp index de56e342a..8c87c5e02 100644 --- a/src/devices/heatpump.cpp +++ b/src/devices/heatpump.cpp @@ -82,9 +82,9 @@ Heatpump::Heatpump(uint8_t device_type, uint8_t device_id, uint8_t product_id, c DeviceValueUOM::NONE, MAKE_CF_CB(set_lowNoiseMode)); register_device_value( - DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStart_, DeviceValueType::UINT8, FL_(lowNoiseStart), DeviceValueUOM::NONE, MAKE_CF_CB(set_lowNoiseStart), 0, 23); + DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStart_, DeviceValueType::UINT8, FL_(lowNoiseStart), DeviceValueUOM::HOURS, MAKE_CF_CB(set_lowNoiseStart), 0, 23); register_device_value( - DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStop_, DeviceValueType::UINT8, FL_(lowNoiseStop), DeviceValueUOM::NONE, MAKE_CF_CB(set_lowNoiseStop), 0, 23); + DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStop_, DeviceValueType::UINT8, FL_(lowNoiseStop), DeviceValueUOM::HOURS, MAKE_CF_CB(set_lowNoiseStop), 0, 23); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hybridDHW_, DeviceValueType::ENUM, @@ -96,25 +96,25 @@ Heatpump::Heatpump(uint8_t device_type, uint8_t device_id, uint8_t product_id, c &energyPriceGas_, DeviceValueType::UINT8, FL_(energyPriceGas), - DeviceValueUOM::NONE, + DeviceValueUOM::CTKWH, MAKE_CF_CB(set_energyPriceGas)); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &energyPriceEl_, DeviceValueType::UINT8, FL_(energyPriceEl), - DeviceValueUOM::NONE, + DeviceValueUOM::CTKWH, MAKE_CF_CB(set_energyPriceEl)); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &energyPricePV_, DeviceValueType::UINT8, FL_(energyPricePV), - DeviceValueUOM::NONE, + DeviceValueUOM::CTKWH, MAKE_CF_CB(set_energyPricePV)); - register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, + register_device_value(DeviceValueTAG::TAG_DHW1, &switchOverTemp_, DeviceValueType::INT8, FL_(switchOverTemp), - DeviceValueUOM::NONE, + DeviceValueUOM::DEGREES, MAKE_CF_CB(set_switchOverTemp)); // Function test register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, diff --git a/src/emsdevicevalue.cpp b/src/emsdevicevalue.cpp index fb4be3152..9a5c4f6ec 100644 --- a/src/emsdevicevalue.cpp +++ b/src/emsdevicevalue.cpp @@ -110,7 +110,7 @@ const char * DeviceValue::DeviceValueUOM_s[] = { F_(uom_blank), // 0 F_(uom_degrees), F_(uom_degrees), F_(uom_percent), F_(uom_lmin), F_(uom_kwh), F_(uom_wh), FL_(hours)[0], FL_(minutes)[0], F_(uom_ua), F_(uom_bar), F_(uom_kw), F_(uom_w), F_(uom_kb), FL_(seconds)[0], F_(uom_dbm), F_(uom_fahrenheit), F_(uom_mv), F_(uom_sqm), - F_(uom_m3), F_(uom_l), F_(uom_kmin), F_(uom_k), F_(uom_volts), F_(uom_mbar), F_(uom_lh), F_(uom_blank) + F_(uom_m3), F_(uom_l), F_(uom_kmin), F_(uom_k), F_(uom_volts), F_(uom_mbar), F_(uom_lh), F_(uom_ctkwh), F_(uom_blank) }; diff --git a/src/emsdevicevalue.h b/src/emsdevicevalue.h index 2780e19a0..d193aa924 100644 --- a/src/emsdevicevalue.h +++ b/src/emsdevicevalue.h @@ -74,7 +74,8 @@ class DeviceValue { VOLTS, // 23 - V MBAR, // 24 - mbar LH, // 25 - l/h - CONNECTIVITY // 26 - used in HA + CTKWH, // 26 - ct/kWh + CONNECTIVITY // 27 - used in HA }; // TAG mapping - maps to DeviceValueTAG_s in emsdevice.cpp diff --git a/src/locale_common.h b/src/locale_common.h index 09ccde737..61e7de0b1 100644 --- a/src/locale_common.h +++ b/src/locale_common.h @@ -262,6 +262,7 @@ MAKE_WORD_CUSTOM(uom_k, "K") MAKE_WORD_CUSTOM(uom_volts, "V") MAKE_WORD_CUSTOM(uom_mbar, "mbar") MAKE_WORD_CUSTOM(uom_lh, "l/h") +MAKE_WORD_CUSTOM(uom_ctkwh, "ct/kWh") // MQTT topics and prefixes MAKE_WORD_CUSTOM(heating_active, "heating_active") From df92e9253fd12df72484ff7cc571c5f6617a1f30 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Fri, 8 Nov 2024 16:10:20 +0100 Subject: [PATCH 04/12] check lastcode, fix #2189, allow setting silentfrom/to as hh:mm --- src/devices/boiler.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index 412fe9bb7..905082811 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -1828,6 +1828,10 @@ void Boiler::process_UBAErrorMessage(std::shared_ptr telegram) { uint8_t min = telegram->message_data[8]; uint16_t duration = telegram->message_data[9] * 256 + telegram->message_data[10]; uint32_t date = (year - 2000) * 535680UL + month * 44640UL + day * 1440UL + hour * 60 + min + duration; + // check valid https://github.com/emsesp/EMS-ESP32/issues/2189 + if (day == 0 || day > 31 || month == 0 || month > 12 || !std::isprint(code[0]) || !std::isprint(code[1])) { + return; + } // store only the newest code from telegrams 10 and 11 if (date > lastCodeDate_ && lastCodeDate_) { lastCodeDate_ = date; @@ -1855,6 +1859,9 @@ void Boiler::process_UBAErrorMessage2(std::shared_ptr telegram) code[2] = telegram->message_data[7]; code[3] = 0; telegram->read_value(codeNo, 8); + if (!std::isprint(code[0]) || !std::isprint(code[1]) || !std::isprint(code[2])) { + return; + } // check for valid date, https://github.com/emsesp/EMS-ESP32/issues/204 if (telegram->message_data[10] & 0x80) { @@ -2970,19 +2977,19 @@ bool Boiler::set_silentMode(const char * value, const int8_t id) { } bool Boiler::set_silentFrom(const char * value, const int8_t id) { - int v; - if (!Helpers::value2number(value, v)) { + if (value == nullptr || value[0] < '0' || value[0] > '9') { return false; } + auto v = Helpers::string2minutes(value); write_command(0x484, 52, v / 15, 0x484); return true; } bool Boiler::set_silentTo(const char * value, const int8_t id) { - int v; - if (!Helpers::value2number(value, v)) { + if (value == nullptr || value[0] < '0' || value[0] > '9') { return false; } + auto v = Helpers::string2minutes(value); write_command(0x484, 53, v / 15, 0x484); return true; } From 38efb0de67497e994c1bb427f3e8f2cc0afb5a8f Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Sat, 9 Nov 2024 09:53:36 +0100 Subject: [PATCH 05/12] workaround version update check #2190 --- interface/src/app/settings/Version.tsx | 12 +++++------- src/web/WebStatusService.cpp | 5 ++++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/interface/src/app/settings/Version.tsx b/interface/src/app/settings/Version.tsx index 2855c8684..dacd284c2 100644 --- a/interface/src/app/settings/Version.tsx +++ b/interface/src/app/settings/Version.tsx @@ -42,7 +42,9 @@ const Version = () => { } ).onSuccess((event) => { const data = event.data as { emsesp_version: string; upgradeable: boolean }; - setUpgradeAvailable(data.upgradeable); + if (data.upgradeable != undefined) { + setUpgradeAvailable(data.upgradeable); + } }); const { data, send: loadData, error } = useRequest(SystemApi.readSystemStatus); @@ -60,9 +62,7 @@ const Version = () => { // immediate: false, // initialData: '3.6.5' }).onSuccess((event) => { - if (!useDev) { - void sendCheckUpgrade(event.data); - } + void sendCheckUpgrade(event.data); }); // called immediately to get the latest version, on page load, then check for upgrade (works for both dev and stable) @@ -71,9 +71,7 @@ const Version = () => { // immediate: false, // initialData: '3.7.0-dev.32' }).onSuccess((event) => { - if (useDev) { - void sendCheckUpgrade(event.data); - } + void sendCheckUpgrade(event.data); }); const STABLE_URL = 'https://github.com/emsesp/EMS-ESP32/releases/download/'; diff --git a/src/web/WebStatusService.cpp b/src/web/WebStatusService.cpp index 4c15f0227..1c5d175d8 100644 --- a/src/web/WebStatusService.cpp +++ b/src/web/WebStatusService.cpp @@ -214,7 +214,10 @@ bool WebStatusService::checkUpgrade(JsonObject root, std::string & latest_versio version::Semver200_version settings_version(EMSESP_APP_VERSION); version::Semver200_version this_version(latest_version); - root["upgradeable"] = (this_version > settings_version); + if ((this_version.prerelease().empty() && settings_version.prerelease().empty()) + || (!this_version.prerelease().empty() && !settings_version.prerelease().empty())) { + root["upgradeable"] = (this_version > settings_version); + } } return true; // always ok From a8b93dd571429e3eac669e3c2eed818bcb4eddef Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Mon, 11 Nov 2024 17:49:45 +0100 Subject: [PATCH 06/12] auxheaterstatus to auxheaterlevel, #2192 --- src/devices/boiler.cpp | 7 ++++--- src/devices/boiler.h | 1 + src/locale_translations.h | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index 905082811..3beccfd44 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -684,7 +684,8 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const FL_(auxHeaterOff), DeviceValueUOM::NONE, MAKE_CF_CB(set_additionalHeater)); - register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &auxHeaterStatus_, DeviceValueType::UINT8, FL_(auxHeaterStatus), DeviceValueUOM::PERCENT); + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &auxHeaterStatus_, DeviceValueType::BOOL, FL_(auxHeaterStatus), DeviceValueUOM::NONE); + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &auxHeaterLevel_, DeviceValueType::UINT8, FL_(auxHeaterLevel), DeviceValueUOM::PERCENT); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &auxHeaterDelay_, DeviceValueType::UINT16, @@ -1661,7 +1662,7 @@ void Boiler::process_HpPower(std::shared_ptr telegram) { has_bitupdate(telegram, hpEA0_, 3, 6); has_update(telegram, hpCircSpd_, 4); has_update(telegram, hpBrinePumpSpd_, 5); - has_update(telegram, auxHeaterStatus_, 6); + has_update(telegram, auxHeaterLevel_, 6); has_update(telegram, hpActivity_, 7); has_update(telegram, hpPower_, 11); has_update(telegram, hpCompSpd_, 17); @@ -1962,7 +1963,7 @@ void Boiler::process_HpSilentMode(std::shared_ptr telegram) { // Boiler(0x08) -B-> All(0x00), ?(0x0488), data: 8E 00 00 00 00 00 01 03 void Boiler::process_HpValve(std::shared_ptr telegram) { - // has_bitupdate(telegram, auxHeaterStatus_, 0, 2); + has_bitupdate(telegram, auxHeaterStatus_, 0, 2); has_update(telegram, auxHeatMixValve_, 7); has_update(telegram, pc1Rate_, 13); // percent } diff --git a/src/devices/boiler.h b/src/devices/boiler.h index 7c4df0b1a..2879e90d9 100644 --- a/src/devices/boiler.h +++ b/src/devices/boiler.h @@ -266,6 +266,7 @@ class Boiler : public EMSdevice { uint8_t auxHeaterOnly_; uint8_t auxHeaterOff_; uint8_t auxHeaterStatus_; + uint8_t auxHeaterLevel_; uint16_t auxHeaterDelay_; uint8_t silentMode_; int8_t minTempSilent_; diff --git a/src/locale_translations.h b/src/locale_translations.h index fc0133e37..78ac39ffe 100644 --- a/src/locale_translations.h +++ b/src/locale_translations.h @@ -445,6 +445,7 @@ MAKE_TRANSLATION(maxHeatDhw, "maxheat", "heat limit", "Heizstab Limit für WW", MAKE_TRANSLATION(auxHeaterOff, "auxheateroff", "disable aux heater", "Zusatzheizer deaktivieren", "Bijverwarming uitsc", "Blockera eltillskott", "wyłącz dogrzewacz", "deaktiver tilleggsvarme", "Désactiver chauff. d'app", "ilave ısıtıcıyı kapat", "disattivare i riscaldatori addizionali", "vypnúť pomocný ohrievač", "zakázat pomocné topení") MAKE_TRANSLATION(auxHeaterStatus, "auxheaterstatus", "aux heater status", "Zusatzheizerstatus", "Bijverwarming", "Eltillskott Status", "status dogrzewacza", "status el. tillegsvarme", "Chauffage auxiliaire", "ilave ısıtıcı durumu", "stato riscaldatori addizionali", "stav pomocného ohrievača", "stav pomocného topení") +MAKE_TRANSLATION(auxHeaterLevel, "auxheaterlevel", "aux heater level", "Zusatzheizer", "Bijverwarming", "Eltillskott", "dogrzewacza", "el. tillegsvarme", "Chauffage auxiliaire", "ilave ısıtıcı durumu", "riscaldatori addizionali", "pomocného ohrievača", "pomocného topení") MAKE_TRANSLATION(auxHeaterOnly, "auxheateronly", "aux heater only", "nur Zusatzheizer", "Alleen bijverwarming", "Eltillskott Enbart", "tylko dogrzewacz", "kun el tilleggsvarme", "Que chauffage auxiliaire", "sadece ilave ısıtıvcı", "solo riscaldatori addizionali", "iba pomocný ohrievač", "pouze pomocné topení") MAKE_TRANSLATION(auxHeaterDelay, "auxheaterdelay", "aux heater on delay", "Zusatzheizer verzögert ein", "Bijverw. vertraagd aan", "Eltillskottfördröjning på", "opóźnienie włączenia dogrzewacza", "Tilleggsvarmer forsinket på", "Chauff app tempo marche", "ilave ısıtıcı beklemede", "ritardo riscaldatori addizionali", "oneskorenie prídavného ohrievača", "zpoždění zapnutí pomocného topení") MAKE_TRANSLATION(silentMode, "silentmode", "silent mode", "Silentmodus", "Stiller gebruik", "Tyst läge", "tryb cichy", "stille modus", "Fct silencieux", "sessiz mod", "modalità silenziosa", "tichý režim", "tichý režim") From 11fd81f25fbff5e801da826efe8bb71750bdc1cf Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Mon, 11 Nov 2024 17:50:12 +0100 Subject: [PATCH 07/12] add MX400, #2198 --- src/device_library.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/device_library.h b/src/device_library.h index 62b82a9cd..d8e80475f 100644 --- a/src/device_library.h +++ b/src/device_library.h @@ -180,6 +180,7 @@ { 74, DeviceType::ALERT, "EM10", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // Gateways - 0x48 +{17, DeviceType::GATEWAY, "MX400", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x48 and 0x4B {189, DeviceType::GATEWAY, "KM200, MB LAN 2", DeviceFlags::EMS_DEVICE_FLAG_NONE}, {252, DeviceType::GATEWAY, "K30RF, MX300", DeviceFlags::EMS_DEVICE_FLAG_NONE}, From 52552de300027ce903404e07581ff4aa93075fab Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Mon, 11 Nov 2024 17:51:43 +0100 Subject: [PATCH 08/12] fix wrong dhw mapping, #2188 --- src/devices/heatpump.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/devices/heatpump.cpp b/src/devices/heatpump.cpp index 8c87c5e02..f4549edfe 100644 --- a/src/devices/heatpump.cpp +++ b/src/devices/heatpump.cpp @@ -85,7 +85,7 @@ Heatpump::Heatpump(uint8_t device_type, uint8_t device_id, uint8_t product_id, c DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStart_, DeviceValueType::UINT8, FL_(lowNoiseStart), DeviceValueUOM::HOURS, MAKE_CF_CB(set_lowNoiseStart), 0, 23); register_device_value( DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStop_, DeviceValueType::UINT8, FL_(lowNoiseStop), DeviceValueUOM::HOURS, MAKE_CF_CB(set_lowNoiseStop), 0, 23); - register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, + register_device_value(DeviceValueTAG::TAG_DHW1, &hybridDHW_, DeviceValueType::ENUM, FL_(enum_comfort2), @@ -110,7 +110,7 @@ Heatpump::Heatpump(uint8_t device_type, uint8_t device_id, uint8_t product_id, c FL_(energyPricePV), DeviceValueUOM::CTKWH, MAKE_CF_CB(set_energyPricePV)); - register_device_value(DeviceValueTAG::TAG_DHW1, + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &switchOverTemp_, DeviceValueType::INT8, FL_(switchOverTemp), From 5b1266a63837c1af4dbd65c92a2691e622a10448 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Mon, 11 Nov 2024 18:05:35 +0100 Subject: [PATCH 09/12] update pkg --- interface/package.json | 4 ++-- interface/yarn.lock | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/interface/package.json b/interface/package.json index a75874e78..904e95cad 100644 --- a/interface/package.json +++ b/interface/package.json @@ -59,9 +59,9 @@ "rollup-plugin-visualizer": "^5.12.0", "terser": "^5.36.0", "typescript-eslint": "8.13.0", - "vite": "^5.4.10", + "vite": "^5.4.11", "vite-plugin-imagemin": "^0.6.1", - "vite-tsconfig-paths": "^5.1.1" + "vite-tsconfig-paths": "^5.1.2" }, "packageManager": "yarn@4.5.1" } diff --git a/interface/yarn.lock b/interface/yarn.lock index 9c955c8b0..edbc0ac29 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -1695,9 +1695,9 @@ __metadata: typesafe-i18n: "npm:^5.26.2" typescript: "npm:^5.6.3" typescript-eslint: "npm:8.13.0" - vite: "npm:^5.4.10" + vite: "npm:^5.4.11" vite-plugin-imagemin: "npm:^0.6.1" - vite-tsconfig-paths: "npm:^5.1.1" + vite-tsconfig-paths: "npm:^5.1.2" languageName: unknown linkType: soft @@ -6954,9 +6954,9 @@ __metadata: languageName: node linkType: hard -"vite-tsconfig-paths@npm:^5.1.1": - version: 5.1.1 - resolution: "vite-tsconfig-paths@npm:5.1.1" +"vite-tsconfig-paths@npm:^5.1.2": + version: 5.1.2 + resolution: "vite-tsconfig-paths@npm:5.1.2" dependencies: debug: "npm:^4.1.1" globrex: "npm:^0.1.2" @@ -6966,13 +6966,13 @@ __metadata: peerDependenciesMeta: vite: optional: true - checksum: 10c0/7d18e2f6daa057e21885bffd3dc751f2a8fe1f249a70e4ca35b944c505d1b59d6e7c3f2278afef5139aa4cabdcb307567d3d26f2009dcccff4281c485c89a231 + checksum: 10c0/7db445b6b1f48e7b89f39f5eb8cf4ea645994f581fcc7c9fac721e0c36f8203c0770007ec27825caa6e2566e3127b2b1bfe8be28ca05cd0e9fb67a2943dcdec5 languageName: node linkType: hard -"vite@npm:^5.4.10": - version: 5.4.10 - resolution: "vite@npm:5.4.10" +"vite@npm:^5.4.11": + version: 5.4.11 + resolution: "vite@npm:5.4.11" dependencies: esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" @@ -7009,7 +7009,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/4ef4807d2fd166a920de244dbcec791ba8a903b017a7d8e9f9b4ac40d23f8152c1100610583d08f542b47ca617a0505cfc5f8407377d610599d58296996691ed + checksum: 10c0/d536bb7af57dd0eca2a808f95f5ff1d7b7ffb8d86e17c6893087680a0448bd0d15e07475270c8a6de65cb5115592d037130a1dd979dc76bcef8c1dda202a1874 languageName: node linkType: hard From d899b5828459edb18e64e1c6982fa656029c076b Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 14 Nov 2024 07:48:28 +0100 Subject: [PATCH 10/12] raw send priority, don't retry rejected telegrams --- src/emsesp.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/emsesp.cpp b/src/emsesp.cpp index bae7a1b67..86e01b739 100644 --- a/src/emsesp.cpp +++ b/src/emsesp.cpp @@ -971,7 +971,12 @@ void EMSESP::process_deviceName(std::shared_ptr telegram) { char name[16]; uint8_t len = telegram->offset + telegram->message_length - 27; strlcpy(name, (const char *)&telegram->message_data[27 - telegram->offset], len < 16 ? len : 16); - if (strlen(name)) { + char * c = name; + while (isprint(*c)) { + c++; + }; + *c = '\0'; + if (strlen(name) > 2) { // https://github.com/emsesp/EMS-ESP32/issues/2166#issuecomment-2454488657 LOG_DEBUG("Model name received for device 0x%02X: %s", telegram->src, name); for (const auto & emsdevice : emsdevices) { if (emsdevice->is_device_id(telegram->src)) { @@ -1462,6 +1467,11 @@ void EMSESP::incoming_telegram(uint8_t * data, const uint8_t length) { } else if (first_value == TxService::TX_WRITE_FAIL) { LOG_ERROR("Last Tx write rejected by host"); txservice_.send_poll(); // close the bus + txservice_.reset_retry_count(); + tx_successful = true; // no retries + } else { + txservice_.send_poll(); // close the bus + LOG_ERROR("Last Tx write host reply: 0x%02X", first_value); } } else if (tx_state == Telegram::Operation::TX_READ && length == 1) { EMSbus::tx_state(Telegram::Operation::TX_READ); // reset Tx wait state @@ -1528,9 +1538,11 @@ void EMSESP::incoming_telegram(uint8_t * data, const uint8_t length) { // check for poll to us, if so send top message from Tx queue immediately and quit if (poll_id == txservice_.get_send_id()) { txservice_.send(); + } else { + // send remote room temperature if active + Roomctrl::send(poll_id); } - // send remote room temperature if active - Roomctrl::send(poll_id); + return; } else { #ifdef EMSESP_UART_DEBUG From 18115580690498a30d1896bd838c07510aad58ec Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 14 Nov 2024 12:27:38 +0100 Subject: [PATCH 11/12] fix read too many telegram parts, 3.7.1-dev.6 --- CHANGELOG_LATEST.md | 7 ++++++- src/emsesp.cpp | 2 +- src/version.h | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 891f62694..442112259 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -10,7 +10,8 @@ For more details go to [www.emsesp.org](https://www.emsesp.org/). - include HA "unit_of_meas", "stat_cla" and "dev_cla" attributes for Number sensors [#2149](https://github.com/emsesp/EMS-ESP32/issues/2149) - Bosch CS6800i AW - Silent Mode + Electrical Power Reduction (HP) [#2147](https://github.com/emsesp/EMS-ESP32/issues/2147) -- /api/system/showeralert and /api/system/showertimer [#2182](https://github.com/emsesp/EMS-ESP32/issues/2182) +- `/api/system/showeralert` and `/api/system/showertimer` [#2182](https://github.com/emsesp/EMS-ESP32/issues/2182) +- MX400 [#2198](https://github.com/emsesp/EMS-ESP32/issues/2198) ## Fixed @@ -18,5 +19,9 @@ For more details go to [www.emsesp.org](https://www.emsesp.org/). - fix changing TZ in NTPsettings without clearing enable+server, added DST support [#2142](https://github.com/emsesp/EMS-ESP32/issues/2142) - Support MQTT Discovery (AD) with Domoticz [#2177](https://github.com/emsesp/EMS-ESP32/issues/2177) - wwExtra (dhw extra) changed from temperature reading to number +- auxheaterstatus [#2192](https://github.com/emsesp/EMS-ESP32/issues/2192) +- lastCode character check [#2189](https://github.com/emsesp/EMS-ESP32/issues/2189) +- reading too many telegram parts +- heatpump cost UOMs [#2188](https://github.com/emsesp/EMS-ESP32/issues/2188) ## Changed diff --git a/src/emsesp.cpp b/src/emsesp.cpp index 86e01b739..8b54bc4fe 100644 --- a/src/emsesp.cpp +++ b/src/emsesp.cpp @@ -1488,7 +1488,7 @@ void EMSESP::incoming_telegram(uint8_t * data, const uint8_t length) { // if telegram is longer read next part with offset +25 for ems+ or +27 for ems1.0 // not for response to raw send commands without read_id set - if ((response_id_ == 0 || read_id_ > 0) && (txservice_.read_next_tx(data[3], length) == read_id_)) { + if ((response_id_ == 0 || read_id_ > 0) && (txservice_.read_next_tx(data[3], length) > 0)) { read_next_ = true; txservice_.send(); // read next part withing same poll or: // txservice_.send_poll(); // close the bus, next request in new poll diff --git a/src/version.h b/src/version.h index 4386509df..9e1b03802 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.7.1-dev.5" \ No newline at end of file +#define EMSESP_APP_VERSION "3.7.1-dev.6" \ No newline at end of file From b6d2ab6adb0491cfb60ce3e08af97ab589e22ce6 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 14 Nov 2024 12:44:01 +0100 Subject: [PATCH 12/12] update pkg --- interface/package.json | 8 +- interface/yarn.lock | 204 ++++++++++++++++++++--------------------- 2 files changed, 106 insertions(+), 106 deletions(-) diff --git a/interface/package.json b/interface/package.json index 904e95cad..d98fc8fc5 100644 --- a/interface/package.json +++ b/interface/package.json @@ -24,10 +24,10 @@ "@alova/adapter-xhr": "2.0.10", "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", - "@mui/icons-material": "^6.1.6", - "@mui/material": "^6.1.6", + "@mui/icons-material": "^6.1.7", + "@mui/material": "^6.1.7", "@table-library/react-table-library": "4.1.7", - "alova": "3.2.2", + "alova": "3.2.3", "async-validator": "^4.2.5", "jwt-decode": "^4.0.0", "mime-types": "^2.1.35", @@ -58,7 +58,7 @@ "prettier": "^3.3.3", "rollup-plugin-visualizer": "^5.12.0", "terser": "^5.36.0", - "typescript-eslint": "8.13.0", + "typescript-eslint": "8.14.0", "vite": "^5.4.11", "vite-plugin-imagemin": "^0.6.1", "vite-tsconfig-paths": "^5.1.2" diff --git a/interface/yarn.lock b/interface/yarn.lock index edbc0ac29..fe0f8b238 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -840,38 +840,38 @@ __metadata: languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^6.1.6": - version: 6.1.6 - resolution: "@mui/core-downloads-tracker@npm:6.1.6" - checksum: 10c0/538c561dc46e040ebc5ea884428dccc427fdddbd3747890d96ae52648eed5f7dec4dc8294927b58ff4b7481c0a813dcb16b9d7b9b08cc43871d2d55ebd1a8002 +"@mui/core-downloads-tracker@npm:^6.1.7": + version: 6.1.7 + resolution: "@mui/core-downloads-tracker@npm:6.1.7" + checksum: 10c0/4568379b1df8a17ca2292b7caa729f42c3b4b359841c81981a7d25641380121f3a042e53094cabd16d5c838372edadb8c23c24d9bff0fcc794c615b62f0ceb3e languageName: node linkType: hard -"@mui/icons-material@npm:^6.1.6": - version: 6.1.6 - resolution: "@mui/icons-material@npm:6.1.6" +"@mui/icons-material@npm:^6.1.7": + version: 6.1.7 + resolution: "@mui/icons-material@npm:6.1.7" dependencies: "@babel/runtime": "npm:^7.26.0" peerDependencies: - "@mui/material": ^6.1.6 + "@mui/material": ^6.1.7 "@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/a6eb10be3cc356fd404febf29a3b26fa63b6b09d3148736fb05279954905186e9804869ff18220840ae92dbdeddfd407c2d0c72b9e165e01fd6bbc620b6b39d7 + checksum: 10c0/89f6d69dce35aa0b2fd2586f0de3a01171ba85b6c2b848dd0d1cfca0840778eafc90465efeb822451f4066df9791099ff8a683df4cacea98bc3affbc9b80c891 languageName: node linkType: hard -"@mui/material@npm:^6.1.6": - version: 6.1.6 - resolution: "@mui/material@npm:6.1.6" +"@mui/material@npm:^6.1.7": + version: 6.1.7 + resolution: "@mui/material@npm:6.1.7" dependencies: "@babel/runtime": "npm:^7.26.0" - "@mui/core-downloads-tracker": "npm:^6.1.6" - "@mui/system": "npm:^6.1.6" + "@mui/core-downloads-tracker": "npm:^6.1.7" + "@mui/system": "npm:^6.1.7" "@mui/types": "npm:^7.2.19" - "@mui/utils": "npm:^6.1.6" + "@mui/utils": "npm:^6.1.7" "@popperjs/core": "npm:^2.11.8" "@types/react-transition-group": "npm:^4.4.11" clsx: "npm:^2.1.1" @@ -882,7 +882,7 @@ __metadata: peerDependencies: "@emotion/react": ^11.5.0 "@emotion/styled": ^11.3.0 - "@mui/material-pigment-css": ^6.1.6 + "@mui/material-pigment-css": ^6.1.7 "@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 @@ -895,16 +895,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10c0/b54c0b01f33f63a700ec7b13d615dd3a109497ee48a1af0f750f780112a7034fbecfcecf29ad67aa62ec12047d465fbcb243052d8680ce681240096fef1f8d63 + checksum: 10c0/2c049da6b8f4bc79a0777692138ff77a0cb64b96c384d7070097c006391798554923806fed1ef8c6db8730f11c058edfb94bd243d2abeff14e45fd51d1f29819 languageName: node linkType: hard -"@mui/private-theming@npm:^6.1.6": - version: 6.1.6 - resolution: "@mui/private-theming@npm:6.1.6" +"@mui/private-theming@npm:^6.1.7": + version: 6.1.7 + resolution: "@mui/private-theming@npm:6.1.7" dependencies: "@babel/runtime": "npm:^7.26.0" - "@mui/utils": "npm:^6.1.6" + "@mui/utils": "npm:^6.1.7" prop-types: "npm:^15.8.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -912,13 +912,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/d9138bd3ae8b318b0f14e3d9a9aa414f31698ce3934b94f0a1e78d9c2c37fd3d2b24a6bd45ded321ffc41658e70fc055226b9c1b9767695a93c927adf54302a0 + checksum: 10c0/2735c0e7155fd595c5f6fd87a20a74a222f1ef3120722d1964fa231c075b909b77612ac3e3a8bb5604a388205f4495690bc0602ceabe925294ed6a5fbe8144da languageName: node linkType: hard -"@mui/styled-engine@npm:^6.1.6": - version: 6.1.6 - resolution: "@mui/styled-engine@npm:6.1.6" +"@mui/styled-engine@npm:^6.1.7": + version: 6.1.7 + resolution: "@mui/styled-engine@npm:6.1.7" dependencies: "@babel/runtime": "npm:^7.26.0" "@emotion/cache": "npm:^11.13.1" @@ -935,19 +935,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: 10c0/2554248f83db98b404b299494c4f039fe5a1f1b9166fc95268958ea00aa3be04915ffbabe0ea418cb2d600e11b6d08f765ddd23240a63e6d06161d07eaac6aa8 + checksum: 10c0/0289121553ab95f6ddd1be0eeb27e975a01391266ff3076430ab67d925c231b586fc2899f8340648b4587c651bd3f7fd24094f43386f6de9052db92a98e13c15 languageName: node linkType: hard -"@mui/system@npm:^6.1.6": - version: 6.1.6 - resolution: "@mui/system@npm:6.1.6" +"@mui/system@npm:^6.1.7": + version: 6.1.7 + resolution: "@mui/system@npm:6.1.7" dependencies: "@babel/runtime": "npm:^7.26.0" - "@mui/private-theming": "npm:^6.1.6" - "@mui/styled-engine": "npm:^6.1.6" + "@mui/private-theming": "npm:^6.1.7" + "@mui/styled-engine": "npm:^6.1.7" "@mui/types": "npm:^7.2.19" - "@mui/utils": "npm:^6.1.6" + "@mui/utils": "npm:^6.1.7" clsx: "npm:^2.1.1" csstype: "npm:^3.1.3" prop-types: "npm:^15.8.1" @@ -963,7 +963,7 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10c0/125d38ad5b0d610cfedace8253e43b4be47b46ad2d96eeac019c6c37b4f09286512e2280924753f8bb0314c4d7cc5e8f03fc7f97cf9830c4f6d1869b721eb8c2 + checksum: 10c0/309db6f87bc7e489486f683961d032faad4804e7a3263f584b0a82e3286831a596f416be69066967a76253938e604cbb87bdfe4f9b8feed683b40ca7c4b8d8f2 languageName: node linkType: hard @@ -979,9 +979,9 @@ __metadata: languageName: node linkType: hard -"@mui/utils@npm:^6.1.6": - version: 6.1.6 - resolution: "@mui/utils@npm:6.1.6" +"@mui/utils@npm:^6.1.7": + version: 6.1.7 + resolution: "@mui/utils@npm:6.1.7" dependencies: "@babel/runtime": "npm:^7.26.0" "@mui/types": "npm:^7.2.19" @@ -995,7 +995,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/8752b3ca3fa1cee7f1a8477b6babcd80fef01724f7d8106c8665a252ec960ca38ef5f4fe21cfb60ee11176a9a8034400420d5b0719953ecc2c4f25980682614c + checksum: 10c0/8dc05bf8f48d6d6d24cb9950b705e8b48eedac8dba159514c5c61ec2da54c9de3f40ff33e8a662eb661af6fbbf9c80b83277eefba6e54a1b5fa26a377ec0d694 languageName: node linkType: hard @@ -1539,15 +1539,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.13.0" +"@typescript-eslint/eslint-plugin@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.14.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.13.0" - "@typescript-eslint/type-utils": "npm:8.13.0" - "@typescript-eslint/utils": "npm:8.13.0" - "@typescript-eslint/visitor-keys": "npm:8.13.0" + "@typescript-eslint/scope-manager": "npm:8.14.0" + "@typescript-eslint/type-utils": "npm:8.14.0" + "@typescript-eslint/utils": "npm:8.14.0" + "@typescript-eslint/visitor-keys": "npm:8.14.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -1558,66 +1558,66 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/ee96515e9def17b0d1b8d568d4afcd21c5a8a1bc01bf2f30c4d1f396b41a2f49de3508f79c6231a137ca06943dd6933ac00032652190ab99a4e935ffef44df0b + checksum: 10c0/46c82eb45be82ffec0ab04728a5180691b1d17002c669864861a3044b6d2105a75ca23cc80d18721b40b5e7dff1eff4ed68a43d726e25d55f3e466a9fbeeb873 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/parser@npm:8.13.0" +"@typescript-eslint/parser@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/parser@npm:8.14.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.13.0" - "@typescript-eslint/types": "npm:8.13.0" - "@typescript-eslint/typescript-estree": "npm:8.13.0" - "@typescript-eslint/visitor-keys": "npm:8.13.0" + "@typescript-eslint/scope-manager": "npm:8.14.0" + "@typescript-eslint/types": "npm:8.14.0" + "@typescript-eslint/typescript-estree": "npm:8.14.0" + "@typescript-eslint/visitor-keys": "npm:8.14.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/fa04f6c417c0f72104e148f1d7ff53e04108d383550365a556fbfae5d2283484696235db522189e17bc49039946977078e324100cef991ca01f78704182624ad + checksum: 10c0/522b7afd25cd302c0510cc71985ba55ff92ecc5dbe3fc74a76fefea0169252fdd4b8cad6291fef05f63dfc173951af450dca20859c7f23e387b2e7410e8b97b1 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/scope-manager@npm:8.13.0" +"@typescript-eslint/scope-manager@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/scope-manager@npm:8.14.0" dependencies: - "@typescript-eslint/types": "npm:8.13.0" - "@typescript-eslint/visitor-keys": "npm:8.13.0" - checksum: 10c0/1924b3e740e244d98f8a99740b4196d23ae3263303b387c66db94e140455a3132e603a130f3f70fc71e37f4bda5d0c0c67224ae3911908b097ef3f972c136be4 + "@typescript-eslint/types": "npm:8.14.0" + "@typescript-eslint/visitor-keys": "npm:8.14.0" + checksum: 10c0/1e1295c6f9febadf63559aad328b23d960510ce6b4c9f74e10d881c3858fa7f1db767cd1af5272d2fe7c9c5c7daebee71854e6f841e413e5d70af282f6616e26 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/type-utils@npm:8.13.0" +"@typescript-eslint/type-utils@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/type-utils@npm:8.14.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.13.0" - "@typescript-eslint/utils": "npm:8.13.0" + "@typescript-eslint/typescript-estree": "npm:8.14.0" + "@typescript-eslint/utils": "npm:8.14.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/65319084616f3aea3d9f8dfab30c9b0a70de7314b445805016fdf0d0e39fe073eef2813c3e16c3e1c6a40462ba8eecfdbb12ab1e8570c3407a1cccdb69d4bc8b + checksum: 10c0/42616a664b38ca418e13504247e5e1bad6ae85c045b48e5735ffab977d4bd58cc86fb9d2292bbb314fa408d78d4b0454c3a27dbf9f881f9921917a942825c806 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/types@npm:8.13.0" - checksum: 10c0/bd3f88b738a92b2222f388bcf831357ef8940a763c2c2eb1947767e1051dd2f8bee387020e8cf4c2309e4142353961b659abc2885e30679109a0488b0bfefc23 +"@typescript-eslint/types@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/types@npm:8.14.0" + checksum: 10c0/7707f900e24e60e6780c5705f69627b7c0ef912cb3b095dfc8f4a0c84e866c66b1c4c10278cf99724560dc66985ec640750c4192786a09b853f9bb4c3ca5a7ce languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.13.0" +"@typescript-eslint/typescript-estree@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.14.0" dependencies: - "@typescript-eslint/types": "npm:8.13.0" - "@typescript-eslint/visitor-keys": "npm:8.13.0" + "@typescript-eslint/types": "npm:8.14.0" + "@typescript-eslint/visitor-keys": "npm:8.14.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -1627,31 +1627,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/2d45bc5ed4ac352bea927167ac28ef23bd13b6ae352ff50e85cddfdc4b06518f1dd4ae5f2495e30d6f62d247987677a4e807065d55829ba28963908a821dc96d + checksum: 10c0/5e890d22bd067095f871cf144907a8c302db5b5f014c58906ad58d7f23569951cba805042eac6844744e5abb0d3648c9cc221a91b0703da0a8d6345dc1f83e74 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/utils@npm:8.13.0" +"@typescript-eslint/utils@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/utils@npm:8.14.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.13.0" - "@typescript-eslint/types": "npm:8.13.0" - "@typescript-eslint/typescript-estree": "npm:8.13.0" + "@typescript-eslint/scope-manager": "npm:8.14.0" + "@typescript-eslint/types": "npm:8.14.0" + "@typescript-eslint/typescript-estree": "npm:8.14.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/3fc5a7184a949df5f5b64f6af039a1d21ef7fe15f3d88a5d485ccbb535746d18514751143993a5aee287228151be3e326baf8f899a0a0a93368f6f20857ffa6d + checksum: 10c0/1fcc2651d870832a799a5d1c85fc9421853508a006d6a6073c8316b012489dda77e123d13aea8f53eb9030a2da2c0eb273a6946a9941caa2519b99b33e89b720 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.13.0" +"@typescript-eslint/visitor-keys@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.14.0" dependencies: - "@typescript-eslint/types": "npm:8.13.0" + "@typescript-eslint/types": "npm:8.14.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/50b35f3cf673aaed940613f0007f7c4558a89ebef15c49824e65b6f084b700fbf01b01a4e701e24bbe651297a39678645e739acd255255f1603867a84bef0383 + checksum: 10c0/d0faf70ed9ecff5e36694bbb161a90bea6db59e0e79a7d4f264d67d565c12b13733d664b736b2730935f013c87ce3155cea954a533d28e99987681bc5f6259c3 languageName: node linkType: hard @@ -1664,8 +1664,8 @@ __metadata: "@emotion/react": "npm:^11.13.3" "@emotion/styled": "npm:^11.13.0" "@eslint/js": "npm:^9.14.0" - "@mui/icons-material": "npm:^6.1.6" - "@mui/material": "npm:^6.1.6" + "@mui/icons-material": "npm:^6.1.7" + "@mui/material": "npm:^6.1.7" "@preact/compat": "npm:^18.3.1" "@preact/preset-vite": "npm:^2.9.1" "@table-library/react-table-library": "npm:4.1.7" @@ -1675,7 +1675,7 @@ __metadata: "@types/react": "npm:^18.3.12" "@types/react-dom": "npm:^18.3.1" "@types/react-router-dom": "npm:^5.3.3" - alova: "npm:3.2.2" + alova: "npm:3.2.3" async-validator: "npm:^4.2.5" concurrently: "npm:^9.1.0" eslint: "npm:^9.14.0" @@ -1694,7 +1694,7 @@ __metadata: terser: "npm:^5.36.0" typesafe-i18n: "npm:^5.26.2" typescript: "npm:^5.6.3" - typescript-eslint: "npm:8.13.0" + typescript-eslint: "npm:8.14.0" vite: "npm:^5.4.11" vite-plugin-imagemin: "npm:^0.6.1" vite-tsconfig-paths: "npm:^5.1.2" @@ -1766,13 +1766,13 @@ __metadata: languageName: node linkType: hard -"alova@npm:3.2.2": - version: 3.2.2 - resolution: "alova@npm:3.2.2" +"alova@npm:3.2.3": + version: 3.2.3 + resolution: "alova@npm:3.2.3" dependencies: "@alova/shared": "npm:1.1.0" rate-limiter-flexible: "npm:^5.0.3" - checksum: 10c0/e01f827fd07e4e532b6d82fcd9e2ce6fe2866704f5e895085c7de63b00a9caaa2cf1dbf8537292d840a5f1903974f2e7296c16b0beda0bd375d1bdd68c17297e + checksum: 10c0/58027f57d5f32d472a5c35110105fdff1a6b772684794a8b00b73289ecde0fa1117160b7904f0a1f8ddc14068d9aecf66fcec76eb868ff20964d81a842a313ea languageName: node linkType: hard @@ -6771,17 +6771,17 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:8.13.0": - version: 8.13.0 - resolution: "typescript-eslint@npm:8.13.0" +"typescript-eslint@npm:8.14.0": + version: 8.14.0 + resolution: "typescript-eslint@npm:8.14.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.13.0" - "@typescript-eslint/parser": "npm:8.13.0" - "@typescript-eslint/utils": "npm:8.13.0" + "@typescript-eslint/eslint-plugin": "npm:8.14.0" + "@typescript-eslint/parser": "npm:8.14.0" + "@typescript-eslint/utils": "npm:8.14.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/a84958e7602360c4cb2e6227fd9aae19dd18cdf1a2cfd9ece2a81d54098f80454b5707e861e98547d0b2e5dae552b136aa6733b74f0dd743ca7bfe178083c441 + checksum: 10c0/b9c2f32139d3df52057bfb80d4663fd5e440ccd0da75d92fe91582fe5216213e7012ef691e7d91c75e402e373b9aded6b128b005aaeeae32d7b9d7b39732bcc7 languageName: node linkType: hard