From 2e988df81796c9192e60d51dc194df3343dd8083 Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 2 Aug 2026 12:53:04 +0200 Subject: [PATCH] preparing 3.9.0-dev.0 --- CHANGELOG.md | 30 +++++ CHANGELOG_LATEST.md | 18 +-- data/pre_load.json | 2 +- interface/package.json | 2 +- interface/pnpm-lock.yaml | 84 ++++++++++--- mock-api/pnpm-lock.yaml | 48 +++---- mock-api/restServer.ts | 4 +- scripts/update_all.sh | 3 +- src/emsesp_version.h | 2 +- src/web/WebStatusService.cpp | 8 +- test/test_data/emsesp_allvalues.json | 103 --------------- test/test_data/emsesp_customizations.json | 37 ------ test/test_data/emsesp_entities.json | 6 - test/test_data/emsesp_schedule.json | 6 - test/test_data/emsesp_settings.json | 145 ---------------------- test/test_data/emsesp_systembackup.json | 6 +- 16 files changed, 135 insertions(+), 369 deletions(-) delete mode 100644 test/test_data/emsesp_allvalues.json delete mode 100644 test/test_data/emsesp_customizations.json delete mode 100644 test/test_data/emsesp_entities.json delete mode 100644 test/test_data/emsesp_schedule.json delete mode 100644 test/test_data/emsesp_settings.json diff --git a/CHANGELOG.md b/CHANGELOG.md index db70eecda..7c832fb2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,36 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.8.3] 1 August 2026 + +## Added + +- KM300 at address 0x4A [#3084](https://github.com/emsesp/EMS-ESP32/issues/3084) + +## Fixed + +- signed value for solarInfuence [#3077](https://github.com/emsesp/EMS-ESP32/issues/3077) +- set bin file upload limit to 1M again [#3086](https://github.com/emsesp/EMS-ESP32/issues/3086) +- check arithmetric operations on strings [#3127](https://github.com/emsesp/EMS-ESP32/discussions/3127) +- prevent system crash during WiFi network discovery on ESP32-S3 hardware [#3128](https://github.com/emsesp/EMS-ESP32/pull/3128) +- fix setting date/time on Junkers thermostats +- offset of hpminflowtemp [#3144](https://github.com/emsesp/EMS-ESP32/issues/3144) +- water circulation command [#3149](https://github.com/emsesp/EMS-ESP32/pull/3149) +- start scheduler after customEntities, delay scheduler loop after startup, handling of `system/restart` command [#3146](https://github.com/emsesp/EMS-ESP32/issues/3146) +- possible memory leaks fixed. +- repeated startup schedules compute value +- call `system/message` called from scheduler processes compute twice +- water module SM100/200 as dhw1/dhw2 [#3164](https://github.com/emsesp/EMS-ESP32/issues/3164) + +## Changed + +- call compute value direct, enlarge TCP stack [#3127](https://github.com/emsesp/EMS-ESP32/discussions/3127) +- Dewtemperature for Easycontrol calculated by ems-esp [#3135](https://github.com/emsesp/EMS-ESP32/issues/3135) +- add option for sync thermostat to ntp, allow different time zones [#3148](https://github.com/emsesp/EMS-ESP32/discussions/3148), **defaults to sync**. +- block too many GET requests [mentioned in #3104](https://github.com/emsesp/EMS-ESP32/issues/3104) +- set 10 sec timeout for http requests [#3104](https://github.com/emsesp/EMS-ESP32/issues/3104) +- language code "cs" [#3161](https://github.com/emsesp/EMS-ESP32/issues/3161) + ## [3.8.2] 12 May 2026 ## Added diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index b030f5ea2..fc54412d7 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -4,27 +4,18 @@ For more details go to [emsesp.org](https://emsesp.org/). ## [3.9.0] +This release is based on the latest Espressif/Arduino core version 3. It brings in many memory and performance optimizations. Note it does require the user to manually migrate settings from 3.8.x to 3.9.0. + ## Added - user-requested LED blink [#3063](https://github.com/emsesp/EMS-ESP32/issues/3063) -- KM300 at address 0x4A [#3084](https://github.com/emsesp/EMS-ESP32/issues/3084) - Commands Service that can be called via MQTT or API or used in the Scheduler Service - option to disable factory reset [#3150](https://github.com/emsesp/EMS-ESP32/issues/3150) +- TLS support with 4MB boards without PSRAM ## Fixed -- signed value for solarInfuence [#3077](https://github.com/emsesp/EMS-ESP32/issues/3077) -- TLS support with 4MB boards without PSRAM -- prevent system crash during WiFi network discovery on ESP32-S3 hardware [#3128](https://github.com/emsesp/EMS-ESP32/pull/3128) -- check arithmetric operations on strings [#3127](https://github.com/emsesp/EMS-ESP32/discussions/3127) -- fix setting date/time on Junkers thermostats -- offset of hpminflowtemp [#3144](https://github.com/emsesp/EMS-ESP32/issues/3144) -- water circulation command [#3149](https://github.com/emsesp/EMS-ESP32/pull/3149) -- start scheduler after customEntities, delay scheduler loop after startup, handling of `system/restart` command [#3146](https://github.com/emsesp/EMS-ESP32/issues/3146) -- possible memory leaks fixed -- repeated startup schedules compute value - shunting yard show json -- water module SM100/200 as dhw1/dhw2 [#3164](https://github.com/emsesp/EMS-ESP32/issues/3164) ## Changed @@ -32,8 +23,5 @@ For more details go to [emsesp.org](https://emsesp.org/). - Scheduler name is now mandatory - network fallback to AP only after start [#3090](https://github.com/emsesp/EMS-ESP32/issues/3090) - replaced Web async-validator with custom validator and toast with native snackbar to reduce bundle size -- Dewtemperature for Easycontrol calculated by ems-esp [#3135](https://github.com/emsesp/EMS-ESP32/issues/3135) -- add option for sync thermostat to ntp, allow different time zones [#3148](https://github.com/emsesp/EMS-ESP32/discussions/3148), **defaults to sync**. -- block too many GET requests [mentioned in #3104](https://github.com/emsesp/EMS-ESP32/issues/3104) - Gateway and Connect devices are shown in the Devices page, but disabled [3126](https://github.com/emsesp/EMS-ESP32/discussions/3126) diff --git a/data/pre_load.json b/data/pre_load.json index c7fc82e76..24e5fea66 100644 --- a/data/pre_load.json +++ b/data/pre_load.json @@ -249,7 +249,7 @@ "value_type": 9, "writeable": true, "hide": false, - "value": "{\"stable\":{\"version\":\"3.8.2\",\"date\":\"2026-05-12\"},\"dev\":{\"version\":\"3.8.3-dev.5\",\"date\":\"2026-05-28T09:55:29Z\"}}" + "value": "{\"stable\":{\"version\":\"3.8.3\",\"date\":\"2026-08-01\"},\"dev\":{\"version\":\"3.9.0-dev.0\",\"date\":\"2026-08-01T09:55:29Z\"}}" }, { "id": 1, diff --git a/interface/package.json b/interface/package.json index 65852cabe..a835f59f3 100644 --- a/interface/package.json +++ b/interface/package.json @@ -31,7 +31,7 @@ "@table-library/react-table-library": "4.1.15", "alova": "^3.5.3", "jwt-decode": "^4.0.0", - "preact": "^10.29.7", + "preact": "^10.29.8", "react": "^19.2.8", "react-dom": "^19.2.8", "react-icons": "^5.7.0", diff --git a/interface/pnpm-lock.yaml b/interface/pnpm-lock.yaml index b2ec9a771..05c0a878b 100644 --- a/interface/pnpm-lock.yaml +++ b/interface/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 preact: - specifier: ^10.29.7 - version: 10.29.7 + specifier: ^10.29.8 + version: 10.29.8 react: specifier: ^19.2.8 version: 19.2.8 @@ -56,7 +56,7 @@ importers: version: 10.0.1(eslint@10.8.0(supports-color@10.2.2)) '@preact/preset-vite': specifier: ^2.10.6 - version: 2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@10.29.7)(supports-color@10.2.2)(vite@8.2.0(@types/node@26.1.2)(terser@5.49.0)) + version: 2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.0(@types/node@26.1.2)(terser@5.49.0)) '@trivago/prettier-plugin-sort-imports': specifier: ^6.0.2 version: 6.0.2(prettier@3.9.6)(supports-color@10.2.2) @@ -135,6 +135,10 @@ packages: resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} engines: {node: '>=6.9.0'} + '@babel/generator@7.29.8': + resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.29.7': resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} engines: {node: '>=6.9.0'} @@ -182,6 +186,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.8': + resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-syntax-jsx@7.29.7': resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} engines: {node: '>=6.9.0'} @@ -212,10 +221,18 @@ packages: resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.8': + resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} + engines: {node: '>=6.9.0'} + '@babel/types@7.29.7': resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} + engines: {node: '>=6.9.0'} + '@emnapi/core@2.0.0-alpha.3': resolution: {integrity: sha512-AZypUeJ/yByuxyS7BlSNRDOMLMlROYtjYdIAuBmJssVz1UJDSeYxLrdizhXCFYhedC5bqd/ASy8EuNXbVVXp9g==} @@ -2374,8 +2391,8 @@ packages: resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} engines: {node: '>=20'} - preact@10.29.7: - resolution: {integrity: sha512-DCHYrK/B10yUD3ZjLfhZ3WIE/9Vf9VFUODcRE2dRomTYDpJk6z6L9wecSfhfE6M9ZTHUdyQkoC46arIDhEV84Q==} + preact@10.29.8: + resolution: {integrity: sha512-ej2aVZ+vZ8WO7tvlQWRM9N63A0KzF9q4mWJfDUHgYaIofWY9hu74QdnQrjoPMmZi2/nZ5gN0bJCQF49xQqx09Q==} peerDependencies: preact-render-to-string: '>=5' peerDependenciesMeta: @@ -3050,9 +3067,17 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 + '@babel/generator@7.29.8': + dependencies: + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.29.7': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/helper-compilation-targets@7.29.7': dependencies: @@ -3097,6 +3122,10 @@ snapshots: dependencies: '@babel/types': 7.29.7 + '@babel/parser@7.29.8': + dependencies: + '@babel/types': 7.29.8 + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))': dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) @@ -3116,7 +3145,7 @@ snapshots: '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -3140,11 +3169,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.29.8(supports-color@10.2.2)': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 + debug: 4.4.3(supports-color@10.2.2) + transitivePeerDependencies: + - supports-color + '@babel/types@7.29.7': dependencies: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 + '@babel/types@7.29.8': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@emnapi/core@2.0.0-alpha.3': dependencies: '@emnapi/wasi-threads': 2.0.1 @@ -3431,12 +3477,12 @@ snapshots: '@popperjs/core@2.11.8': {} - '@preact/preset-vite@2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@10.29.7)(supports-color@10.2.2)(vite@8.2.0(@types/node@26.1.2)(terser@5.49.0))': + '@preact/preset-vite@2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.0(@types/node@26.1.2)(terser@5.49.0))': dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) - '@prefresh/vite': 2.4.12(preact@10.29.7)(supports-color@10.2.2)(vite@8.2.0(@types/node@26.1.2)(terser@5.49.0)) + '@prefresh/vite': 2.4.12(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.0(@types/node@26.1.2)(terser@5.49.0)) '@rollup/pluginutils': 5.4.0 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.7(supports-color@10.2.2)) debug: 4.4.3(supports-color@10.2.2) @@ -3452,20 +3498,20 @@ snapshots: '@prefresh/babel-plugin@0.5.3': {} - '@prefresh/core@1.5.10(preact@10.29.7)': + '@prefresh/core@1.5.10(preact@10.29.8)': dependencies: - preact: 10.29.7 + preact: 10.29.8 '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.12(preact@10.29.7)(supports-color@10.2.2)(vite@8.2.0(@types/node@26.1.2)(terser@5.49.0))': + '@prefresh/vite@2.4.12(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.0(@types/node@26.1.2)(terser@5.49.0))': dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) '@prefresh/babel-plugin': 0.5.3 - '@prefresh/core': 1.5.10(preact@10.29.7) + '@prefresh/core': 1.5.10(preact@10.29.8) '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 - preact: 10.29.7 + preact: 10.29.8 vite: 8.2.0(@types/node@26.1.2)(terser@5.49.0) transitivePeerDependencies: - supports-color @@ -3545,10 +3591,10 @@ snapshots: '@trivago/prettier-plugin-sort-imports@6.0.2(prettier@3.9.6)(supports-color@10.2.2)': dependencies: - '@babel/generator': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@10.2.2) - '@babel/types': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.8 + '@babel/traverse': 7.29.8(supports-color@10.2.2) + '@babel/types': 7.29.8 javascript-natural-sort: 0.7.1 lodash-es: 4.18.1 minimatch: 9.0.9 @@ -5343,7 +5389,7 @@ snapshots: powershell-utils@0.1.0: {} - preact@10.29.7: {} + preact@10.29.8: {} prelude-ls@1.2.1: {} diff --git a/mock-api/pnpm-lock.yaml b/mock-api/pnpm-lock.yaml index 59810bc47..3dc6869ff 100644 --- a/mock-api/pnpm-lock.yaml +++ b/mock-api/pnpm-lock.yaml @@ -31,8 +31,8 @@ packages: resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.7': - resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} + '@babel/generator@7.29.8': + resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} engines: {node: '>=6.9.0'} '@babel/helper-globals@7.29.7': @@ -47,8 +47,8 @@ packages: resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.7': - resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + '@babel/parser@7.29.8': + resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} engines: {node: '>=6.0.0'} hasBin: true @@ -56,12 +56,12 @@ packages: resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.7': - resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} + '@babel/traverse@7.29.8': + resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.7': - resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} '@jridgewell/gen-mapping@0.3.13': @@ -184,10 +184,10 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/generator@7.29.7': + '@babel/generator@7.29.8': dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 @@ -198,29 +198,29 @@ snapshots: '@babel/helper-validator-identifier@7.29.7': {} - '@babel/parser@7.29.7': + '@babel/parser@7.29.8': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/template@7.29.7': dependencies: '@babel/code-frame': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 - '@babel/traverse@7.29.7': + '@babel/traverse@7.29.8': dependencies: '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/helper-globals': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.8 '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.29.7': + '@babel/types@7.29.8': dependencies: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 @@ -249,10 +249,10 @@ snapshots: '@trivago/prettier-plugin-sort-imports@6.0.2(prettier@3.9.6)': dependencies: - '@babel/generator': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.8 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 javascript-natural-sort: 0.7.1 lodash-es: 4.18.1 minimatch: 9.0.9 diff --git a/mock-api/restServer.ts b/mock-api/restServer.ts index 1204fe161..a82d209c3 100644 --- a/mock-api/restServer.ts +++ b/mock-api/restServer.ts @@ -143,7 +143,7 @@ let system_status = { let DEV_VERSION_IS_UPGRADEABLE: boolean; let STABLE_VERSION_IS_UPGRADEABLE: boolean; let THIS_VERSION: string; -let LATEST_STABLE_VERSION = '3.8.2'; +let LATEST_STABLE_VERSION = '3.8.3'; let LATEST_DEV_VERSION = '3.9.0-dev.1'; // scenarios for testing versioning @@ -4187,7 +4187,7 @@ let emsesp_customentities = { writeable: true, hide: false, value: - '{"stable":{"version":"3.8.2","date":"2026-05-12"},"dev":{"version":"3.8.3-dev.5","date":"2026-05-28T09:55:29Z"}}' + '{"stable":{"version":"3.8.3","date":"2026-08-01"},"dev":{"version":"3.9.0-dev.0","date":"2026-08-01T09:55:29Z"}}' } ] }; diff --git a/scripts/update_all.sh b/scripts/update_all.sh index 20a6208bf..0d2c5a407 100644 --- a/scripts/update_all.sh +++ b/scripts/update_all.sh @@ -12,8 +12,8 @@ corepack use pnpm@latest pnpm update pnpm install pnpm format -pnpm lint pnpm build-webUI +pnpm lint cd ../mock-api rm -rf node_modules @@ -28,7 +28,6 @@ npx cspell "**" # exit 0 # build files that go into docs folder - platformio run -e build_modbus -t clean platformio run -e build_modbus platformio run -e build_standalone -t clean diff --git a/src/emsesp_version.h b/src/emsesp_version.h index 2d2169ffd..0aea80b67 100644 --- a/src/emsesp_version.h +++ b/src/emsesp_version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.9.0-dev.19" +#define EMSESP_APP_VERSION "3.9.0-dev.0" diff --git a/src/web/WebStatusService.cpp b/src/web/WebStatusService.cpp index 19c8d6315..d38f13c1a 100644 --- a/src/web/WebStatusService.cpp +++ b/src/web/WebStatusService.cpp @@ -367,13 +367,13 @@ void WebStatusService::getVersions(JsonObject root) { #else // standalone/test build: provide deterministic dummy data JsonObject stable_out = root["stable"].to(); - stable_out["version"] = "3.8.2"; - stable_out["date"] = "2026-04-25"; - stable_out["upgradeable"] = FirmwareVersion("3.8.2") > current_version; + stable_out["version"] = "3.8.3"; + stable_out["date"] = "2026-08-01"; + stable_out["upgradeable"] = FirmwareVersion("3.8.3") > current_version; JsonObject dev_out = root["dev"].to(); dev_out["version"] = "3.9.0-dev.1"; - dev_out["date"] = "2026-04-25"; + dev_out["date"] = "2026-08-02"; dev_out["upgradeable"] = FirmwareVersion("3.9.0-dev.1") > current_version; #endif } diff --git a/test/test_data/emsesp_allvalues.json b/test/test_data/emsesp_allvalues.json deleted file mode 100644 index 6a8297eb1..000000000 --- a/test/test_data/emsesp_allvalues.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "Boiler Nefit Trendline HRC30 (DeviceID:0x08, ProductID:123, Version:06.01)": { - "force heating off": "off", - "heating active": "off", - "tapwater active": "off", - "selected flow temperature": 5, - "heating pump modulation": 0, - "current flow temperature": 41.4, - "return temperature": 37.7, - "system pressure": 1.3, - "actual boiler temperature": 44.2, - "gas": "off", - "gas stage 2": "off", - "flame current": 0, - "fan": "off", - "ignition": "off", - "oil preheating": "off", - "burner min power": 0, - "burner max power": 50, - "burner min period": 10, - "hysteresis on temperature": -6, - "hysteresis off temperature": 6, - "heating activated": "on", - "heating temperature": 70, - "heating pump": "off", - "boiler pump max power": 70, - "boiler pump min power": 50, - "boiler pump mode": "proportional", - "pump delay": 2, - "burner selected max power": 0, - "burner current power": 0, - "burner starts": 394602, - "total burner operating time": "480 days 4 hours 23 minutes", - "burner stage 2 operating time": "0 days 0 hours 0 minutes", - "total heat operating time": "395 days 2 hours 14 minutes", - "burner starts heating": 46245, - "total UBA operating time": "3932 days 23 hours 58 minutes", - "last error code": "2E(207) 100.75.2000 65:00 (0 min)", - "service code": "0H", - "service code number": 203, - "maintenance message": "H00", - "maintenance scheduled": "manual", - "time to next maintenance": 6000, - "next maintenance date": "01.01.2012", - "dhw turn on/off": "on", - "dhw set temperature": 62, - "dhw selected temperature": 60, - "dhw type": "flow", - "dhw comfort": "hot", - "dhw flow temperature offset": 40, - "dhw max power": 100, - "dhw circulation pump available": "off", - "dhw charging type": "3-way valve", - "dhw hysteresis on temperature": -5, - "dhw hysteresis off temperature": 0, - "dhw disinfection temperature": 70, - "dhw circulation pump mode": "off", - "dhw circulation active": "off", - "dhw current intern temperature": 33.5, - "dhw current tap water flow": 0, - "dhw storage intern temperature": 33.5, - "dhw activated": "on", - "dhw one time charging": "off", - "dhw disinfecting": "off", - "dhw charging": "off", - "dhw recharging": "off", - "dhw temperature ok": "on", - "dhw active": "off", - "dhw 3-way valve active": "on", - "dhw set pump power": 0, - "dhw starts": 348357, - "dhw active time": "85 days 2 hours 9 minutes", - "nominal Power": 30, - "total energy": 3088.69, - "energy heating": 2532.94, - "dhw energy": 555.75 - }, - "Thermostat RC20 (DeviceID:0x17, ProductID:77, Version:03.03)": { - "date/time": "10.12.2023 13:49", - "hc1 how hot lounge should be": 19, - "hc1 current room temp": 19.5, - "hc1 mqtt discovery current room temperature": "roomTemp", - "hc1 mode": "auto", - "hc1 manual temperature": 21.5, - "hc1 temperature when mode is off": 7, - "hc1 day temperature T2": 20, - "hc1 day temperature T3": 20, - "hc1 day temperature T4": 20, - "hc1 night temperature T1": 15, - "hc1 program switchtime": "00 mo 00:00 T1" - }, - "Controller Module BC10 (DeviceID:0x09, ProductID:190, Version:01.03)": {}, - "Custom Entities": { - "boiler_flowtemp": 5, - "nominalpower": 30, - "minmodulation": 23, - "maxmodulation": 115 - }, - "Analog Sensors": {}, - "Temperature Sensors": { - "zolder": 18.3 - } -} \ No newline at end of file diff --git a/test/test_data/emsesp_customizations.json b/test/test_data/emsesp_customizations.json deleted file mode 100644 index 99ba91cef..000000000 --- a/test/test_data/emsesp_customizations.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "customizations", - "Customizations": { - "ts": [], - "as": [], - "masked_entities": [ - { - "product_id": 77, - "device_id": 23, - "custom_name": "", - "custom_brand": "", - "entity_ids": [ - "08datetime", - "08hc1/seltemp|<30", - "08hc1/currtemp", - "08hc1/mode" - ] - }, - { - "product_id": 123, - "device_id": 8, - "custom_name": "", - "custom_brand": "", - "entity_ids": [ - "08heatingactive", - "08burngas", - "08fanwork", - "08ignwork", - "08burnmaxpower|>23<121", - "08burnminperiod|<120", - "08lastcode", - "08servicecode" - ] - } - ] - } -} \ No newline at end of file diff --git a/test/test_data/emsesp_entities.json b/test/test_data/emsesp_entities.json deleted file mode 100644 index 804cc81d4..000000000 --- a/test/test_data/emsesp_entities.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "entities", - "Entities": { - "entities": [] - } -} \ No newline at end of file diff --git a/test/test_data/emsesp_schedule.json b/test/test_data/emsesp_schedule.json deleted file mode 100644 index 8674b3959..000000000 --- a/test/test_data/emsesp_schedule.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "schedule", - "Schedule": { - "schedule": [] - } -} \ No newline at end of file diff --git a/test/test_data/emsesp_settings.json b/test/test_data/emsesp_settings.json deleted file mode 100644 index d36d19d4e..000000000 --- a/test/test_data/emsesp_settings.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "type": "settings", - "System": { - "version": "3.8.2" - }, - "Network": { - "ssid": "", - "bssid": "", - "password": "", - "hostname": "ems-esp", - "static_ip_config": false, - "bandwidth20": false, - "nosleep": true, - "enableMDNS": true, - "enableCORS": false, - "CORSOrigin": "*", - "tx_power": 0 - }, - "AP": { - "provision_mode": 2, - "ssid": "ems-esp", - "password": "ems-esp-neo", - "channel": 1, - "ssid_hidden": false, - "max_clients": 4, - "local_ip": "192.168.4.1", - "gateway_ip": "192.168.4.1", - "subnet_mask": "255.255.255.0" - }, - "MQTT": { - "enableTLS": false, - "rootCA": "", - "enabled": true, - "host": "192.168.X.X", - "port": 1883, - "base": "ems-esp", - "username": "xxxx", - "password": "xxxx", - "client_id": "esp32-395c7bcc", - "keep_alive": 60, - "clean_session": false, - "entity_format": 1, - "publish_time_boiler": 60, - "publish_time_thermostat": 60, - "publish_time_solar": 60, - "publish_time_mixer": 60, - "publish_time_water": 60, - "publish_time_other": 60, - "publish_time_sensor": 60, - "publish_time_heartbeat": 10, - "mqtt_qos": 0, - "mqtt_retain": false, - "ha_enabled": true, - "nested_format": 1, - "discovery_prefix": "homeassistant", - "discovery_type": 0, - "ha_number_mode": 1, - "publish_single": false, - "publish_single2cmd": false, - "send_response": false - }, - "NTP": { - "enabled": true, - "server": "time.google.com", - "tz_label": "Europe/Amsterdam", - "tz_format": "CET-1CEST,M3.5.0,M10.5.0/3" - }, - "Security": { - "jwt_secret": "ems-esp-neo", - "users": [ - { - "username": "admin", - "password": "admin", - "admin": true - }, - { - "username": "guest", - "password": "guest", - "admin": false - } - ] - }, - "Settings": { - "version": "3.8.2", - "board_profile": "E32V2", - "platform": "ESP32", - "locale": "en", - "tx_mode": 1, - "ems_bus_id": 11, - "syslog_enabled": false, - "syslog_level": 3, - "trace_raw": false, - "syslog_mark_interval": 0, - "syslog_host": "", - "syslog_port": 514, - "boiler_heatingoff": false, - "remote_timeout": 24, - "remote_timeout_en": false, - "shower_timer": true, - "shower_alert": false, - "shower_alert_coldshot": 10, - "shower_alert_trigger": 7, - "shower_min_duration": 180, - "rx_gpio": 4, - "tx_gpio": 5, - "dallas_gpio": 14, - "dallas_parasite": false, - "led_gpio": 2, - "hide_led": true, - "led_type": 0, - "low_clock": false, - "telnet_enabled": true, - "notoken_api": false, - "readonly_mode": false, - "analog_enabled": true, - "pbutton_gpio": 34, - "solar_maxflow": 30, - "fahrenheit": false, - "bool_format": 1, - "bool_dashboard": 1, - "enum_format": 1, - "weblog_level": 6, - "weblog_buffer": 500, - "weblog_compact": true, - "phy_type": 1, - "eth_power": 15, - "eth_phy_addr": 0, - "eth_clock_mode": 1, - "modbus_enabled": false, - "modbus_port": 502, - "modbus_max_clients": 10, - "modbus_timeout": 300, - "developer_mode": true, - "disable_reset": false, - "email_enabled": false, - "email_security": 2, - "email_server": "smtp.example.net", - "email_port": 587, - "email_login": "", - "email_pass": "", - "email_sender": "ems-esp@example.net", - "email_recp": "", - "email_subject": "ems-esp notification" - } -} \ No newline at end of file diff --git a/test/test_data/emsesp_systembackup.json b/test/test_data/emsesp_systembackup.json index 9cb29a24c..adc272b3e 100644 --- a/test/test_data/emsesp_systembackup.json +++ b/test/test_data/emsesp_systembackup.json @@ -1,7 +1,7 @@ { "type": "systembackup", - "version": "3.8.2", - "date": "2026-04-15T08:06:45", + "version": "3.9.0", + "date": "2026-08-02T08:06:45", "systembackup": [ { "type": "settings", @@ -83,7 +83,7 @@ ] }, "Settings": { - "version": "3.8.2", + "version": "3.9.0", "board_profile": "E32V2", "platform": "ESP32", "locale": "en",