Merge pull request #1646 from MichaelDvP/dev

enable IPv6 for tasmota-arduino
This commit is contained in:
Proddy
2024-03-02 10:53:45 +01:00
committed by GitHub
16 changed files with 356 additions and 197 deletions

View File

@@ -48,6 +48,10 @@ jobs:
run: | run: |
platformio run -e ci_s3 platformio run -e ci_s3
- name: Build E32V2 firmware
run: |
platformio run -e ci_16M
- name: Create a GH Release - name: Create a GH Release
id: 'automatic_releases' id: 'automatic_releases'
uses: 'marvinpinto/action-automatic-releases@latest' uses: 'marvinpinto/action-automatic-releases@latest'

View File

@@ -20,6 +20,8 @@
- mixer MM100 telegram 0x2CC [#1554](https://github.com/emsesp/EMS-ESP32/issues/1554) - mixer MM100 telegram 0x2CC [#1554](https://github.com/emsesp/EMS-ESP32/issues/1554)
- boiler hpSetDiffPressure [#1563](https://github.com/emsesp/EMS-ESP32/issues/1563) - boiler hpSetDiffPressure [#1563](https://github.com/emsesp/EMS-ESP32/issues/1563)
- custom variables [#1423](https://github.com/emsesp/EMS-ESP32/issues/1423) - custom variables [#1423](https://github.com/emsesp/EMS-ESP32/issues/1423)
- weather compensation [#1642](https://github.com/emsesp/EMS-ESP32/issues/1442)
- env and partitions for DevKitC-1-N32R8 [#1635](https://github.com/emsesp/EMS-ESP32/discussions/1635)
## Fixed ## Fixed
@@ -33,6 +35,7 @@
- Wifi Tx Power not adjusted [#1614](https://github.com/emsesp/EMS-ESP32/issues/1614) - Wifi Tx Power not adjusted [#1614](https://github.com/emsesp/EMS-ESP32/issues/1614)
- MQTT discovery of custom entity doesn't consider type of data [#1587](https://github.com/emsesp/EMS-ESP32/issues/1587) - MQTT discovery of custom entity doesn't consider type of data [#1587](https://github.com/emsesp/EMS-ESP32/issues/1587)
- WiFi TxPower wasn't correctly used. Added an 'Auto' setting, which is the default. - WiFi TxPower wasn't correctly used. Added an 'Auto' setting, which is the default.
- dns w/wo IPv6 [#1644](https://github.com/emsesp/EMS-ESP32/issues/1644)
## Changed ## Changed
@@ -42,3 +45,4 @@
- Length of mqtt Broker adress [#1619](https://github.com/emsesp/EMS-ESP32/issues/1619) - Length of mqtt Broker adress [#1619](https://github.com/emsesp/EMS-ESP32/issues/1619)
- C++ optimizations - see <https://github.com/emsesp/EMS-ESP32/pull/1615> - C++ optimizations - see <https://github.com/emsesp/EMS-ESP32/pull/1615>
- Send MQTT heartbeat immediately after connection [#1628](https://github.com/emsesp/EMS-ESP32/issues/1628) - Send MQTT heartbeat immediately after connection [#1628](https://github.com/emsesp/EMS-ESP32/issues/1628)
- 16MB partitions with second nvs, larger FS, Coredump

View File

@@ -1,6 +1,8 @@
# Name, Type, SubType, Offset, Size, Flags # Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000, nvs, data, nvs, 0x9000, 0x005000,
otadata, data, ota, , 0x2000, otadata, data, ota, , 0x002000,
app0, app, ota_0, , 0x7F0000, app0, app, ota_0, , 0x5D0000,
app1, app, ota_1, , 0x7F0000, app1, app, ota_1, , 0x5D0000,
spiffs, data, spiffs, , 64K, nvs1, data, nvs, , 0x040000,
spiffs, data, spiffs, , 0x400000,
coredump, data, coredump,, 0x010000,
1 # Name Type SubType Offset Size Flags
2 nvs data nvs 0x9000 0x5000 0x005000
3 otadata data ota 0x2000 0x002000
4 app0 app ota_0 0x7F0000 0x5D0000
5 app1 app ota_1 0x7F0000 0x5D0000
6 spiffs nvs1 data spiffs nvs 64K 0x040000
7 spiffs data spiffs 0x400000
8 coredump data coredump 0x010000

8
esp32_partition_32M.csv Normal file
View File

@@ -0,0 +1,8 @@
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x005000,
otadata, data, ota, , 0x002000,
app0, app, ota_0, , 0xDD0000,
app1, app, ota_1, , 0xDD0000,
nvs1, data, nvs, , 0x040000,
spiffs, data, spiffs, , 0x400000,
coredump, data, coredump,, 0x010000,
1 # Name Type SubType Offset Size Flags
2 nvs data nvs 0x9000 0x005000
3 otadata data ota 0x002000
4 app0 app ota_0 0xDD0000
5 app1 app ota_1 0xDD0000
6 nvs1 data nvs 0x040000
7 spiffs data spiffs 0x400000
8 coredump data coredump 0x010000

View File

@@ -23,16 +23,16 @@
}, },
"dependencies": { "dependencies": {
"@alova/adapter-xhr": "^1.0.3", "@alova/adapter-xhr": "^1.0.3",
"@babel/core": "^7.23.9", "@babel/core": "^7.24.0",
"@emotion/react": "^11.11.3", "@emotion/react": "^11.11.4",
"@emotion/styled": "^11.11.0", "@emotion/styled": "^11.11.0",
"@mui/icons-material": "^5.15.10", "@mui/icons-material": "^5.15.11",
"@mui/material": "^5.15.10", "@mui/material": "^5.15.11",
"@table-library/react-table-library": "4.1.7", "@table-library/react-table-library": "4.1.7",
"@types/imagemin": "^8.0.5", "@types/imagemin": "^8.0.5",
"@types/lodash-es": "^4.17.12", "@types/lodash-es": "^4.17.12",
"@types/node": "^20.11.20", "@types/node": "^20.11.24",
"@types/react": "^18.2.58", "@types/react": "^18.2.61",
"@types/react-dom": "^18.2.19", "@types/react-dom": "^18.2.19",
"@types/react-router-dom": "^5.3.3", "@types/react-router-dom": "^5.3.3",
"alova": "^2.17.0", "alova": "^2.17.0",
@@ -45,7 +45,7 @@
"react-dom": "latest", "react-dom": "latest",
"react-dropzone": "^14.2.3", "react-dropzone": "^14.2.3",
"react-icons": "^5.0.1", "react-icons": "^5.0.1",
"react-router-dom": "^6.22.1", "react-router-dom": "^6.22.2",
"react-toastify": "^10.0.4", "react-toastify": "^10.0.4",
"sockette": "^2.0.6", "sockette": "^2.0.6",
"typesafe-i18n": "^5.26.2", "typesafe-i18n": "^5.26.2",
@@ -54,8 +54,8 @@
"devDependencies": { "devDependencies": {
"@preact/compat": "^17.1.2", "@preact/compat": "^17.1.2",
"@preact/preset-vite": "^2.8.1", "@preact/preset-vite": "^2.8.1",
"@typescript-eslint/eslint-plugin": "^7.0.2", "@typescript-eslint/eslint-plugin": "^7.1.0",
"@typescript-eslint/parser": "^7.0.2", "@typescript-eslint/parser": "^7.1.0",
"concurrently": "^8.2.2", "concurrently": "^8.2.2",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",

View File

@@ -216,6 +216,8 @@ const WiFiSettingsForm: FC = () => {
<MenuItem value={44}>11 dBm</MenuItem> <MenuItem value={44}>11 dBm</MenuItem>
<MenuItem value={34}>8.5 dBm</MenuItem> <MenuItem value={34}>8.5 dBm</MenuItem>
<MenuItem value={28}>7 dBm</MenuItem> <MenuItem value={28}>7 dBm</MenuItem>
<MenuItem value={20}>5 dBm</MenuItem>
<MenuItem value={8}>2 dBm</MenuItem>
</TextField> </TextField>
<BlockFormControlLabel <BlockFormControlLabel
control={<Checkbox name="nosleep" checked={data.nosleep} onChange={updateFormValue} />} control={<Checkbox name="nosleep" checked={data.nosleep} onChange={updateFormValue} />}
@@ -257,10 +259,12 @@ const WiFiSettingsForm: FC = () => {
margin="normal" margin="normal"
/> />
)} )}
{data.enableIPv6 !== undefined && (
<BlockFormControlLabel <BlockFormControlLabel
control={<Checkbox name="enableIPv6" checked={data.enableIPv6} onChange={updateFormValue} />} control={<Checkbox name="enableIPv6" checked={data.enableIPv6} onChange={updateFormValue} />}
label={LL.NETWORK_ENABLE_IPV6()} label={LL.NETWORK_ENABLE_IPV6()}
/> />
)}
<BlockFormControlLabel <BlockFormControlLabel
control={<Checkbox name="static_ip_config" checked={data.static_ip_config} onChange={updateFormValue} />} control={<Checkbox name="static_ip_config" checked={data.static_ip_config} onChange={updateFormValue} />}
label={LL.NETWORK_FIXED_IP()} label={LL.NETWORK_FIXED_IP()}

View File

@@ -42,7 +42,7 @@ export interface NetworkSettings {
password: string; password: string;
hostname: string; hostname: string;
static_ip_config: boolean; static_ip_config: boolean;
enableIPv6: boolean; enableIPv6?: boolean;
bandwidth20: boolean; bandwidth20: boolean;
nosleep: boolean; nosleep: boolean;
tx_power: number; tx_power: number;

View File

@@ -86,26 +86,26 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/core@npm:^7.23.9": "@babel/core@npm:^7.24.0":
version: 7.23.9 version: 7.24.0
resolution: "@babel/core@npm:7.23.9" resolution: "@babel/core@npm:7.24.0"
dependencies: dependencies:
"@ampproject/remapping": "npm:^2.2.0" "@ampproject/remapping": "npm:^2.2.0"
"@babel/code-frame": "npm:^7.23.5" "@babel/code-frame": "npm:^7.23.5"
"@babel/generator": "npm:^7.23.6" "@babel/generator": "npm:^7.23.6"
"@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-compilation-targets": "npm:^7.23.6"
"@babel/helper-module-transforms": "npm:^7.23.3" "@babel/helper-module-transforms": "npm:^7.23.3"
"@babel/helpers": "npm:^7.23.9" "@babel/helpers": "npm:^7.24.0"
"@babel/parser": "npm:^7.23.9" "@babel/parser": "npm:^7.24.0"
"@babel/template": "npm:^7.23.9" "@babel/template": "npm:^7.24.0"
"@babel/traverse": "npm:^7.23.9" "@babel/traverse": "npm:^7.24.0"
"@babel/types": "npm:^7.23.9" "@babel/types": "npm:^7.24.0"
convert-source-map: "npm:^2.0.0" convert-source-map: "npm:^2.0.0"
debug: "npm:^4.1.0" debug: "npm:^4.1.0"
gensync: "npm:^1.0.0-beta.2" gensync: "npm:^1.0.0-beta.2"
json5: "npm:^2.2.3" json5: "npm:^2.2.3"
semver: "npm:^6.3.1" semver: "npm:^6.3.1"
checksum: 10/268cdbb86bef1b8ea5b1300f2f325e56a1740a5051360cb228ffeaa0f80282b6674f3a2b4d6466adb0691183759b88d4c37b4a4f77232c84a49ed771c84cdc27 checksum: 10/1e22215cc89e061e0cbfed72f265ad24d363f3e9b24b51e9c4cf3ccb9222260a29a1c1e62edb439cb7e2229a3fce924edd43300500416613236c13fc8d62a947
languageName: node languageName: node
linkType: hard linkType: hard
@@ -304,14 +304,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/helpers@npm:^7.23.9": "@babel/helpers@npm:^7.24.0":
version: 7.23.9 version: 7.24.0
resolution: "@babel/helpers@npm:7.23.9" resolution: "@babel/helpers@npm:7.24.0"
dependencies: dependencies:
"@babel/template": "npm:^7.23.9" "@babel/template": "npm:^7.24.0"
"@babel/traverse": "npm:^7.23.9" "@babel/traverse": "npm:^7.24.0"
"@babel/types": "npm:^7.23.9" "@babel/types": "npm:^7.24.0"
checksum: 10/dd56daac8bbd7ed174bb00fd185926fd449e591d9a00edaceb7ac6edbdd7a8db57e2cb365b4fafda382201752789ced2f7ae010f667eab0f198a4571cda4d2c5 checksum: 10/cc82012161b30185c2698da359c7311cf019f0932f8fcb805e985fec9e0053c354f0534dc9961f3170eee579df6724eecd34b0f5ffaa155cdd456af59fbff86e
languageName: node languageName: node
linkType: hard linkType: hard
@@ -346,12 +346,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/parser@npm:^7.23.9": "@babel/parser@npm:^7.24.0":
version: 7.23.9 version: 7.24.0
resolution: "@babel/parser@npm:7.23.9" resolution: "@babel/parser@npm:7.24.0"
bin: bin:
parser: ./bin/babel-parser.js parser: ./bin/babel-parser.js
checksum: 10/727a7a807100f6a26df859e2f009c4ddbd0d3363287b45daa50bd082ccd0d431d0c4d0e610a91f806e04a1918726cd0f5a0592c9b902a815337feed12e1cafd9 checksum: 10/3e5ebb903a6f71629a9d0226743e37fe3d961e79911d2698b243637f66c4df7e3e0a42c07838bc0e7cc9fcd585d9be8f4134a145b9459ee4a459420fb0d1360b
languageName: node languageName: node
linkType: hard linkType: hard
@@ -421,14 +421,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/template@npm:^7.23.9": "@babel/template@npm:^7.24.0":
version: 7.23.9 version: 7.24.0
resolution: "@babel/template@npm:7.23.9" resolution: "@babel/template@npm:7.24.0"
dependencies: dependencies:
"@babel/code-frame": "npm:^7.23.5" "@babel/code-frame": "npm:^7.23.5"
"@babel/parser": "npm:^7.23.9" "@babel/parser": "npm:^7.24.0"
"@babel/types": "npm:^7.23.9" "@babel/types": "npm:^7.24.0"
checksum: 10/1b011ba9354dc2e646561d54b6862e0df51760e6179faadd79be05825b0b6da04911e4e192df943f1766748da3037fd8493615b38707f7cadb0cf0c96601c170 checksum: 10/8c538338c7de8fac8ada691a5a812bdcbd60bd4a4eb5adae2cc9ee19773e8fb1a724312a00af9e1ce49056ffd3c3475e7287b5668cf6360bfb3f8ac827a06ffe
languageName: node languageName: node
linkType: hard linkType: hard
@@ -450,9 +450,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/traverse@npm:^7.23.9": "@babel/traverse@npm:^7.24.0":
version: 7.23.9 version: 7.24.0
resolution: "@babel/traverse@npm:7.23.9" resolution: "@babel/traverse@npm:7.24.0"
dependencies: dependencies:
"@babel/code-frame": "npm:^7.23.5" "@babel/code-frame": "npm:^7.23.5"
"@babel/generator": "npm:^7.23.6" "@babel/generator": "npm:^7.23.6"
@@ -460,11 +460,11 @@ __metadata:
"@babel/helper-function-name": "npm:^7.23.0" "@babel/helper-function-name": "npm:^7.23.0"
"@babel/helper-hoist-variables": "npm:^7.22.5" "@babel/helper-hoist-variables": "npm:^7.22.5"
"@babel/helper-split-export-declaration": "npm:^7.22.6" "@babel/helper-split-export-declaration": "npm:^7.22.6"
"@babel/parser": "npm:^7.23.9" "@babel/parser": "npm:^7.24.0"
"@babel/types": "npm:^7.23.9" "@babel/types": "npm:^7.24.0"
debug: "npm:^4.3.1" debug: "npm:^4.3.1"
globals: "npm:^11.1.0" globals: "npm:^11.1.0"
checksum: 10/e2bb845f7f229feb7c338f7e150f5f1abc5395dcd3a6a47f63a25242ec3ec6b165f04a6df7d4849468547faee34eb3cf52487eb0bd867a7d3c42fec2a648266f checksum: 10/5cc482248ebb79adcbcf021aab4e0e95bafe2a1736ee4b46abe6f88b59848ad73e15e219db8f06c9a33a14c64257e5b47e53876601e998a8c596accb1b7f4996
languageName: node languageName: node
linkType: hard linkType: hard
@@ -490,14 +490,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/types@npm:^7.23.9": "@babel/types@npm:^7.24.0":
version: 7.23.9 version: 7.24.0
resolution: "@babel/types@npm:7.23.9" resolution: "@babel/types@npm:7.24.0"
dependencies: dependencies:
"@babel/helper-string-parser": "npm:^7.23.4" "@babel/helper-string-parser": "npm:^7.23.4"
"@babel/helper-validator-identifier": "npm:^7.22.20" "@babel/helper-validator-identifier": "npm:^7.22.20"
to-fast-properties: "npm:^2.0.0" to-fast-properties: "npm:^2.0.0"
checksum: 10/bed9634e5fd0f9dc63c84cfa83316c4cb617192db9fedfea464fca743affe93736d7bf2ebf418ee8358751a9d388e303af87a0c050cb5d87d5870c1b0154f6cb checksum: 10/a0b4875ce2e132f9daff0d5b27c7f4c4fcc97f2b084bdc5834e92c9d32592778489029e65d99d00c406da612d87b72d7a236c0afccaa1435c028d0c94c9b6da4
languageName: node languageName: node
linkType: hard linkType: hard
@@ -556,9 +556,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@emotion/react@npm:^11.11.3": "@emotion/react@npm:^11.11.4":
version: 11.11.3 version: 11.11.4
resolution: "@emotion/react@npm:11.11.3" resolution: "@emotion/react@npm:11.11.4"
dependencies: dependencies:
"@babel/runtime": "npm:^7.18.3" "@babel/runtime": "npm:^7.18.3"
"@emotion/babel-plugin": "npm:^11.11.0" "@emotion/babel-plugin": "npm:^11.11.0"
@@ -573,7 +573,7 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
"@types/react": "@types/react":
optional: true optional: true
checksum: 10/f7b98557b7d5236296dda48c2fc8a6cde4af7399758496e9f710f85a80c7d66fee1830966caabd7b237601bfdaca4e1add8c681d1ae4cc3d497fe88958d541c4 checksum: 10/e7da3a1ddc1d72a4179010bdfd17423c13b1a77bf83a8b18271e919fd382d08c62dc2313ed5347acfd1ef85bb1bae8932597647a986e8a1ea1462552716cd495
languageName: node languageName: node
linkType: hard linkType: hard
@@ -992,14 +992,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@mui/base@npm:5.0.0-beta.36": "@mui/base@npm:5.0.0-beta.37":
version: 5.0.0-beta.36 version: 5.0.0-beta.37
resolution: "@mui/base@npm:5.0.0-beta.36" resolution: "@mui/base@npm:5.0.0-beta.37"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.9" "@babel/runtime": "npm:^7.23.9"
"@floating-ui/react-dom": "npm:^2.0.8" "@floating-ui/react-dom": "npm:^2.0.8"
"@mui/types": "npm:^7.2.13" "@mui/types": "npm:^7.2.13"
"@mui/utils": "npm:^5.15.9" "@mui/utils": "npm:^5.15.11"
"@popperjs/core": "npm:^2.11.8" "@popperjs/core": "npm:^2.11.8"
clsx: "npm:^2.1.0" clsx: "npm:^2.1.0"
prop-types: "npm:^15.8.1" prop-types: "npm:^15.8.1"
@@ -1010,20 +1010,20 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
"@types/react": "@types/react":
optional: true optional: true
checksum: 10/32be203df3ffa2e36095d37295adae7870489fb2ed82a156c10f9ea4a51c3d06b0c3415e8503b110aa2ee98d3d86d6c1c50e190e85130aa1c1db694afa56ab7a checksum: 10/28ac58e46ecf7d43fec77f501604e16687df499c82ace9cb32228623cf2549ebf2b74815aacae2920ccb2feed5402c68ad8c599b1bdc717fa5c4caaa408e9c0a
languageName: node languageName: node
linkType: hard linkType: hard
"@mui/core-downloads-tracker@npm:^5.15.10": "@mui/core-downloads-tracker@npm:^5.15.11":
version: 5.15.10 version: 5.15.11
resolution: "@mui/core-downloads-tracker@npm:5.15.10" resolution: "@mui/core-downloads-tracker@npm:5.15.11"
checksum: 10/aeb16b31f60c08cc03585fedadceadd54aa48dda394fb945ab885f884c1b1692efb72309465641b6ca2367bd53d5fdce15f189d4691f42b59206622ffb2d6f0f checksum: 10/7b6b9dc9fbe63e80cd0de85db73eb397031c8e60fbfc4fcd9d6c396f9222c1467bfb2bbe817973e6090576a0016fb0189b4a8ccee3e42210ace99efb5ace52d3
languageName: node languageName: node
linkType: hard linkType: hard
"@mui/icons-material@npm:^5.15.10": "@mui/icons-material@npm:^5.15.11":
version: 5.15.10 version: 5.15.11
resolution: "@mui/icons-material@npm:5.15.10" resolution: "@mui/icons-material@npm:5.15.11"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.9" "@babel/runtime": "npm:^7.23.9"
peerDependencies: peerDependencies:
@@ -1033,20 +1033,20 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
"@types/react": "@types/react":
optional: true optional: true
checksum: 10/ce22c02dc7ed960a21f8d5ea7c4d4fc03d9f71e8a26ced02f75da1ffd6c768e6fa0682a308a03be53bffc2325a5aaf68be69f9e192b0a57c6752f7548e5b9045 checksum: 10/2b337aa7c39e8e75cffd92742aaf7e1a8196597b9e3285322cd3aa3dc7c7f0142ac00d768affaf3a8c7eeab7fd3535de70419a6a8b599fdfa00d65323b6982f8
languageName: node languageName: node
linkType: hard linkType: hard
"@mui/material@npm:^5.15.10": "@mui/material@npm:^5.15.11":
version: 5.15.10 version: 5.15.11
resolution: "@mui/material@npm:5.15.10" resolution: "@mui/material@npm:5.15.11"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.9" "@babel/runtime": "npm:^7.23.9"
"@mui/base": "npm:5.0.0-beta.36" "@mui/base": "npm:5.0.0-beta.37"
"@mui/core-downloads-tracker": "npm:^5.15.10" "@mui/core-downloads-tracker": "npm:^5.15.11"
"@mui/system": "npm:^5.15.9" "@mui/system": "npm:^5.15.11"
"@mui/types": "npm:^7.2.13" "@mui/types": "npm:^7.2.13"
"@mui/utils": "npm:^5.15.9" "@mui/utils": "npm:^5.15.11"
"@types/react-transition-group": "npm:^4.4.10" "@types/react-transition-group": "npm:^4.4.10"
clsx: "npm:^2.1.0" clsx: "npm:^2.1.0"
csstype: "npm:^3.1.3" csstype: "npm:^3.1.3"
@@ -1066,16 +1066,16 @@ __metadata:
optional: true optional: true
"@types/react": "@types/react":
optional: true optional: true
checksum: 10/a88ad1287a905549ed516742544c8ba32f0cd7e1b184564efc8ceba5f43060d37b5cd113db605f1bb5be6c74cbdad7321d3fd7df410ba33d55548cf7c5bbf8d0 checksum: 10/1f95143a9704829179c504404449994cd4c5bcdb6ea536bd15a85113a92874c6ecdbd2cf18df46a2982d98c6855e2d1a9198ea53a059abb02a7411eaa1c630ec
languageName: node languageName: node
linkType: hard linkType: hard
"@mui/private-theming@npm:^5.15.9": "@mui/private-theming@npm:^5.15.11":
version: 5.15.9 version: 5.15.11
resolution: "@mui/private-theming@npm:5.15.9" resolution: "@mui/private-theming@npm:5.15.11"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.9" "@babel/runtime": "npm:^7.23.9"
"@mui/utils": "npm:^5.15.9" "@mui/utils": "npm:^5.15.11"
prop-types: "npm:^15.8.1" prop-types: "npm:^15.8.1"
peerDependencies: peerDependencies:
"@types/react": ^17.0.0 || ^18.0.0 "@types/react": ^17.0.0 || ^18.0.0
@@ -1083,13 +1083,13 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
"@types/react": "@types/react":
optional: true optional: true
checksum: 10/ca6d0643289eb14e127d46a516311807a7935994dcbb14a108e756ba9fe39bf08e2fe2f2bd75cec5a71817f3b2fe74de2f3322b67931539ced5e2f13aa9e2326 checksum: 10/ec185f586586bb1460cf93ebe82cf7bc0b62822d70e5836d95fa50e1525ce84c32b937ce005a32226bc9bab45c3763cb2865c503eac7c96bb98a58498b2d64f5
languageName: node languageName: node
linkType: hard linkType: hard
"@mui/styled-engine@npm:^5.15.9": "@mui/styled-engine@npm:^5.15.11":
version: 5.15.9 version: 5.15.11
resolution: "@mui/styled-engine@npm:5.15.9" resolution: "@mui/styled-engine@npm:5.15.11"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.9" "@babel/runtime": "npm:^7.23.9"
"@emotion/cache": "npm:^11.11.0" "@emotion/cache": "npm:^11.11.0"
@@ -1104,19 +1104,19 @@ __metadata:
optional: true optional: true
"@emotion/styled": "@emotion/styled":
optional: true optional: true
checksum: 10/ddf0bda85507419829c8fe3735b5b05d9544fea0f954de574a9841d46d14dd750050834aae5b1f0b676a1dc5fe1278c22fb16415df7d6202d6aa49fea12d59de checksum: 10/fedbb9891abd633e5072d30aae7405cec9e5e22ac63c9e117c49ddb66e86ec7baaed58f934efc7847ea86cc856a8c9a9ec5a08cd0072a7850184321a968704ad
languageName: node languageName: node
linkType: hard linkType: hard
"@mui/system@npm:^5.15.9": "@mui/system@npm:^5.15.11":
version: 5.15.9 version: 5.15.11
resolution: "@mui/system@npm:5.15.9" resolution: "@mui/system@npm:5.15.11"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.9" "@babel/runtime": "npm:^7.23.9"
"@mui/private-theming": "npm:^5.15.9" "@mui/private-theming": "npm:^5.15.11"
"@mui/styled-engine": "npm:^5.15.9" "@mui/styled-engine": "npm:^5.15.11"
"@mui/types": "npm:^7.2.13" "@mui/types": "npm:^7.2.13"
"@mui/utils": "npm:^5.15.9" "@mui/utils": "npm:^5.15.11"
clsx: "npm:^2.1.0" clsx: "npm:^2.1.0"
csstype: "npm:^3.1.3" csstype: "npm:^3.1.3"
prop-types: "npm:^15.8.1" prop-types: "npm:^15.8.1"
@@ -1132,7 +1132,7 @@ __metadata:
optional: true optional: true
"@types/react": "@types/react":
optional: true optional: true
checksum: 10/85c2d18f3846cc1554db48071606a52f22186cf4ac1b0be748b275a8e200c12528c477acb794b8eb545e4603e5b8566186ea022eb09b5b1a3668554dd0ea9c7d checksum: 10/004e64a558e6d75ab0036f65555459f0769b9ab8b50aecd583a9a41a0db5358168c3bd9f4146848dec4ececfedd6f5af11f519ba3f7bd2e28224f5487a1eef81
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1148,9 +1148,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@mui/utils@npm:^5.15.9": "@mui/utils@npm:^5.15.11":
version: 5.15.9 version: 5.15.11
resolution: "@mui/utils@npm:5.15.9" resolution: "@mui/utils@npm:5.15.11"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.9" "@babel/runtime": "npm:^7.23.9"
"@types/prop-types": "npm:^15.7.11" "@types/prop-types": "npm:^15.7.11"
@@ -1162,7 +1162,7 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
"@types/react": "@types/react":
optional: true optional: true
checksum: 10/8628e4402856427bbc1ee3628afff596149ae3067ca6d62a1890d7b15217248fbeb65ec9360afc6963b330c08945fe6452deef2849d8ca35d894b42746cdad77 checksum: 10/a3c3862a93eb646ddd212c19dee44bef4bee9232fc463a0b27ffc79b0e41a6c4b09b152953156c7ca458b1856dddd0cc4febc078e2151574e3df62868504fb59
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1299,10 +1299,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@remix-run/router@npm:1.15.1": "@remix-run/router@npm:1.15.2":
version: 1.15.1 version: 1.15.2
resolution: "@remix-run/router@npm:1.15.1" resolution: "@remix-run/router@npm:1.15.2"
checksum: 10/d262285d155f80779894ee1d9ef07e35421986ba2546378dfe0e3b09397ce71becb6a4677e9efcd4155e2bd3f9f7f7ecbc110cd99bacee6dd7d3e5ce51b7caa8 checksum: 10/2a2c9c062228130d0383328de2757301e878fc268a72f813b60b8463bb7ed2c1fa4018072883af8096982a4b2741ec6eb349587cd7f95acfdf09588d93adea67
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1590,12 +1590,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/node@npm:^20.11.20": "@types/node@npm:^20.11.24":
version: 20.11.20 version: 20.11.24
resolution: "@types/node@npm:20.11.20" resolution: "@types/node@npm:20.11.24"
dependencies: dependencies:
undici-types: "npm:~5.26.4" undici-types: "npm:~5.26.4"
checksum: 10/ff449bdc94810dadb54e0f77dd587c6505ef79ffa5a208c16eb29b223365b188f4c935a3abaf0906a01d05257c3da1f72465594a841d35bcf7b6deac7a6938fb checksum: 10/7f34bfae5f9b98b9910230af4b4c52dc7fb2d1e96fdebfbc3d7576f8ab3d100076f193f9469add9e7418b455294155e7e6a028498cc5e98f9d49349875a459cf
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1670,14 +1670,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/react@npm:^18.2.58": "@types/react@npm:^18.2.61":
version: 18.2.58 version: 18.2.61
resolution: "@types/react@npm:18.2.58" resolution: "@types/react@npm:18.2.61"
dependencies: dependencies:
"@types/prop-types": "npm:*" "@types/prop-types": "npm:*"
"@types/scheduler": "npm:*" "@types/scheduler": "npm:*"
csstype: "npm:^3.0.2" csstype: "npm:^3.0.2"
checksum: 10/ec5e1a7d8acc55551efec7a3d63441d24c7e94b66bf8039944541a8408048668e51b7b4b0b6e8303cdea271b7c6da242cdc7bb8ca501eedf822956edbdbfc67e checksum: 10/74c2920ccca83fc51190ed4eda1066fa6a644197839dd37765fcce93cbd50b7a52b75815ce0083bb95195f886c80b57745314dd49ecbf235fa93d753ae2260bc
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1713,15 +1713,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/eslint-plugin@npm:^7.0.2": "@typescript-eslint/eslint-plugin@npm:^7.1.0":
version: 7.0.2 version: 7.1.0
resolution: "@typescript-eslint/eslint-plugin@npm:7.0.2" resolution: "@typescript-eslint/eslint-plugin@npm:7.1.0"
dependencies: dependencies:
"@eslint-community/regexpp": "npm:^4.5.1" "@eslint-community/regexpp": "npm:^4.5.1"
"@typescript-eslint/scope-manager": "npm:7.0.2" "@typescript-eslint/scope-manager": "npm:7.1.0"
"@typescript-eslint/type-utils": "npm:7.0.2" "@typescript-eslint/type-utils": "npm:7.1.0"
"@typescript-eslint/utils": "npm:7.0.2" "@typescript-eslint/utils": "npm:7.1.0"
"@typescript-eslint/visitor-keys": "npm:7.0.2" "@typescript-eslint/visitor-keys": "npm:7.1.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
graphemer: "npm:^1.4.0" graphemer: "npm:^1.4.0"
ignore: "npm:^5.2.4" ignore: "npm:^5.2.4"
@@ -1734,44 +1734,44 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 10/430b2f7ca36ee73dc75c1d677088709f3c9d5bbb4fffa3cfbe1b7d63979ee397f7a4a2a1386e05a04991500fa0ab0dd5272e8603a2b20f42e4bf590603500858 checksum: 10/f0b6b6e6ae2afee1df8dd2fd0c56588f9bb600468be9f255e033709a53371c6434da687e75dcb673503ef4f0416226f4ca3c94c65272828106e39b56aac87334
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/parser@npm:^7.0.2": "@typescript-eslint/parser@npm:^7.1.0":
version: 7.0.2 version: 7.1.0
resolution: "@typescript-eslint/parser@npm:7.0.2" resolution: "@typescript-eslint/parser@npm:7.1.0"
dependencies: dependencies:
"@typescript-eslint/scope-manager": "npm:7.0.2" "@typescript-eslint/scope-manager": "npm:7.1.0"
"@typescript-eslint/types": "npm:7.0.2" "@typescript-eslint/types": "npm:7.1.0"
"@typescript-eslint/typescript-estree": "npm:7.0.2" "@typescript-eslint/typescript-estree": "npm:7.1.0"
"@typescript-eslint/visitor-keys": "npm:7.0.2" "@typescript-eslint/visitor-keys": "npm:7.1.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
peerDependencies: peerDependencies:
eslint: ^8.56.0 eslint: ^8.56.0
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 10/18d6e1bda64013f7d66164164c57a10390f7979db55b265062ae9337e11e0921bffca10870e252cd0bd198f79ffa2e87a652e57110e5b1b4cc738453154c205c checksum: 10/39238d37f5a5f7058371ee3882fb7cd8a4579883fc5f13fda645c151fcf8d15e4c0db3ea7ffa7915a55c82451b544e9340c0228b45b83085158cb97974112f19
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/scope-manager@npm:7.0.2": "@typescript-eslint/scope-manager@npm:7.1.0":
version: 7.0.2 version: 7.1.0
resolution: "@typescript-eslint/scope-manager@npm:7.0.2" resolution: "@typescript-eslint/scope-manager@npm:7.1.0"
dependencies: dependencies:
"@typescript-eslint/types": "npm:7.0.2" "@typescript-eslint/types": "npm:7.1.0"
"@typescript-eslint/visitor-keys": "npm:7.0.2" "@typescript-eslint/visitor-keys": "npm:7.1.0"
checksum: 10/773ea6e61f741777e69a469641f3db0d3c2301c0102667825fb235ed5a65c95f6d6b31b19e734b9a215acc0c7c576c65497635b8d5928eeddb58653ceb13d2d5 checksum: 10/3fb18de864331739c1b04fe9e3bb5d926e2fdf0d1fea2871181f68d0fb52325cbc9a5b81da58b7fe7f22d6d58d62b21c83460907146bc2f54ef0720fb3f9037f
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/type-utils@npm:7.0.2": "@typescript-eslint/type-utils@npm:7.1.0":
version: 7.0.2 version: 7.1.0
resolution: "@typescript-eslint/type-utils@npm:7.0.2" resolution: "@typescript-eslint/type-utils@npm:7.1.0"
dependencies: dependencies:
"@typescript-eslint/typescript-estree": "npm:7.0.2" "@typescript-eslint/typescript-estree": "npm:7.1.0"
"@typescript-eslint/utils": "npm:7.0.2" "@typescript-eslint/utils": "npm:7.1.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.0.1" ts-api-utils: "npm:^1.0.1"
peerDependencies: peerDependencies:
@@ -1779,23 +1779,23 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 10/63bf19c9f5bbcb0f3e127f509d85dc49be4e5e51781d78f58c96786089e7c909b25d35d0248a6a758e2f7d5b5223d2262c2d597ab71f226af6beb499ae950645 checksum: 10/439e6fadab3df3c21adfd651af4e605e1020c86c8c2400b0127c2ee914646bc73945b4add31ca7201cafeead261ad2958362c339ebdfc0798064d56daeb60661
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/types@npm:7.0.2": "@typescript-eslint/types@npm:7.1.0":
version: 7.0.2 version: 7.1.0
resolution: "@typescript-eslint/types@npm:7.0.2" resolution: "@typescript-eslint/types@npm:7.1.0"
checksum: 10/2cba8a0355cc7357db142fa597d02cf39e1d1cb0ec87c80e91daaa2b87f2a794d2649def9d7b2aa435691c3810d2cbd4cdc21668b19b991863f0d54d4a22da82 checksum: 10/34801a14ea1444a1707de5bd3211f0ea53afc82a3c6c4543092f123267389da607c498d1a7de554ac9f071e6ef488238728a5f279ff2abaa0cbdfaa733899b67
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/typescript-estree@npm:7.0.2": "@typescript-eslint/typescript-estree@npm:7.1.0":
version: 7.0.2 version: 7.1.0
resolution: "@typescript-eslint/typescript-estree@npm:7.0.2" resolution: "@typescript-eslint/typescript-estree@npm:7.1.0"
dependencies: dependencies:
"@typescript-eslint/types": "npm:7.0.2" "@typescript-eslint/types": "npm:7.1.0"
"@typescript-eslint/visitor-keys": "npm:7.0.2" "@typescript-eslint/visitor-keys": "npm:7.1.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
globby: "npm:^11.1.0" globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3" is-glob: "npm:^4.0.3"
@@ -1805,34 +1805,34 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 10/307080e29c22fc69f0ce7ab7101e1629e05f45a9e541c250e03d06b61336ab0ccb5f0a7354ee3da4e38d5cade4dd2fb7bb396cd7cbe74c2c4b3e29706a70abcc checksum: 10/7dfc6fc70ff00875728ce5d85a3c5d6cb01435082b20ff9301ebe4d8e4a31a0c997282c762c636937bd66a40b4e0154e2ce98f85d888a6c46d433e9a24c46c4c
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/utils@npm:7.0.2": "@typescript-eslint/utils@npm:7.1.0":
version: 7.0.2 version: 7.1.0
resolution: "@typescript-eslint/utils@npm:7.0.2" resolution: "@typescript-eslint/utils@npm:7.1.0"
dependencies: dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0" "@eslint-community/eslint-utils": "npm:^4.4.0"
"@types/json-schema": "npm:^7.0.12" "@types/json-schema": "npm:^7.0.12"
"@types/semver": "npm:^7.5.0" "@types/semver": "npm:^7.5.0"
"@typescript-eslint/scope-manager": "npm:7.0.2" "@typescript-eslint/scope-manager": "npm:7.1.0"
"@typescript-eslint/types": "npm:7.0.2" "@typescript-eslint/types": "npm:7.1.0"
"@typescript-eslint/typescript-estree": "npm:7.0.2" "@typescript-eslint/typescript-estree": "npm:7.1.0"
semver: "npm:^7.5.4" semver: "npm:^7.5.4"
peerDependencies: peerDependencies:
eslint: ^8.56.0 eslint: ^8.56.0
checksum: 10/e68bac777419cd529371f7f29f534efaeca130c90ed9723bfc7aac451d61ca3fc4ebd310e2c015e29e8dc7be4734ae46258ca8755897d7f5e3bb502660d5372f checksum: 10/26d64094d8b828ce6cfea660c95cdbd4d0193d338646fc773312093388bc781653fc1ca16977b3be5288579fe43f14c7108fc431da66dd95b6ed680ad44712a0
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/visitor-keys@npm:7.0.2": "@typescript-eslint/visitor-keys@npm:7.1.0":
version: 7.0.2 version: 7.1.0
resolution: "@typescript-eslint/visitor-keys@npm:7.0.2" resolution: "@typescript-eslint/visitor-keys@npm:7.1.0"
dependencies: dependencies:
"@typescript-eslint/types": "npm:7.0.2" "@typescript-eslint/types": "npm:7.1.0"
eslint-visitor-keys: "npm:^3.4.1" eslint-visitor-keys: "npm:^3.4.1"
checksum: 10/da6c1b0729af99216cde3a65d4e91584a81fc6c9dff7ba291089f01bf7262de375f58c4c4246e5fbc29f51258db7725d9c830f82ccbd1cda812fd13c51480cda checksum: 10/c3e98ebf166fd1854adb0e9599dc108cdbbd95f6eb099d31deae2fd1d4df8fcd8dc9c24ad4f509b961ad900b474c246f6b4b228b5711cc504106c3e0f751a11c
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1848,22 +1848,22 @@ __metadata:
resolution: "EMS-ESP@workspace:." resolution: "EMS-ESP@workspace:."
dependencies: dependencies:
"@alova/adapter-xhr": "npm:^1.0.3" "@alova/adapter-xhr": "npm:^1.0.3"
"@babel/core": "npm:^7.23.9" "@babel/core": "npm:^7.24.0"
"@emotion/react": "npm:^11.11.3" "@emotion/react": "npm:^11.11.4"
"@emotion/styled": "npm:^11.11.0" "@emotion/styled": "npm:^11.11.0"
"@mui/icons-material": "npm:^5.15.10" "@mui/icons-material": "npm:^5.15.11"
"@mui/material": "npm:^5.15.10" "@mui/material": "npm:^5.15.11"
"@preact/compat": "npm:^17.1.2" "@preact/compat": "npm:^17.1.2"
"@preact/preset-vite": "npm:^2.8.1" "@preact/preset-vite": "npm:^2.8.1"
"@table-library/react-table-library": "npm:4.1.7" "@table-library/react-table-library": "npm:4.1.7"
"@types/imagemin": "npm:^8.0.5" "@types/imagemin": "npm:^8.0.5"
"@types/lodash-es": "npm:^4.17.12" "@types/lodash-es": "npm:^4.17.12"
"@types/node": "npm:^20.11.20" "@types/node": "npm:^20.11.24"
"@types/react": "npm:^18.2.58" "@types/react": "npm:^18.2.61"
"@types/react-dom": "npm:^18.2.19" "@types/react-dom": "npm:^18.2.19"
"@types/react-router-dom": "npm:^5.3.3" "@types/react-router-dom": "npm:^5.3.3"
"@typescript-eslint/eslint-plugin": "npm:^7.0.2" "@typescript-eslint/eslint-plugin": "npm:^7.1.0"
"@typescript-eslint/parser": "npm:^7.0.2" "@typescript-eslint/parser": "npm:^7.1.0"
alova: "npm:^2.17.0" alova: "npm:^2.17.0"
async-validator: "npm:^4.2.5" async-validator: "npm:^4.2.5"
concurrently: "npm:^8.2.2" concurrently: "npm:^8.2.2"
@@ -1886,7 +1886,7 @@ __metadata:
react-dom: "npm:latest" react-dom: "npm:latest"
react-dropzone: "npm:^14.2.3" react-dropzone: "npm:^14.2.3"
react-icons: "npm:^5.0.1" react-icons: "npm:^5.0.1"
react-router-dom: "npm:^6.22.1" react-router-dom: "npm:^6.22.2"
react-toastify: "npm:^10.0.4" react-toastify: "npm:^10.0.4"
rollup-plugin-visualizer: "npm:^5.12.0" rollup-plugin-visualizer: "npm:^5.12.0"
sockette: "npm:^2.0.6" sockette: "npm:^2.0.6"
@@ -7192,27 +7192,27 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"react-router-dom@npm:^6.22.1": "react-router-dom@npm:^6.22.2":
version: 6.22.1 version: 6.22.2
resolution: "react-router-dom@npm:6.22.1" resolution: "react-router-dom@npm:6.22.2"
dependencies: dependencies:
"@remix-run/router": "npm:1.15.1" "@remix-run/router": "npm:1.15.2"
react-router: "npm:6.22.1" react-router: "npm:6.22.2"
peerDependencies: peerDependencies:
react: ">=16.8" react: ">=16.8"
react-dom: ">=16.8" react-dom: ">=16.8"
checksum: 10/73ab964083bb407773a5c4ca61249ed6b0a1b47fa58c39afca08a361eb25b349be2bcbaf6d89e112b020f6e55e40e62689c9fe2beae524030ce5ccede3c7d9e3 checksum: 10/1469ea32fd5b35d44909c8e64a778620e990b43a1c6f4d5989630e769a9956e0057a54771ccde2e434a9aff7591c02752dcfe0678a1868d4e53411cec7ecf7a8
languageName: node languageName: node
linkType: hard linkType: hard
"react-router@npm:6.22.1": "react-router@npm:6.22.2":
version: 6.22.1 version: 6.22.2
resolution: "react-router@npm:6.22.1" resolution: "react-router@npm:6.22.2"
dependencies: dependencies:
"@remix-run/router": "npm:1.15.1" "@remix-run/router": "npm:1.15.2"
peerDependencies: peerDependencies:
react: ">=16.8" react: ">=16.8"
checksum: 10/f6e814b8e3005f16a5fb0e831f0e4352076cde65ab25448d56dba87a43fd3e102f55f9b366bdf1fbd8136fc1dc141bcec8d6b85d45f309e89180fb50f173744d checksum: 10/744c9c3d3b6f3d031ef8c34d86f16075f96d4487584f2a526f722bc5b05c5879fc5056236b824472530fc5aad0ecf6eef88d2848d5b1a32aab9849bda3a5c839
languageName: node languageName: node
linkType: hard linkType: hard

View File

@@ -39,7 +39,7 @@ void MqttSettingsService::startClient() {
delete _mqttClient; delete _mqttClient;
_mqttClient = nullptr; _mqttClient = nullptr;
} }
#if CONFIG_IDF_TARGET_ESP32S3 #ifndef TASMOTA_SDK
if (_state.enableTLS) { if (_state.enableTLS) {
isSecure = true; isSecure = true;
_mqttClient = new espMqttClientSecure(espMqttClientTypes::UseInternalTask::NO); _mqttClient = new espMqttClientSecure(espMqttClientTypes::UseInternalTask::NO);
@@ -92,7 +92,7 @@ const char * MqttSettingsService::getClientId() {
} }
void MqttSettingsService::setWill(const char * topic) { void MqttSettingsService::setWill(const char * topic) {
#if CONFIG_IDF_TARGET_ESP32S3 #ifndef TASMOTA_SDK
if (_state.enableTLS) { if (_state.enableTLS) {
static_cast<espMqttClientSecure *>(_mqttClient)->setWill(topic, 1, true, "offline"); static_cast<espMqttClientSecure *>(_mqttClient)->setWill(topic, 1, true, "offline");
return; return;
@@ -178,7 +178,7 @@ bool MqttSettingsService::configureMqtt() {
// only connect if WiFi is connected and MQTT is enabled // only connect if WiFi is connected and MQTT is enabled
if (_state.enabled && emsesp::EMSESP::system_.network_connected() && !_state.host.isEmpty()) { if (_state.enabled && emsesp::EMSESP::system_.network_connected() && !_state.host.isEmpty()) {
_reconfigureMqtt = false; _reconfigureMqtt = false;
#if CONFIG_IDF_TARGET_ESP32S3 #ifndef TASMOTA_SDK
if (_state.enableTLS) { if (_state.enableTLS) {
#if EMSESP_DEBUG #if EMSESP_DEBUG
emsesp::EMSESP::logger().debug("Start secure MQTT with rootCA"); emsesp::EMSESP::logger().debug("Start secure MQTT with rootCA");
@@ -208,11 +208,9 @@ bool MqttSettingsService::configureMqtt() {
} }
void MqttSettings::read(MqttSettings & settings, JsonObject root) { void MqttSettings::read(MqttSettings & settings, JsonObject root) {
#if CONFIG_IDF_TARGET_ESP32S3
#ifndef TASMOTA_SDK #ifndef TASMOTA_SDK
root["enableTLS"] = settings.enableTLS; root["enableTLS"] = settings.enableTLS;
root["rootCA"] = settings.rootCA; root["rootCA"] = settings.rootCA;
#endif
#endif #endif
root["enabled"] = settings.enabled; root["enabled"] = settings.enabled;
root["host"] = settings.host; root["host"] = settings.host;
@@ -247,11 +245,11 @@ StateUpdateResult MqttSettings::update(JsonObject root, MqttSettings & settings)
MqttSettings newSettings = {}; MqttSettings newSettings = {};
bool changed = false; bool changed = false;
#if CONFIG_IDF_TARGET_ESP32S3
#ifndef TASMOTA_SDK #ifndef TASMOTA_SDK
newSettings.enableTLS = root["enableTLS"] | false; newSettings.enableTLS = root["enableTLS"] | false;
newSettings.rootCA = root["rootCA"] | ""; newSettings.rootCA = root["rootCA"] | "";
#endif #else
newSettings.enableTLS = false;
#endif #endif
newSettings.enabled = root["enabled"] | FACTORY_MQTT_ENABLED; newSettings.enabled = root["enabled"] | FACTORY_MQTT_ENABLED;
newSettings.host = root["host"] | FACTORY_MQTT_HOST; newSettings.host = root["host"] | FACTORY_MQTT_HOST;
@@ -368,7 +366,7 @@ StateUpdateResult MqttSettings::update(JsonObject root, MqttSettings & settings)
emsesp::EMSESP::mqtt_.set_publish_time_heartbeat(newSettings.publish_time_heartbeat); emsesp::EMSESP::mqtt_.set_publish_time_heartbeat(newSettings.publish_time_heartbeat);
} }
#if CONFIG_IDF_TARGET_ESP32S3 #ifndef TASMOTA_SDK
// strip down to certificate only // strip down to certificate only
newSettings.rootCA.replace("\r", ""); newSettings.rootCA.replace("\r", "");
newSettings.rootCA.replace("\n", ""); newSettings.rootCA.replace("\n", "");

View File

@@ -70,6 +70,9 @@ void NetworkSettingsService::manageSTA() {
// Connect or reconnect as required // Connect or reconnect as required
if ((WiFi.getMode() & WIFI_STA) == 0) { if ((WiFi.getMode() & WIFI_STA) == 0) {
#ifdef TASMOTA_SDK
WiFi.enableIPv6(_state.enableIPv6);
#endif
if (_state.staticIPConfig) { if (_state.staticIPConfig) {
WiFi.config(_state.localIP, _state.gatewayIP, _state.subnetMask, _state.dnsIP1, _state.dnsIP2); // configure for static IP WiFi.config(_state.localIP, _state.gatewayIP, _state.subnetMask, _state.dnsIP1, _state.dnsIP2); // configure for static IP
} }
@@ -388,13 +391,15 @@ void NetworkSettings::read(NetworkSettings & settings, JsonObject root) {
root["password"] = settings.password; root["password"] = settings.password;
root["hostname"] = settings.hostname; root["hostname"] = settings.hostname;
root["static_ip_config"] = settings.staticIPConfig; root["static_ip_config"] = settings.staticIPConfig;
root["enableIPv6"] = settings.enableIPv6;
root["bandwidth20"] = settings.bandwidth20; root["bandwidth20"] = settings.bandwidth20;
root["nosleep"] = settings.nosleep; root["nosleep"] = settings.nosleep;
root["enableMDNS"] = settings.enableMDNS; root["enableMDNS"] = settings.enableMDNS;
root["enableCORS"] = settings.enableCORS; root["enableCORS"] = settings.enableCORS;
root["CORSOrigin"] = settings.CORSOrigin; root["CORSOrigin"] = settings.CORSOrigin;
root["tx_power"] = settings.tx_power; root["tx_power"] = settings.tx_power;
#ifndef TASMOTA_SDK
root["enableIPv6"] = settings.enableIPv6;
#endif
// extended settings // extended settings
JsonUtils::writeIP(root, "local_ip", settings.localIP); JsonUtils::writeIP(root, "local_ip", settings.localIP);
@@ -416,14 +421,17 @@ StateUpdateResult NetworkSettings::update(JsonObject root, NetworkSettings & set
settings.password = root["password"] | FACTORY_WIFI_PASSWORD; settings.password = root["password"] | FACTORY_WIFI_PASSWORD;
settings.hostname = root["hostname"] | FACTORY_WIFI_HOSTNAME; settings.hostname = root["hostname"] | FACTORY_WIFI_HOSTNAME;
settings.staticIPConfig = root["static_ip_config"] | false; settings.staticIPConfig = root["static_ip_config"] | false;
settings.enableIPv6 = root["enableIPv6"] | false;
settings.bandwidth20 = root["bandwidth20"] | false; settings.bandwidth20 = root["bandwidth20"] | false;
settings.tx_power = static_cast<uint8_t>(root["tx_power"] | 0); settings.tx_power = static_cast<uint8_t>(root["tx_power"] | 0);
settings.nosleep = root["nosleep"] | false; settings.nosleep = root["nosleep"] | false;
settings.enableMDNS = root["enableMDNS"] | true; settings.enableMDNS = root["enableMDNS"] | true;
settings.enableCORS = root["enableCORS"] | false; settings.enableCORS = root["enableCORS"] | false;
settings.CORSOrigin = root["CORSOrigin"] | "*"; settings.CORSOrigin = root["CORSOrigin"] | "*";
#ifdef TASMOTA_SDK
settings.enableIPv6 = true;
#else
settings.enableIPv6 = root["enableIPv6"] | false;
#endif
// extended settings // extended settings
JsonUtils::readIP(root, "local_ip", settings.localIP); JsonUtils::readIP(root, "local_ip", settings.localIP);
JsonUtils::readIP(root, "gateway_ip", settings.gatewayIP); JsonUtils::readIP(root, "gateway_ip", settings.gatewayIP);

View File

@@ -1,6 +1,9 @@
#include "NetworkStatus.h" #include "NetworkStatus.h"
#include "../../src/emsesp_stub.hpp" #include "../../src/emsesp_stub.hpp"
#ifdef TASMOTA_SDK
#include "lwip/dns.h"
#endif
NetworkStatus::NetworkStatus(AsyncWebServer * server, SecurityManager * securityManager) { NetworkStatus::NetworkStatus(AsyncWebServer * server, SecurityManager * securityManager) {
server->on(NETWORK_STATUS_SERVICE_PATH, server->on(NETWORK_STATUS_SERVICE_PATH,
@@ -32,8 +35,13 @@ void NetworkStatus::networkStatus(AsyncWebServerRequest * request) {
root["mac_address"] = ETH.macAddress(); root["mac_address"] = ETH.macAddress();
root["subnet_mask"] = ETH.subnetMask().toString(); root["subnet_mask"] = ETH.subnetMask().toString();
root["gateway_ip"] = ETH.gatewayIP().toString(); root["gateway_ip"] = ETH.gatewayIP().toString();
#ifdef TASMOTA_SDK
IPAddress dnsIP1 = IPAddress(dns_getserver(0));
IPAddress dnsIP2 = IPAddress(dns_getserver(1));
#else
IPAddress dnsIP1 = ETH.dnsIP(0); IPAddress dnsIP1 = ETH.dnsIP(0);
IPAddress dnsIP2 = ETH.dnsIP(1); IPAddress dnsIP2 = ETH.dnsIP(1);
#endif
if (IPUtils::isSet(dnsIP1)) { if (IPUtils::isSet(dnsIP1)) {
root["dns_ip_1"] = dnsIP1.toString(); root["dns_ip_1"] = dnsIP1.toString();
} }
@@ -54,8 +62,13 @@ void NetworkStatus::networkStatus(AsyncWebServerRequest * request) {
root["gateway_ip"] = WiFi.gatewayIP().toString(); root["gateway_ip"] = WiFi.gatewayIP().toString();
} }
#ifdef TASMOTA_SDK
IPAddress dnsIP1 = IPAddress(dns_getserver(0));
IPAddress dnsIP2 = IPAddress(dns_getserver(1));
#else
IPAddress dnsIP1 = WiFi.dnsIP(0); IPAddress dnsIP1 = WiFi.dnsIP(0);
IPAddress dnsIP2 = WiFi.dnsIP(1); IPAddress dnsIP2 = WiFi.dnsIP(1);
#endif
if (dnsIP1 != INADDR_NONE) { if (dnsIP1 != INADDR_NONE) {
root["dns_ip_1"] = dnsIP1.toString(); root["dns_ip_1"] = dnsIP1.toString();
} }

View File

@@ -96,6 +96,16 @@ build_flags =
${espressi32_base.build_flags} ${espressi32_base.build_flags}
'-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"' '-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"'
[env:ci_16M]
extends = espressi32_base
extra_scripts = scripts/rename_fw.py
board = esp32dev
board_build.partitions = esp32_partition_16M.csv
board_build.extra_flags = -DBOARD_HAS_PSRAM
build_flags =
${espressi32_base.build_flags}
'-DEMSESP_DEFAULT_BOARD_PROFILE="E32V2"'
[env:esp32_4M] [env:esp32_4M]
extends = espressi32_base_tasmota extends = espressi32_base_tasmota
board = esp32dev board = esp32dev
@@ -111,7 +121,7 @@ board_upload.flash_size = 4MB
board_build.partitions = esp32_asym_partition_4M.csv board_build.partitions = esp32_asym_partition_4M.csv
[env:esp32_16M] [env:esp32_16M]
extends = espressi32_base_tasmota extends = espressi32_base
board = esp32dev board = esp32dev
board_build.extra_flags = -DBOARD_HAS_PSRAM board_build.extra_flags = -DBOARD_HAS_PSRAM
board_upload.flash_size = 16MB board_upload.flash_size = 16MB
@@ -159,6 +169,19 @@ build_flags =
${espressi32_base.build_flags} ${espressi32_base.build_flags}
'-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"' '-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"'
[env:esp32_s3_32M]
extends = espressi32_base
board = lolin_s3
board_build.f_cpu = 240000000L
board_upload.flash_size = 32MB
board_build.partitions = esp32_partition_32M.csv
board_build.flash_mode = opi
board_build.arduino.memory_type: opi_opi
build_unflags = ${common.unbuild_flags}
build_flags =
${espressi32_base.build_flags}
'-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"'
; to build and run: pio run -e standalone -t exec ; to build and run: pio run -e standalone -t exec
[env:standalone] [env:standalone]
platform = native platform = native

View File

@@ -64,6 +64,7 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
register_telegram_type(0xE6, "UBAParametersPlus", true, MAKE_PF_CB(process_UBAParametersPlus)); register_telegram_type(0xE6, "UBAParametersPlus", true, MAKE_PF_CB(process_UBAParametersPlus));
register_telegram_type(0xE9, "UBAMonitorWWPlus", false, MAKE_PF_CB(process_UBAMonitorWWPlus)); register_telegram_type(0xE9, "UBAMonitorWWPlus", false, MAKE_PF_CB(process_UBAMonitorWWPlus));
register_telegram_type(0xEA, "UBAParameterWWPlus", true, MAKE_PF_CB(process_UBAParameterWWPlus)); register_telegram_type(0xEA, "UBAParameterWWPlus", true, MAKE_PF_CB(process_UBAParameterWWPlus));
register_telegram_type(0x28, "WeatherComp", true, MAKE_PF_CB(process_WeatherComp));
} }
if (model() == EMSdevice::EMS_DEVICE_FLAG_HEATPUMP) { if (model() == EMSdevice::EMS_DEVICE_FLAG_HEATPUMP) {
@@ -241,6 +242,16 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
MAKE_CF_CB(set_hyst2_off), MAKE_CF_CB(set_hyst2_off),
0, 0,
20); 20);
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &curveOn_, DeviceValueType::BOOL, FL_(curveOn), DeviceValueUOM::NONE, MAKE_CF_CB(set_curveOn));
register_device_value(
DeviceValueTAG::TAG_DEVICE_DATA, &curveBase_, DeviceValueType::UINT, FL_(curveBase), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_curveBase), 20, 90);
register_device_value(
DeviceValueTAG::TAG_DEVICE_DATA, &curveEnd_, DeviceValueType::UINT, FL_(curveEnd), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_curveEnd), 20, 90);
register_device_value(
DeviceValueTAG::TAG_DEVICE_DATA, &summerTemp_, DeviceValueType::UINT, FL_(summertemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_summerTemp), 0, 30);
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &nofrost_, DeviceValueType::BOOL, FL_(nofrostmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_nofrost));
register_device_value(
DeviceValueTAG::TAG_DEVICE_DATA, &nofrostTemp_, DeviceValueType::UINT, FL_(nofrosttemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_nofrostTemp), 0, 10);
} }
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
&heatingActivated_, &heatingActivated_,
@@ -1994,6 +2005,17 @@ void Boiler::process_HIUSettings(std::shared_ptr<const Telegram> telegram) {
has_update(telegram, setReturnTemp_, 2); has_update(telegram, setReturnTemp_, 2);
} }
// Weather compensation, #1642
// boiler(0x08) -W-> Me(0x0B), ?(0x28), data: 00 3C 32 10 00 05
void Boiler::process_WeatherComp(std::shared_ptr<const Telegram> telegram) {
has_update(telegram, curveOn_, 0);
has_update(telegram, curveEnd_, 1);
has_update(telegram, curveBase_, 2);
has_update(telegram, summerTemp_, 3);
has_update(telegram, nofrost_, 4);
has_update(telegram, nofrostTemp_, 5);
}
// HIU Settings // HIU Settings
bool Boiler::set_keepWarmTemp(const char * value, const int8_t id) { bool Boiler::set_keepWarmTemp(const char * value, const int8_t id) {
int v; int v;
@@ -3137,4 +3159,58 @@ bool Boiler::set_nomPower(const char * value, const int8_t id) {
return true; return true;
} }
bool Boiler::set_curveOn(const char * value, const int8_t id) {
bool v;
if (Helpers::value2bool(value, v)) {
write_command(0x28, 0, v ? 0xFF : 0);
return true;
}
return false;
}
bool Boiler::set_curveBase(const char * value, const int8_t id) {
int v;
if (!Helpers::value2temperature(value, v)) {
return false;
}
write_command(0x28, 2, v);
return true;
}
bool Boiler::set_curveEnd(const char * value, const int8_t id) {
int v;
if (!Helpers::value2temperature(value, v)) {
return false;
}
write_command(0x28, 1, v);
return true;
}
bool Boiler::set_summerTemp(const char * value, const int8_t id) {
int v;
if (!Helpers::value2temperature(value, v)) {
return false;
}
write_command(0x28, 3, v);
return true;
}
bool Boiler::set_nofrost(const char * value, const int8_t id) {
bool v;
if (Helpers::value2bool(value, v)) {
write_command(0x28, 4, v ? 0xFF : 0);
return true;
}
return false;
}
bool Boiler::set_nofrostTemp(const char * value, const int8_t id) {
int v;
if (!Helpers::value2temperature(value, v)) {
return false;
}
write_command(0x28, 5, v);
return true;
}
} // namespace emsesp } // namespace emsesp

View File

@@ -155,6 +155,14 @@ class Boiler : public EMSdevice {
uint16_t headertemp_; // see #1317 uint16_t headertemp_; // see #1317
uint16_t heatblock_; // see #1317 uint16_t heatblock_; // see #1317
// weather compensation, see #1642
uint8_t curveOn_;
uint8_t curveBase_;
uint8_t curveEnd_;
uint8_t summerTemp_;
uint8_t nofrost_;
uint8_t nofrostTemp_;
// info // info
uint32_t upTimeTotal_; // Operating time uint32_t upTimeTotal_; // Operating time
uint32_t upTimeControl_; // Operating time control uint32_t upTimeControl_; // Operating time control
@@ -351,6 +359,7 @@ class Boiler : public EMSdevice {
void process_HpSettings3(std::shared_ptr<const Telegram> telegram); void process_HpSettings3(std::shared_ptr<const Telegram> telegram);
void process_HpEnergy(std::shared_ptr<const Telegram> telegram); void process_HpEnergy(std::shared_ptr<const Telegram> telegram);
void process_HpMeters(std::shared_ptr<const Telegram> telegram); void process_HpMeters(std::shared_ptr<const Telegram> telegram);
void process_WeatherComp(std::shared_ptr<const Telegram> telegram);
// HIU // HIU
void process_HIUSettings(std::shared_ptr<const Telegram> telegram); void process_HIUSettings(std::shared_ptr<const Telegram> telegram);
void process_HIUMonitor(std::shared_ptr<const Telegram> telegram); void process_HIUMonitor(std::shared_ptr<const Telegram> telegram);
@@ -523,6 +532,12 @@ class Boiler : public EMSdevice {
bool set_delayBoiler(const char * value, const int8_t id); bool set_delayBoiler(const char * value, const int8_t id);
bool set_tempDiffBoiler(const char * value, const int8_t id); bool set_tempDiffBoiler(const char * value, const int8_t id);
*/ */
bool set_curveOn(const char * value, const int8_t id);
bool set_curveBase(const char * value, const int8_t id);
bool set_curveEnd(const char * value, const int8_t id);
bool set_summerTemp(const char * value, const int8_t id);
bool set_nofrost(const char * value, const int8_t id);
bool set_nofrostTemp(const char * value, const int8_t id);
bool set_nrgHeat(const char * value, const int8_t id); bool set_nrgHeat(const char * value, const int8_t id);
bool set_nrgWw(const char * value, const int8_t id); bool set_nrgWw(const char * value, const int8_t id);

View File

@@ -346,6 +346,10 @@ MAKE_TRANSLATION(pumpMode, "pumpmode", "boiler pump mode", "Kesselpumpen Modus",
MAKE_TRANSLATION(headertemp, "headertemp", "low loss header", "Hydr. Weiche", "open verdeler", "", "sprzęgło hydrauliczne", "", "bouteille de déc. hydr.", "isı bloğu gidiş suyu sıc.", "comp. idr.", "nízkostratová hlavica") // TODO translate MAKE_TRANSLATION(headertemp, "headertemp", "low loss header", "Hydr. Weiche", "open verdeler", "", "sprzęgło hydrauliczne", "", "bouteille de déc. hydr.", "isı bloğu gidiş suyu sıc.", "comp. idr.", "nízkostratová hlavica") // TODO translate
MAKE_TRANSLATION(heatblock, "heatblock", "heating block", "Wärmezelle", "Aanvoertemp. warmtecel", "", "blok grzewczy", "", "départ corps de chauffe", "Hid.denge kabı sıcaklığı", "mandata scamb. pr.", "vykurovací blok") // TODO translate MAKE_TRANSLATION(heatblock, "heatblock", "heating block", "Wärmezelle", "Aanvoertemp. warmtecel", "", "blok grzewczy", "", "départ corps de chauffe", "Hid.denge kabı sıcaklığı", "mandata scamb. pr.", "vykurovací blok") // TODO translate
MAKE_TRANSLATION(curveOn, "curveon", "heatingcurve on", "Heizkurve an", "", "", "", "", "", "", "", "") // TODO translate
MAKE_TRANSLATION(curveBase, "curvebase", "heatingcurve base", "Heizkurve Basis", "", "", "", "", "", "", "", "") // TODO translate
MAKE_TRANSLATION(curveEnd, "curveend", "heatingcurve end", "Heizkurve Ende", "", "", "", "", "", "", "", "") // TODO translate
// heatpump/compress specific // heatpump/compress specific
MAKE_TRANSLATION(upTimeTotal, "uptimetotal", "heatpump total uptime", "Wärmpepumpe Gesamtbetriebszeit", "", "", "łączny czas pracy pompy ciepła", "", "", "", "", "celková doba prevádzky tepelného čerpadla") // TODO translate MAKE_TRANSLATION(upTimeTotal, "uptimetotal", "heatpump total uptime", "Wärmpepumpe Gesamtbetriebszeit", "", "", "łączny czas pracy pompy ciepła", "", "", "", "", "celková doba prevádzky tepelného čerpadla") // TODO translate
MAKE_TRANSLATION(upTimeControl, "uptimecontrol", "total operating time heat", "Betriebszeit Heizen gesamt", "Totale bedrijfstijd", "Total tid uppvärmning", "łączny czas generowania ciepła", "total driftstid", "durée totale de fonctionnement chauffage", "ısınma toplam işletme süresi", "Tempo di funzionamento totale riscaldamento", "celkový prevádzkový čas tepla") MAKE_TRANSLATION(upTimeControl, "uptimecontrol", "total operating time heat", "Betriebszeit Heizen gesamt", "Totale bedrijfstijd", "Total tid uppvärmning", "łączny czas generowania ciepła", "total driftstid", "durée totale de fonctionnement chauffage", "ısınma toplam işletme süresi", "Tempo di funzionamento totale riscaldamento", "celkový prevádzkový čas tepla")

View File

@@ -1 +1 @@
#define EMSESP_APP_VERSION "3.6.5-dev.15" #define EMSESP_APP_VERSION "3.6.5-dev.16"