mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 16:29:51 +03:00
Merge pull request #2199 from MichaelDvP/dev
fixes and additions for #2188, #2198, 2192, #2192, #2132
This commit is contained in:
@@ -10,7 +10,8 @@ For more details go to [www.emsesp.org](https://www.emsesp.org/).
|
|||||||
|
|
||||||
- include HA "unit_of_meas", "stat_cla" and "dev_cla" attributes for Number sensors [#2149](https://github.com/emsesp/EMS-ESP32/issues/2149)
|
- include HA "unit_of_meas", "stat_cla" and "dev_cla" attributes for Number sensors [#2149](https://github.com/emsesp/EMS-ESP32/issues/2149)
|
||||||
- Bosch CS6800i AW - Silent Mode + Electrical Power Reduction (HP) [#2147](https://github.com/emsesp/EMS-ESP32/issues/2147)
|
- Bosch CS6800i AW - Silent Mode + Electrical Power Reduction (HP) [#2147](https://github.com/emsesp/EMS-ESP32/issues/2147)
|
||||||
- /api/system/showeralert and /api/system/showertimer [#2182](https://github.com/emsesp/EMS-ESP32/issues/2182)
|
- `/api/system/showeralert` and `/api/system/showertimer` [#2182](https://github.com/emsesp/EMS-ESP32/issues/2182)
|
||||||
|
- MX400 [#2198](https://github.com/emsesp/EMS-ESP32/issues/2198)
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
|
||||||
@@ -18,5 +19,9 @@ For more details go to [www.emsesp.org](https://www.emsesp.org/).
|
|||||||
- fix changing TZ in NTPsettings without clearing enable+server, added DST support [#2142](https://github.com/emsesp/EMS-ESP32/issues/2142)
|
- fix changing TZ in NTPsettings without clearing enable+server, added DST support [#2142](https://github.com/emsesp/EMS-ESP32/issues/2142)
|
||||||
- Support MQTT Discovery (AD) with Domoticz [#2177](https://github.com/emsesp/EMS-ESP32/issues/2177)
|
- Support MQTT Discovery (AD) with Domoticz [#2177](https://github.com/emsesp/EMS-ESP32/issues/2177)
|
||||||
- wwExtra (dhw extra) changed from temperature reading to number
|
- wwExtra (dhw extra) changed from temperature reading to number
|
||||||
|
- auxheaterstatus [#2192](https://github.com/emsesp/EMS-ESP32/issues/2192)
|
||||||
|
- lastCode character check [#2189](https://github.com/emsesp/EMS-ESP32/issues/2189)
|
||||||
|
- reading too many telegram parts
|
||||||
|
- heatpump cost UOMs [#2188](https://github.com/emsesp/EMS-ESP32/issues/2188)
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
|||||||
@@ -24,10 +24,10 @@
|
|||||||
"@alova/adapter-xhr": "2.0.10",
|
"@alova/adapter-xhr": "2.0.10",
|
||||||
"@emotion/react": "^11.13.3",
|
"@emotion/react": "^11.13.3",
|
||||||
"@emotion/styled": "^11.13.0",
|
"@emotion/styled": "^11.13.0",
|
||||||
"@mui/icons-material": "^6.1.6",
|
"@mui/icons-material": "^6.1.7",
|
||||||
"@mui/material": "^6.1.6",
|
"@mui/material": "^6.1.7",
|
||||||
"@table-library/react-table-library": "4.1.7",
|
"@table-library/react-table-library": "4.1.7",
|
||||||
"alova": "3.2.2",
|
"alova": "3.2.3",
|
||||||
"async-validator": "^4.2.5",
|
"async-validator": "^4.2.5",
|
||||||
"jwt-decode": "^4.0.0",
|
"jwt-decode": "^4.0.0",
|
||||||
"mime-types": "^2.1.35",
|
"mime-types": "^2.1.35",
|
||||||
@@ -58,10 +58,10 @@
|
|||||||
"prettier": "^3.3.3",
|
"prettier": "^3.3.3",
|
||||||
"rollup-plugin-visualizer": "^5.12.0",
|
"rollup-plugin-visualizer": "^5.12.0",
|
||||||
"terser": "^5.36.0",
|
"terser": "^5.36.0",
|
||||||
"typescript-eslint": "8.13.0",
|
"typescript-eslint": "8.14.0",
|
||||||
"vite": "^5.4.10",
|
"vite": "^5.4.11",
|
||||||
"vite-plugin-imagemin": "^0.6.1",
|
"vite-plugin-imagemin": "^0.6.1",
|
||||||
"vite-tsconfig-paths": "^5.1.1"
|
"vite-tsconfig-paths": "^5.1.2"
|
||||||
},
|
},
|
||||||
"packageManager": "yarn@4.5.1"
|
"packageManager": "yarn@4.5.1"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -181,7 +181,8 @@ export enum DeviceValueUOM {
|
|||||||
K,
|
K,
|
||||||
VOLTS,
|
VOLTS,
|
||||||
MBAR,
|
MBAR,
|
||||||
LH
|
LH,
|
||||||
|
CTKWH
|
||||||
}
|
}
|
||||||
|
|
||||||
export const DeviceValueUOM_s = [
|
export const DeviceValueUOM_s = [
|
||||||
@@ -210,7 +211,8 @@ export const DeviceValueUOM_s = [
|
|||||||
'K',
|
'K',
|
||||||
'V',
|
'V',
|
||||||
'mbar',
|
'mbar',
|
||||||
'l/h'
|
'l/h',
|
||||||
|
'ct/kWh'
|
||||||
];
|
];
|
||||||
|
|
||||||
export enum AnalogType {
|
export enum AnalogType {
|
||||||
|
|||||||
@@ -840,38 +840,38 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@mui/core-downloads-tracker@npm:^6.1.6":
|
"@mui/core-downloads-tracker@npm:^6.1.7":
|
||||||
version: 6.1.6
|
version: 6.1.7
|
||||||
resolution: "@mui/core-downloads-tracker@npm:6.1.6"
|
resolution: "@mui/core-downloads-tracker@npm:6.1.7"
|
||||||
checksum: 10c0/538c561dc46e040ebc5ea884428dccc427fdddbd3747890d96ae52648eed5f7dec4dc8294927b58ff4b7481c0a813dcb16b9d7b9b08cc43871d2d55ebd1a8002
|
checksum: 10c0/4568379b1df8a17ca2292b7caa729f42c3b4b359841c81981a7d25641380121f3a042e53094cabd16d5c838372edadb8c23c24d9bff0fcc794c615b62f0ceb3e
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@mui/icons-material@npm:^6.1.6":
|
"@mui/icons-material@npm:^6.1.7":
|
||||||
version: 6.1.6
|
version: 6.1.7
|
||||||
resolution: "@mui/icons-material@npm:6.1.6"
|
resolution: "@mui/icons-material@npm:6.1.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime": "npm:^7.26.0"
|
"@babel/runtime": "npm:^7.26.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@mui/material": ^6.1.6
|
"@mui/material": ^6.1.7
|
||||||
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
"@types/react":
|
"@types/react":
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/a6eb10be3cc356fd404febf29a3b26fa63b6b09d3148736fb05279954905186e9804869ff18220840ae92dbdeddfd407c2d0c72b9e165e01fd6bbc620b6b39d7
|
checksum: 10c0/89f6d69dce35aa0b2fd2586f0de3a01171ba85b6c2b848dd0d1cfca0840778eafc90465efeb822451f4066df9791099ff8a683df4cacea98bc3affbc9b80c891
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@mui/material@npm:^6.1.6":
|
"@mui/material@npm:^6.1.7":
|
||||||
version: 6.1.6
|
version: 6.1.7
|
||||||
resolution: "@mui/material@npm:6.1.6"
|
resolution: "@mui/material@npm:6.1.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime": "npm:^7.26.0"
|
"@babel/runtime": "npm:^7.26.0"
|
||||||
"@mui/core-downloads-tracker": "npm:^6.1.6"
|
"@mui/core-downloads-tracker": "npm:^6.1.7"
|
||||||
"@mui/system": "npm:^6.1.6"
|
"@mui/system": "npm:^6.1.7"
|
||||||
"@mui/types": "npm:^7.2.19"
|
"@mui/types": "npm:^7.2.19"
|
||||||
"@mui/utils": "npm:^6.1.6"
|
"@mui/utils": "npm:^6.1.7"
|
||||||
"@popperjs/core": "npm:^2.11.8"
|
"@popperjs/core": "npm:^2.11.8"
|
||||||
"@types/react-transition-group": "npm:^4.4.11"
|
"@types/react-transition-group": "npm:^4.4.11"
|
||||||
clsx: "npm:^2.1.1"
|
clsx: "npm:^2.1.1"
|
||||||
@@ -882,7 +882,7 @@ __metadata:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@emotion/react": ^11.5.0
|
"@emotion/react": ^11.5.0
|
||||||
"@emotion/styled": ^11.3.0
|
"@emotion/styled": ^11.3.0
|
||||||
"@mui/material-pigment-css": ^6.1.6
|
"@mui/material-pigment-css": ^6.1.7
|
||||||
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
|
react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
@@ -895,16 +895,16 @@ __metadata:
|
|||||||
optional: true
|
optional: true
|
||||||
"@types/react":
|
"@types/react":
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/b54c0b01f33f63a700ec7b13d615dd3a109497ee48a1af0f750f780112a7034fbecfcecf29ad67aa62ec12047d465fbcb243052d8680ce681240096fef1f8d63
|
checksum: 10c0/2c049da6b8f4bc79a0777692138ff77a0cb64b96c384d7070097c006391798554923806fed1ef8c6db8730f11c058edfb94bd243d2abeff14e45fd51d1f29819
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@mui/private-theming@npm:^6.1.6":
|
"@mui/private-theming@npm:^6.1.7":
|
||||||
version: 6.1.6
|
version: 6.1.7
|
||||||
resolution: "@mui/private-theming@npm:6.1.6"
|
resolution: "@mui/private-theming@npm:6.1.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime": "npm:^7.26.0"
|
"@babel/runtime": "npm:^7.26.0"
|
||||||
"@mui/utils": "npm:^6.1.6"
|
"@mui/utils": "npm:^6.1.7"
|
||||||
prop-types: "npm:^15.8.1"
|
prop-types: "npm:^15.8.1"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
@@ -912,13 +912,13 @@ __metadata:
|
|||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
"@types/react":
|
"@types/react":
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/d9138bd3ae8b318b0f14e3d9a9aa414f31698ce3934b94f0a1e78d9c2c37fd3d2b24a6bd45ded321ffc41658e70fc055226b9c1b9767695a93c927adf54302a0
|
checksum: 10c0/2735c0e7155fd595c5f6fd87a20a74a222f1ef3120722d1964fa231c075b909b77612ac3e3a8bb5604a388205f4495690bc0602ceabe925294ed6a5fbe8144da
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@mui/styled-engine@npm:^6.1.6":
|
"@mui/styled-engine@npm:^6.1.7":
|
||||||
version: 6.1.6
|
version: 6.1.7
|
||||||
resolution: "@mui/styled-engine@npm:6.1.6"
|
resolution: "@mui/styled-engine@npm:6.1.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime": "npm:^7.26.0"
|
"@babel/runtime": "npm:^7.26.0"
|
||||||
"@emotion/cache": "npm:^11.13.1"
|
"@emotion/cache": "npm:^11.13.1"
|
||||||
@@ -935,19 +935,19 @@ __metadata:
|
|||||||
optional: true
|
optional: true
|
||||||
"@emotion/styled":
|
"@emotion/styled":
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/2554248f83db98b404b299494c4f039fe5a1f1b9166fc95268958ea00aa3be04915ffbabe0ea418cb2d600e11b6d08f765ddd23240a63e6d06161d07eaac6aa8
|
checksum: 10c0/0289121553ab95f6ddd1be0eeb27e975a01391266ff3076430ab67d925c231b586fc2899f8340648b4587c651bd3f7fd24094f43386f6de9052db92a98e13c15
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@mui/system@npm:^6.1.6":
|
"@mui/system@npm:^6.1.7":
|
||||||
version: 6.1.6
|
version: 6.1.7
|
||||||
resolution: "@mui/system@npm:6.1.6"
|
resolution: "@mui/system@npm:6.1.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime": "npm:^7.26.0"
|
"@babel/runtime": "npm:^7.26.0"
|
||||||
"@mui/private-theming": "npm:^6.1.6"
|
"@mui/private-theming": "npm:^6.1.7"
|
||||||
"@mui/styled-engine": "npm:^6.1.6"
|
"@mui/styled-engine": "npm:^6.1.7"
|
||||||
"@mui/types": "npm:^7.2.19"
|
"@mui/types": "npm:^7.2.19"
|
||||||
"@mui/utils": "npm:^6.1.6"
|
"@mui/utils": "npm:^6.1.7"
|
||||||
clsx: "npm:^2.1.1"
|
clsx: "npm:^2.1.1"
|
||||||
csstype: "npm:^3.1.3"
|
csstype: "npm:^3.1.3"
|
||||||
prop-types: "npm:^15.8.1"
|
prop-types: "npm:^15.8.1"
|
||||||
@@ -963,7 +963,7 @@ __metadata:
|
|||||||
optional: true
|
optional: true
|
||||||
"@types/react":
|
"@types/react":
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/125d38ad5b0d610cfedace8253e43b4be47b46ad2d96eeac019c6c37b4f09286512e2280924753f8bb0314c4d7cc5e8f03fc7f97cf9830c4f6d1869b721eb8c2
|
checksum: 10c0/309db6f87bc7e489486f683961d032faad4804e7a3263f584b0a82e3286831a596f416be69066967a76253938e604cbb87bdfe4f9b8feed683b40ca7c4b8d8f2
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -979,9 +979,9 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@mui/utils@npm:^6.1.6":
|
"@mui/utils@npm:^6.1.7":
|
||||||
version: 6.1.6
|
version: 6.1.7
|
||||||
resolution: "@mui/utils@npm:6.1.6"
|
resolution: "@mui/utils@npm:6.1.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime": "npm:^7.26.0"
|
"@babel/runtime": "npm:^7.26.0"
|
||||||
"@mui/types": "npm:^7.2.19"
|
"@mui/types": "npm:^7.2.19"
|
||||||
@@ -995,7 +995,7 @@ __metadata:
|
|||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
"@types/react":
|
"@types/react":
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/8752b3ca3fa1cee7f1a8477b6babcd80fef01724f7d8106c8665a252ec960ca38ef5f4fe21cfb60ee11176a9a8034400420d5b0719953ecc2c4f25980682614c
|
checksum: 10c0/8dc05bf8f48d6d6d24cb9950b705e8b48eedac8dba159514c5c61ec2da54c9de3f40ff33e8a662eb661af6fbbf9c80b83277eefba6e54a1b5fa26a377ec0d694
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -1539,15 +1539,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@npm:8.13.0":
|
"@typescript-eslint/eslint-plugin@npm:8.14.0":
|
||||||
version: 8.13.0
|
version: 8.14.0
|
||||||
resolution: "@typescript-eslint/eslint-plugin@npm:8.13.0"
|
resolution: "@typescript-eslint/eslint-plugin@npm:8.14.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/regexpp": "npm:^4.10.0"
|
"@eslint-community/regexpp": "npm:^4.10.0"
|
||||||
"@typescript-eslint/scope-manager": "npm:8.13.0"
|
"@typescript-eslint/scope-manager": "npm:8.14.0"
|
||||||
"@typescript-eslint/type-utils": "npm:8.13.0"
|
"@typescript-eslint/type-utils": "npm:8.14.0"
|
||||||
"@typescript-eslint/utils": "npm:8.13.0"
|
"@typescript-eslint/utils": "npm:8.14.0"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.13.0"
|
"@typescript-eslint/visitor-keys": "npm:8.14.0"
|
||||||
graphemer: "npm:^1.4.0"
|
graphemer: "npm:^1.4.0"
|
||||||
ignore: "npm:^5.3.1"
|
ignore: "npm:^5.3.1"
|
||||||
natural-compare: "npm:^1.4.0"
|
natural-compare: "npm:^1.4.0"
|
||||||
@@ -1558,66 +1558,66 @@ __metadata:
|
|||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/ee96515e9def17b0d1b8d568d4afcd21c5a8a1bc01bf2f30c4d1f396b41a2f49de3508f79c6231a137ca06943dd6933ac00032652190ab99a4e935ffef44df0b
|
checksum: 10c0/46c82eb45be82ffec0ab04728a5180691b1d17002c669864861a3044b6d2105a75ca23cc80d18721b40b5e7dff1eff4ed68a43d726e25d55f3e466a9fbeeb873
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/parser@npm:8.13.0":
|
"@typescript-eslint/parser@npm:8.14.0":
|
||||||
version: 8.13.0
|
version: 8.14.0
|
||||||
resolution: "@typescript-eslint/parser@npm:8.13.0"
|
resolution: "@typescript-eslint/parser@npm:8.14.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/scope-manager": "npm:8.13.0"
|
"@typescript-eslint/scope-manager": "npm:8.14.0"
|
||||||
"@typescript-eslint/types": "npm:8.13.0"
|
"@typescript-eslint/types": "npm:8.14.0"
|
||||||
"@typescript-eslint/typescript-estree": "npm:8.13.0"
|
"@typescript-eslint/typescript-estree": "npm:8.14.0"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.13.0"
|
"@typescript-eslint/visitor-keys": "npm:8.14.0"
|
||||||
debug: "npm:^4.3.4"
|
debug: "npm:^4.3.4"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/fa04f6c417c0f72104e148f1d7ff53e04108d383550365a556fbfae5d2283484696235db522189e17bc49039946977078e324100cef991ca01f78704182624ad
|
checksum: 10c0/522b7afd25cd302c0510cc71985ba55ff92ecc5dbe3fc74a76fefea0169252fdd4b8cad6291fef05f63dfc173951af450dca20859c7f23e387b2e7410e8b97b1
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/scope-manager@npm:8.13.0":
|
"@typescript-eslint/scope-manager@npm:8.14.0":
|
||||||
version: 8.13.0
|
version: 8.14.0
|
||||||
resolution: "@typescript-eslint/scope-manager@npm:8.13.0"
|
resolution: "@typescript-eslint/scope-manager@npm:8.14.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types": "npm:8.13.0"
|
"@typescript-eslint/types": "npm:8.14.0"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.13.0"
|
"@typescript-eslint/visitor-keys": "npm:8.14.0"
|
||||||
checksum: 10c0/1924b3e740e244d98f8a99740b4196d23ae3263303b387c66db94e140455a3132e603a130f3f70fc71e37f4bda5d0c0c67224ae3911908b097ef3f972c136be4
|
checksum: 10c0/1e1295c6f9febadf63559aad328b23d960510ce6b4c9f74e10d881c3858fa7f1db767cd1af5272d2fe7c9c5c7daebee71854e6f841e413e5d70af282f6616e26
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/type-utils@npm:8.13.0":
|
"@typescript-eslint/type-utils@npm:8.14.0":
|
||||||
version: 8.13.0
|
version: 8.14.0
|
||||||
resolution: "@typescript-eslint/type-utils@npm:8.13.0"
|
resolution: "@typescript-eslint/type-utils@npm:8.14.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/typescript-estree": "npm:8.13.0"
|
"@typescript-eslint/typescript-estree": "npm:8.14.0"
|
||||||
"@typescript-eslint/utils": "npm:8.13.0"
|
"@typescript-eslint/utils": "npm:8.14.0"
|
||||||
debug: "npm:^4.3.4"
|
debug: "npm:^4.3.4"
|
||||||
ts-api-utils: "npm:^1.3.0"
|
ts-api-utils: "npm:^1.3.0"
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/65319084616f3aea3d9f8dfab30c9b0a70de7314b445805016fdf0d0e39fe073eef2813c3e16c3e1c6a40462ba8eecfdbb12ab1e8570c3407a1cccdb69d4bc8b
|
checksum: 10c0/42616a664b38ca418e13504247e5e1bad6ae85c045b48e5735ffab977d4bd58cc86fb9d2292bbb314fa408d78d4b0454c3a27dbf9f881f9921917a942825c806
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/types@npm:8.13.0":
|
"@typescript-eslint/types@npm:8.14.0":
|
||||||
version: 8.13.0
|
version: 8.14.0
|
||||||
resolution: "@typescript-eslint/types@npm:8.13.0"
|
resolution: "@typescript-eslint/types@npm:8.14.0"
|
||||||
checksum: 10c0/bd3f88b738a92b2222f388bcf831357ef8940a763c2c2eb1947767e1051dd2f8bee387020e8cf4c2309e4142353961b659abc2885e30679109a0488b0bfefc23
|
checksum: 10c0/7707f900e24e60e6780c5705f69627b7c0ef912cb3b095dfc8f4a0c84e866c66b1c4c10278cf99724560dc66985ec640750c4192786a09b853f9bb4c3ca5a7ce
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@npm:8.13.0":
|
"@typescript-eslint/typescript-estree@npm:8.14.0":
|
||||||
version: 8.13.0
|
version: 8.14.0
|
||||||
resolution: "@typescript-eslint/typescript-estree@npm:8.13.0"
|
resolution: "@typescript-eslint/typescript-estree@npm:8.14.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types": "npm:8.13.0"
|
"@typescript-eslint/types": "npm:8.14.0"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.13.0"
|
"@typescript-eslint/visitor-keys": "npm:8.14.0"
|
||||||
debug: "npm:^4.3.4"
|
debug: "npm:^4.3.4"
|
||||||
fast-glob: "npm:^3.3.2"
|
fast-glob: "npm:^3.3.2"
|
||||||
is-glob: "npm:^4.0.3"
|
is-glob: "npm:^4.0.3"
|
||||||
@@ -1627,31 +1627,31 @@ __metadata:
|
|||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/2d45bc5ed4ac352bea927167ac28ef23bd13b6ae352ff50e85cddfdc4b06518f1dd4ae5f2495e30d6f62d247987677a4e807065d55829ba28963908a821dc96d
|
checksum: 10c0/5e890d22bd067095f871cf144907a8c302db5b5f014c58906ad58d7f23569951cba805042eac6844744e5abb0d3648c9cc221a91b0703da0a8d6345dc1f83e74
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/utils@npm:8.13.0":
|
"@typescript-eslint/utils@npm:8.14.0":
|
||||||
version: 8.13.0
|
version: 8.14.0
|
||||||
resolution: "@typescript-eslint/utils@npm:8.13.0"
|
resolution: "@typescript-eslint/utils@npm:8.14.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/eslint-utils": "npm:^4.4.0"
|
"@eslint-community/eslint-utils": "npm:^4.4.0"
|
||||||
"@typescript-eslint/scope-manager": "npm:8.13.0"
|
"@typescript-eslint/scope-manager": "npm:8.14.0"
|
||||||
"@typescript-eslint/types": "npm:8.13.0"
|
"@typescript-eslint/types": "npm:8.14.0"
|
||||||
"@typescript-eslint/typescript-estree": "npm:8.13.0"
|
"@typescript-eslint/typescript-estree": "npm:8.14.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
checksum: 10c0/3fc5a7184a949df5f5b64f6af039a1d21ef7fe15f3d88a5d485ccbb535746d18514751143993a5aee287228151be3e326baf8f899a0a0a93368f6f20857ffa6d
|
checksum: 10c0/1fcc2651d870832a799a5d1c85fc9421853508a006d6a6073c8316b012489dda77e123d13aea8f53eb9030a2da2c0eb273a6946a9941caa2519b99b33e89b720
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/visitor-keys@npm:8.13.0":
|
"@typescript-eslint/visitor-keys@npm:8.14.0":
|
||||||
version: 8.13.0
|
version: 8.14.0
|
||||||
resolution: "@typescript-eslint/visitor-keys@npm:8.13.0"
|
resolution: "@typescript-eslint/visitor-keys@npm:8.14.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types": "npm:8.13.0"
|
"@typescript-eslint/types": "npm:8.14.0"
|
||||||
eslint-visitor-keys: "npm:^3.4.3"
|
eslint-visitor-keys: "npm:^3.4.3"
|
||||||
checksum: 10c0/50b35f3cf673aaed940613f0007f7c4558a89ebef15c49824e65b6f084b700fbf01b01a4e701e24bbe651297a39678645e739acd255255f1603867a84bef0383
|
checksum: 10c0/d0faf70ed9ecff5e36694bbb161a90bea6db59e0e79a7d4f264d67d565c12b13733d664b736b2730935f013c87ce3155cea954a533d28e99987681bc5f6259c3
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -1664,8 +1664,8 @@ __metadata:
|
|||||||
"@emotion/react": "npm:^11.13.3"
|
"@emotion/react": "npm:^11.13.3"
|
||||||
"@emotion/styled": "npm:^11.13.0"
|
"@emotion/styled": "npm:^11.13.0"
|
||||||
"@eslint/js": "npm:^9.14.0"
|
"@eslint/js": "npm:^9.14.0"
|
||||||
"@mui/icons-material": "npm:^6.1.6"
|
"@mui/icons-material": "npm:^6.1.7"
|
||||||
"@mui/material": "npm:^6.1.6"
|
"@mui/material": "npm:^6.1.7"
|
||||||
"@preact/compat": "npm:^18.3.1"
|
"@preact/compat": "npm:^18.3.1"
|
||||||
"@preact/preset-vite": "npm:^2.9.1"
|
"@preact/preset-vite": "npm:^2.9.1"
|
||||||
"@table-library/react-table-library": "npm:4.1.7"
|
"@table-library/react-table-library": "npm:4.1.7"
|
||||||
@@ -1675,7 +1675,7 @@ __metadata:
|
|||||||
"@types/react": "npm:^18.3.12"
|
"@types/react": "npm:^18.3.12"
|
||||||
"@types/react-dom": "npm:^18.3.1"
|
"@types/react-dom": "npm:^18.3.1"
|
||||||
"@types/react-router-dom": "npm:^5.3.3"
|
"@types/react-router-dom": "npm:^5.3.3"
|
||||||
alova: "npm:3.2.2"
|
alova: "npm:3.2.3"
|
||||||
async-validator: "npm:^4.2.5"
|
async-validator: "npm:^4.2.5"
|
||||||
concurrently: "npm:^9.1.0"
|
concurrently: "npm:^9.1.0"
|
||||||
eslint: "npm:^9.14.0"
|
eslint: "npm:^9.14.0"
|
||||||
@@ -1694,10 +1694,10 @@ __metadata:
|
|||||||
terser: "npm:^5.36.0"
|
terser: "npm:^5.36.0"
|
||||||
typesafe-i18n: "npm:^5.26.2"
|
typesafe-i18n: "npm:^5.26.2"
|
||||||
typescript: "npm:^5.6.3"
|
typescript: "npm:^5.6.3"
|
||||||
typescript-eslint: "npm:8.13.0"
|
typescript-eslint: "npm:8.14.0"
|
||||||
vite: "npm:^5.4.10"
|
vite: "npm:^5.4.11"
|
||||||
vite-plugin-imagemin: "npm:^0.6.1"
|
vite-plugin-imagemin: "npm:^0.6.1"
|
||||||
vite-tsconfig-paths: "npm:^5.1.1"
|
vite-tsconfig-paths: "npm:^5.1.2"
|
||||||
languageName: unknown
|
languageName: unknown
|
||||||
linkType: soft
|
linkType: soft
|
||||||
|
|
||||||
@@ -1766,13 +1766,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"alova@npm:3.2.2":
|
"alova@npm:3.2.3":
|
||||||
version: 3.2.2
|
version: 3.2.3
|
||||||
resolution: "alova@npm:3.2.2"
|
resolution: "alova@npm:3.2.3"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@alova/shared": "npm:1.1.0"
|
"@alova/shared": "npm:1.1.0"
|
||||||
rate-limiter-flexible: "npm:^5.0.3"
|
rate-limiter-flexible: "npm:^5.0.3"
|
||||||
checksum: 10c0/e01f827fd07e4e532b6d82fcd9e2ce6fe2866704f5e895085c7de63b00a9caaa2cf1dbf8537292d840a5f1903974f2e7296c16b0beda0bd375d1bdd68c17297e
|
checksum: 10c0/58027f57d5f32d472a5c35110105fdff1a6b772684794a8b00b73289ecde0fa1117160b7904f0a1f8ddc14068d9aecf66fcec76eb868ff20964d81a842a313ea
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -6771,17 +6771,17 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"typescript-eslint@npm:8.13.0":
|
"typescript-eslint@npm:8.14.0":
|
||||||
version: 8.13.0
|
version: 8.14.0
|
||||||
resolution: "typescript-eslint@npm:8.13.0"
|
resolution: "typescript-eslint@npm:8.14.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/eslint-plugin": "npm:8.13.0"
|
"@typescript-eslint/eslint-plugin": "npm:8.14.0"
|
||||||
"@typescript-eslint/parser": "npm:8.13.0"
|
"@typescript-eslint/parser": "npm:8.14.0"
|
||||||
"@typescript-eslint/utils": "npm:8.13.0"
|
"@typescript-eslint/utils": "npm:8.14.0"
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/a84958e7602360c4cb2e6227fd9aae19dd18cdf1a2cfd9ece2a81d54098f80454b5707e861e98547d0b2e5dae552b136aa6733b74f0dd743ca7bfe178083c441
|
checksum: 10c0/b9c2f32139d3df52057bfb80d4663fd5e440ccd0da75d92fe91582fe5216213e7012ef691e7d91c75e402e373b9aded6b128b005aaeeae32d7b9d7b39732bcc7
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -6954,9 +6954,9 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"vite-tsconfig-paths@npm:^5.1.1":
|
"vite-tsconfig-paths@npm:^5.1.2":
|
||||||
version: 5.1.1
|
version: 5.1.2
|
||||||
resolution: "vite-tsconfig-paths@npm:5.1.1"
|
resolution: "vite-tsconfig-paths@npm:5.1.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: "npm:^4.1.1"
|
debug: "npm:^4.1.1"
|
||||||
globrex: "npm:^0.1.2"
|
globrex: "npm:^0.1.2"
|
||||||
@@ -6966,13 +6966,13 @@ __metadata:
|
|||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
vite:
|
vite:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/7d18e2f6daa057e21885bffd3dc751f2a8fe1f249a70e4ca35b944c505d1b59d6e7c3f2278afef5139aa4cabdcb307567d3d26f2009dcccff4281c485c89a231
|
checksum: 10c0/7db445b6b1f48e7b89f39f5eb8cf4ea645994f581fcc7c9fac721e0c36f8203c0770007ec27825caa6e2566e3127b2b1bfe8be28ca05cd0e9fb67a2943dcdec5
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"vite@npm:^5.4.10":
|
"vite@npm:^5.4.11":
|
||||||
version: 5.4.10
|
version: 5.4.11
|
||||||
resolution: "vite@npm:5.4.10"
|
resolution: "vite@npm:5.4.11"
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: "npm:^0.21.3"
|
esbuild: "npm:^0.21.3"
|
||||||
fsevents: "npm:~2.3.3"
|
fsevents: "npm:~2.3.3"
|
||||||
@@ -7009,7 +7009,7 @@ __metadata:
|
|||||||
optional: true
|
optional: true
|
||||||
bin:
|
bin:
|
||||||
vite: bin/vite.js
|
vite: bin/vite.js
|
||||||
checksum: 10c0/4ef4807d2fd166a920de244dbcec791ba8a903b017a7d8e9f9b4ac40d23f8152c1100610583d08f542b47ca617a0505cfc5f8407377d610599d58296996691ed
|
checksum: 10c0/d536bb7af57dd0eca2a808f95f5ff1d7b7ffb8d86e17c6893087680a0448bd0d15e07475270c8a6de65cb5115592d037130a1dd979dc76bcef8c1dda202a1874
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|||||||
@@ -180,6 +180,7 @@
|
|||||||
{ 74, DeviceType::ALERT, "EM10", DeviceFlags::EMS_DEVICE_FLAG_NONE},
|
{ 74, DeviceType::ALERT, "EM10", DeviceFlags::EMS_DEVICE_FLAG_NONE},
|
||||||
|
|
||||||
// Gateways - 0x48
|
// Gateways - 0x48
|
||||||
|
{17, DeviceType::GATEWAY, "MX400", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x48 and 0x4B
|
||||||
{189, DeviceType::GATEWAY, "KM200, MB LAN 2", DeviceFlags::EMS_DEVICE_FLAG_NONE},
|
{189, DeviceType::GATEWAY, "KM200, MB LAN 2", DeviceFlags::EMS_DEVICE_FLAG_NONE},
|
||||||
{252, DeviceType::GATEWAY, "K30RF, MX300", DeviceFlags::EMS_DEVICE_FLAG_NONE},
|
{252, DeviceType::GATEWAY, "K30RF, MX300", DeviceFlags::EMS_DEVICE_FLAG_NONE},
|
||||||
|
|
||||||
|
|||||||
@@ -684,7 +684,8 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
|
|||||||
FL_(auxHeaterOff),
|
FL_(auxHeaterOff),
|
||||||
DeviceValueUOM::NONE,
|
DeviceValueUOM::NONE,
|
||||||
MAKE_CF_CB(set_additionalHeater));
|
MAKE_CF_CB(set_additionalHeater));
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &auxHeaterStatus_, DeviceValueType::UINT8, FL_(auxHeaterStatus), DeviceValueUOM::PERCENT);
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &auxHeaterStatus_, DeviceValueType::BOOL, FL_(auxHeaterStatus), DeviceValueUOM::NONE);
|
||||||
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &auxHeaterLevel_, DeviceValueType::UINT8, FL_(auxHeaterLevel), DeviceValueUOM::PERCENT);
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
&auxHeaterDelay_,
|
&auxHeaterDelay_,
|
||||||
DeviceValueType::UINT16,
|
DeviceValueType::UINT16,
|
||||||
@@ -1434,7 +1435,7 @@ void Boiler::process_UBAMonitorFastPlus(std::shared_ptr<const Telegram> telegram
|
|||||||
|
|
||||||
// at this point do a quick check to see if the hot water or heating is active
|
// at this point do a quick check to see if the hot water or heating is active
|
||||||
uint8_t state = EMS_VALUE_UINT8_NOTSET;
|
uint8_t state = EMS_VALUE_UINT8_NOTSET;
|
||||||
if (telegram->read_value(state, 11) && model() != EMSdevice::EMS_DEVICE_FLAG_HIU) {
|
if (telegram->read_value(state, 11) && model() != EMSdevice::EMS_DEVICE_FLAG_HIU && model() != EMSdevice::EMS_DEVICE_FLAG_HEATPUMP) {
|
||||||
boilerState_ = state & 0x01 ? 0x08 : 0; // burnGas
|
boilerState_ = state & 0x01 ? 0x08 : 0; // burnGas
|
||||||
boilerState_ |= state & 0x02 ? 0x01 : 0; // heatingPump
|
boilerState_ |= state & 0x02 ? 0x01 : 0; // heatingPump
|
||||||
boilerState_ |= state & 0x04 ? 0x02 : 0; // 3-way-valve
|
boilerState_ |= state & 0x04 ? 0x02 : 0; // 3-way-valve
|
||||||
@@ -1473,7 +1474,7 @@ void Boiler::process_UBAMonitorSlow(std::shared_ptr<const Telegram> telegram) {
|
|||||||
*/
|
*/
|
||||||
void Boiler::process_UBAMonitorSlowPlus2(std::shared_ptr<const Telegram> telegram) {
|
void Boiler::process_UBAMonitorSlowPlus2(std::shared_ptr<const Telegram> telegram) {
|
||||||
has_update(telegram, absBurnPow_, 13); // current burner absolute power (percent of rating plate power)
|
has_update(telegram, absBurnPow_, 13); // current burner absolute power (percent of rating plate power)
|
||||||
if (model() == EMSdevice::EMS_DEVICE_FLAG_HIU) {
|
if (model() == EMSdevice::EMS_DEVICE_FLAG_HIU || model() == EMSdevice::EMS_DEVICE_FLAG_HEATPUMP) {
|
||||||
uint8_t state = EMS_VALUE_UINT8_NOTSET;
|
uint8_t state = EMS_VALUE_UINT8_NOTSET;
|
||||||
boilerState_ = 0;
|
boilerState_ = 0;
|
||||||
if (telegram->read_value(state, 2)) {
|
if (telegram->read_value(state, 2)) {
|
||||||
@@ -1661,7 +1662,7 @@ void Boiler::process_HpPower(std::shared_ptr<const Telegram> telegram) {
|
|||||||
has_bitupdate(telegram, hpEA0_, 3, 6);
|
has_bitupdate(telegram, hpEA0_, 3, 6);
|
||||||
has_update(telegram, hpCircSpd_, 4);
|
has_update(telegram, hpCircSpd_, 4);
|
||||||
has_update(telegram, hpBrinePumpSpd_, 5);
|
has_update(telegram, hpBrinePumpSpd_, 5);
|
||||||
has_update(telegram, auxHeaterStatus_, 6);
|
has_update(telegram, auxHeaterLevel_, 6);
|
||||||
has_update(telegram, hpActivity_, 7);
|
has_update(telegram, hpActivity_, 7);
|
||||||
has_update(telegram, hpPower_, 11);
|
has_update(telegram, hpPower_, 11);
|
||||||
has_update(telegram, hpCompSpd_, 17);
|
has_update(telegram, hpCompSpd_, 17);
|
||||||
@@ -1828,6 +1829,10 @@ void Boiler::process_UBAErrorMessage(std::shared_ptr<const Telegram> telegram) {
|
|||||||
uint8_t min = telegram->message_data[8];
|
uint8_t min = telegram->message_data[8];
|
||||||
uint16_t duration = telegram->message_data[9] * 256 + telegram->message_data[10];
|
uint16_t duration = telegram->message_data[9] * 256 + telegram->message_data[10];
|
||||||
uint32_t date = (year - 2000) * 535680UL + month * 44640UL + day * 1440UL + hour * 60 + min + duration;
|
uint32_t date = (year - 2000) * 535680UL + month * 44640UL + day * 1440UL + hour * 60 + min + duration;
|
||||||
|
// check valid https://github.com/emsesp/EMS-ESP32/issues/2189
|
||||||
|
if (day == 0 || day > 31 || month == 0 || month > 12 || !std::isprint(code[0]) || !std::isprint(code[1])) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// store only the newest code from telegrams 10 and 11
|
// store only the newest code from telegrams 10 and 11
|
||||||
if (date > lastCodeDate_ && lastCodeDate_) {
|
if (date > lastCodeDate_ && lastCodeDate_) {
|
||||||
lastCodeDate_ = date;
|
lastCodeDate_ = date;
|
||||||
@@ -1855,6 +1860,9 @@ void Boiler::process_UBAErrorMessage2(std::shared_ptr<const Telegram> telegram)
|
|||||||
code[2] = telegram->message_data[7];
|
code[2] = telegram->message_data[7];
|
||||||
code[3] = 0;
|
code[3] = 0;
|
||||||
telegram->read_value(codeNo, 8);
|
telegram->read_value(codeNo, 8);
|
||||||
|
if (!std::isprint(code[0]) || !std::isprint(code[1]) || !std::isprint(code[2])) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// check for valid date, https://github.com/emsesp/EMS-ESP32/issues/204
|
// check for valid date, https://github.com/emsesp/EMS-ESP32/issues/204
|
||||||
if (telegram->message_data[10] & 0x80) {
|
if (telegram->message_data[10] & 0x80) {
|
||||||
@@ -1955,7 +1963,7 @@ void Boiler::process_HpSilentMode(std::shared_ptr<const Telegram> telegram) {
|
|||||||
|
|
||||||
// Boiler(0x08) -B-> All(0x00), ?(0x0488), data: 8E 00 00 00 00 00 01 03
|
// Boiler(0x08) -B-> All(0x00), ?(0x0488), data: 8E 00 00 00 00 00 01 03
|
||||||
void Boiler::process_HpValve(std::shared_ptr<const Telegram> telegram) {
|
void Boiler::process_HpValve(std::shared_ptr<const Telegram> telegram) {
|
||||||
// has_bitupdate(telegram, auxHeaterStatus_, 0, 2);
|
has_bitupdate(telegram, auxHeaterStatus_, 0, 2);
|
||||||
has_update(telegram, auxHeatMixValve_, 7);
|
has_update(telegram, auxHeatMixValve_, 7);
|
||||||
has_update(telegram, pc1Rate_, 13); // percent
|
has_update(telegram, pc1Rate_, 13); // percent
|
||||||
}
|
}
|
||||||
@@ -2970,19 +2978,19 @@ bool Boiler::set_silentMode(const char * value, const int8_t id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Boiler::set_silentFrom(const char * value, const int8_t id) {
|
bool Boiler::set_silentFrom(const char * value, const int8_t id) {
|
||||||
int v;
|
if (value == nullptr || value[0] < '0' || value[0] > '9') {
|
||||||
if (!Helpers::value2number(value, v)) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
auto v = Helpers::string2minutes(value);
|
||||||
write_command(0x484, 52, v / 15, 0x484);
|
write_command(0x484, 52, v / 15, 0x484);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Boiler::set_silentTo(const char * value, const int8_t id) {
|
bool Boiler::set_silentTo(const char * value, const int8_t id) {
|
||||||
int v;
|
if (value == nullptr || value[0] < '0' || value[0] > '9') {
|
||||||
if (!Helpers::value2number(value, v)) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
auto v = Helpers::string2minutes(value);
|
||||||
write_command(0x484, 53, v / 15, 0x484);
|
write_command(0x484, 53, v / 15, 0x484);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -266,6 +266,7 @@ class Boiler : public EMSdevice {
|
|||||||
uint8_t auxHeaterOnly_;
|
uint8_t auxHeaterOnly_;
|
||||||
uint8_t auxHeaterOff_;
|
uint8_t auxHeaterOff_;
|
||||||
uint8_t auxHeaterStatus_;
|
uint8_t auxHeaterStatus_;
|
||||||
|
uint8_t auxHeaterLevel_;
|
||||||
uint16_t auxHeaterDelay_;
|
uint16_t auxHeaterDelay_;
|
||||||
uint8_t silentMode_;
|
uint8_t silentMode_;
|
||||||
int8_t minTempSilent_;
|
int8_t minTempSilent_;
|
||||||
|
|||||||
@@ -82,10 +82,10 @@ Heatpump::Heatpump(uint8_t device_type, uint8_t device_id, uint8_t product_id, c
|
|||||||
DeviceValueUOM::NONE,
|
DeviceValueUOM::NONE,
|
||||||
MAKE_CF_CB(set_lowNoiseMode));
|
MAKE_CF_CB(set_lowNoiseMode));
|
||||||
register_device_value(
|
register_device_value(
|
||||||
DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStart_, DeviceValueType::UINT8, FL_(lowNoiseStart), DeviceValueUOM::NONE, MAKE_CF_CB(set_lowNoiseStart), 0, 23);
|
DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStart_, DeviceValueType::UINT8, FL_(lowNoiseStart), DeviceValueUOM::HOURS, MAKE_CF_CB(set_lowNoiseStart), 0, 23);
|
||||||
register_device_value(
|
register_device_value(
|
||||||
DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStop_, DeviceValueType::UINT8, FL_(lowNoiseStop), DeviceValueUOM::NONE, MAKE_CF_CB(set_lowNoiseStop), 0, 23);
|
DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStop_, DeviceValueType::UINT8, FL_(lowNoiseStop), DeviceValueUOM::HOURS, MAKE_CF_CB(set_lowNoiseStop), 0, 23);
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DHW1,
|
||||||
&hybridDHW_,
|
&hybridDHW_,
|
||||||
DeviceValueType::ENUM,
|
DeviceValueType::ENUM,
|
||||||
FL_(enum_comfort2),
|
FL_(enum_comfort2),
|
||||||
@@ -96,25 +96,25 @@ Heatpump::Heatpump(uint8_t device_type, uint8_t device_id, uint8_t product_id, c
|
|||||||
&energyPriceGas_,
|
&energyPriceGas_,
|
||||||
DeviceValueType::UINT8,
|
DeviceValueType::UINT8,
|
||||||
FL_(energyPriceGas),
|
FL_(energyPriceGas),
|
||||||
DeviceValueUOM::NONE,
|
DeviceValueUOM::CTKWH,
|
||||||
MAKE_CF_CB(set_energyPriceGas));
|
MAKE_CF_CB(set_energyPriceGas));
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
&energyPriceEl_,
|
&energyPriceEl_,
|
||||||
DeviceValueType::UINT8,
|
DeviceValueType::UINT8,
|
||||||
FL_(energyPriceEl),
|
FL_(energyPriceEl),
|
||||||
DeviceValueUOM::NONE,
|
DeviceValueUOM::CTKWH,
|
||||||
MAKE_CF_CB(set_energyPriceEl));
|
MAKE_CF_CB(set_energyPriceEl));
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
&energyPricePV_,
|
&energyPricePV_,
|
||||||
DeviceValueType::UINT8,
|
DeviceValueType::UINT8,
|
||||||
FL_(energyPricePV),
|
FL_(energyPricePV),
|
||||||
DeviceValueUOM::NONE,
|
DeviceValueUOM::CTKWH,
|
||||||
MAKE_CF_CB(set_energyPricePV));
|
MAKE_CF_CB(set_energyPricePV));
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
&switchOverTemp_,
|
&switchOverTemp_,
|
||||||
DeviceValueType::INT8,
|
DeviceValueType::INT8,
|
||||||
FL_(switchOverTemp),
|
FL_(switchOverTemp),
|
||||||
DeviceValueUOM::NONE,
|
DeviceValueUOM::DEGREES,
|
||||||
MAKE_CF_CB(set_switchOverTemp));
|
MAKE_CF_CB(set_switchOverTemp));
|
||||||
// Function test
|
// Function test
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ const char * DeviceValue::DeviceValueUOM_s[] = {
|
|||||||
F_(uom_blank), // 0
|
F_(uom_blank), // 0
|
||||||
F_(uom_degrees), F_(uom_degrees), F_(uom_percent), F_(uom_lmin), F_(uom_kwh), F_(uom_wh), FL_(hours)[0], FL_(minutes)[0], F_(uom_ua),
|
F_(uom_degrees), F_(uom_degrees), F_(uom_percent), F_(uom_lmin), F_(uom_kwh), F_(uom_wh), FL_(hours)[0], FL_(minutes)[0], F_(uom_ua),
|
||||||
F_(uom_bar), F_(uom_kw), F_(uom_w), F_(uom_kb), FL_(seconds)[0], F_(uom_dbm), F_(uom_fahrenheit), F_(uom_mv), F_(uom_sqm),
|
F_(uom_bar), F_(uom_kw), F_(uom_w), F_(uom_kb), FL_(seconds)[0], F_(uom_dbm), F_(uom_fahrenheit), F_(uom_mv), F_(uom_sqm),
|
||||||
F_(uom_m3), F_(uom_l), F_(uom_kmin), F_(uom_k), F_(uom_volts), F_(uom_mbar), F_(uom_lh), F_(uom_blank)
|
F_(uom_m3), F_(uom_l), F_(uom_kmin), F_(uom_k), F_(uom_volts), F_(uom_mbar), F_(uom_lh), F_(uom_ctkwh), F_(uom_blank)
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,8 @@ class DeviceValue {
|
|||||||
VOLTS, // 23 - V
|
VOLTS, // 23 - V
|
||||||
MBAR, // 24 - mbar
|
MBAR, // 24 - mbar
|
||||||
LH, // 25 - l/h
|
LH, // 25 - l/h
|
||||||
CONNECTIVITY // 26 - used in HA
|
CTKWH, // 26 - ct/kWh
|
||||||
|
CONNECTIVITY // 27 - used in HA
|
||||||
};
|
};
|
||||||
|
|
||||||
// TAG mapping - maps to DeviceValueTAG_s in emsdevice.cpp
|
// TAG mapping - maps to DeviceValueTAG_s in emsdevice.cpp
|
||||||
|
|||||||
@@ -971,7 +971,12 @@ void EMSESP::process_deviceName(std::shared_ptr<const Telegram> telegram) {
|
|||||||
char name[16];
|
char name[16];
|
||||||
uint8_t len = telegram->offset + telegram->message_length - 27;
|
uint8_t len = telegram->offset + telegram->message_length - 27;
|
||||||
strlcpy(name, (const char *)&telegram->message_data[27 - telegram->offset], len < 16 ? len : 16);
|
strlcpy(name, (const char *)&telegram->message_data[27 - telegram->offset], len < 16 ? len : 16);
|
||||||
if (strlen(name)) {
|
char * c = name;
|
||||||
|
while (isprint(*c)) {
|
||||||
|
c++;
|
||||||
|
};
|
||||||
|
*c = '\0';
|
||||||
|
if (strlen(name) > 2) { // https://github.com/emsesp/EMS-ESP32/issues/2166#issuecomment-2454488657
|
||||||
LOG_DEBUG("Model name received for device 0x%02X: %s", telegram->src, name);
|
LOG_DEBUG("Model name received for device 0x%02X: %s", telegram->src, name);
|
||||||
for (const auto & emsdevice : emsdevices) {
|
for (const auto & emsdevice : emsdevices) {
|
||||||
if (emsdevice->is_device_id(telegram->src)) {
|
if (emsdevice->is_device_id(telegram->src)) {
|
||||||
@@ -1462,6 +1467,11 @@ void EMSESP::incoming_telegram(uint8_t * data, const uint8_t length) {
|
|||||||
} else if (first_value == TxService::TX_WRITE_FAIL) {
|
} else if (first_value == TxService::TX_WRITE_FAIL) {
|
||||||
LOG_ERROR("Last Tx write rejected by host");
|
LOG_ERROR("Last Tx write rejected by host");
|
||||||
txservice_.send_poll(); // close the bus
|
txservice_.send_poll(); // close the bus
|
||||||
|
txservice_.reset_retry_count();
|
||||||
|
tx_successful = true; // no retries
|
||||||
|
} else {
|
||||||
|
txservice_.send_poll(); // close the bus
|
||||||
|
LOG_ERROR("Last Tx write host reply: 0x%02X", first_value);
|
||||||
}
|
}
|
||||||
} else if (tx_state == Telegram::Operation::TX_READ && length == 1) {
|
} else if (tx_state == Telegram::Operation::TX_READ && length == 1) {
|
||||||
EMSbus::tx_state(Telegram::Operation::TX_READ); // reset Tx wait state
|
EMSbus::tx_state(Telegram::Operation::TX_READ); // reset Tx wait state
|
||||||
@@ -1478,7 +1488,7 @@ void EMSESP::incoming_telegram(uint8_t * data, const uint8_t length) {
|
|||||||
|
|
||||||
// if telegram is longer read next part with offset +25 for ems+ or +27 for ems1.0
|
// if telegram is longer read next part with offset +25 for ems+ or +27 for ems1.0
|
||||||
// not for response to raw send commands without read_id set
|
// not for response to raw send commands without read_id set
|
||||||
if ((response_id_ == 0 || read_id_ > 0) && (txservice_.read_next_tx(data[3], length) == read_id_)) {
|
if ((response_id_ == 0 || read_id_ > 0) && (txservice_.read_next_tx(data[3], length) > 0)) {
|
||||||
read_next_ = true;
|
read_next_ = true;
|
||||||
txservice_.send(); // read next part withing same poll or:
|
txservice_.send(); // read next part withing same poll or:
|
||||||
// txservice_.send_poll(); // close the bus, next request in new poll
|
// txservice_.send_poll(); // close the bus, next request in new poll
|
||||||
@@ -1528,9 +1538,11 @@ void EMSESP::incoming_telegram(uint8_t * data, const uint8_t length) {
|
|||||||
// check for poll to us, if so send top message from Tx queue immediately and quit
|
// check for poll to us, if so send top message from Tx queue immediately and quit
|
||||||
if (poll_id == txservice_.get_send_id()) {
|
if (poll_id == txservice_.get_send_id()) {
|
||||||
txservice_.send();
|
txservice_.send();
|
||||||
|
} else {
|
||||||
|
// send remote room temperature if active
|
||||||
|
Roomctrl::send(poll_id);
|
||||||
}
|
}
|
||||||
// send remote room temperature if active
|
|
||||||
Roomctrl::send(poll_id);
|
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
#ifdef EMSESP_UART_DEBUG
|
#ifdef EMSESP_UART_DEBUG
|
||||||
|
|||||||
@@ -262,6 +262,7 @@ MAKE_WORD_CUSTOM(uom_k, "K")
|
|||||||
MAKE_WORD_CUSTOM(uom_volts, "V")
|
MAKE_WORD_CUSTOM(uom_volts, "V")
|
||||||
MAKE_WORD_CUSTOM(uom_mbar, "mbar")
|
MAKE_WORD_CUSTOM(uom_mbar, "mbar")
|
||||||
MAKE_WORD_CUSTOM(uom_lh, "l/h")
|
MAKE_WORD_CUSTOM(uom_lh, "l/h")
|
||||||
|
MAKE_WORD_CUSTOM(uom_ctkwh, "ct/kWh")
|
||||||
|
|
||||||
// MQTT topics and prefixes
|
// MQTT topics and prefixes
|
||||||
MAKE_WORD_CUSTOM(heating_active, "heating_active")
|
MAKE_WORD_CUSTOM(heating_active, "heating_active")
|
||||||
|
|||||||
@@ -445,6 +445,7 @@ MAKE_TRANSLATION(maxHeatDhw, "maxheat", "heat limit", "Heizstab Limit für WW",
|
|||||||
|
|
||||||
MAKE_TRANSLATION(auxHeaterOff, "auxheateroff", "disable aux heater", "Zusatzheizer deaktivieren", "Bijverwarming uitsc", "Blockera eltillskott", "wyłącz dogrzewacz", "deaktiver tilleggsvarme", "Désactiver chauff. d'app", "ilave ısıtıcıyı kapat", "disattivare i riscaldatori addizionali", "vypnúť pomocný ohrievač", "zakázat pomocné topení")
|
MAKE_TRANSLATION(auxHeaterOff, "auxheateroff", "disable aux heater", "Zusatzheizer deaktivieren", "Bijverwarming uitsc", "Blockera eltillskott", "wyłącz dogrzewacz", "deaktiver tilleggsvarme", "Désactiver chauff. d'app", "ilave ısıtıcıyı kapat", "disattivare i riscaldatori addizionali", "vypnúť pomocný ohrievač", "zakázat pomocné topení")
|
||||||
MAKE_TRANSLATION(auxHeaterStatus, "auxheaterstatus", "aux heater status", "Zusatzheizerstatus", "Bijverwarming", "Eltillskott Status", "status dogrzewacza", "status el. tillegsvarme", "Chauffage auxiliaire", "ilave ısıtıcı durumu", "stato riscaldatori addizionali", "stav pomocného ohrievača", "stav pomocného topení")
|
MAKE_TRANSLATION(auxHeaterStatus, "auxheaterstatus", "aux heater status", "Zusatzheizerstatus", "Bijverwarming", "Eltillskott Status", "status dogrzewacza", "status el. tillegsvarme", "Chauffage auxiliaire", "ilave ısıtıcı durumu", "stato riscaldatori addizionali", "stav pomocného ohrievača", "stav pomocného topení")
|
||||||
|
MAKE_TRANSLATION(auxHeaterLevel, "auxheaterlevel", "aux heater level", "Zusatzheizer", "Bijverwarming", "Eltillskott", "dogrzewacza", "el. tillegsvarme", "Chauffage auxiliaire", "ilave ısıtıcı durumu", "riscaldatori addizionali", "pomocného ohrievača", "pomocného topení")
|
||||||
MAKE_TRANSLATION(auxHeaterOnly, "auxheateronly", "aux heater only", "nur Zusatzheizer", "Alleen bijverwarming", "Eltillskott Enbart", "tylko dogrzewacz", "kun el tilleggsvarme", "Que chauffage auxiliaire", "sadece ilave ısıtıvcı", "solo riscaldatori addizionali", "iba pomocný ohrievač", "pouze pomocné topení")
|
MAKE_TRANSLATION(auxHeaterOnly, "auxheateronly", "aux heater only", "nur Zusatzheizer", "Alleen bijverwarming", "Eltillskott Enbart", "tylko dogrzewacz", "kun el tilleggsvarme", "Que chauffage auxiliaire", "sadece ilave ısıtıvcı", "solo riscaldatori addizionali", "iba pomocný ohrievač", "pouze pomocné topení")
|
||||||
MAKE_TRANSLATION(auxHeaterDelay, "auxheaterdelay", "aux heater on delay", "Zusatzheizer verzögert ein", "Bijverw. vertraagd aan", "Eltillskottfördröjning på", "opóźnienie włączenia dogrzewacza", "Tilleggsvarmer forsinket på", "Chauff app tempo marche", "ilave ısıtıcı beklemede", "ritardo riscaldatori addizionali", "oneskorenie prídavného ohrievača", "zpoždění zapnutí pomocného topení")
|
MAKE_TRANSLATION(auxHeaterDelay, "auxheaterdelay", "aux heater on delay", "Zusatzheizer verzögert ein", "Bijverw. vertraagd aan", "Eltillskottfördröjning på", "opóźnienie włączenia dogrzewacza", "Tilleggsvarmer forsinket på", "Chauff app tempo marche", "ilave ısıtıcı beklemede", "ritardo riscaldatori addizionali", "oneskorenie prídavného ohrievača", "zpoždění zapnutí pomocného topení")
|
||||||
MAKE_TRANSLATION(silentMode, "silentmode", "silent mode", "Silentmodus", "Stiller gebruik", "Tyst läge", "tryb cichy", "stille modus", "Fct silencieux", "sessiz mod", "modalità silenziosa", "tichý režim", "tichý režim")
|
MAKE_TRANSLATION(silentMode, "silentmode", "silent mode", "Silentmodus", "Stiller gebruik", "Tyst läge", "tryb cichy", "stille modus", "Fct silencieux", "sessiz mod", "modalità silenziosa", "tichý režim", "tichý režim")
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
#define EMSESP_APP_VERSION "3.7.1-dev.5"
|
#define EMSESP_APP_VERSION "3.7.1-dev.6"
|
||||||
Reference in New Issue
Block a user