Skip to content

Commit

Permalink
Merge upstream tag 'v25.2.3'
Browse files Browse the repository at this point in the history
  • Loading branch information
schlimmchen authored Feb 4, 2025
2 parents ab95aa3 + 0a0c961 commit 4f29817
Show file tree
Hide file tree
Showing 11 changed files with 783 additions and 51 deletions.
4 changes: 4 additions & 0 deletions include/WebApi_network.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@

class WebApiNetworkClass {
public:
WebApiNetworkClass();
void init(AsyncWebServer& server, Scheduler& scheduler);

private:
void onNetworkStatus(AsyncWebServerRequest* request);
void onNetworkAdminGet(AsyncWebServerRequest* request);
void onNetworkAdminPost(AsyncWebServerRequest* request);

Task _applyDataTask;
void applyDataTaskCb();
};
701 changes: 701 additions & 0 deletions lang/el.lang.json

Large diffs are not rendered by default.

9 changes: 7 additions & 2 deletions lang/es.lang.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
"2005": "Modelo desconocido! Por favor, informe el \"Modelo de pieza de hardware\" y el modelo (por ejemplo, HM-350) como un problema en <a href=\"https://github.com/tbnobody/OpenDTU/issues\" target=\"_blank\">aquí</a>.",
"3001": "No se eliminó nada",
"3002": "Configuración borrada. Reinicio en curso...",
"3003": "File successful deleted. Restart to apply changes!",
"4001": "@:apiresponse.2001",
"4002": "El nombre debe tener entre 1 y {max} caracteres de longitud!",
"4003": "Solo se admiten {max} inversores!",
Expand Down Expand Up @@ -583,8 +584,6 @@
"fileadmin": {
"ConfigManagement": "Gestión de Configuración",
"BackupHeader": "Copia de seguridad: Copia de Seguridad del Archivo de Configuración",
"BackupConfig": "Copia de seguridad del archivo de configuración",
"Backup": "Copia de seguridad",
"Restore": "Restaurar",
"NoFileSelected": "Ningún archivo seleccionado",
"RestoreHeader": "Restaurar: Restaurar el Archivo de Configuración",
Expand All @@ -597,6 +596,12 @@
"FactoryReset": "Restablecimiento de Fábrica",
"ResetMsg": "¿Está seguro de que desea eliminar la configuración actual y restablecer todas las configuraciones a sus valores predeterminados de fábrica?",
"ResetConfirm": "Restablecimiento de Fábrica",
"Download": "Download",
"Delete": "Delete",
"DeleteMsg": "Are you sure you want to delete file: '{name}'? You have to manually reboot the device to apply config changes!",
"Name": "Name",
"Size": "Size",
"Action": "Action",
"Cancel": "@:base.Cancel",
"InvalidJson": "JSON file is formatted incorrectly.",
"InvalidJsonContent": "JSON file has the wrong content."
Expand Down
9 changes: 7 additions & 2 deletions lang/it.lang.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
"2005": "Invalid country selection!",
"3001": "Not deleted anything!",
"3002": "Configuration resettet. Rebooting now...",
"3003": "File successful deleted. Restart to apply changes!",
"4001": "@:apiresponse.2001",
"4002": "Name must between 1 and {max} characters long!",
"4003": "Only {max} inverters are supported!",
Expand Down Expand Up @@ -583,8 +584,6 @@
"fileadmin": {
"ConfigManagement": "Configurazione Gestione",
"BackupHeader": "Backup: Configurazione File Backup",
"BackupConfig": "Esegui il backup del file",
"Backup": "Backup",
"Restore": "Ripristina",
"NoFileSelected": "Nessun file selezionato",
"RestoreHeader": "Ripristina: Ripristina File Configurazione",
Expand All @@ -597,6 +596,12 @@
"FactoryReset": "Factory Reset",
"ResetMsg": "Sei sicuro di voler cancellare la configurazione attuale e applicare la configurazione di fabbrica?",
"ResetConfirm": "Factory Reset!",
"Download": "Download",
"Delete": "Delete",
"DeleteMsg": "Are you sure you want to delete file: '{name}'? You have to manually reboot the device to apply config changes!",
"Name": "Name",
"Size": "Size",
"Action": "Action",
"Cancel": "@:base.Cancel",
"InvalidJson": "JSON file is formatted incorrectly.",
"InvalidJsonContent": "JSON file has the wrong content."
Expand Down
2 changes: 1 addition & 1 deletion lib/Hoymiles/src/inverters/HMS_4CH.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ bool HMS_4CH::isValidSerial(const uint64_t serial)
{
// serial >= 0x116400000000 && serial <= 0x1164ffffffff
uint16_t preSerial = (serial >> 32) & 0xffff;
return preSerial == 0x1164;
return preSerial == 0x1164 || preSerial == 0x1420;
}

String HMS_4CH::typeName() const
Expand Down
2 changes: 1 addition & 1 deletion lib/Hoymiles/src/inverters/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
| HMS_1CH | HMS-300/350/400/450/500-1T | 1124 |
| HMS_1CHv2 | HMS-450/500-1T v2 | 1125, 1400 |
| HMS_2CH | HMS-600/700/800/900/1000-2T | 1143, 1144, 1410 |
| HMS_4CH | HMS-1600/1800/2000-4T | 1164 |
| HMS_4CH | HMS-1600/1800/2000-4T | 1164, 1420 |
| HMT_4CH | HMT-1600/1800/2000-4T | 1361 |
| HMT_6CH | HMT-1800/2250-6T | 1382 |
| HERF_1CH | HERF 300 | 2841 |
Expand Down
6 changes: 5 additions & 1 deletion lib/Hoymiles/src/parser/SystemConfigParaParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,11 @@ float SystemConfigParaParser::getLimitPercent() const
HOY_SEMAPHORE_TAKE();
const float ret = ((static_cast<uint16_t>(_payload[2]) << 8) | _payload[3]) / 10.0;
HOY_SEMAPHORE_GIVE();
return ret;

// don't pretend the inverter could produce more than its rated power,
// even though it does process, accept, and even save limit values beyond
// its rated power.
return min<float>(100, ret);
}

void SystemConfigParaParser::setLimitPercent(const float value)
Expand Down
4 changes: 2 additions & 2 deletions platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ extra_configs =
custom_ci_action = generic_esp32_4mb_no_ota,generic_esp32_8mb,generic_esp32s3,generic_esp32s3_usb

framework = arduino
platform = espressif32@6.9.0
platform = espressif32@6.10.0
platform_packages =
platformio/tool-mklittlefs

Expand All @@ -42,7 +42,7 @@ build_unflags =
-std=gnu++11

lib_deps =
mathieucarbou/ESPAsyncWebServer @ 3.6.0
ESP32Async/ESPAsyncWebServer @ 3.6.2
bblanchon/ArduinoJson @ 7.3.0
https://github.com/bertmelis/espMqttClient.git#v1.7.0
nrf24/RF24 @ 1.4.11
Expand Down
13 changes: 13 additions & 0 deletions src/WebApi_network.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,20 @@
#include "helper.h"
#include <AsyncJson.h>

WebApiNetworkClass::WebApiNetworkClass()
: _applyDataTask(500 * TASK_MILLISECOND, TASK_ONCE, std::bind(&WebApiNetworkClass::applyDataTaskCb, this))
{
}

void WebApiNetworkClass::init(AsyncWebServer& server, Scheduler& scheduler)
{
using std::placeholders::_1;

server.on("/api/network/status", HTTP_GET, std::bind(&WebApiNetworkClass::onNetworkStatus, this, _1));
server.on("/api/network/config", HTTP_GET, std::bind(&WebApiNetworkClass::onNetworkAdminGet, this, _1));
server.on("/api/network/config", HTTP_POST, std::bind(&WebApiNetworkClass::onNetworkAdminPost, this, _1));

scheduler.addTask(_applyDataTask);
}

void WebApiNetworkClass::onNetworkStatus(AsyncWebServerRequest* request)
Expand Down Expand Up @@ -228,6 +235,12 @@ void WebApiNetworkClass::onNetworkAdminPost(AsyncWebServerRequest* request)

WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__);

_applyDataTask.enable();
_applyDataTask.restart();
}

void WebApiNetworkClass::applyDataTaskCb()
{
NetworkSettings.enableAdminMode();
NetworkSettings.applyConfig();
}
8 changes: 4 additions & 4 deletions webapp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,29 +20,29 @@
"sortablejs": "^1.15.6",
"spark-md5": "^3.0.2",
"vue": "^3.5.13",
"vue-i18n": "11.0.1",
"vue-i18n": "11.1.0",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@intlify/unplugin-vue-i18n": "^6.0.3",
"@tsconfig/node22": "^22.0.0",
"@types/bootstrap": "^5.2.10",
"@types/node": "^22.10.6",
"@types/node": "^22.13.0",
"@types/pulltorefreshjs": "^0.1.7",
"@types/sortablejs": "^1.15.8",
"@types/spark-md5": "^3.0.5",
"@vitejs/plugin-vue": "^5.2.1",
"@vue/eslint-config-typescript": "^14.3.0",
"@vue/tsconfig": "^0.7.0",
"eslint": "^9.18.0",
"eslint": "^9.19.0",
"eslint-plugin-vue": "^9.32.0",
"npm-run-all": "^4.1.5",
"prettier": "^3.4.2",
"pulltorefreshjs": "^0.1.22",
"sass": "=1.77.6",
"terser": "^5.37.0",
"typescript": "~5.6.3",
"vite": "^6.0.7",
"vite": "^6.0.11",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-css-injected-by-js": "^3.5.2",
"vue-tsc": "^2.2.0"
Expand Down
76 changes: 38 additions & 38 deletions webapp/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -195,10 +195,10 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"

"@eslint/js@9.18.0":
version "9.18.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.18.0.tgz#3356f85d18ed3627ab107790b53caf7e1e3d1e84"
integrity sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==
"@eslint/js@9.19.0":
version "9.19.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.19.0.tgz#51dbb140ed6b49d05adc0b171c41e1a8713b7789"
integrity sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==

"@eslint/object-schema@^2.1.5":
version "2.1.5"
Expand Down Expand Up @@ -264,13 +264,13 @@
"@intlify/message-compiler" "10.0.5"
"@intlify/shared" "10.0.5"

"@intlify/core-base@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-11.0.1.tgz#f84564a5bd313879b32cea70e6e3d2fe9e1f128b"
integrity sha512-NAmhw1l/llM0HZRpagR/ChJTNymW4ll6/4EDSJML5c8L5Hl/+k6UyF8EIgE6DeHpfheQujkSRngauViHqq6jJQ==
"@intlify/core-base@11.1.0":
version "11.1.0"
resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-11.1.0.tgz#bb8244042768ac96ec3536392f48278b2e3c7f61"
integrity sha512-5KFrnfgcv4cVWzA1RC4HqMHYEWSD/69GQU7wpKJ2l6mA6ggqEjb9NJN5VJNJvP2mU5y8MAGwXLAJXJo5sbIkMQ==
dependencies:
"@intlify/message-compiler" "11.0.1"
"@intlify/shared" "11.0.1"
"@intlify/message-compiler" "11.1.0"
"@intlify/shared" "11.1.0"

"@intlify/[email protected]":
version "10.0.5"
Expand All @@ -280,12 +280,12 @@
"@intlify/shared" "10.0.5"
source-map-js "^1.0.2"

"@intlify/message-compiler@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-11.0.1.tgz#7c159642e3a3c160dd25a15c17127c69d56b0561"
integrity sha512-5RFH8x+Mn3mbjcHXnb6KCXGiczBdiQkWkv99iiA0JpKrNuTAQeW59Pjq/uObMB0eR0shnKYGTkIJxum+DbL3sw==
"@intlify/message-compiler@11.1.0":
version "11.1.0"
resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-11.1.0.tgz#d2ceba2fa1ed1578fa791759f696b583d346d9fb"
integrity sha512-UuV1YwWPBNgL4uqtC1vZPHF2QtYYqVeCDIsbV6JC6Vv90UWmEiU77U7EZmNVVV7DepT83Ow5MaF1CiWI77b61w==
dependencies:
"@intlify/shared" "11.0.1"
"@intlify/shared" "11.1.0"
source-map-js "^1.0.2"

"@intlify/message-compiler@next":
Expand All @@ -306,10 +306,10 @@
resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-11.0.0-beta.2.tgz#a442da6f6194a03c6987cd53aa410f0c827e5b56"
integrity sha512-N6ngJfFaVA0l2iLtx/SymgHOBW4wiS5Pyue7YmY/G+mrGjesi+S+U+u/Xlv6pZa/YIBfeM4QB07lI7rz1YqKLg==

"@intlify/shared@11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-11.0.1.tgz#25ff7f038bbae903e2bc75bf862b2380fde07cc8"
integrity sha512-lH164+aDDptHZ3dBDbIhRa1dOPQUp+83iugpc+1upTOWCnwyC1PVis6rSWNMMJ8VQxvtHQB9JMib48K55y0PvQ==
"@intlify/shared@11.1.0":
version "11.1.0"
resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-11.1.0.tgz#0f9126d1be2a40642c7ac8a1eed5f23ce82d3fe4"
integrity sha512-DvpNSxiMrFqYMaGSRDDnQgO/L0MqNH4KWw9CUx8LRHHIdWp08En9DpmSRNpauUOxKpHAhyJJxx92BHZk9J84EQ==

"@intlify/unplugin-vue-i18n@^6.0.3":
version "6.0.3"
Expand Down Expand Up @@ -530,10 +530,10 @@
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==

"@types/node@^22.10.6":
version "22.10.6"
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.6.tgz#5c6795e71635876039f853cbccd59f523d9e4239"
integrity sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ==
"@types/node@^22.13.0":
version "22.13.0"
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.0.tgz#d376dd9a0ee2f9382d86c2d5d7beb4d198b4ea8c"
integrity sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==
dependencies:
undici-types "~6.20.0"

Expand Down Expand Up @@ -1321,17 +1321,17 @@ eslint-visitor-keys@^4.2.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45"
integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==

eslint@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.18.0.tgz#c95b24de1183e865de19f607fda6518b54827850"
integrity sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==
eslint@^9.19.0:
version "9.19.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.19.0.tgz#ffa1d265fc4205e0f8464330d35f09e1d548b1bf"
integrity sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.12.1"
"@eslint/config-array" "^0.19.0"
"@eslint/core" "^0.10.0"
"@eslint/eslintrc" "^3.2.0"
"@eslint/js" "9.18.0"
"@eslint/js" "9.19.0"
"@eslint/plugin-kit" "^0.2.5"
"@humanfs/node" "^0.16.6"
"@humanwhocodes/module-importer" "^1.0.1"
Expand Down Expand Up @@ -2750,10 +2750,10 @@ vite-plugin-css-injected-by-js@^3.5.2:
resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.2.tgz#1f75d16ad5c05b6b49bf18018099a189ec2e46ad"
integrity sha512-2MpU/Y+SCZyWUB6ua3HbJCrgnF0KACAsmzOQt1UvRVJCGF6S8xdA3ZUhWcWdM9ivG4I5az8PnQmwwrkC2CAQrQ==

vite@^6.0.7:
version "6.0.7"
resolved "https://registry.yarnpkg.com/vite/-/vite-6.0.7.tgz#f0f8c120733b04af52b4a1e3e7cb54eb851a799b"
integrity sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==
vite@^6.0.11:
version "6.0.11"
resolved "https://registry.yarnpkg.com/vite/-/vite-6.0.11.tgz#224497e93e940b34c3357c9ebf2ec20803091ed8"
integrity sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==
dependencies:
esbuild "^0.24.2"
postcss "^8.4.49"
Expand All @@ -2779,13 +2779,13 @@ vue-eslint-parser@^9.4.3:
lodash "^4.17.21"
semver "^7.3.6"

vue-i18n@11.0.1:
version "11.0.1"
resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-11.0.1.tgz#aa4c20d6f7c127bc46028ae3325659be47dd338e"
integrity sha512-pWAT8CusK8q9/EpN7V3oxwHwxWm6+Kp2PeTZmRGvdZTkUzMQDpbbmHp0TwQ8xw04XKm23cr6B4GL72y3W8Yekg==
vue-i18n@11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-11.1.0.tgz#996095024da5cbb5148e602d7d88e0218ffe5fcc"
integrity sha512-UgtYUe99mLfo7ya5TJSsJcgJZaqIunwXjff5UA03xRry0VtgN4zIUbuoycK9/ZZQJg5Cmr6V6zq+u0H0P0hlNw==
dependencies:
"@intlify/core-base" "11.0.1"
"@intlify/shared" "11.0.1"
"@intlify/core-base" "11.1.0"
"@intlify/shared" "11.1.0"
"@vue/devtools-api" "^6.5.0"

vue-i18n@^10.0.0:
Expand Down

0 comments on commit 4f29817

Please sign in to comment.