From 075789b9024ea3fc8d679725d0ad095f977d93d8 Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 12 Jan 2025 15:19:12 +0100 Subject: [PATCH 01/15] fix showing Active in NTP --- interface/src/app/status/Status.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/interface/src/app/status/Status.tsx b/interface/src/app/status/Status.tsx index e8a6447d5..97613c837 100644 --- a/interface/src/app/status/Status.tsx +++ b/interface/src/app/status/Status.tsx @@ -139,9 +139,12 @@ const SystemStatus = () => { case NTPSyncStatus.NTP_INACTIVE: return LL.INACTIVE(0); case NTPSyncStatus.NTP_ACTIVE: - return LL.ACTIVE() + (data.ntp_time !== undefined) - ? ' (' + formatDateTime(data.ntp_time) + ')' - : ''; + return ( + LL.ACTIVE() + + (data.ntp_time !== undefined + ? ' (' + formatDateTime(data.ntp_time) + ')' + : '') + ); default: return LL.UNKNOWN(); } From 9339ef481a59534f2ca0c7781de6cb3ff938021d Mon Sep 17 00:00:00 2001 From: proddy Date: Tue, 14 Jan 2025 19:01:11 +0100 Subject: [PATCH 02/15] package update --- interface/package.json | 14 +-- interface/yarn.lock | 239 +++++++++++++++++++++-------------------- 2 files changed, 131 insertions(+), 122 deletions(-) diff --git a/interface/package.json b/interface/package.json index a74ec2056..7d0502c71 100644 --- a/interface/package.json +++ b/interface/package.json @@ -24,10 +24,10 @@ "@alova/adapter-xhr": "2.1.1", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", - "@mui/icons-material": "^6.3.1", - "@mui/material": "^6.3.1", + "@mui/icons-material": "^6.4.0", + "@mui/material": "^6.4.0", "@table-library/react-table-library": "4.1.7", - "alova": "3.2.7", + "alova": "3.2.8", "async-validator": "^4.2.5", "jwt-decode": "^4.0.0", "mime-types": "^2.1.35", @@ -47,17 +47,17 @@ "@preact/preset-vite": "^2.9.4", "@trivago/prettier-plugin-sort-imports": "^5.2.1", "@types/formidable": "^3", - "@types/node": "^22.10.5", - "@types/react": "^19.0.5", + "@types/node": "^22.10.6", + "@types/react": "^19.0.7", "@types/react-dom": "^19.0.3", "concurrently": "^9.1.2", "eslint": "^9.18.0", - "eslint-config-prettier": "^9.1.0", + "eslint-config-prettier": "^10.0.1", "formidable": "^3.5.2", "prettier": "^3.4.2", "rollup-plugin-visualizer": "^5.14.0", "terser": "^5.37.0", - "typescript-eslint": "8.19.1", + "typescript-eslint": "8.20.0", "vite": "^6.0.7", "vite-plugin-imagemin": "^0.6.1", "vite-tsconfig-paths": "^5.1.4" diff --git a/interface/yarn.lock b/interface/yarn.lock index 12a609548..6cada0eec 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -783,38 +783,38 @@ __metadata: languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^6.3.1": - version: 6.3.1 - resolution: "@mui/core-downloads-tracker@npm:6.3.1" - checksum: 10c0/a996ad8db6bd8c981c4e2e2d243526c838dd29f0bbe7dc5ab6933be357e41f748781d322b1decf79ae1c9abba24190162559d84deedcb7c8824a68754dddf216 +"@mui/core-downloads-tracker@npm:^6.4.0": + version: 6.4.0 + resolution: "@mui/core-downloads-tracker@npm:6.4.0" + checksum: 10c0/48112fb90df2fe58fdbc8ca9c8fac3487dc3aa0fbc31bd1e6b373f43f5bbb23d6fc673686b42cb46723e2d8c66ae914ecb9397c38e7d43a340ec6cbe07e1469d languageName: node linkType: hard -"@mui/icons-material@npm:^6.3.1": - version: 6.3.1 - resolution: "@mui/icons-material@npm:6.3.1" +"@mui/icons-material@npm:^6.4.0": + version: 6.4.0 + resolution: "@mui/icons-material@npm:6.4.0" dependencies: "@babel/runtime": "npm:^7.26.0" peerDependencies: - "@mui/material": ^6.3.1 + "@mui/material": ^6.4.0 "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/edaf71b7368c14cfbfed6f475ef96187871a010e972b9e7608d23cadae5ce52a3a6888b32453721dc1d86e2e7ad9c61aadde83ba5cd94363782bf83803d1ab36 + checksum: 10c0/5e05dbb67e0f7e0c046d5665bebf41df487b31ce617987ac0e8da9c539221bad7e523bf77f0f0153b35aadb56f02146aded567e8032ba608696f70b708d505c0 languageName: node linkType: hard -"@mui/material@npm:^6.3.1": - version: 6.3.1 - resolution: "@mui/material@npm:6.3.1" +"@mui/material@npm:^6.4.0": + version: 6.4.0 + resolution: "@mui/material@npm:6.4.0" dependencies: "@babel/runtime": "npm:^7.26.0" - "@mui/core-downloads-tracker": "npm:^6.3.1" - "@mui/system": "npm:^6.3.1" + "@mui/core-downloads-tracker": "npm:^6.4.0" + "@mui/system": "npm:^6.4.0" "@mui/types": "npm:^7.2.21" - "@mui/utils": "npm:^6.3.1" + "@mui/utils": "npm:^6.4.0" "@popperjs/core": "npm:^2.11.8" "@types/react-transition-group": "npm:^4.4.12" clsx: "npm:^2.1.1" @@ -825,7 +825,7 @@ __metadata: peerDependencies: "@emotion/react": ^11.5.0 "@emotion/styled": ^11.3.0 - "@mui/material-pigment-css": ^6.3.1 + "@mui/material-pigment-css": ^6.4.0 "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -838,16 +838,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10c0/7fb91acd9bc021dde78e70d495a2abd69d0e2df35e526e0730e060c3177bb10cc3058ee27c72b5ec9bc7622d9c2ef99831b89f511f6700bc3717f979e2cb0152 + checksum: 10c0/5bd9757b578827d841934725a7145ae1d295cbc979fec4fb1a099c439ae0db1a67ace47b2a94f289ac5289d16b0167ebba9a4e98b0499840555b60fb5b549923 languageName: node linkType: hard -"@mui/private-theming@npm:^6.3.1": - version: 6.3.1 - resolution: "@mui/private-theming@npm:6.3.1" +"@mui/private-theming@npm:^6.4.0": + version: 6.4.0 + resolution: "@mui/private-theming@npm:6.4.0" dependencies: "@babel/runtime": "npm:^7.26.0" - "@mui/utils": "npm:^6.3.1" + "@mui/utils": "npm:^6.4.0" prop-types: "npm:^15.8.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -855,13 +855,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/aafaca0d7e5fd4d83c2cade28b7de554c0d848595f8f23f26c8f7daf3fc664053c9c81342d44d24e0a04a4813b58d6f0c1d135ae2775380acda91468a21f9684 + checksum: 10c0/3e89ff9e6baf85b1bdb0ed55e1ef50dadd95991ed498928e1764c1255fa174c0d134a46beebb1e4faabc22820b404923911c2bf6e9692fd269a77522c356eb6c languageName: node linkType: hard -"@mui/styled-engine@npm:^6.3.1": - version: 6.3.1 - resolution: "@mui/styled-engine@npm:6.3.1" +"@mui/styled-engine@npm:^6.4.0": + version: 6.4.0 + resolution: "@mui/styled-engine@npm:6.4.0" dependencies: "@babel/runtime": "npm:^7.26.0" "@emotion/cache": "npm:^11.13.5" @@ -878,19 +878,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: 10c0/81bbf8f2016b1c7debbbaab1a44ebaf8e494e8c9d32d2201b28f8c653a082177f6570fef779bf835bad1a9120af219a64b1d7a9a8a569c9c07045f00affe6b87 + checksum: 10c0/bff35147ca9ef586679b53786d840e98837f0c1e5bf10a3510d4b2b68c340ae4ab69befe94b69ef25f6846bada5b3c355d25fa3a179d1598499e28c51f28d5d2 languageName: node linkType: hard -"@mui/system@npm:^6.3.1": - version: 6.3.1 - resolution: "@mui/system@npm:6.3.1" +"@mui/system@npm:^6.4.0": + version: 6.4.0 + resolution: "@mui/system@npm:6.4.0" dependencies: "@babel/runtime": "npm:^7.26.0" - "@mui/private-theming": "npm:^6.3.1" - "@mui/styled-engine": "npm:^6.3.1" + "@mui/private-theming": "npm:^6.4.0" + "@mui/styled-engine": "npm:^6.4.0" "@mui/types": "npm:^7.2.21" - "@mui/utils": "npm:^6.3.1" + "@mui/utils": "npm:^6.4.0" clsx: "npm:^2.1.1" csstype: "npm:^3.1.3" prop-types: "npm:^15.8.1" @@ -906,7 +906,7 @@ __metadata: optional: true "@types/react": optional: true - checksum: 10c0/49613b001f7e60c7ed70f3e2ee3ffc4f3a2719509e4f9ec18faf73a354597b8d894d0ee8861bf3a5b5db763efca36bcfb75989505c88e009c1627b114bac88ef + checksum: 10c0/5e8d82674693d747b947ce4e5c1a11fff148c5242b2af898d80575e780f0abd3857f234a47b1cec16ca02334ecc7450f0afb5e311ddee9e9cf342e5bf3c7c1fc languageName: node linkType: hard @@ -922,9 +922,9 @@ __metadata: languageName: node linkType: hard -"@mui/utils@npm:^6.3.1": - version: 6.3.1 - resolution: "@mui/utils@npm:6.3.1" +"@mui/utils@npm:^6.4.0": + version: 6.4.0 + resolution: "@mui/utils@npm:6.4.0" dependencies: "@babel/runtime": "npm:^7.26.0" "@mui/types": "npm:^7.2.21" @@ -938,7 +938,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/b111bca7ad065b1028714d55a8df90267c47a72ffb2bfad7a1709cef0d5d9036b463855d431b3606967c9351c7ee23f1dee02457b2f3ed02513744f0173eb00c + checksum: 10c0/c72ab7685affb577f1b48a5f5be02d11254cddf858cc35d61e0483434249cc064f2d145e9e72be60c344f31ccc7d6e61c59a256413b7e68077e883c0ffc8882e languageName: node linkType: hard @@ -1403,7 +1403,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^22.10.5": +"@types/node@npm:*": version: 22.10.5 resolution: "@types/node@npm:22.10.5" dependencies: @@ -1412,6 +1412,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^22.10.6": + version: 22.10.6 + resolution: "@types/node@npm:22.10.6" + dependencies: + undici-types: "npm:~6.20.0" + checksum: 10c0/8b67affc211e5f9c74f7949cda04ca669721e50b83d71b8772a7bed7a4a3c41d663b3a794413f618e763ca6c5da8c234c25ffebcb0737983fc3e7415818ab9a7 + languageName: node + linkType: hard + "@types/parse-json@npm:^4.0.0": version: 4.0.2 resolution: "@types/parse-json@npm:4.0.2" @@ -1444,12 +1453,12 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^19.0.5": - version: 19.0.5 - resolution: "@types/react@npm:19.0.5" +"@types/react@npm:^19.0.7": + version: 19.0.7 + resolution: "@types/react@npm:19.0.7" dependencies: csstype: "npm:^3.0.2" - checksum: 10c0/6f3a25c826e8b274cf26b25ef7bd4a97aaa4d7b30a0ea529bf252c6f0387d74f44940dea55cfcac75829bee53cd4c82fdb41653b978954a08036d2812a0ae6d6 + checksum: 10c0/818e546fa03a2a65ac2652fc472891ac96684211e8967bc25e1da6a8a09e2301ad972b1b038d128f8b4cbbd7691f6f57fee274db568169e9b6b01556abbb5bee languageName: node linkType: hard @@ -1471,15 +1480,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.19.1": - version: 8.19.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.19.1" +"@typescript-eslint/eslint-plugin@npm:8.20.0": + version: 8.20.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.20.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.19.1" - "@typescript-eslint/type-utils": "npm:8.19.1" - "@typescript-eslint/utils": "npm:8.19.1" - "@typescript-eslint/visitor-keys": "npm:8.19.1" + "@typescript-eslint/scope-manager": "npm:8.20.0" + "@typescript-eslint/type-utils": "npm:8.20.0" + "@typescript-eslint/utils": "npm:8.20.0" + "@typescript-eslint/visitor-keys": "npm:8.20.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -1488,64 +1497,64 @@ __metadata: "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/993784b04533b13c3f3919c793cfc3a369fa61692e1a2d72de6fba27df247c275d852cdcbc4e393c310b73fce8d34d210a9b632b66f4d761a1a3b4781f8fa93f + checksum: 10c0/c68d0dc5419db93c38eea8adecac19e27f8b023d015a944ffded112d584e87fa7fe512070a6a1085899cab2e12e1c8db276e10412b74bf639ca6b04052bbfedc languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.19.1": - version: 8.19.1 - resolution: "@typescript-eslint/parser@npm:8.19.1" +"@typescript-eslint/parser@npm:8.20.0": + version: 8.20.0 + resolution: "@typescript-eslint/parser@npm:8.20.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.19.1" - "@typescript-eslint/types": "npm:8.19.1" - "@typescript-eslint/typescript-estree": "npm:8.19.1" - "@typescript-eslint/visitor-keys": "npm:8.19.1" + "@typescript-eslint/scope-manager": "npm:8.20.0" + "@typescript-eslint/types": "npm:8.20.0" + "@typescript-eslint/typescript-estree": "npm:8.20.0" + "@typescript-eslint/visitor-keys": "npm:8.20.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/1afbd2d0a25f439943bdc94637417429574eb3889a2a1ce24bd425721713aca213808a975bb518a6616171783bc04fa973167f05fc6a96cfd88c1d1666077ad4 + checksum: 10c0/fff4a86be27f603ad8d6f7dd9758c46b04a254828f0c6d8a34869c1cf30b5828b60a1dc088f72680a7b65cc5fc696848df4605de19e59a18467306d7ca56c11d languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.19.1": - version: 8.19.1 - resolution: "@typescript-eslint/scope-manager@npm:8.19.1" +"@typescript-eslint/scope-manager@npm:8.20.0": + version: 8.20.0 + resolution: "@typescript-eslint/scope-manager@npm:8.20.0" dependencies: - "@typescript-eslint/types": "npm:8.19.1" - "@typescript-eslint/visitor-keys": "npm:8.19.1" - checksum: 10c0/7dca0c28ad27a0c7e26499e0f584f98efdcf34087f46aadc661b36c310484b90655e83818bafd249b5a28c7094a69c54d553f6cd403869bf134f95a9148733f5 + "@typescript-eslint/types": "npm:8.20.0" + "@typescript-eslint/visitor-keys": "npm:8.20.0" + checksum: 10c0/a8074768d06c863169294116624a45c19377ff0b8635ad5fa4ae673b43cf704d1b9b79384ceef0ff0abb78b107d345cd90fe5572354daf6ad773fe462ee71e6a languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.19.1": - version: 8.19.1 - resolution: "@typescript-eslint/type-utils@npm:8.19.1" +"@typescript-eslint/type-utils@npm:8.20.0": + version: 8.20.0 + resolution: "@typescript-eslint/type-utils@npm:8.20.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.19.1" - "@typescript-eslint/utils": "npm:8.19.1" + "@typescript-eslint/typescript-estree": "npm:8.20.0" + "@typescript-eslint/utils": "npm:8.20.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^2.0.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/757592b515beec58c079c605aa648ba94d985ae48ba40460034e849c7bc2b603b1da6113e59688e284608c9d5ccaa27adf0a14fb032cb1782200c6acae51ddd2 + checksum: 10c0/7d46143f26ec606b71d20f0f5535b16abba2ba7a5a2daecd2584ddb61d1284dd8404f34265cc1fdfd541068b24b0211f7ad94801c94e4c60869d9f26bf3c0b9b languageName: node linkType: hard -"@typescript-eslint/types@npm:8.19.1": - version: 8.19.1 - resolution: "@typescript-eslint/types@npm:8.19.1" - checksum: 10c0/e907bf096d5ed7a812a1e537a98dd881ab5d2d47e072225bfffaa218c1433115a148b27a15744db8374b46dac721617c6d13a1da255fdeb369cf193416533f6e +"@typescript-eslint/types@npm:8.20.0": + version: 8.20.0 + resolution: "@typescript-eslint/types@npm:8.20.0" + checksum: 10c0/21292d4ca089897015d2bf5ab99909a7b362902f63f4ba10696676823b50d00c7b4cd093b4b43fba01d12bc3feca3852d2c28528c06d8e45446b7477887dbee7 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.19.1": - version: 8.19.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.19.1" +"@typescript-eslint/typescript-estree@npm:8.20.0": + version: 8.20.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.20.0" dependencies: - "@typescript-eslint/types": "npm:8.19.1" - "@typescript-eslint/visitor-keys": "npm:8.19.1" + "@typescript-eslint/types": "npm:8.20.0" + "@typescript-eslint/visitor-keys": "npm:8.20.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -1554,32 +1563,32 @@ __metadata: ts-api-utils: "npm:^2.0.0" peerDependencies: typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/549d9d565a58a25fc8397a555506f2e8d29a740f5b6ed9105479e22de5aab89d9d535959034a8e9d4115adb435de09ee6987d28e8922052eea577842ddce1a7a + checksum: 10c0/54a2c1da7d1c5f7e865b941e8a3c98eb4b5f56ed8741664a84065173bde9602cdb8866b0984b26816d6af885c1528311c11e7286e869ed424483b74366514cbd languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.19.1": - version: 8.19.1 - resolution: "@typescript-eslint/utils@npm:8.19.1" +"@typescript-eslint/utils@npm:8.20.0": + version: 8.20.0 + resolution: "@typescript-eslint/utils@npm:8.20.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.19.1" - "@typescript-eslint/types": "npm:8.19.1" - "@typescript-eslint/typescript-estree": "npm:8.19.1" + "@typescript-eslint/scope-manager": "npm:8.20.0" + "@typescript-eslint/types": "npm:8.20.0" + "@typescript-eslint/typescript-estree": "npm:8.20.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/f7d2fe9a2bd8cb3ae6fafe5e465882a6784b2acf81d43d194c579381b92651c2ffc0fca69d2a35eee119f539622752a0e9ec063aaec7576d5d2bfe68b441980d + checksum: 10c0/dd36c3b22a2adde1e1462aed0c8b4720f61859b4ebb0c3ef935a786a6b1cb0ec21eb0689f5a8debe8db26d97ebb979bab68d6f8fe7b0098e6200a485cfe2991b languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.19.1": - version: 8.19.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.19.1" +"@typescript-eslint/visitor-keys@npm:8.20.0": + version: 8.20.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.20.0" dependencies: - "@typescript-eslint/types": "npm:8.19.1" + "@typescript-eslint/types": "npm:8.20.0" eslint-visitor-keys: "npm:^4.2.0" - checksum: 10c0/117537450a099f51f3f0d39186f248ae370bdc1b7f6975dbdbffcfc89e6e1aa47c1870db790d4f778a48f2c1f6cd9c269b63867c12afaa424367c63dabee8fd0 + checksum: 10c0/e95d8b2685e8beb6637bf2e9d06e4177a400d3a2b142ba749944690f969ee3186b750082fd9bf34ada82acf1c5dd5970201dfd97619029c8ecca85fb4b50dbd8 languageName: node linkType: hard @@ -1592,21 +1601,21 @@ __metadata: "@emotion/react": "npm:^11.14.0" "@emotion/styled": "npm:^11.14.0" "@eslint/js": "npm:^9.18.0" - "@mui/icons-material": "npm:^6.3.1" - "@mui/material": "npm:^6.3.1" + "@mui/icons-material": "npm:^6.4.0" + "@mui/material": "npm:^6.4.0" "@preact/compat": "npm:^18.3.1" "@preact/preset-vite": "npm:^2.9.4" "@table-library/react-table-library": "npm:4.1.7" "@trivago/prettier-plugin-sort-imports": "npm:^5.2.1" "@types/formidable": "npm:^3" - "@types/node": "npm:^22.10.5" - "@types/react": "npm:^19.0.5" + "@types/node": "npm:^22.10.6" + "@types/react": "npm:^19.0.7" "@types/react-dom": "npm:^19.0.3" - alova: "npm:3.2.7" + alova: "npm:3.2.8" async-validator: "npm:^4.2.5" concurrently: "npm:^9.1.2" eslint: "npm:^9.18.0" - eslint-config-prettier: "npm:^9.1.0" + eslint-config-prettier: "npm:^10.0.1" formidable: "npm:^3.5.2" jwt-decode: "npm:^4.0.0" mime-types: "npm:^2.1.35" @@ -1621,7 +1630,7 @@ __metadata: terser: "npm:^5.37.0" typesafe-i18n: "npm:^5.26.2" typescript: "npm:^5.7.3" - typescript-eslint: "npm:8.19.1" + typescript-eslint: "npm:8.20.0" vite: "npm:^6.0.7" vite-plugin-imagemin: "npm:^0.6.1" vite-tsconfig-paths: "npm:^5.1.4" @@ -1672,13 +1681,13 @@ __metadata: languageName: node linkType: hard -"alova@npm:3.2.7": - version: 3.2.7 - resolution: "alova@npm:3.2.7" +"alova@npm:3.2.8": + version: 3.2.8 + resolution: "alova@npm:3.2.8" dependencies: "@alova/shared": "npm:1.1.2" rate-limiter-flexible: "npm:^5.0.3" - checksum: 10c0/5d0c3bec48ba27950014b7eb65c71f110562641f98489978276fdc352742954781e3b5fec759ea8c343e050371cabb8ea508db92d1287b7e0b5388e661b7a46c + checksum: 10c0/fed04a06700d1c1a20a73b2f3d4e944fb813384cb85b1fe73e43f6451deef9e9e995610c9f46c99c1f02de2eb17c0a8746519c4bf0e61ffcd974dde3ad093be1 languageName: node linkType: hard @@ -3015,14 +3024,14 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:^9.1.0": - version: 9.1.0 - resolution: "eslint-config-prettier@npm:9.1.0" +"eslint-config-prettier@npm:^10.0.1": + version: 10.0.1 + resolution: "eslint-config-prettier@npm:10.0.1" peerDependencies: eslint: ">=7.0.0" bin: - eslint-config-prettier: bin/cli.js - checksum: 10c0/6d332694b36bc9ac6fdb18d3ca2f6ac42afa2ad61f0493e89226950a7091e38981b66bac2b47ba39d15b73fff2cd32c78b850a9cf9eed9ca9a96bfb2f3a2f10d + eslint-config-prettier: build/bin/cli.js + checksum: 10c0/e2434931669d211663c0493f2c1640a670a02ba4503a68f056a7eda133f383acbbb983a4a7bd0ad6cb3b2bc4d5731c3be8b32fe28e35087a76fea45f7061ae70 languageName: node linkType: hard @@ -6641,17 +6650,17 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:8.19.1": - version: 8.19.1 - resolution: "typescript-eslint@npm:8.19.1" +"typescript-eslint@npm:8.20.0": + version: 8.20.0 + resolution: "typescript-eslint@npm:8.20.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.19.1" - "@typescript-eslint/parser": "npm:8.19.1" - "@typescript-eslint/utils": "npm:8.19.1" + "@typescript-eslint/eslint-plugin": "npm:8.20.0" + "@typescript-eslint/parser": "npm:8.20.0" + "@typescript-eslint/utils": "npm:8.20.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/59cdb590a0b38bfca1634c421c1acd2d1bfc8a7325af8fb1332421103dd98d454d349d4f82175088cf06216c1540dc1a73d1dca44cff16dd1d08f969feeb0c0b + checksum: 10c0/049e0fa000657232c0fe26a062ef6a9cd16c5a58c814a74ac45971554c8b6bc67355821a66229f9537e819939a2ab065e7fcba9a70cd95c8283630dc58ac0144 languageName: node linkType: hard From 24fba8b3820d3c91bfa8143a02e56b43da2c1a97 Mon Sep 17 00:00:00 2001 From: proddy Date: Tue, 14 Jan 2025 19:03:12 +0100 Subject: [PATCH 03/15] add test for #2351 --- src/devices/boiler.cpp | 5 +++++ src/test/test.cpp | 50 ++++++++++++++++++++++++++++++++++++++---- src/test/test.h | 1 + 3 files changed, 52 insertions(+), 4 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index c48e08e86..0ac133207 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -2750,6 +2750,11 @@ bool Boiler::set_ww_circulation_pump(const char * value, const int8_t id) { write_command(EMS_TYPE_UBAParameterWW, 6, v ? 0xFF : 0x00, EMS_TYPE_UBAParameterWW); } +#ifdef EMSESP_TEST + // set wwCircPump_ , for test "api4" in test.cpp + wwCircPump_ = v ? EMS_VALUE_BOOL_ON : EMS_VALUE_BOOL_OFF; +#endif + return true; } diff --git a/src/test/test.cpp b/src/test/test.cpp index b612fada8..c666daea0 100644 --- a/src/test/test.cpp +++ b/src/test/test.cpp @@ -960,6 +960,48 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const ok = true; } + if (command == "api4") { + shell.printfln("Testing API writing values..."); + EMSESP::system_.bool_format(BOOL_FORMAT_ONOFF_STR); + // EMSESP::system_.bool_format(BOOL_FORMAT_ONOFF_STR_CAP); + + // load devices + test("boiler"); + test("thermostat"); + + ok = true; + AsyncWebServerRequest request; + JsonDocument doc; + JsonVariant json; + request.method(HTTP_POST); + + shell.invoke_command("call boiler circpump/value"); // initial state is off + + // call boiler circpump on + char data1[] = "{\"device\":\"boiler\", \"cmd\":\"circpump\",\"value\":\"on\"}"; + deserializeJson(doc, data1); + request.url("/api"); + EMSESP::webAPIService.webAPIService(&request, doc.as()); + shell.invoke_command("call boiler circpump/value"); + + // switch to german + EMSESP::system_.locale("de"); + + // call boiler circpump off, but using value in DE + char data2[] = "{\"device\":\"boiler\", \"cmd\":\"circpump\",\"value\":\"aus\"}"; + deserializeJson(doc, data2); + request.url("/api"); + EMSESP::webAPIService.webAPIService(&request, doc.as()); + shell.invoke_command("call boiler circpump/value"); + + // call boiler circpump on, but using value in DE + char data3[] = "{\"device\":\"boiler\", \"cmd\":\"circpump\",\"value\":\"an\"}"; + deserializeJson(doc, data3); + request.url("/api"); + EMSESP::webAPIService.webAPIService(&request, doc.as()); + shell.invoke_command("call boiler circpump/value"); + } + if (command == "api3") { shell.printfln("Testing API getting values from system"); EMSESP::system_.bool_format(BOOL_FORMAT_TRUEFALSE); // BOOL_FORMAT_TRUEFALSE_STR @@ -1016,10 +1058,10 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const // request.url("/api"); // EMSESP::webAPIService.webAPIService(&request, doc.as()); - char data2[] = "{\"action\":\"getCustomSupport\", \"param\":\"hello\"}"; - deserializeJson(doc, data2); - request.url("/rest/action"); - EMSESP::webStatusService.action(&request, doc.as()); + // char data2[] = "{\"action\":\"getCustomSupport\", \"param\":\"hello\"}"; + // deserializeJson(doc, data2); + // request.url("/rest/action"); + // EMSESP::webStatusService.action(&request, doc.as()); // char data3[] = "{\"action\":\"export\", \"param\":\"schedule\"}"; // deserializeJson(doc, data3); diff --git a/src/test/test.h b/src/test/test.h index e2c6fd94e..93dadbbe3 100644 --- a/src/test/test.h +++ b/src/test/test.h @@ -42,6 +42,7 @@ namespace emsesp { // #define EMSESP_DEBUG_DEFAULT "render" // #define EMSESP_DEBUG_DEFAULT "api" // #define EMSESP_DEBUG_DEFAULT "api3" +#define EMSESP_DEBUG_DEFAULT "api4" // #define EMSESP_DEBUG_DEFAULT "crash" // #define EMSESP_DEBUG_DEFAULT "dv" // #define EMSESP_DEBUG_DEFAULT "lastcode" From 64a2f5eb117ab1393a05193a229423928cd4a952 Mon Sep 17 00:00:00 2001 From: proddy Date: Tue, 14 Jan 2025 19:03:30 +0100 Subject: [PATCH 04/15] gracefully close mqtt on restart --- src/core/mqtt.h | 6 ++++++ src/core/system.cpp | 1 + 2 files changed, 7 insertions(+) diff --git a/src/core/mqtt.h b/src/core/mqtt.h index 4de1235e9..61c096cd1 100644 --- a/src/core/mqtt.h +++ b/src/core/mqtt.h @@ -114,6 +114,12 @@ class Mqtt { return mqttClient_ ? mqttClient_->connected() : false; } + static void disconnect() { + if (mqttClient_) { + mqttClient_->disconnect(); + }; + } + static MqttClient * client() { return mqttClient_; } diff --git a/src/core/system.cpp b/src/core/system.cpp index 93ba984b6..44e51453f 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -303,6 +303,7 @@ void System::system_restart(const char * partitionname) { store_nvs_values(); // save any NVS values Shell::loop_all(); // flush log to output + Mqtt::disconnect(); // gracefully disconnect MQTT, needed for QOS1 delay(1000); // wait 1 second ESP.restart(); #else From 570678e3d30d827960ccb8dacf957fbed9258aea Mon Sep 17 00:00:00 2001 From: proddy Date: Tue, 14 Jan 2025 21:44:56 +0100 Subject: [PATCH 05/15] show message in Dashboard if no fav entities set --- interface/src/app/main/Dashboard.tsx | 70 +++++++++++++++++----------- interface/src/i18n/cz/index.ts | 5 +- interface/src/i18n/de/index.ts | 6 ++- interface/src/i18n/en/index.ts | 8 ++-- interface/src/i18n/fr/index.ts | 6 ++- interface/src/i18n/it/index.ts | 6 ++- interface/src/i18n/nl/index.ts | 6 ++- interface/src/i18n/no/index.ts | 6 ++- interface/src/i18n/pl/index.ts | 6 ++- interface/src/i18n/sk/index.ts | 6 ++- interface/src/i18n/sv/index.ts | 6 ++- interface/src/i18n/tr/index.ts | 6 ++- mock-api/rest_server.ts | 50 ++++++++++---------- 13 files changed, 112 insertions(+), 75 deletions(-) diff --git a/interface/src/app/main/Dashboard.tsx b/interface/src/app/main/Dashboard.tsx index 60908ff8e..137a29b9b 100644 --- a/interface/src/app/main/Dashboard.tsx +++ b/interface/src/app/main/Dashboard.tsx @@ -1,9 +1,9 @@ import { useContext, useEffect, useState } from 'react'; import { IconContext } from 'react-icons/lib'; +import { Link } from 'react-router'; import { toast } from 'react-toastify'; import ChevronRightIcon from '@mui/icons-material/ChevronRight'; -import ConstructionIcon from '@mui/icons-material/Construction'; import EditIcon from '@mui/icons-material/Edit'; import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; import UnfoldLessIcon from '@mui/icons-material/UnfoldLess'; @@ -22,7 +22,7 @@ import { Body, Cell, Row, Table } from '@table-library/react-table-library/table import { useTheme } from '@table-library/react-table-library/theme'; import { CellTree, useTree } from '@table-library/react-table-library/tree'; import { useRequest } from 'alova/client'; -import { FormLoader, SectionContent, useLayoutTitle } from 'components'; +import { FormLoader, MessageBox, SectionContent, useLayoutTitle } from 'components'; import { AuthenticatedContext } from 'contexts/authentication'; import { useI18nContext } from 'i18n/i18n-react'; import { useInterval, usePersistState } from 'utils'; @@ -224,6 +224,10 @@ const Dashboard = () => { return ; } + const hasFavEntities = data.filter( + (item: DashboardItem) => item.id <= 90 + ).length; + return ( <> { - {LL.DASHBOARD_1()}  - + {LL.DASHBOARD_1()} @@ -262,27 +263,40 @@ const Dashboard = () => { - - + + {LL.NO_DATA_1()}  + + {LL.CUSTOMIZATIONS()} + +  {LL.NO_DATA_2()}  + {LL.NO_DATA_3()}  + + {LL.DEVICES()} + + . + + + )} + + {data.length > 0 && ( + - {!loading && data.length === 0 ? ( - - {LL.NO_DATA()} - - ) : ( + { )}
- )} -
-
+
+
+ )} ); }; diff --git a/interface/src/i18n/cz/index.ts b/interface/src/i18n/cz/index.ts index 99ede30c3..086709801 100644 --- a/interface/src/i18n/cz/index.ts +++ b/interface/src/i18n/cz/index.ts @@ -340,11 +340,12 @@ const cz: Translation = { RESTARTING_POST: 'Příprava', AUTO_SCROLL: 'Automatické rolování', DASHBOARD: 'Dashboard', - NO_DATA: 'Žádná data nejsou k dispozici', DASHBOARD_1: 'Přizpůsobte si dashboard označením EMS entit jako Oblíbené pomocí modulu Přizpůsobení', DEVELOPER_MODE: 'Režim vývojáře', DUPLICATE: 'Duplicate', // TODO translate - UPGRADE: 'Upgrade' // TODO translate + NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate + NO_DATA_2: 'module to mark them.', // TODO translate + NO_DATA_3: 'To see all available entities go to' // TODO translate }; export default cz; diff --git a/interface/src/i18n/de/index.ts b/interface/src/i18n/de/index.ts index a5af94ea1..0e3259d54 100644 --- a/interface/src/i18n/de/index.ts +++ b/interface/src/i18n/de/index.ts @@ -340,11 +340,13 @@ const de: Translation = { RESTARTING_POST: 'Vorbereitung', AUTO_SCROLL: 'Automatisches Scrollen', DASHBOARD: 'Dashboard', - NO_DATA: 'Keine Daten verfügbar', DASHBOARD_1: 'Passen Sie Ihr Dashboard an, indem Sie EMS-Entitäten mithilfe des Moduls „Anpassungen“ als Favorit markieren', DEVELOPER_MODE: 'Entwicklermodus', DUPLICATE: 'Kopieren', - UPGRADE: 'Aktualisieren' + UPGRADE: 'Aktualisieren', + NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate + NO_DATA_2: 'module to mark them.', // TODO translate + NO_DATA_3: 'To see all available entities go to' // TODO translate }; export default de; diff --git a/interface/src/i18n/en/index.ts b/interface/src/i18n/en/index.ts index d86b05756..611d5e9bb 100644 --- a/interface/src/i18n/en/index.ts +++ b/interface/src/i18n/en/index.ts @@ -340,11 +340,13 @@ const en: Translation = { RESTARTING_POST: 'Preparing', AUTO_SCROLL: 'Auto Scroll', DASHBOARD: 'Dashboard', - NO_DATA: 'No data available', - DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', + DASHBOARD_1: 'The Dashboard shows all EMS entities that are active and marked as a Favorite, plus any Custom Entities, Schedules and external Sensors.', DEVELOPER_MODE: 'Developer Mode', DUPLICATE: 'Duplicate', - UPGRADE: 'Upgrade' + UPGRADE: 'Upgrade', + NO_DATA_1: 'No favourite EMS entities found. Use the', + NO_DATA_2: 'module to mark them.', + NO_DATA_3: 'To see all available entities go to' }; export default en; diff --git a/interface/src/i18n/fr/index.ts b/interface/src/i18n/fr/index.ts index b27817de4..a2202c765 100644 --- a/interface/src/i18n/fr/index.ts +++ b/interface/src/i18n/fr/index.ts @@ -340,11 +340,13 @@ const fr: Translation = { RESTARTING_POST: 'Preparing', // TODO translate AUTO_SCROLL: 'Auto Scroll', // TODO translate DASHBOARD: 'Dashboard', // TODO translate - NO_DATA: 'No data available', // TODO translate DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', // TODO translate DEVELOPER_MODE: 'Developer Mode', // TODO translate DUPLICATE: 'Duplicate', // TODO translate - UPGRADE: 'Upgrade' // TODO translate + UPGRADE: 'Upgrade', // TODO translate + NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate + NO_DATA_2: 'module to mark them.', // TODO translate + NO_DATA_3: 'To see all available entities go to' // TODO translate }; export default fr; diff --git a/interface/src/i18n/it/index.ts b/interface/src/i18n/it/index.ts index 8d4393880..cbeaea58f 100644 --- a/interface/src/i18n/it/index.ts +++ b/interface/src/i18n/it/index.ts @@ -340,11 +340,13 @@ const it: Translation = { RESTARTING_POST: 'Preparing', // TODO translate AUTO_SCROLL: 'Auto Scroll', // TODO translate DASHBOARD: 'Dashboard', // TODO translate - NO_DATA: 'No data available', // TODO translate DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', // TODO translate DEVELOPER_MODE: 'Developer Mode', // TODO translate DUPLICATE: 'Duplicate', // TODO translate - UPGRADE: 'Upgrade' // TODO translate + UPGRADE: 'Upgrade', // TODO translate + NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate + NO_DATA_2: 'module to mark them.', // TODO translate + NO_DATA_3: 'To see all available entities go to' // TODO translate }; export default it; diff --git a/interface/src/i18n/nl/index.ts b/interface/src/i18n/nl/index.ts index 6ace3dfe7..d04a1191a 100644 --- a/interface/src/i18n/nl/index.ts +++ b/interface/src/i18n/nl/index.ts @@ -340,11 +340,13 @@ const nl: Translation = { RESTARTING_POST: 'Voorbereiding', AUTO_SCROLL: 'Automatisch Scrollen', DASHBOARD: 'Dashboard', - NO_DATA: 'Geen data beschikbaar', DASHBOARD_1: 'Pas uw dashboard aan door EMS-entiteiten als favoriet te markeren met behulp van de module Aanpassingen', DEVELOPER_MODE: 'Ontwikkelaarsmodus', DUPLICATE: 'Duplicaat', - UPGRADE: 'Upgraden' + UPGRADE: 'Upgraden', + NO_DATA_1: 'Geen favorite EMS entiteiten gevonden. Gebruik de', + NO_DATA_2: 'module om ze te markeren.', + NO_DATA_3: 'Om alle beschikbare entiteiten te bekijken ga naar' }; export default nl; \ No newline at end of file diff --git a/interface/src/i18n/no/index.ts b/interface/src/i18n/no/index.ts index b89980c65..b22ea8e64 100644 --- a/interface/src/i18n/no/index.ts +++ b/interface/src/i18n/no/index.ts @@ -340,11 +340,13 @@ const no: Translation = { RESTARTING_POST: 'Preparing', // TODO translate AUTO_SCROLL: 'Auto Scroll', // TODO translate DASHBOARD: 'Dashboard', // TODO translate - NO_DATA: 'No data available', // TODO translate DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', // TODO translate DEVELOPER_MODE: 'Developer Mode', // TODO translate DUPLICATE: 'Duplicate', // TODO translate - UPGRADE: 'Upgrade' // TODO translate + UPGRADE: 'Upgrade', // TODO translate + NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate + NO_DATA_2: 'module to mark them.', // TODO translate + NO_DATA_3: 'To see all available entities go to' // TODO translate }; export default no; diff --git a/interface/src/i18n/pl/index.ts b/interface/src/i18n/pl/index.ts index 978680149..92c4c6c27 100644 --- a/interface/src/i18n/pl/index.ts +++ b/interface/src/i18n/pl/index.ts @@ -340,11 +340,13 @@ const pl: BaseTranslation = { RESTARTING_POST: 'Preparing', // TODO translate AUTO_SCROLL: 'Auto Scroll', // TODO translate DASHBOARD: 'Dashboard', // TODO translate - NO_DATA: 'No data available', // TODO translate DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', // TODO translate DEVELOPER_MODE: 'Developer Mode', // TODO translate DUPLICATE: 'Duplicate', // TODO translate - UPGRADE: 'Upgrade' // TODO translate + UPGRADE: 'Upgrade', // TODO translate + NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate + NO_DATA_2: 'module to mark them.', // TODO translate + NO_DATA_3: 'To see all available entities go to' // TODO translate }; export default pl; diff --git a/interface/src/i18n/sk/index.ts b/interface/src/i18n/sk/index.ts index fdde77ad7..56b0147df 100644 --- a/interface/src/i18n/sk/index.ts +++ b/interface/src/i18n/sk/index.ts @@ -340,11 +340,13 @@ const sk: Translation = { RESTARTING_POST: 'Príprava', AUTO_SCROLL: 'Automatické rolovanie', DASHBOARD: 'Panel', - NO_DATA: 'Nie sú k dispozícii žiadne údaje', DASHBOARD_1: 'Prispôsobte si svoj informačný panel tak, že označíte entity EMS ako Obľúbené pomocou modulu Prispôsobenia', DEVELOPER_MODE: 'Režim vývojára', DUPLICATE: 'Duplicitné', - UPGRADE: 'Inovovať' + UPGRADE: 'Inovovať', + NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate + NO_DATA_2: 'module to mark them.', // TODO translate + NO_DATA_3: 'To see all available entities go to' // TODO translate }; export default sk; diff --git a/interface/src/i18n/sv/index.ts b/interface/src/i18n/sv/index.ts index 151aa9ccc..149446670 100644 --- a/interface/src/i18n/sv/index.ts +++ b/interface/src/i18n/sv/index.ts @@ -340,11 +340,13 @@ const sv: Translation = { RESTARTING_POST: 'Förbereder', AUTO_SCROLL: 'Autoskrolla', DASHBOARD: 'Kontrollpanel', - NO_DATA: 'Ingen data tillgänglig', DASHBOARD_1: 'Anpassa din kontrollpanel genom att markera EMS enheter som Favorit i modulen Anpassningar', DEVELOPER_MODE: 'Utvecklarläge', DUPLICATE: 'Dublett', - UPGRADE: 'Uppgradera' + UPGRADE: 'Uppgradera', + NO_DATA_1: 'Inga EMS entiteter har markeras som Favorit. Använd', + NO_DATA_2: 'modulen Anpassningar för att markera dem.', + NO_DATA_3: 'För att se alla tillgängliga entiteter gå till' }; export default sv; diff --git a/interface/src/i18n/tr/index.ts b/interface/src/i18n/tr/index.ts index 21f6deeea..371ea6919 100644 --- a/interface/src/i18n/tr/index.ts +++ b/interface/src/i18n/tr/index.ts @@ -340,11 +340,13 @@ const tr: Translation = { RESTARTING_POST: 'Preparing', // TODO translate AUTO_SCROLL: 'Auto Scroll', // TODO translate DASHBOARD: 'Dashboard', // TODO translate - NO_DATA: 'No data available', // TODO translate DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', // TODO translate DEVELOPER_MODE: 'Developer Mode', // TODO translate DUPLICATE: 'Duplicate', // TODO translate - UPGRADE: 'Upgrade' // TODO translate + UPGRADE: 'Upgrade', // TODO translate + NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate + NO_DATA_2: 'module to mark them.', // TODO translate + NO_DATA_3: 'To see all available entities go to' // TODO translate }; export default tr; diff --git a/mock-api/rest_server.ts b/mock-api/rest_server.ts index 41c2360e1..68e82e2b6 100644 --- a/mock-api/rest_server.ts +++ b/mock-api/rest_server.ts @@ -4507,7 +4507,7 @@ router let fake = false; - // fake = true; // for testing + // fake = true; // for testing, shows a subset of data if (!fake) { // pick EMS devices from coredata @@ -4603,35 +4603,37 @@ router // for testing only // add the custom entity data - // dashboard_object = { - // id: DeviceTypeUniqueID.CUSTOM_UID, // unique ID for custom entities - // t: DeviceType.CUSTOM, - // nodes: getDashboardEntityData(99) - // }; - // // only add to dashboard if we have values - // if ((dashboard_object.nodes ?? []).length > 0) { - // dashboard_data.push(dashboard_object); - // } - - let scheduler_data = emsesp_schedule.schedule.filter((item) => item.name); - let scheduler_data2 = scheduler_data.map((item, index) => ({ - id: DeviceTypeUniqueID.SCHEDULER_UID * 100 + index, - dv: { - id: '00' + item.name, - v: item.active ? 'on' : 'off', - c: item.name, - l: ['off', 'on'] - } - })); dashboard_object = { - id: DeviceTypeUniqueID.SCHEDULER_UID, - t: DeviceType.SCHEDULER, - nodes: scheduler_data2 + id: DeviceTypeUniqueID.CUSTOM_UID, // unique ID for custom entities + t: DeviceType.CUSTOM, + nodes: getDashboardEntityData(DeviceTypeUniqueID.CUSTOM_UID) }; // only add to dashboard if we have values if ((dashboard_object.nodes ?? []).length > 0) { dashboard_data.push(dashboard_object); } + + // add the scheduler data + // let scheduler_data = emsesp_schedule.schedule.filter((item) => item.name); + // let scheduler_data2 = scheduler_data.map((item, index) => ({ + // id: DeviceTypeUniqueID.SCHEDULER_UID * 100 + index, + // dv: { + // id: '00' + item.name, + // v: item.active ? 'on' : 'off', + // c: item.name, + // l: ['off', 'on'] + // } + // })); + // dashboard_object = { + // id: DeviceTypeUniqueID.SCHEDULER_UID, + // t: DeviceType.SCHEDULER, + // nodes: scheduler_data2 + // }; + + // only add to dashboard if we have values + // if ((dashboard_object.nodes ?? []).length > 0) { + // dashboard_data.push(dashboard_object); + // } } // console.log('dashboard_data: ', dashboard_data); From b23bcf3f0b2569db726d0f3ccaeb60b228c8017d Mon Sep 17 00:00:00 2001 From: proddy Date: Tue, 14 Jan 2025 22:09:23 +0100 Subject: [PATCH 06/15] message optional in MessageBox --- interface/src/app/main/Dashboard.tsx | 2 +- interface/src/components/MessageBox.tsx | 6 +++--- mock-api/rest_server.ts | 23 ++++++++++------------- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/interface/src/app/main/Dashboard.tsx b/interface/src/app/main/Dashboard.tsx index 137a29b9b..2ae103ab6 100644 --- a/interface/src/app/main/Dashboard.tsx +++ b/interface/src/app/main/Dashboard.tsx @@ -264,7 +264,7 @@ const Dashboard = () => { {!loading && !hasFavEntities && ( - + {LL.NO_DATA_1()}  diff --git a/interface/src/components/MessageBox.tsx b/interface/src/components/MessageBox.tsx index b058c133c..70196c722 100644 --- a/interface/src/components/MessageBox.tsx +++ b/interface/src/components/MessageBox.tsx @@ -11,7 +11,7 @@ type MessageBoxLevel = 'warning' | 'success' | 'info' | 'error'; export interface MessageBoxProps extends BoxProps { level: MessageBoxLevel; - message: string; + message?: string; } const LEVEL_ICONS: { @@ -53,8 +53,8 @@ const MessageBox: FC = ({ {...rest} > - - {message} + + {message ?? ''} {children} diff --git a/mock-api/rest_server.ts b/mock-api/rest_server.ts index 68e82e2b6..461693b66 100644 --- a/mock-api/rest_server.ts +++ b/mock-api/rest_server.ts @@ -268,10 +268,10 @@ function updateMask(entity: any, de: any, dd: any) { const old_custom_name = dd.nodes[dd_objIndex].cn; console.log( 'comparing names, old (' + - old_custom_name + - ') with new (' + - new_custom_name + - ')' + old_custom_name + + ') with new (' + + new_custom_name + + ')' ); if (old_custom_name !== new_custom_name) { changed = true; @@ -366,15 +366,15 @@ function check_upgrade(version: string) { const stable_version = version.split(',')[1]; console.log( 'latest dev version: ' + - dev_version + - ', latest stable version: ' + - stable_version + dev_version + + ', latest stable version: ' + + stable_version ); console.log( 'Version upgrade check from version ' + - THIS_VERSION + - ', upgradable: ' + - VERSION_IS_UPGRADEABLE + THIS_VERSION + + ', upgradable: ' + + VERSION_IS_UPGRADEABLE ); data = { emsesp_version: THIS_VERSION, @@ -4608,7 +4608,6 @@ router t: DeviceType.CUSTOM, nodes: getDashboardEntityData(DeviceTypeUniqueID.CUSTOM_UID) }; - // only add to dashboard if we have values if ((dashboard_object.nodes ?? []).length > 0) { dashboard_data.push(dashboard_object); } @@ -4629,8 +4628,6 @@ router // t: DeviceType.SCHEDULER, // nodes: scheduler_data2 // }; - - // only add to dashboard if we have values // if ((dashboard_object.nodes ?? []).length > 0) { // dashboard_data.push(dashboard_object); // } From d58776beab849e759f46fcde1eb0a13aa5b15200 Mon Sep 17 00:00:00 2001 From: proddy Date: Thu, 16 Jan 2025 21:53:57 +0100 Subject: [PATCH 07/15] fix DASHBOARD_1 --- interface/src/i18n/cz/index.ts | 5 +++-- interface/src/i18n/de/index.ts | 8 ++++---- interface/src/i18n/en/index.ts | 4 ++-- interface/src/i18n/fr/index.ts | 2 +- interface/src/i18n/it/index.ts | 2 +- interface/src/i18n/nl/index.ts | 8 ++++---- interface/src/i18n/no/index.ts | 2 +- interface/src/i18n/pl/index.ts | 2 +- interface/src/i18n/sk/index.ts | 2 +- interface/src/i18n/sv/index.ts | 8 ++++---- interface/src/i18n/tr/index.ts | 2 +- 11 files changed, 23 insertions(+), 22 deletions(-) diff --git a/interface/src/i18n/cz/index.ts b/interface/src/i18n/cz/index.ts index 086709801..5d2ee6918 100644 --- a/interface/src/i18n/cz/index.ts +++ b/interface/src/i18n/cz/index.ts @@ -340,9 +340,10 @@ const cz: Translation = { RESTARTING_POST: 'Příprava', AUTO_SCROLL: 'Automatické rolování', DASHBOARD: 'Dashboard', - DASHBOARD_1: 'Přizpůsobte si dashboard označením EMS entit jako Oblíbené pomocí modulu Přizpůsobení', DEVELOPER_MODE: 'Režim vývojáře', - DUPLICATE: 'Duplicate', // TODO translate + DUPLICATE: 'Duplikát', + UPGRADE: 'Upgrade', + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate NO_DATA_2: 'module to mark them.', // TODO translate NO_DATA_3: 'To see all available entities go to' // TODO translate diff --git a/interface/src/i18n/de/index.ts b/interface/src/i18n/de/index.ts index 0e3259d54..fae5cf18a 100644 --- a/interface/src/i18n/de/index.ts +++ b/interface/src/i18n/de/index.ts @@ -340,13 +340,13 @@ const de: Translation = { RESTARTING_POST: 'Vorbereitung', AUTO_SCROLL: 'Automatisches Scrollen', DASHBOARD: 'Dashboard', - DASHBOARD_1: 'Passen Sie Ihr Dashboard an, indem Sie EMS-Entitäten mithilfe des Moduls „Anpassungen“ als Favorit markieren', DEVELOPER_MODE: 'Entwicklermodus', DUPLICATE: 'Kopieren', UPGRADE: 'Aktualisieren', - NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate - NO_DATA_2: 'module to mark them.', // TODO translate - NO_DATA_3: 'To see all available entities go to' // TODO translate + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate + NO_DATA_1: 'Keine favorisierten EMS-Entitäten gefunden! Verwenden Sie das Modul', + NO_DATA_2: ', um sie zu markieren.', + NO_DATA_3: 'Um alle verfügbaren Entitäten anzuzeigen, gehen Sie zu' }; export default de; diff --git a/interface/src/i18n/en/index.ts b/interface/src/i18n/en/index.ts index 611d5e9bb..397d065bb 100644 --- a/interface/src/i18n/en/index.ts +++ b/interface/src/i18n/en/index.ts @@ -340,11 +340,11 @@ const en: Translation = { RESTARTING_POST: 'Preparing', AUTO_SCROLL: 'Auto Scroll', DASHBOARD: 'Dashboard', - DASHBOARD_1: 'The Dashboard shows all EMS entities that are active and marked as a Favorite, plus any Custom Entities, Schedules and external Sensors.', + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', DEVELOPER_MODE: 'Developer Mode', DUPLICATE: 'Duplicate', UPGRADE: 'Upgrade', - NO_DATA_1: 'No favourite EMS entities found. Use the', + NO_DATA_1: 'No favourite EMS entities found! Use the', NO_DATA_2: 'module to mark them.', NO_DATA_3: 'To see all available entities go to' }; diff --git a/interface/src/i18n/fr/index.ts b/interface/src/i18n/fr/index.ts index a2202c765..edc5a9c1b 100644 --- a/interface/src/i18n/fr/index.ts +++ b/interface/src/i18n/fr/index.ts @@ -340,10 +340,10 @@ const fr: Translation = { RESTARTING_POST: 'Preparing', // TODO translate AUTO_SCROLL: 'Auto Scroll', // TODO translate DASHBOARD: 'Dashboard', // TODO translate - DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', // TODO translate DEVELOPER_MODE: 'Developer Mode', // TODO translate DUPLICATE: 'Duplicate', // TODO translate UPGRADE: 'Upgrade', // TODO translate + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate NO_DATA_2: 'module to mark them.', // TODO translate NO_DATA_3: 'To see all available entities go to' // TODO translate diff --git a/interface/src/i18n/it/index.ts b/interface/src/i18n/it/index.ts index cbeaea58f..3125e432a 100644 --- a/interface/src/i18n/it/index.ts +++ b/interface/src/i18n/it/index.ts @@ -340,10 +340,10 @@ const it: Translation = { RESTARTING_POST: 'Preparing', // TODO translate AUTO_SCROLL: 'Auto Scroll', // TODO translate DASHBOARD: 'Dashboard', // TODO translate - DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', // TODO translate DEVELOPER_MODE: 'Developer Mode', // TODO translate DUPLICATE: 'Duplicate', // TODO translate UPGRADE: 'Upgrade', // TODO translate + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate NO_DATA_2: 'module to mark them.', // TODO translate NO_DATA_3: 'To see all available entities go to' // TODO translate diff --git a/interface/src/i18n/nl/index.ts b/interface/src/i18n/nl/index.ts index d04a1191a..d46b5a806 100644 --- a/interface/src/i18n/nl/index.ts +++ b/interface/src/i18n/nl/index.ts @@ -340,13 +340,13 @@ const nl: Translation = { RESTARTING_POST: 'Voorbereiding', AUTO_SCROLL: 'Automatisch Scrollen', DASHBOARD: 'Dashboard', - DASHBOARD_1: 'Pas uw dashboard aan door EMS-entiteiten als favoriet te markeren met behulp van de module Aanpassingen', DEVELOPER_MODE: 'Ontwikkelaarsmodus', DUPLICATE: 'Duplicaat', UPGRADE: 'Upgraden', - NO_DATA_1: 'Geen favorite EMS entiteiten gevonden. Gebruik de', - NO_DATA_2: 'module om ze te markeren.', - NO_DATA_3: 'Om alle beschikbare entiteiten te bekijken ga naar' + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate + NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate + NO_DATA_2: 'module to mark them.', // TODO translate + NO_DATA_3: 'To see all available entities go to' // TODO translate }; export default nl; \ No newline at end of file diff --git a/interface/src/i18n/no/index.ts b/interface/src/i18n/no/index.ts index b22ea8e64..fa120c1b7 100644 --- a/interface/src/i18n/no/index.ts +++ b/interface/src/i18n/no/index.ts @@ -340,10 +340,10 @@ const no: Translation = { RESTARTING_POST: 'Preparing', // TODO translate AUTO_SCROLL: 'Auto Scroll', // TODO translate DASHBOARD: 'Dashboard', // TODO translate - DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', // TODO translate DEVELOPER_MODE: 'Developer Mode', // TODO translate DUPLICATE: 'Duplicate', // TODO translate UPGRADE: 'Upgrade', // TODO translate + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate NO_DATA_2: 'module to mark them.', // TODO translate NO_DATA_3: 'To see all available entities go to' // TODO translate diff --git a/interface/src/i18n/pl/index.ts b/interface/src/i18n/pl/index.ts index 92c4c6c27..16aa6843f 100644 --- a/interface/src/i18n/pl/index.ts +++ b/interface/src/i18n/pl/index.ts @@ -340,10 +340,10 @@ const pl: BaseTranslation = { RESTARTING_POST: 'Preparing', // TODO translate AUTO_SCROLL: 'Auto Scroll', // TODO translate DASHBOARD: 'Dashboard', // TODO translate - DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', // TODO translate DEVELOPER_MODE: 'Developer Mode', // TODO translate DUPLICATE: 'Duplicate', // TODO translate UPGRADE: 'Upgrade', // TODO translate + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate NO_DATA_2: 'module to mark them.', // TODO translate NO_DATA_3: 'To see all available entities go to' // TODO translate diff --git a/interface/src/i18n/sk/index.ts b/interface/src/i18n/sk/index.ts index 56b0147df..da2af27d6 100644 --- a/interface/src/i18n/sk/index.ts +++ b/interface/src/i18n/sk/index.ts @@ -340,10 +340,10 @@ const sk: Translation = { RESTARTING_POST: 'Príprava', AUTO_SCROLL: 'Automatické rolovanie', DASHBOARD: 'Panel', - DASHBOARD_1: 'Prispôsobte si svoj informačný panel tak, že označíte entity EMS ako Obľúbené pomocou modulu Prispôsobenia', DEVELOPER_MODE: 'Režim vývojára', DUPLICATE: 'Duplicitné', UPGRADE: 'Inovovať', + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate NO_DATA_2: 'module to mark them.', // TODO translate NO_DATA_3: 'To see all available entities go to' // TODO translate diff --git a/interface/src/i18n/sv/index.ts b/interface/src/i18n/sv/index.ts index 149446670..e0ac16763 100644 --- a/interface/src/i18n/sv/index.ts +++ b/interface/src/i18n/sv/index.ts @@ -340,13 +340,13 @@ const sv: Translation = { RESTARTING_POST: 'Förbereder', AUTO_SCROLL: 'Autoskrolla', DASHBOARD: 'Kontrollpanel', - DASHBOARD_1: 'Anpassa din kontrollpanel genom att markera EMS enheter som Favorit i modulen Anpassningar', DEVELOPER_MODE: 'Utvecklarläge', DUPLICATE: 'Dublett', UPGRADE: 'Uppgradera', - NO_DATA_1: 'Inga EMS entiteter har markeras som Favorit. Använd', - NO_DATA_2: 'modulen Anpassningar för att markera dem.', - NO_DATA_3: 'För att se alla tillgängliga entiteter gå till' + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate + NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate + NO_DATA_2: 'module to mark them.', // TODO translate + NO_DATA_3: 'To see all available entities go to' // TODO translate }; export default sv; diff --git a/interface/src/i18n/tr/index.ts b/interface/src/i18n/tr/index.ts index 371ea6919..2948fb4b4 100644 --- a/interface/src/i18n/tr/index.ts +++ b/interface/src/i18n/tr/index.ts @@ -340,10 +340,10 @@ const tr: Translation = { RESTARTING_POST: 'Preparing', // TODO translate AUTO_SCROLL: 'Auto Scroll', // TODO translate DASHBOARD: 'Dashboard', // TODO translate - DASHBOARD_1: 'Customize your dashboard by marking EMS entities as Favorite using the Customizations module', // TODO translate DEVELOPER_MODE: 'Developer Mode', // TODO translate DUPLICATE: 'Duplicate', // TODO translate UPGRADE: 'Upgrade', // TODO translate + DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate NO_DATA_1: 'No favourite EMS entities found. Use the', // TODO translate NO_DATA_2: 'module to mark them.', // TODO translate NO_DATA_3: 'To see all available entities go to' // TODO translate From 6853cd738f065c3dec51ea546e0664d3eb5dc70b Mon Sep 17 00:00:00 2001 From: proddy Date: Thu, 16 Jan 2025 21:54:17 +0100 Subject: [PATCH 08/15] package update --- interface/package.json | 6 ++-- interface/yarn.lock | 67 ++++++++++++++++++------------------------ 2 files changed, 32 insertions(+), 41 deletions(-) diff --git a/interface/package.json b/interface/package.json index 7d0502c71..f286eb364 100644 --- a/interface/package.json +++ b/interface/package.json @@ -35,8 +35,8 @@ "react": "^19.0.0", "react-dom": "^19.0.0", "react-icons": "^5.4.0", - "react-router": "^7.1.1", - "react-toastify": "^11.0.2", + "react-router": "^7.1.2", + "react-toastify": "^11.0.3", "typesafe-i18n": "^5.26.2", "typescript": "^5.7.3" }, @@ -47,7 +47,7 @@ "@preact/preset-vite": "^2.9.4", "@trivago/prettier-plugin-sort-imports": "^5.2.1", "@types/formidable": "^3", - "@types/node": "^22.10.6", + "@types/node": "^22.10.7", "@types/react": "^19.0.7", "@types/react-dom": "^19.0.3", "concurrently": "^9.1.2", diff --git a/interface/yarn.lock b/interface/yarn.lock index 6cada0eec..82ff340c6 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -1403,21 +1403,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": - version: 22.10.5 - resolution: "@types/node@npm:22.10.5" +"@types/node@npm:*, @types/node@npm:^22.10.7": + version: 22.10.7 + resolution: "@types/node@npm:22.10.7" dependencies: undici-types: "npm:~6.20.0" - checksum: 10c0/6a0e7d1fe6a86ef6ee19c3c6af4c15542e61aea2f4cee655b6252efb356795f1f228bc8299921e82924e80ff8eca29b74d9dd0dd5cc1a90983f892f740b480df - languageName: node - linkType: hard - -"@types/node@npm:^22.10.6": - version: 22.10.6 - resolution: "@types/node@npm:22.10.6" - dependencies: - undici-types: "npm:~6.20.0" - checksum: 10c0/8b67affc211e5f9c74f7949cda04ca669721e50b83d71b8772a7bed7a4a3c41d663b3a794413f618e763ca6c5da8c234c25ffebcb0737983fc3e7415818ab9a7 + checksum: 10c0/c941b4689dfc4044b64a5f601306cbcb0c7210be853ba378a5dd44137898c45accedd796ee002ad9407024cac7ecaf5049304951cb1d80ce3d7cebbbae56f20e languageName: node linkType: hard @@ -1608,7 +1599,7 @@ __metadata: "@table-library/react-table-library": "npm:4.1.7" "@trivago/prettier-plugin-sort-imports": "npm:^5.2.1" "@types/formidable": "npm:^3" - "@types/node": "npm:^22.10.6" + "@types/node": "npm:^22.10.7" "@types/react": "npm:^19.0.7" "@types/react-dom": "npm:^19.0.3" alova: "npm:3.2.8" @@ -1624,8 +1615,8 @@ __metadata: react: "npm:^19.0.0" react-dom: "npm:^19.0.0" react-icons: "npm:^5.4.0" - react-router: "npm:^7.1.1" - react-toastify: "npm:^11.0.2" + react-router: "npm:^7.1.2" + react-toastify: "npm:^11.0.3" rollup-plugin-visualizer: "npm:^5.14.0" terser: "npm:^5.37.0" typesafe-i18n: "npm:^5.26.2" @@ -2628,9 +2619,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.73": - version: 1.5.80 - resolution: "electron-to-chromium@npm:1.5.80" - checksum: 10c0/6aaf1891e1b05251efac6f4a63c0ddccf567f0f76506cf0cb284f11413762423fddd7786558066f74c3a95e2a533dad7a97bebe38779b46b7a799d8dd20cea53 + version: 1.5.83 + resolution: "electron-to-chromium@npm:1.5.83" + checksum: 10c0/12380962d057c4679add1047cdddb18b909904614272da0527e505a3859eaffde2022dd0688ce7f230582de96405c3d33b667680614475cdafd3f629caa2fee1 languageName: node linkType: hard @@ -4919,7 +4910,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.7": +"nanoid@npm:^3.3.8": version: 3.3.8 resolution: "nanoid@npm:3.3.8" bin: @@ -5444,13 +5435,13 @@ __metadata: linkType: hard "postcss@npm:^8.4.49": - version: 8.4.49 - resolution: "postcss@npm:8.4.49" + version: 8.5.1 + resolution: "postcss@npm:8.5.1" dependencies: - nanoid: "npm:^3.3.7" + nanoid: "npm:^3.3.8" picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/f1b3f17aaf36d136f59ec373459f18129908235e65dbdc3aee5eef8eba0756106f52de5ec4682e29a2eab53eb25170e7e871b3e4b52a8f1de3d344a514306be3 + checksum: 10c0/c4d90c59c98e8a0c102b77d3f4cac190f883b42d63dc60e2f3ed840f16197c0c8e25a4327d2e9a847b45a985612317dc0534178feeebd0a1cf3eb0eecf75cae4 languageName: node linkType: hard @@ -5576,9 +5567,9 @@ __metadata: linkType: hard "rate-limiter-flexible@npm:^5.0.3": - version: 5.0.4 - resolution: "rate-limiter-flexible@npm:5.0.4" - checksum: 10c0/5047df2b8fbfa7cf5eefb4242cc78091a7866d79f20d34bbc473e0d8fdf2a7f5d8d0ac87c5c4cec365bb91252cf4d7b6b8cc2756112c292c8ef26e3648950711 + version: 5.0.5 + resolution: "rate-limiter-flexible@npm:5.0.5" + checksum: 10c0/ae7cba6a46a2133bfbd310d3f83c65b3b732deab84e0c79b4fda78cd1d6578f69111bb37f09401ea45334eb75b8e40637ab0a8a9fd3efbb0b54084d6cd3b4ead languageName: node linkType: hard @@ -5616,9 +5607,9 @@ __metadata: languageName: node linkType: hard -"react-router@npm:^7.1.1": - version: 7.1.1 - resolution: "react-router@npm:7.1.1" +"react-router@npm:^7.1.2": + version: 7.1.2 + resolution: "react-router@npm:7.1.2" dependencies: "@types/cookie": "npm:^0.6.0" cookie: "npm:^1.0.1" @@ -5630,19 +5621,19 @@ __metadata: peerDependenciesMeta: react-dom: optional: true - checksum: 10c0/39f4859670f286eb2eac29e5830c1f730405701fca0808e5db853ec05e54e55a848c764e10ffd14a7b9b3b2154a0d6449656d7f208b9b3e4b2af780e07bf57a8 + checksum: 10c0/f2ef57c8c95cfee0c0689cbcb9a28ebbc5a554831b9e8f9d0295f4c6ac0960a448e16b828dd75168b4e8da228068c99d88248be3418467d6a76ab4ea02bf0d71 languageName: node linkType: hard -"react-toastify@npm:^11.0.2": - version: 11.0.2 - resolution: "react-toastify@npm:11.0.2" +"react-toastify@npm:^11.0.3": + version: 11.0.3 + resolution: "react-toastify@npm:11.0.3" dependencies: clsx: "npm:^2.1.1" peerDependencies: react: ^18 || ^19 react-dom: ^18 || ^19 - checksum: 10c0/e1ba01846782d47d0bf9cec7e2b4804f9af30e50a203786523f16db33691c1491f2382832e7ec4b69c583d3634ea0e3efb383da00ca9076bcf4bdd906a54a85f + checksum: 10c0/23b989c6080bc5bf0eb0c1f7ed17bd53d067d9beb33baf93c520119cd69cf75c9f2d1ee524dfe6c8a2a5d326029772b576de00e018b379d03a0e37630b83adea languageName: node linkType: hard @@ -6228,9 +6219,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.20 - resolution: "spdx-license-ids@npm:3.0.20" - checksum: 10c0/bdff7534fad6ef59be49becda1edc3fb7f5b3d6f296a715516ab9d972b8ad59af2c34b2003e01db8970d4c673d185ff696ba74c6b61d3bf327e2b3eac22c297c + version: 3.0.21 + resolution: "spdx-license-ids@npm:3.0.21" + checksum: 10c0/ecb24c698d8496aa9efe23e0b1f751f8a7a89faedcdfcbfabae772b546c2db46ccde8f3bc447a238eb86bbcd4f73fea88720ef3b8394f7896381bec3d7736411 languageName: node linkType: hard From 77eb2c747be4af57e0c13067234b466ab2b370c6 Mon Sep 17 00:00:00 2001 From: proddy Date: Thu, 16 Jan 2025 21:54:38 +0100 Subject: [PATCH 09/15] tidy up lang header --- scripts/upload.py | 6 +++--- scripts/upload_cli.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/upload.py b/scripts/upload.py index 5b363f9ff..988f881c3 100644 --- a/scripts/upload.py +++ b/scripts/upload.py @@ -67,7 +67,7 @@ def on_upload(source, target, env): 'Host': host_ip, 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0', 'Accept': '*/*', - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'Accept-Language': 'en-US', 'Accept-Encoding': 'gzip, deflate', 'Referer': f'{emsesp_url}', 'Content-Type': 'application/json', @@ -118,7 +118,7 @@ def on_upload(source, target, env): 'Host': host_ip, 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0', 'Accept': '*/*', - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'Accept-Language': 'en-US', 'Accept-Encoding': 'gzip, deflate', 'Referer': f'{emsesp_url}', 'Connection': 'keep-alive', @@ -146,7 +146,7 @@ def on_upload(source, target, env): 'Host': host_ip, 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0', 'Accept': '*/*', - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'Accept-Language': 'en-US', 'Accept-Encoding': 'gzip, deflate', 'Referer': f'{emsesp_url}', 'Content-Type': 'application/json', diff --git a/scripts/upload_cli.py b/scripts/upload_cli.py index a827ddd77..c4e066e3a 100644 --- a/scripts/upload_cli.py +++ b/scripts/upload_cli.py @@ -41,7 +41,7 @@ def upload(file, ip, username, password): 'Host': host_ip, 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0', 'Accept': '*/*', - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'Accept-Language': 'en-US', 'Accept-Encoding': 'gzip, deflate', 'Referer': f'{emsesp_url}', 'Content-Type': 'application/json', @@ -90,7 +90,7 @@ def upload(file, ip, username, password): 'Host': host_ip, 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0', 'Accept': '*/*', - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'Accept-Language': 'en-US', 'Accept-Encoding': 'gzip, deflate', 'Referer': f'{emsesp_url}', 'Connection': 'keep-alive', @@ -116,7 +116,7 @@ def upload(file, ip, username, password): 'Host': host_ip, 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0', 'Accept': '*/*', - 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3', + 'Accept-Language': 'en-US', 'Accept-Encoding': 'gzip, deflate', 'Referer': f'{emsesp_url}', 'Content-Type': 'application/json', From e3d260429c450ccdac133d581728836f52e4f68e Mon Sep 17 00:00:00 2001 From: proddy Date: Thu, 16 Jan 2025 21:54:54 +0100 Subject: [PATCH 10/15] formatting --- mock-api/rest_server.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/mock-api/rest_server.ts b/mock-api/rest_server.ts index 461693b66..d7b3e7596 100644 --- a/mock-api/rest_server.ts +++ b/mock-api/rest_server.ts @@ -157,7 +157,7 @@ switch (version_test as number) { // set the version system_status.emsesp_version = THIS_VERSION; -const emulate_esp = "ESP32S3"; +const emulate_esp = 'ESP32S3'; // const emulate_esp = 'ESP32'; switch (emulate_esp as string) { @@ -268,10 +268,10 @@ function updateMask(entity: any, de: any, dd: any) { const old_custom_name = dd.nodes[dd_objIndex].cn; console.log( 'comparing names, old (' + - old_custom_name + - ') with new (' + - new_custom_name + - ')' + old_custom_name + + ') with new (' + + new_custom_name + + ')' ); if (old_custom_name !== new_custom_name) { changed = true; @@ -366,15 +366,15 @@ function check_upgrade(version: string) { const stable_version = version.split(',')[1]; console.log( 'latest dev version: ' + - dev_version + - ', latest stable version: ' + - stable_version + dev_version + + ', latest stable version: ' + + stable_version ); console.log( 'Version upgrade check from version ' + - THIS_VERSION + - ', upgradable: ' + - VERSION_IS_UPGRADEABLE + THIS_VERSION + + ', upgradable: ' + + VERSION_IS_UPGRADEABLE ); data = { emsesp_version: THIS_VERSION, @@ -4507,7 +4507,7 @@ router let fake = false; - // fake = true; // for testing, shows a subset of data + fake = true; // for testing, shows a subset of data if (!fake) { // pick EMS devices from coredata From c732c96fc2e96f265844b8a707740bd0cd0801bf Mon Sep 17 00:00:00 2001 From: proddy Date: Thu, 16 Jan 2025 21:55:19 +0100 Subject: [PATCH 11/15] re-gen files --- docs/Modbus-Entity-Registers.md | 349 +++++++++------- docs/dump_entities.csv | 344 ++++++++------- scripts/generate_csv_and_headers.sh | 8 +- src/core/modbus_entity_parameters.hpp | 94 +++-- src/modbus_entity_parameters.hpp | 578 -------------------------- 5 files changed, 449 insertions(+), 924 deletions(-) delete mode 100644 src/modbus_entity_parameters.hpp diff --git a/docs/Modbus-Entity-Registers.md b/docs/Modbus-Entity-Registers.md index 3ad7cedee..72a5bfdf1 100644 --- a/docs/Modbus-Entity-Registers.md +++ b/docs/Modbus-Entity-Registers.md @@ -3621,6 +3621,43 @@ | elgenheat | el. generation heating | uint32 (>=0<=1677721) | kWh | false | DEVICE_DATA | 48 | 2 | 1/10 | | elgendhw | el generation | uint32 (>=0<=1677721) | kWh | false | DHW | 11 | 2 | 1/10 | +## Devices of type *heatsource* +### AM200 +| shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor | +|-|-|-|-|-|-|-|-|-| +| sysflowtemp | system flow temperature | int16 (>=-3199<=3199) | C | false | AHS | 0 | 1 | 1/10 | +| sysrettemp | system return temperature | int16 (>=-3199<=3199) | C | false | AHS | 1 | 1 | 1/10 | +| altflowtemp | alternative hs flow temperature | int16 (>=-3199<=3199) | C | false | AHS | 2 | 1 | 1/10 | +| altrettemp | alternative hs return temperature | int16 (>=-3199<=3199) | C | false | AHS | 3 | 1 | 1/10 | +| cyltoptemp | cylinder top temperature | int16 (>=-3199<=3199) | C | false | AHS | 4 | 1 | 1/10 | +| cylcentertemp | cylinder center temperature | int16 (>=-3199<=3199) | C | false | AHS | 5 | 1 | 1/10 | +| cylbottomtemp | cylinder bottom temperature | int16 (>=-3199<=3199) | C | false | AHS | 6 | 1 | 1/10 | +| fluegastemp | flue gas temperature | int16 (>=-3199<=3199) | C | false | AHS | 7 | 1 | 1/10 | +| valvebuffer | buffer valve | uint8 (>=0<=100) | % | false | AHS | 8 | 1 | 1 | +| valvereturn | return valve | uint8 (>=0<=100) | % | false | AHS | 9 | 1 | 1 | +| apumpmod | alternative hs pump modulation | uint8 (>=0<=100) | % | false | AHS | 10 | 1 | 1 | +| vr2config | vr2 configuration | enum [off\|bypass] | | true | AHS | 11 | 1 | 1 | +| ahsactivated | alternate heat source activation | boolean | | true | AHS | 12 | 1 | 1 | +| apumpconfig | primary pump config | boolean | | true | AHS | 13 | 1 | 1 | +| apumpsignal | output for pr1 pump | enum [off\|pwm\|pwm inverse] | | true | AHS | 14 | 1 | 1 | +| apumpmin | min output pump pr1 | uint8 (>=12<=50) | % | true | AHS | 15 | 1 | 1 | +| temprise | ahs return temp rise | boolean | | true | AHS | 16 | 1 | 1 | +| setreturntemp | set temp return | uint8 (>=40<=75) | C | true | AHS | 17 | 1 | 1 | +| mixruntime | mixer run time | uint16 (>=0<=600) | seconds | true | AHS | 18 | 1 | 1 | +| setflowtemp | set flow temperature | uint8 (>=40<=75) | C | true | AHS | 19 | 1 | 1 | +| bufbypass | buffer bypass config | enum [no\|mixer\|valve] | | true | AHS | 20 | 1 | 1 | +| bufmixruntime | bypass mixer run time | uint16 (>=0<=600) | seconds | true | AHS | 21 | 1 | 1 | +| bufconfig | dhw buffer config | enum [off\|monovalent\|bivalent] | | true | AHS | 22 | 1 | 1 | +| blockmode | config htg. blocking mode | enum [off\|auto\|blocking] | | true | AHS | 23 | 1 | 1 | +| blockterm | config of block terminal | enum [n_o\|n_c] | | true | AHS | 24 | 1 | 1 | +| blockhyst | hyst. for boiler block | int8 (>=0<=50) | C | true | AHS | 25 | 1 | 1 | +| releasewait | boiler release wait time | uint8 (>=0<=240) | minutes | true | AHS | 26 | 1 | 1 | +| burner | burner | boolean | | false | AHS | 27 | 1 | 1 | +| apump | alternative hs pump | boolean | | false | AHS | 28 | 1 | 1 | +| heatrequest | heat request | uint8 (>=0<=100) | % | false | AHS | 29 | 1 | 1 | +| blockremain | remaining blocktime | uint8 (>=0<=254) | minutes | false | AHS | 30 | 1 | 1 | +| blockremaindhw | remaining blocktime dhw | uint8 (>=0<=254) | minutes | false | AHS | 31 | 1 | 1 | + ## Devices of type *mixer* ### HM210 | shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor | @@ -4025,8 +4062,8 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [night\|day\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [night\|day] | | false | HC | 4 | 1 | 1 | -| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 54 | 1 | 1/2 | +| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 56 | 1 | 1/2 | | program | program | enum [family\|morning\|evening\|am\|pm\|midday\|singles\|seniors] | | true | HC | 25 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=0<=254) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=0<=254) | C | true | HC | 12 | 1 | 1 | @@ -4043,8 +4080,8 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [night\|day\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [night\|day] | | false | HC | 4 | 1 | 1 | -| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 54 | 1 | 1/2 | +| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 56 | 1 | 1/2 | | program | program | enum [family\|morning\|evening\|am\|pm\|midday\|singles\|seniors] | | true | HC | 25 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=0<=254) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=0<=254) | C | true | HC | 12 | 1 | 1 | @@ -4074,40 +4111,40 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [night\|day\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [night\|day] | | false | HC | 4 | 1 | 1 | -| daytemp | day temperature | uint8 (>=10<=30) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=10<=30) | C | true | HC | 54 | 1 | 1/2 | +| daytemp | day temperature | uint8 (>=10<=30) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=10<=30) | C | true | HC | 56 | 1 | 1/2 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | | offsettemp | offset temperature | int8 (>=-5<=5) | C | true | HC | 10 | 1 | 1/2 | -| holidaytemp | holiday temperature | uint8 (>=5<=30) | C | true | HC | 55 | 1 | 1/2 | +| holidaytemp | holiday temperature | uint8 (>=5<=30) | C | true | HC | 57 | 1 | 1/2 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1 | | summermode | summer mode | enum [winter\|summer] | | false | HC | 22 | 1 | 1 | -| holidaymode | holiday mode | boolean | | false | HC | 56 | 1 | 1 | +| holidaymode | holiday mode | boolean | | false | HC | 58 | 1 | 1 | | nofrosttemp | nofrost temperature | int8 (>=-20<=10) | C | true | HC | 17 | 1 | 1 | | nofrostmode | nofrost mode | enum [off\|outdoor\|room] | | true | HC | 16 | 1 | 1 | | roominfluence | room influence | uint8 (>=0<=10) | C | true | HC | 13 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | -| flowtempoffset | flow temperature offset for mixer | uint8 (>=0<=20) | C | true | HC | 57 | 1 | 1 | +| flowtempoffset | flow temperature offset for mixer | uint8 (>=0<=20) | C | true | HC | 59 | 1 | 1 | | heatingtype | heating type | enum [off\|radiator\|convector\|floor] | | true | HC | 19 | 1 | 1 | | reducemode | reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 30 | 1 | 1 | | controlmode | control mode | enum [outdoor\|room] | | true | HC | 24 | 1 | 1 | | control | control device | enum [off\|RC20\|RC3x] | | true | HC | 40 | 1 | 1 | -| holidays | holiday dates | string | | true | HC | 58 | 13 | 1 | -| vacations | vacation dates | string | | true | HC | 71 | 13 | 1 | +| holidays | holiday dates | string | | true | HC | 60 | 13 | 1 | +| vacations | vacation dates | string | | true | HC | 73 | 13 | 1 | | program | program | enum [own 1\|family\|morning\|evening\|am\|pm\|midday\|singles\|seniors\|new\|own 2] | | true | HC | 25 | 1 | 1 | -| pause | pause time | uint8 (>=0<=99) | hours | true | HC | 84 | 1 | 1 | -| party | party time | uint8 (>=0<=99) | hours | true | HC | 85 | 1 | 1 | +| pause | pause time | uint8 (>=0<=99) | hours | true | HC | 86 | 1 | 1 | +| party | party time | uint8 (>=0<=99) | hours | true | HC | 87 | 1 | 1 | | tempautotemp | temporary set temperature automode | uint8 (>=0<=30) | C | true | HC | 26 | 1 | 1/2 | | noreducetemp | no reduce below temperature | int8 (>=-31<=10) | C | true | HC | 31 | 1 | 1 | | reducetemp | off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 32 | 1 | 1 | -| vacreducetemp | vacations off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 86 | 1 | 1 | -| vacreducemode | vacations reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 87 | 1 | 1 | +| vacreducetemp | vacations off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 88 | 1 | 1 | +| vacreducemode | vacations reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 89 | 1 | 1 | | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | dhwprio | dhw priority | boolean | | true | HC | 33 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| switchtime1 | own1 program switchtime | string | | true | HC | 88 | 8 | 1 | -| switchtime2 | own2 program switchtime | string | | true | HC | 96 | 8 | 1 | +| switchtime1 | own1 program switchtime | string | | true | HC | 90 | 8 | 1 | +| switchtime2 | own2 program switchtime | string | | true | HC | 98 | 8 | 1 | | mode | operating mode | enum [off\|on\|auto] | | true | DHW | 0 | 1 | 1 | | circmode | circulation pump mode | enum [off\|on\|auto] | | true | DHW | 3 | 1 | 1 | | progmode | program | enum [std prog\|own prog] | | true | DHW | 12 | 1 | 1 | @@ -4140,40 +4177,40 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [night\|day\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [night\|day] | | false | HC | 4 | 1 | 1 | -| daytemp | day temperature | uint8 (>=10<=30) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=10<=30) | C | true | HC | 54 | 1 | 1/2 | +| daytemp | day temperature | uint8 (>=10<=30) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=10<=30) | C | true | HC | 56 | 1 | 1/2 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | | offsettemp | offset temperature | int8 (>=-5<=5) | C | true | HC | 10 | 1 | 1/2 | -| holidaytemp | holiday temperature | uint8 (>=5<=30) | C | true | HC | 55 | 1 | 1/2 | +| holidaytemp | holiday temperature | uint8 (>=5<=30) | C | true | HC | 57 | 1 | 1/2 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1 | | summermode | summer mode | enum [winter\|summer] | | false | HC | 22 | 1 | 1 | -| holidaymode | holiday mode | boolean | | false | HC | 56 | 1 | 1 | +| holidaymode | holiday mode | boolean | | false | HC | 58 | 1 | 1 | | nofrosttemp | nofrost temperature | int8 (>=-20<=10) | C | true | HC | 17 | 1 | 1 | | nofrostmode | nofrost mode | enum [off\|outdoor\|room] | | true | HC | 16 | 1 | 1 | | roominfluence | room influence | uint8 (>=0<=10) | C | true | HC | 13 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | -| flowtempoffset | flow temperature offset for mixer | uint8 (>=0<=20) | C | true | HC | 57 | 1 | 1 | +| flowtempoffset | flow temperature offset for mixer | uint8 (>=0<=20) | C | true | HC | 59 | 1 | 1 | | heatingtype | heating type | enum [off\|radiator\|convector\|floor] | | true | HC | 19 | 1 | 1 | | reducemode | reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 30 | 1 | 1 | | controlmode | control mode | enum [outdoor\|room] | | true | HC | 24 | 1 | 1 | | control | control device | enum [off\|RC20\|RC3x] | | true | HC | 40 | 1 | 1 | -| holidays | holiday dates | string | | true | HC | 58 | 13 | 1 | -| vacations | vacation dates | string | | true | HC | 71 | 13 | 1 | +| holidays | holiday dates | string | | true | HC | 60 | 13 | 1 | +| vacations | vacation dates | string | | true | HC | 73 | 13 | 1 | | program | program | enum [own 1\|family\|morning\|evening\|am\|pm\|midday\|singles\|seniors\|new\|own 2] | | true | HC | 25 | 1 | 1 | -| pause | pause time | uint8 (>=0<=99) | hours | true | HC | 84 | 1 | 1 | -| party | party time | uint8 (>=0<=99) | hours | true | HC | 85 | 1 | 1 | +| pause | pause time | uint8 (>=0<=99) | hours | true | HC | 86 | 1 | 1 | +| party | party time | uint8 (>=0<=99) | hours | true | HC | 87 | 1 | 1 | | tempautotemp | temporary set temperature automode | uint8 (>=0<=30) | C | true | HC | 26 | 1 | 1/2 | | noreducetemp | no reduce below temperature | int8 (>=-31<=10) | C | true | HC | 31 | 1 | 1 | | reducetemp | off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 32 | 1 | 1 | -| vacreducetemp | vacations off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 86 | 1 | 1 | -| vacreducemode | vacations reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 87 | 1 | 1 | +| vacreducetemp | vacations off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 88 | 1 | 1 | +| vacreducemode | vacations reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 89 | 1 | 1 | | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | dhwprio | dhw priority | boolean | | true | HC | 33 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| switchtime1 | own1 program switchtime | string | | true | HC | 88 | 8 | 1 | -| switchtime2 | own2 program switchtime | string | | true | HC | 96 | 8 | 1 | +| switchtime1 | own1 program switchtime | string | | true | HC | 90 | 8 | 1 | +| switchtime2 | own2 program switchtime | string | | true | HC | 98 | 8 | 1 | | mode | operating mode | enum [off\|on\|auto] | | true | DHW | 0 | 1 | 1 | | circmode | circulation pump mode | enum [off\|on\|auto] | | true | DHW | 3 | 1 | 1 | | progmode | program | enum [std prog\|own prog] | | true | DHW | 12 | 1 | 1 | @@ -4216,7 +4253,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4224,10 +4261,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4255,7 +4292,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4263,10 +4300,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4294,7 +4331,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4302,10 +4339,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4333,7 +4370,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4341,10 +4378,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4372,7 +4409,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4380,10 +4417,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4411,7 +4448,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4419,10 +4456,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4450,7 +4487,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4458,10 +4495,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4489,7 +4526,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4497,10 +4534,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4528,7 +4565,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4536,10 +4573,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4567,7 +4604,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4575,10 +4612,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4606,7 +4643,7 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [nofrost\|eco\|heat] | | false | HC | 4 | 1 | 1 | -| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 195 | 1 | 1/2 | +| heattemp | heat temperature | uint8 (>=0<=127) | C | true | HC | 197 | 1 | 1/2 | | ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 | | nofrosttemp | nofrost temperature | int8 (>=-63<=63) | C | true | HC | 17 | 1 | 1/2 | | control | control device | enum [off\|FB10\|FB100] | | true | HC | 40 | 1 | 1 | @@ -4614,10 +4651,10 @@ | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1/2 | -| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 196 | 1 | 1 | -| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 56 | 1 | 1 | +| roomsensor | room sensor | enum [extern\|intern\|auto] | | true | HC | 198 | 1 | 1 | +| holidaymode | holiday mode | enum [nofrost\|eco\|heat\|auto] | | true | HC | 58 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 197 | 1 | 1 | +| heatup | heatup | enum [slow\|medium\|fast] | | true | HC | 199 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | @@ -4649,10 +4686,10 @@ | currtemp | current room temperature | int16 (>=-3199<=3199) | C | false | HC | 1 | 1 | 1/10 | | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|night\|day] | | true | HC | 3 | 1 | 1 | -| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 54 | 1 | 1/2 | -| reducehours | duration for nighttemp | uint8 (>=0<=254) | hours | true | HC | 193 | 1 | 1 | -| reduceminutes | remaining time for nightmode | uint16 (>=0<=31999) | minutes | false | HC | 194 | 1 | 1 | +| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 56 | 1 | 1/2 | +| reducehours | duration for nighttemp | uint8 (>=0<=254) | hours | true | HC | 195 | 1 | 1 | +| reduceminutes | remaining time for nightmode | uint16 (>=0<=31999) | minutes | false | HC | 196 | 1 | 1 | | mode | operating mode | enum [on\|off\|auto] | | true | DHW | 0 | 1 | 1 | ### Moduline 400 @@ -4675,26 +4712,26 @@ | currtemp | current room temperature | int16 (>=-3199<=3199) | C | false | HC | 1 | 1 | 1/10 | | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [off\|manual\|auto] | | true | HC | 3 | 1 | 1 | -| pause | pause time | uint8 (>=0<=254) | hours | true | HC | 84 | 1 | 1 | -| party | party time | uint8 (>=0<=254) | hours | true | HC | 85 | 1 | 1 | -| vacations1 | vacation dates 1 | string | | true | HC | 116 | 11 | 1 | -| vacations2 | vacation dates 2 | string | | true | HC | 127 | 11 | 1 | -| vacations3 | vacation dates 3 | string | | true | HC | 138 | 11 | 1 | -| vacations4 | vacation dates 4 | string | | true | HC | 149 | 11 | 1 | -| vacations5 | vacation dates 5 | string | | true | HC | 160 | 11 | 1 | -| vacations6 | vacation dates 6 | string | | true | HC | 171 | 11 | 1 | -| vacations7 | vacation dates 7 | string | | true | HC | 182 | 11 | 1 | +| pause | pause time | uint8 (>=0<=254) | hours | true | HC | 86 | 1 | 1 | +| party | party time | uint8 (>=0<=254) | hours | true | HC | 87 | 1 | 1 | +| vacations1 | vacation dates 1 | string | | true | HC | 118 | 11 | 1 | +| vacations2 | vacation dates 2 | string | | true | HC | 129 | 11 | 1 | +| vacations3 | vacation dates 3 | string | | true | HC | 140 | 11 | 1 | +| vacations4 | vacation dates 4 | string | | true | HC | 151 | 11 | 1 | +| vacations5 | vacation dates 5 | string | | true | HC | 162 | 11 | 1 | +| vacations6 | vacation dates 6 | string | | true | HC | 173 | 11 | 1 | +| vacations7 | vacation dates 7 | string | | true | HC | 184 | 11 | 1 | | program | program | enum [own 1\|family\|morning\|evening\|am\|pm\|midday\|singles\|seniors\|new\|own 2] | | true | HC | 25 | 1 | 1 | -| switchtime1 | own1 program switchtime | string | | true | HC | 88 | 8 | 1 | +| switchtime1 | own1 program switchtime | string | | true | HC | 90 | 8 | 1 | | heatingtype | heating type | enum [off\|radiator\|convector\|floor] | | true | HC | 19 | 1 | 1 | | controlmode | control mode | enum [outdoor\|room] | | true | HC | 24 | 1 | 1 | -| holidaytemp | holiday temperature | uint8 (>=0<=127) | C | true | HC | 55 | 1 | 1/2 | -| nighttemp | night temperature T1 | uint8 (>=0<=127) | C | true | HC | 54 | 1 | 1/2 | -| daytemp2 | day temperature T2 | uint8 (>=0<=127) | C | true | HC | 105 | 1 | 1/2 | -| daytemp3 | day temperature T3 | uint8 (>=0<=127) | C | true | HC | 106 | 1 | 1/2 | -| daytemp4 | day temperature T4 | uint8 (>=0<=127) | C | true | HC | 107 | 1 | 1/2 | +| holidaytemp | holiday temperature | uint8 (>=0<=127) | C | true | HC | 57 | 1 | 1/2 | +| nighttemp | night temperature T1 | uint8 (>=0<=127) | C | true | HC | 56 | 1 | 1/2 | +| daytemp2 | day temperature T2 | uint8 (>=0<=127) | C | true | HC | 107 | 1 | 1/2 | +| daytemp3 | day temperature T3 | uint8 (>=0<=127) | C | true | HC | 108 | 1 | 1/2 | +| daytemp4 | day temperature T4 | uint8 (>=0<=127) | C | true | HC | 109 | 1 | 1/2 | | manualtemp | manual temperature | uint8 (>=0<=127) | C | true | HC | 6 | 1 | 1/2 | -| offtemp | temperature when mode is off | uint8 (>=0<=127) | C | true | HC | 104 | 1 | 1/2 | +| offtemp | temperature when mode is off | uint8 (>=0<=127) | C | true | HC | 106 | 1 | 1/2 | | mode | operating mode | enum [on\|off\|auto] | | true | DHW | 0 | 1 | 1 | | whenmodeoff | when thermostat mode off | boolean | | true | DHW | 62 | 1 | 1 | | disinfecting | disinfecting | boolean | | true | DHW | 7 | 1 | 1 | @@ -4713,8 +4750,8 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [night\|day\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [night\|day] | | false | HC | 4 | 1 | 1 | -| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 54 | 1 | 1/2 | +| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 56 | 1 | 1/2 | | program | program | enum [family\|morning\|evening\|am\|pm\|midday\|singles\|seniors] | | true | HC | 25 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=0<=254) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=0<=254) | C | true | HC | 12 | 1 | 1 | @@ -4735,10 +4772,10 @@ | currtemp | current room temperature | int16 (>=-3199<=3199) | C | false | HC | 1 | 1 | 1/10 | | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [nofrost\|night\|day] | | true | HC | 3 | 1 | 1 | -| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 54 | 1 | 1/2 | -| reducehours | duration for nighttemp | uint8 (>=0<=254) | hours | true | HC | 193 | 1 | 1 | -| reduceminutes | remaining time for nightmode | uint16 (>=0<=31999) | minutes | false | HC | 194 | 1 | 1 | +| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 56 | 1 | 1/2 | +| reducehours | duration for nighttemp | uint8 (>=0<=254) | hours | true | HC | 195 | 1 | 1 | +| reduceminutes | remaining time for nightmode | uint16 (>=0<=31999) | minutes | false | HC | 196 | 1 | 1 | | mode | operating mode | enum [on\|off\|auto] | | true | DHW | 0 | 1 | 1 | | errorcode | error code | string | | false | DEVICE_DATA | 0 | 8 | 1 | | lastcode | last error code | string | | false | DEVICE_DATA | 8 | 25 | 1 | @@ -4749,8 +4786,8 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [night\|day\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [night\|day] | | false | HC | 4 | 1 | 1 | -| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 54 | 1 | 1/2 | +| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 56 | 1 | 1/2 | | program | program | enum [family\|morning\|evening\|am\|pm\|midday\|singles\|seniors] | | true | HC | 25 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=0<=254) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=0<=254) | C | true | HC | 12 | 1 | 1 | @@ -4835,8 +4872,8 @@ | cooloffdelay | cooling off delay | uint8 (>=1<=48) | hours | true | HC | 50 | 1 | 1 | | switchprogmode | switch program mode | enum [level\|absolute] | | true | HC | 51 | 1 | 1 | | redthreshold | reduction threshold | int8 (>=12<=22) | C | true | HC | 52 | 1 | 1/2 | -| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | -1 | 1 | 1 | -| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | -1 | 1 | 1/10 | +| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | 53 | 1 | 1 | +| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | 54 | 1 | 1/10 | | mode | operating mode | enum [off\|normal\|comfort\|auto\|own prog] | | true | DHW | 0 | 1 | 1 | | settemp | set temperature | uint8 (>=0<=254) | C | true | DHW | 1 | 1 | 1 | | settemplow | set low temperature | uint8 (>=0<=254) | C | true | DHW | 2 | 1 | 1 | @@ -4936,8 +4973,8 @@ | cooloffdelay | cooling off delay | uint8 (>=1<=48) | hours | true | HC | 50 | 1 | 1 | | switchprogmode | switch program mode | enum [level\|absolute] | | true | HC | 51 | 1 | 1 | | redthreshold | reduction threshold | int8 (>=12<=22) | C | true | HC | 52 | 1 | 1/2 | -| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | -1 | 1 | 1 | -| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | -1 | 1 | 1/10 | +| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | 53 | 1 | 1 | +| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | 54 | 1 | 1/10 | | mode | operating mode | enum [off\|comfort\|auto] | | true | DHW | 0 | 1 | 1 | | settemp | set temperature | uint8 (>=0<=254) | C | true | DHW | 1 | 1 | 1 | | settemplow | set low temperature | uint8 (>=0<=254) | C | true | DHW | 2 | 1 | 1 | @@ -4962,12 +4999,12 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [off\|manual\|auto] | | true | HC | 3 | 1 | 1 | | manualtemp | manual temperature | uint8 (>=0<=127) | C | true | HC | 6 | 1 | 1/2 | -| offtemp | temperature when mode is off | uint8 (>=0<=127) | C | true | HC | 104 | 1 | 1/2 | -| daytemp2 | day temperature T2 | uint8 (>=0<=127) | C | true | HC | 105 | 1 | 1/2 | -| daytemp3 | day temperature T3 | uint8 (>=0<=127) | C | true | HC | 106 | 1 | 1/2 | -| daytemp4 | day temperature T4 | uint8 (>=0<=127) | C | true | HC | 107 | 1 | 1/2 | -| nighttemp | night temperature T1 | uint8 (>=0<=127) | C | true | HC | 54 | 1 | 1/2 | -| switchtime | program switchtime | string | | true | HC | 108 | 8 | 1 | +| offtemp | temperature when mode is off | uint8 (>=0<=127) | C | true | HC | 106 | 1 | 1/2 | +| daytemp2 | day temperature T2 | uint8 (>=0<=127) | C | true | HC | 107 | 1 | 1/2 | +| daytemp3 | day temperature T3 | uint8 (>=0<=127) | C | true | HC | 108 | 1 | 1/2 | +| daytemp4 | day temperature T4 | uint8 (>=0<=127) | C | true | HC | 109 | 1 | 1/2 | +| nighttemp | night temperature T1 | uint8 (>=0<=127) | C | true | HC | 56 | 1 | 1/2 | +| switchtime | program switchtime | string | | true | HC | 110 | 8 | 1 | ### RC200, CW100, CR120, CR50 | shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor | @@ -5045,8 +5082,8 @@ | cooloffdelay | cooling off delay | uint8 (>=1<=48) | hours | true | HC | 50 | 1 | 1 | | switchprogmode | switch program mode | enum [level\|absolute] | | true | HC | 51 | 1 | 1 | | redthreshold | reduction threshold | int8 (>=12<=22) | C | true | HC | 52 | 1 | 1/2 | -| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | -1 | 1 | 1 | -| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | -1 | 1 | 1/10 | +| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | 53 | 1 | 1 | +| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | 54 | 1 | 1/10 | | mode | operating mode | enum [off\|normal\|comfort\|auto\|own prog] | | true | DHW | 0 | 1 | 1 | | settemp | set temperature | uint8 (>=0<=254) | C | true | DHW | 1 | 1 | 1 | | settemplow | set low temperature | uint8 (>=0<=254) | C | true | DHW | 2 | 1 | 1 | @@ -5071,12 +5108,12 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [off\|manual\|auto] | | true | HC | 3 | 1 | 1 | | manualtemp | manual temperature | uint8 (>=0<=127) | C | true | HC | 6 | 1 | 1/2 | -| offtemp | temperature when mode is off | uint8 (>=0<=127) | C | true | HC | 104 | 1 | 1/2 | -| daytemp2 | day temperature T2 | uint8 (>=0<=127) | C | true | HC | 105 | 1 | 1/2 | -| daytemp3 | day temperature T3 | uint8 (>=0<=127) | C | true | HC | 106 | 1 | 1/2 | -| daytemp4 | day temperature T4 | uint8 (>=0<=127) | C | true | HC | 107 | 1 | 1/2 | -| nighttemp | night temperature T1 | uint8 (>=0<=127) | C | true | HC | 54 | 1 | 1/2 | -| switchtime | program switchtime | string | | true | HC | 108 | 8 | 1 | +| offtemp | temperature when mode is off | uint8 (>=0<=127) | C | true | HC | 106 | 1 | 1/2 | +| daytemp2 | day temperature T2 | uint8 (>=0<=127) | C | true | HC | 107 | 1 | 1/2 | +| daytemp3 | day temperature T3 | uint8 (>=0<=127) | C | true | HC | 108 | 1 | 1/2 | +| daytemp4 | day temperature T4 | uint8 (>=0<=127) | C | true | HC | 109 | 1 | 1/2 | +| nighttemp | night temperature T1 | uint8 (>=0<=127) | C | true | HC | 56 | 1 | 1/2 | +| switchtime | program switchtime | string | | true | HC | 110 | 8 | 1 | ### RC25 | shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor | @@ -5090,8 +5127,8 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [night\|day\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [night\|day] | | false | HC | 4 | 1 | 1 | -| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 54 | 1 | 1/2 | +| daytemp | day temperature | uint8 (>=0<=127) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=0<=127) | C | true | HC | 56 | 1 | 1/2 | | program | program | enum [family\|morning\|evening\|am\|pm\|midday\|singles\|seniors] | | true | HC | 25 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=0<=254) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=0<=254) | C | true | HC | 12 | 1 | 1 | @@ -5178,8 +5215,8 @@ | cooloffdelay | cooling off delay | uint8 (>=1<=48) | hours | true | HC | 50 | 1 | 1 | | switchprogmode | switch program mode | enum [level\|absolute] | | true | HC | 51 | 1 | 1 | | redthreshold | reduction threshold | int8 (>=12<=22) | C | true | HC | 52 | 1 | 1/2 | -| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | -1 | 1 | 1 | -| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | -1 | 1 | 1/10 | +| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | 53 | 1 | 1 | +| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | 54 | 1 | 1/10 | | mode | operating mode | enum [off\|normal\|comfort\|auto\|own prog] | | true | DHW | 0 | 1 | 1 | | settemp | set temperature | uint8 (>=0<=254) | C | true | DHW | 1 | 1 | 1 | | settemplow | set low temperature | uint8 (>=0<=254) | C | true | DHW | 2 | 1 | 1 | @@ -5214,40 +5251,40 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [night\|day\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [night\|day] | | false | HC | 4 | 1 | 1 | -| daytemp | day temperature | uint8 (>=10<=30) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=10<=30) | C | true | HC | 54 | 1 | 1/2 | +| daytemp | day temperature | uint8 (>=10<=30) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=10<=30) | C | true | HC | 56 | 1 | 1/2 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | | offsettemp | offset temperature | int8 (>=-5<=5) | C | true | HC | 10 | 1 | 1/2 | -| holidaytemp | holiday temperature | uint8 (>=5<=30) | C | true | HC | 55 | 1 | 1/2 | +| holidaytemp | holiday temperature | uint8 (>=5<=30) | C | true | HC | 57 | 1 | 1/2 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1 | | summermode | summer mode | enum [winter\|summer] | | false | HC | 22 | 1 | 1 | -| holidaymode | holiday mode | boolean | | false | HC | 56 | 1 | 1 | +| holidaymode | holiday mode | boolean | | false | HC | 58 | 1 | 1 | | nofrosttemp | nofrost temperature | int8 (>=-20<=10) | C | true | HC | 17 | 1 | 1 | | nofrostmode | nofrost mode | enum [off\|outdoor\|room] | | true | HC | 16 | 1 | 1 | | roominfluence | room influence | uint8 (>=0<=10) | C | true | HC | 13 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | -| flowtempoffset | flow temperature offset for mixer | uint8 (>=0<=20) | C | true | HC | 57 | 1 | 1 | +| flowtempoffset | flow temperature offset for mixer | uint8 (>=0<=20) | C | true | HC | 59 | 1 | 1 | | heatingtype | heating type | enum [off\|radiator\|convector\|floor] | | true | HC | 19 | 1 | 1 | | reducemode | reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 30 | 1 | 1 | | controlmode | control mode | enum [outdoor\|room] | | true | HC | 24 | 1 | 1 | | control | control device | enum [off\|RC20\|RC3x] | | true | HC | 40 | 1 | 1 | -| holidays | holiday dates | string | | true | HC | 58 | 13 | 1 | -| vacations | vacation dates | string | | true | HC | 71 | 13 | 1 | +| holidays | holiday dates | string | | true | HC | 60 | 13 | 1 | +| vacations | vacation dates | string | | true | HC | 73 | 13 | 1 | | program | program | enum [own 1\|family\|morning\|evening\|am\|pm\|midday\|singles\|seniors\|new\|own 2] | | true | HC | 25 | 1 | 1 | -| pause | pause time | uint8 (>=0<=99) | hours | true | HC | 84 | 1 | 1 | -| party | party time | uint8 (>=0<=99) | hours | true | HC | 85 | 1 | 1 | +| pause | pause time | uint8 (>=0<=99) | hours | true | HC | 86 | 1 | 1 | +| party | party time | uint8 (>=0<=99) | hours | true | HC | 87 | 1 | 1 | | tempautotemp | temporary set temperature automode | uint8 (>=0<=30) | C | true | HC | 26 | 1 | 1/2 | | noreducetemp | no reduce below temperature | int8 (>=-31<=10) | C | true | HC | 31 | 1 | 1 | | reducetemp | off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 32 | 1 | 1 | -| vacreducetemp | vacations off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 86 | 1 | 1 | -| vacreducemode | vacations reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 87 | 1 | 1 | +| vacreducetemp | vacations off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 88 | 1 | 1 | +| vacreducemode | vacations reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 89 | 1 | 1 | | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | dhwprio | dhw priority | boolean | | true | HC | 33 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| switchtime1 | own1 program switchtime | string | | true | HC | 88 | 8 | 1 | -| switchtime2 | own2 program switchtime | string | | true | HC | 96 | 8 | 1 | +| switchtime1 | own1 program switchtime | string | | true | HC | 90 | 8 | 1 | +| switchtime2 | own2 program switchtime | string | | true | HC | 98 | 8 | 1 | | mode | operating mode | enum [off\|on\|auto] | | true | DHW | 0 | 1 | 1 | | circmode | circulation pump mode | enum [off\|on\|auto] | | true | DHW | 3 | 1 | 1 | | progmode | program | enum [std prog\|own prog] | | true | DHW | 12 | 1 | 1 | @@ -5280,40 +5317,40 @@ | haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 | | mode | operating mode | enum [night\|day\|auto] | | true | HC | 3 | 1 | 1 | | modetype | mode type | enum [night\|day] | | false | HC | 4 | 1 | 1 | -| daytemp | day temperature | uint8 (>=10<=30) | C | true | HC | 53 | 1 | 1/2 | -| nighttemp | night temperature | uint8 (>=10<=30) | C | true | HC | 54 | 1 | 1/2 | +| daytemp | day temperature | uint8 (>=10<=30) | C | true | HC | 55 | 1 | 1/2 | +| nighttemp | night temperature | uint8 (>=10<=30) | C | true | HC | 56 | 1 | 1/2 | | designtemp | design temperature | uint8 (>=30<=90) | C | true | HC | 9 | 1 | 1 | | offsettemp | offset temperature | int8 (>=-5<=5) | C | true | HC | 10 | 1 | 1/2 | -| holidaytemp | holiday temperature | uint8 (>=5<=30) | C | true | HC | 55 | 1 | 1/2 | +| holidaytemp | holiday temperature | uint8 (>=5<=30) | C | true | HC | 57 | 1 | 1/2 | | targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 | | summertemp | summer temperature | uint8 (>=9<=25) | C | true | HC | 8 | 1 | 1 | | summermode | summer mode | enum [winter\|summer] | | false | HC | 22 | 1 | 1 | -| holidaymode | holiday mode | boolean | | false | HC | 56 | 1 | 1 | +| holidaymode | holiday mode | boolean | | false | HC | 58 | 1 | 1 | | nofrosttemp | nofrost temperature | int8 (>=-20<=10) | C | true | HC | 17 | 1 | 1 | | nofrostmode | nofrost mode | enum [off\|outdoor\|room] | | true | HC | 16 | 1 | 1 | | roominfluence | room influence | uint8 (>=0<=10) | C | true | HC | 13 | 1 | 1 | | minflowtemp | min flow temperature | uint8 (>=5<=70) | C | true | HC | 11 | 1 | 1 | | maxflowtemp | max flow temperature | uint8 (>=30<=90) | C | true | HC | 12 | 1 | 1 | -| flowtempoffset | flow temperature offset for mixer | uint8 (>=0<=20) | C | true | HC | 57 | 1 | 1 | +| flowtempoffset | flow temperature offset for mixer | uint8 (>=0<=20) | C | true | HC | 59 | 1 | 1 | | heatingtype | heating type | enum [off\|radiator\|convector\|floor] | | true | HC | 19 | 1 | 1 | | reducemode | reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 30 | 1 | 1 | | controlmode | control mode | enum [outdoor\|room] | | true | HC | 24 | 1 | 1 | | control | control device | enum [off\|RC20\|RC3x] | | true | HC | 40 | 1 | 1 | -| holidays | holiday dates | string | | true | HC | 58 | 13 | 1 | -| vacations | vacation dates | string | | true | HC | 71 | 13 | 1 | +| holidays | holiday dates | string | | true | HC | 60 | 13 | 1 | +| vacations | vacation dates | string | | true | HC | 73 | 13 | 1 | | program | program | enum [own 1\|family\|morning\|evening\|am\|pm\|midday\|singles\|seniors\|new\|own 2] | | true | HC | 25 | 1 | 1 | -| pause | pause time | uint8 (>=0<=99) | hours | true | HC | 84 | 1 | 1 | -| party | party time | uint8 (>=0<=99) | hours | true | HC | 85 | 1 | 1 | +| pause | pause time | uint8 (>=0<=99) | hours | true | HC | 86 | 1 | 1 | +| party | party time | uint8 (>=0<=99) | hours | true | HC | 87 | 1 | 1 | | tempautotemp | temporary set temperature automode | uint8 (>=0<=30) | C | true | HC | 26 | 1 | 1/2 | | noreducetemp | no reduce below temperature | int8 (>=-31<=10) | C | true | HC | 31 | 1 | 1 | | reducetemp | off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 32 | 1 | 1 | -| vacreducetemp | vacations off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 86 | 1 | 1 | -| vacreducemode | vacations reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 87 | 1 | 1 | +| vacreducetemp | vacations off/reduce switch temperature | int8 (>=-20<=10) | C | true | HC | 88 | 1 | 1 | +| vacreducemode | vacations reduce mode | enum [nofrost\|reduce\|room\|outdoor] | | true | HC | 89 | 1 | 1 | | remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 | | dhwprio | dhw priority | boolean | | true | HC | 33 | 1 | 1 | | switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 | -| switchtime1 | own1 program switchtime | string | | true | HC | 88 | 8 | 1 | -| switchtime2 | own2 program switchtime | string | | true | HC | 96 | 8 | 1 | +| switchtime1 | own1 program switchtime | string | | true | HC | 90 | 8 | 1 | +| switchtime2 | own2 program switchtime | string | | true | HC | 98 | 8 | 1 | | mode | operating mode | enum [off\|on\|auto] | | true | DHW | 0 | 1 | 1 | | circmode | circulation pump mode | enum [off\|on\|auto] | | true | DHW | 3 | 1 | 1 | | progmode | program | enum [std prog\|own prog] | | true | DHW | 12 | 1 | 1 | @@ -5427,8 +5464,8 @@ | cooloffdelay | cooling off delay | uint8 (>=1<=48) | hours | true | HC | 50 | 1 | 1 | | switchprogmode | switch program mode | enum [level\|absolute] | | true | HC | 51 | 1 | 1 | | redthreshold | reduction threshold | int8 (>=12<=22) | C | true | HC | 52 | 1 | 1/2 | -| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | -1 | 1 | 1 | -| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | -1 | 1 | 1/10 | +| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | 53 | 1 | 1 | +| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | 54 | 1 | 1/10 | | mode | operating mode | enum [normal\|comfort\|eco+] | | true | DHW | 0 | 1 | 1 | | settemp | set temperature | uint8 (>=0<=254) | C | true | DHW | 1 | 1 | 1 | | settemplow | set low temperature | uint8 (>=0<=254) | C | true | DHW | 2 | 1 | 1 | @@ -5520,8 +5557,8 @@ | cooloffdelay | cooling off delay | uint8 (>=1<=48) | hours | true | HC | 50 | 1 | 1 | | switchprogmode | switch program mode | enum [level\|absolute] | | true | HC | 51 | 1 | 1 | | redthreshold | reduction threshold | int8 (>=12<=22) | C | true | HC | 52 | 1 | 1/2 | -| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | -1 | 1 | 1 | -| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | -1 | 1 | 1/10 | +| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | 53 | 1 | 1 | +| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | 54 | 1 | 1/10 | | mode | operating mode | enum [off\|eco+\|eco\|comfort\|auto] | | true | DHW | 0 | 1 | 1 | | settemp | set temperature | uint8 (>=0<=254) | C | true | DHW | 1 | 1 | 1 | | settemplow | set low temperature | uint8 (>=0<=254) | C | true | DHW | 2 | 1 | 1 | @@ -5623,8 +5660,8 @@ | cooloffdelay | cooling off delay | uint8 (>=1<=48) | hours | true | HC | 50 | 1 | 1 | | switchprogmode | switch program mode | enum [level\|absolute] | | true | HC | 51 | 1 | 1 | | redthreshold | reduction threshold | int8 (>=12<=22) | C | true | HC | 52 | 1 | 1/2 | -| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | -1 | 1 | 1 | -| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | -1 | 1 | 1/10 | +| solarinfl | solar influence | uint8 (>=-5<=4294967295) | C | true | HC | 53 | 1 | 1 | +| currsolarinfl | curent solar influence | uint8 (>=0<=25) | C | false | HC | 54 | 1 | 1/10 | | mode | operating mode | enum [off\|eco+\|eco\|comfort\|auto] | | true | DHW | 0 | 1 | 1 | | settemp | set temperature | uint8 (>=0<=254) | C | true | DHW | 1 | 1 | 1 | | settemplow | set low temperature | uint8 (>=0<=254) | C | true | DHW | 2 | 1 | 1 | diff --git a/docs/dump_entities.csv b/docs/dump_entities.csv index dfde50bfd..672ff4b31 100644 --- a/docs/dump_entities.csv +++ b/docs/dump_entities.csv @@ -3438,8 +3438,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "UI800, BC400",thermostat,4,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,50,1 "UI800, BC400",thermostat,4,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,51,1 "UI800, BC400",thermostat,4,redthreshold,reduction threshold,int8 (>=12<=22),C,true,number.thermostat_hc1_reduction_threshold,number.thermostat_hc1_redthreshold,6,1,1/2,52,1 -"UI800, BC400",thermostat,4,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,-1,1 -"UI800, BC400",thermostat,4,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,-1,1 +"UI800, BC400",thermostat,4,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,53,1 +"UI800, BC400",thermostat,4,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,54,1 "UI800, BC400",thermostat,4,mode,operating mode,enum [off\|eco+\|eco\|comfort\|auto], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "UI800, BC400",thermostat,4,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 "UI800, BC400",thermostat,4,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -3469,8 +3469,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC10",thermostat,65,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "RC10",thermostat,65,mode,operating mode,enum [night\|day\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "RC10",thermostat,65,modetype,mode type,enum [night\|day], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"RC10",thermostat,65,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"RC10",thermostat,65,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 +"RC10",thermostat,65,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"RC10",thermostat,65,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 "RC10",thermostat,65,program,program,enum [family\|morning\|evening\|am\|pm\|midday\|singles\|seniors], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1 "RC10",thermostat,65,minflowtemp,min flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "RC10",thermostat,65,maxflowtemp,max flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 @@ -3496,40 +3496,40 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC30",thermostat,67,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "RC30",thermostat,67,mode,operating mode,enum [night\|day\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "RC30",thermostat,67,modetype,mode type,enum [night\|day], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"RC30",thermostat,67,daytemp,day temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"RC30",thermostat,67,nighttemp,night temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 +"RC30",thermostat,67,daytemp,day temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"RC30",thermostat,67,nighttemp,night temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 "RC30",thermostat,67,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 "RC30",thermostat,67,offsettemp,offset temperature,int8 (>=-5<=5),C,true,number.thermostat_hc1_offset_temperature,number.thermostat_hc1_offsettemp,6,1,1/2,10,1 -"RC30",thermostat,67,holidaytemp,holiday temperature,uint8 (>=5<=30),C,true,number.thermostat_hc1_holiday_temperature,number.thermostat_hc1_holidaytemp,6,1,1/2,55,1 +"RC30",thermostat,67,holidaytemp,holiday temperature,uint8 (>=5<=30),C,true,number.thermostat_hc1_holiday_temperature,number.thermostat_hc1_holidaytemp,6,1,1/2,57,1 "RC30",thermostat,67,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "RC30",thermostat,67,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1,8,1 "RC30",thermostat,67,summermode,summer mode,enum [winter\|summer], ,false,sensor.thermostat_hc1_summer_mode,sensor.thermostat_hc1_summermode,6,1,1,22,1 -"RC30",thermostat,67,holidaymode,holiday mode,boolean, ,false,binary_sensor.thermostat_hc1_holiday_mode,binary_sensor.thermostat_hc1_holidaymode,6,1,1,56,1 +"RC30",thermostat,67,holidaymode,holiday mode,boolean, ,false,binary_sensor.thermostat_hc1_holiday_mode,binary_sensor.thermostat_hc1_holidaymode,6,1,1,58,1 "RC30",thermostat,67,nofrosttemp,nofrost temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1,17,1 "RC30",thermostat,67,nofrostmode,nofrost mode,enum [off\|outdoor\|room], ,true,select.thermostat_hc1_nofrost_mode,select.thermostat_hc1_nofrostmode,6,1,1,16,1 "RC30",thermostat,67,roominfluence,room influence,uint8 (>=0<=10),C,true,number.thermostat_hc1_room_influence,number.thermostat_hc1_roominfluence,6,1,1,13,1 "RC30",thermostat,67,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "RC30",thermostat,67,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 -"RC30",thermostat,67,flowtempoffset,flow temperature offset for mixer,uint8 (>=0<=20),C,true,number.thermostat_hc1_flow_temperature_offset_for_mixer,number.thermostat_hc1_flowtempoffset,6,1,1,57,1 +"RC30",thermostat,67,flowtempoffset,flow temperature offset for mixer,uint8 (>=0<=20),C,true,number.thermostat_hc1_flow_temperature_offset_for_mixer,number.thermostat_hc1_flowtempoffset,6,1,1,59,1 "RC30",thermostat,67,heatingtype,heating type,enum [off\|radiator\|convector\|floor], ,true,select.thermostat_hc1_heating_type,select.thermostat_hc1_heatingtype,6,1,1,19,1 "RC30",thermostat,67,reducemode,reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_reduce_mode,select.thermostat_hc1_reducemode,6,1,1,30,1 "RC30",thermostat,67,controlmode,control mode,enum [outdoor\|room], ,true,select.thermostat_hc1_control_mode,select.thermostat_hc1_controlmode,6,1,1,24,1 "RC30",thermostat,67,control,control device,enum [off\|RC20\|RC3x], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 -"RC30",thermostat,67,holidays,holiday dates,string, ,true,sensor.thermostat_hc1_holiday_dates,sensor.thermostat_hc1_holidays,6,1,1,58,13 -"RC30",thermostat,67,vacations,vacation dates,string, ,true,sensor.thermostat_hc1_vacation_dates,sensor.thermostat_hc1_vacations,6,1,1,71,13 +"RC30",thermostat,67,holidays,holiday dates,string, ,true,sensor.thermostat_hc1_holiday_dates,sensor.thermostat_hc1_holidays,6,1,1,60,13 +"RC30",thermostat,67,vacations,vacation dates,string, ,true,sensor.thermostat_hc1_vacation_dates,sensor.thermostat_hc1_vacations,6,1,1,73,13 "RC30",thermostat,67,program,program,enum [own 1\|family\|morning\|evening\|am\|pm\|midday\|singles\|seniors\|new\|own 2], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1 -"RC30",thermostat,67,pause,pause time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_pause_time,number.thermostat_hc1_pause,6,1,1,84,1 -"RC30",thermostat,67,party,party time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_party_time,number.thermostat_hc1_party,6,1,1,85,1 +"RC30",thermostat,67,pause,pause time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_pause_time,number.thermostat_hc1_pause,6,1,1,86,1 +"RC30",thermostat,67,party,party time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_party_time,number.thermostat_hc1_party,6,1,1,87,1 "RC30",thermostat,67,tempautotemp,temporary set temperature automode,uint8 (>=0<=30),C,true,number.thermostat_hc1_temporary_set_temperature_automode,number.thermostat_hc1_tempautotemp,6,1,1/2,26,1 "RC30",thermostat,67,noreducetemp,no reduce below temperature,int8 (>=-31<=10),C,true,number.thermostat_hc1_no_reduce_below_temperature,number.thermostat_hc1_noreducetemp,6,1,1,31,1 "RC30",thermostat,67,reducetemp,off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_off/reduce_switch_temperature,number.thermostat_hc1_reducetemp,6,1,1,32,1 -"RC30",thermostat,67,vacreducetemp,vacations off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_vacations_off/reduce_switch_temperature,number.thermostat_hc1_vacreducetemp,6,1,1,86,1 -"RC30",thermostat,67,vacreducemode,vacations reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_vacations_reduce_mode,select.thermostat_hc1_vacreducemode,6,1,1,87,1 +"RC30",thermostat,67,vacreducetemp,vacations off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_vacations_off/reduce_switch_temperature,number.thermostat_hc1_vacreducetemp,6,1,1,88,1 +"RC30",thermostat,67,vacreducemode,vacations reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_vacations_reduce_mode,select.thermostat_hc1_vacreducemode,6,1,1,89,1 "RC30",thermostat,67,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "RC30",thermostat,67,dhwprio,dhw priority,boolean, ,true,switch.thermostat_hc1_dhw_priority,switch.thermostat_hc1_dhwprio,6,1,1,33,1 "RC30",thermostat,67,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"RC30",thermostat,67,switchtime1,own1 program switchtime,string, ,true,sensor.thermostat_hc1_own1_program_switchtime,sensor.thermostat_hc1_switchtime1,6,1,1,88,8 -"RC30",thermostat,67,switchtime2,own2 program switchtime,string, ,true,sensor.thermostat_hc1_own2_program_switchtime,sensor.thermostat_hc1_switchtime2,6,1,1,96,8 +"RC30",thermostat,67,switchtime1,own1 program switchtime,string, ,true,sensor.thermostat_hc1_own1_program_switchtime,sensor.thermostat_hc1_switchtime1,6,1,1,90,8 +"RC30",thermostat,67,switchtime2,own2 program switchtime,string, ,true,sensor.thermostat_hc1_own2_program_switchtime,sensor.thermostat_hc1_switchtime2,6,1,1,98,8 "RC30",thermostat,67,mode,operating mode,enum [off\|on\|auto], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "RC30",thermostat,67,circmode,circulation pump mode,enum [off\|on\|auto], ,true,select.thermostat_dhw_circulation_pump_mode,select.thermostat_dhw_circmode,6,9,1,3,1 "RC30",thermostat,67,progmode,program,enum [std prog\|own prog], ,true,select.thermostat_dhw_program,select.thermostat_dhw_progmode,6,9,1,12,1 @@ -3551,12 +3551,12 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC20, Moduline 300",thermostat,77,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "RC20, Moduline 300",thermostat,77,mode,operating mode,enum [off\|manual\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "RC20, Moduline 300",thermostat,77,manualtemp,manual temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_manual_temperature,number.thermostat_hc1_manualtemp,6,1,1/2,6,1 -"RC20, Moduline 300",thermostat,77,offtemp,temperature when mode is off,uint8 (>=0<=127),C,true,number.thermostat_hc1_temperature_when_mode_is_off,number.thermostat_hc1_offtemp,6,1,1/2,104,1 -"RC20, Moduline 300",thermostat,77,daytemp2,day temperature T2,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T2,number.thermostat_hc1_daytemp2,6,1,1/2,105,1 -"RC20, Moduline 300",thermostat,77,daytemp3,day temperature T3,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T3,number.thermostat_hc1_daytemp3,6,1,1/2,106,1 -"RC20, Moduline 300",thermostat,77,daytemp4,day temperature T4,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T4,number.thermostat_hc1_daytemp4,6,1,1/2,107,1 -"RC20, Moduline 300",thermostat,77,nighttemp,night temperature T1,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature_T1,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 -"RC20, Moduline 300",thermostat,77,switchtime,program switchtime,string, ,true,sensor.thermostat_hc1_program_switchtime,sensor.thermostat_hc1_switchtime,6,1,1,108,8 +"RC20, Moduline 300",thermostat,77,offtemp,temperature when mode is off,uint8 (>=0<=127),C,true,number.thermostat_hc1_temperature_when_mode_is_off,number.thermostat_hc1_offtemp,6,1,1/2,106,1 +"RC20, Moduline 300",thermostat,77,daytemp2,day temperature T2,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T2,number.thermostat_hc1_daytemp2,6,1,1/2,107,1 +"RC20, Moduline 300",thermostat,77,daytemp3,day temperature T3,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T3,number.thermostat_hc1_daytemp3,6,1,1/2,108,1 +"RC20, Moduline 300",thermostat,77,daytemp4,day temperature T4,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T4,number.thermostat_hc1_daytemp4,6,1,1/2,109,1 +"RC20, Moduline 300",thermostat,77,nighttemp,night temperature T1,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature_T1,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 +"RC20, Moduline 300",thermostat,77,switchtime,program switchtime,string, ,true,sensor.thermostat_hc1_program_switchtime,sensor.thermostat_hc1_switchtime,6,1,1,110,8 "Moduline 400",thermostat,78,errorcode,error code,string, ,false,sensor.thermostat_error_code,sensor.thermostat_errorcode,6,0,1,0,8 "Moduline 400",thermostat,78,lastcode,last error code,string, ,false,sensor.thermostat_last_error_code,sensor.thermostat_lastcode,6,0,1,8,25 "Moduline 400",thermostat,78,datetime,date/time,string, ,false,sensor.thermostat_date/time,sensor.thermostat_datetime,6,0,1,33,13 @@ -3574,26 +3574,26 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "Moduline 400",thermostat,78,currtemp,current room temperature,int16 (>=-3199<=3199),C,false,sensor.thermostat_hc1_current_room_temperature,sensor.thermostat_hc1_currtemp,6,1,1/10,1,1 "Moduline 400",thermostat,78,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "Moduline 400",thermostat,78,mode,operating mode,enum [off\|manual\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 -"Moduline 400",thermostat,78,pause,pause time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_pause_time,number.thermostat_hc1_pause,6,1,1,84,1 -"Moduline 400",thermostat,78,party,party time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_party_time,number.thermostat_hc1_party,6,1,1,85,1 -"Moduline 400",thermostat,78,vacations1,vacation dates 1,string, ,true,sensor.thermostat_hc1_vacation_dates_1,sensor.thermostat_hc1_vacations1,6,1,1,116,11 -"Moduline 400",thermostat,78,vacations2,vacation dates 2,string, ,true,sensor.thermostat_hc1_vacation_dates_2,sensor.thermostat_hc1_vacations2,6,1,1,127,11 -"Moduline 400",thermostat,78,vacations3,vacation dates 3,string, ,true,sensor.thermostat_hc1_vacation_dates_3,sensor.thermostat_hc1_vacations3,6,1,1,138,11 -"Moduline 400",thermostat,78,vacations4,vacation dates 4,string, ,true,sensor.thermostat_hc1_vacation_dates_4,sensor.thermostat_hc1_vacations4,6,1,1,149,11 -"Moduline 400",thermostat,78,vacations5,vacation dates 5,string, ,true,sensor.thermostat_hc1_vacation_dates_5,sensor.thermostat_hc1_vacations5,6,1,1,160,11 -"Moduline 400",thermostat,78,vacations6,vacation dates 6,string, ,true,sensor.thermostat_hc1_vacation_dates_6,sensor.thermostat_hc1_vacations6,6,1,1,171,11 -"Moduline 400",thermostat,78,vacations7,vacation dates 7,string, ,true,sensor.thermostat_hc1_vacation_dates_7,sensor.thermostat_hc1_vacations7,6,1,1,182,11 +"Moduline 400",thermostat,78,pause,pause time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_pause_time,number.thermostat_hc1_pause,6,1,1,86,1 +"Moduline 400",thermostat,78,party,party time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_party_time,number.thermostat_hc1_party,6,1,1,87,1 +"Moduline 400",thermostat,78,vacations1,vacation dates 1,string, ,true,sensor.thermostat_hc1_vacation_dates_1,sensor.thermostat_hc1_vacations1,6,1,1,118,11 +"Moduline 400",thermostat,78,vacations2,vacation dates 2,string, ,true,sensor.thermostat_hc1_vacation_dates_2,sensor.thermostat_hc1_vacations2,6,1,1,129,11 +"Moduline 400",thermostat,78,vacations3,vacation dates 3,string, ,true,sensor.thermostat_hc1_vacation_dates_3,sensor.thermostat_hc1_vacations3,6,1,1,140,11 +"Moduline 400",thermostat,78,vacations4,vacation dates 4,string, ,true,sensor.thermostat_hc1_vacation_dates_4,sensor.thermostat_hc1_vacations4,6,1,1,151,11 +"Moduline 400",thermostat,78,vacations5,vacation dates 5,string, ,true,sensor.thermostat_hc1_vacation_dates_5,sensor.thermostat_hc1_vacations5,6,1,1,162,11 +"Moduline 400",thermostat,78,vacations6,vacation dates 6,string, ,true,sensor.thermostat_hc1_vacation_dates_6,sensor.thermostat_hc1_vacations6,6,1,1,173,11 +"Moduline 400",thermostat,78,vacations7,vacation dates 7,string, ,true,sensor.thermostat_hc1_vacation_dates_7,sensor.thermostat_hc1_vacations7,6,1,1,184,11 "Moduline 400",thermostat,78,program,program,enum [own 1\|family\|morning\|evening\|am\|pm\|midday\|singles\|seniors\|new\|own 2], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1 -"Moduline 400",thermostat,78,switchtime1,own1 program switchtime,string, ,true,sensor.thermostat_hc1_own1_program_switchtime,sensor.thermostat_hc1_switchtime1,6,1,1,88,8 +"Moduline 400",thermostat,78,switchtime1,own1 program switchtime,string, ,true,sensor.thermostat_hc1_own1_program_switchtime,sensor.thermostat_hc1_switchtime1,6,1,1,90,8 "Moduline 400",thermostat,78,heatingtype,heating type,enum [off\|radiator\|convector\|floor], ,true,select.thermostat_hc1_heating_type,select.thermostat_hc1_heatingtype,6,1,1,19,1 "Moduline 400",thermostat,78,controlmode,control mode,enum [outdoor\|room], ,true,select.thermostat_hc1_control_mode,select.thermostat_hc1_controlmode,6,1,1,24,1 -"Moduline 400",thermostat,78,holidaytemp,holiday temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_holiday_temperature,number.thermostat_hc1_holidaytemp,6,1,1/2,55,1 -"Moduline 400",thermostat,78,nighttemp,night temperature T1,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature_T1,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 -"Moduline 400",thermostat,78,daytemp2,day temperature T2,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T2,number.thermostat_hc1_daytemp2,6,1,1/2,105,1 -"Moduline 400",thermostat,78,daytemp3,day temperature T3,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T3,number.thermostat_hc1_daytemp3,6,1,1/2,106,1 -"Moduline 400",thermostat,78,daytemp4,day temperature T4,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T4,number.thermostat_hc1_daytemp4,6,1,1/2,107,1 +"Moduline 400",thermostat,78,holidaytemp,holiday temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_holiday_temperature,number.thermostat_hc1_holidaytemp,6,1,1/2,57,1 +"Moduline 400",thermostat,78,nighttemp,night temperature T1,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature_T1,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 +"Moduline 400",thermostat,78,daytemp2,day temperature T2,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T2,number.thermostat_hc1_daytemp2,6,1,1/2,107,1 +"Moduline 400",thermostat,78,daytemp3,day temperature T3,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T3,number.thermostat_hc1_daytemp3,6,1,1/2,108,1 +"Moduline 400",thermostat,78,daytemp4,day temperature T4,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T4,number.thermostat_hc1_daytemp4,6,1,1/2,109,1 "Moduline 400",thermostat,78,manualtemp,manual temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_manual_temperature,number.thermostat_hc1_manualtemp,6,1,1/2,6,1 -"Moduline 400",thermostat,78,offtemp,temperature when mode is off,uint8 (>=0<=127),C,true,number.thermostat_hc1_temperature_when_mode_is_off,number.thermostat_hc1_offtemp,6,1,1/2,104,1 +"Moduline 400",thermostat,78,offtemp,temperature when mode is off,uint8 (>=0<=127),C,true,number.thermostat_hc1_temperature_when_mode_is_off,number.thermostat_hc1_offtemp,6,1,1/2,106,1 "Moduline 400",thermostat,78,mode,operating mode,enum [on\|off\|auto], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "Moduline 400",thermostat,78,whenmodeoff,when thermostat mode off,boolean, ,true,switch.thermostat_dhw_when_thermostat_mode_off,switch.thermostat_dhw_whenmodeoff,6,9,1,62,1 "Moduline 400",thermostat,78,disinfecting,disinfecting,boolean, ,true,switch.thermostat_dhw_disinfecting,switch.thermostat_dhw_disinfecting,6,9,1,7,1 @@ -3608,10 +3608,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC10, Moduline 100",thermostat,79,currtemp,current room temperature,int16 (>=-3199<=3199),C,false,sensor.thermostat_hc1_current_room_temperature,sensor.thermostat_hc1_currtemp,6,1,1/10,1,1 "RC10, Moduline 100",thermostat,79,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "RC10, Moduline 100",thermostat,79,mode,operating mode,enum [nofrost\|night\|day], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 -"RC10, Moduline 100",thermostat,79,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"RC10, Moduline 100",thermostat,79,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 -"RC10, Moduline 100",thermostat,79,reducehours,duration for nighttemp,uint8 (>=0<=254),hours,true,number.thermostat_hc1_duration_for_nighttemp,number.thermostat_hc1_reducehours,6,1,1,193,1 -"RC10, Moduline 100",thermostat,79,reduceminutes,remaining time for nightmode,uint16 (>=0<=31999),minutes,false,sensor.thermostat_hc1_remaining_time_for_nightmode,sensor.thermostat_hc1_reduceminutes,6,1,1,194,1 +"RC10, Moduline 100",thermostat,79,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"RC10, Moduline 100",thermostat,79,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 +"RC10, Moduline 100",thermostat,79,reducehours,duration for nighttemp,uint8 (>=0<=254),hours,true,number.thermostat_hc1_duration_for_nighttemp,number.thermostat_hc1_reducehours,6,1,1,195,1 +"RC10, Moduline 100",thermostat,79,reduceminutes,remaining time for nightmode,uint16 (>=0<=31999),minutes,false,sensor.thermostat_hc1_remaining_time_for_nightmode,sensor.thermostat_hc1_reduceminutes,6,1,1,196,1 "RC10, Moduline 100",thermostat,79,mode,operating mode,enum [on\|off\|auto], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "Moduline 200",thermostat,80,errorcode,error code,string, ,false,sensor.thermostat_error_code,sensor.thermostat_errorcode,6,0,1,0,8 "Moduline 200",thermostat,80,lastcode,last error code,string, ,false,sensor.thermostat_last_error_code,sensor.thermostat_lastcode,6,0,1,8,25 @@ -3622,10 +3622,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "Moduline 200",thermostat,80,currtemp,current room temperature,int16 (>=-3199<=3199),C,false,sensor.thermostat_hc1_current_room_temperature,sensor.thermostat_hc1_currtemp,6,1,1/10,1,1 "Moduline 200",thermostat,80,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "Moduline 200",thermostat,80,mode,operating mode,enum [nofrost\|night\|day], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 -"Moduline 200",thermostat,80,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"Moduline 200",thermostat,80,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 -"Moduline 200",thermostat,80,reducehours,duration for nighttemp,uint8 (>=0<=254),hours,true,number.thermostat_hc1_duration_for_nighttemp,number.thermostat_hc1_reducehours,6,1,1,193,1 -"Moduline 200",thermostat,80,reduceminutes,remaining time for nightmode,uint16 (>=0<=31999),minutes,false,sensor.thermostat_hc1_remaining_time_for_nightmode,sensor.thermostat_hc1_reduceminutes,6,1,1,194,1 +"Moduline 200",thermostat,80,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"Moduline 200",thermostat,80,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 +"Moduline 200",thermostat,80,reducehours,duration for nighttemp,uint8 (>=0<=254),hours,true,number.thermostat_hc1_duration_for_nighttemp,number.thermostat_hc1_reducehours,6,1,1,195,1 +"Moduline 200",thermostat,80,reduceminutes,remaining time for nightmode,uint16 (>=0<=31999),minutes,false,sensor.thermostat_hc1_remaining_time_for_nightmode,sensor.thermostat_hc1_reduceminutes,6,1,1,196,1 "Moduline 200",thermostat,80,mode,operating mode,enum [on\|off\|auto], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "RC35",thermostat,86,errorcode,error code,string, ,false,sensor.thermostat_error_code,sensor.thermostat_errorcode,6,0,1,0,8 "RC35",thermostat,86,lastcode,last error code,string, ,false,sensor.thermostat_last_error_code,sensor.thermostat_lastcode,6,0,1,8,25 @@ -3642,40 +3642,40 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC35",thermostat,86,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "RC35",thermostat,86,mode,operating mode,enum [night\|day\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "RC35",thermostat,86,modetype,mode type,enum [night\|day], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"RC35",thermostat,86,daytemp,day temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"RC35",thermostat,86,nighttemp,night temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 +"RC35",thermostat,86,daytemp,day temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"RC35",thermostat,86,nighttemp,night temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 "RC35",thermostat,86,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 "RC35",thermostat,86,offsettemp,offset temperature,int8 (>=-5<=5),C,true,number.thermostat_hc1_offset_temperature,number.thermostat_hc1_offsettemp,6,1,1/2,10,1 -"RC35",thermostat,86,holidaytemp,holiday temperature,uint8 (>=5<=30),C,true,number.thermostat_hc1_holiday_temperature,number.thermostat_hc1_holidaytemp,6,1,1/2,55,1 +"RC35",thermostat,86,holidaytemp,holiday temperature,uint8 (>=5<=30),C,true,number.thermostat_hc1_holiday_temperature,number.thermostat_hc1_holidaytemp,6,1,1/2,57,1 "RC35",thermostat,86,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "RC35",thermostat,86,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1,8,1 "RC35",thermostat,86,summermode,summer mode,enum [winter\|summer], ,false,sensor.thermostat_hc1_summer_mode,sensor.thermostat_hc1_summermode,6,1,1,22,1 -"RC35",thermostat,86,holidaymode,holiday mode,boolean, ,false,binary_sensor.thermostat_hc1_holiday_mode,binary_sensor.thermostat_hc1_holidaymode,6,1,1,56,1 +"RC35",thermostat,86,holidaymode,holiday mode,boolean, ,false,binary_sensor.thermostat_hc1_holiday_mode,binary_sensor.thermostat_hc1_holidaymode,6,1,1,58,1 "RC35",thermostat,86,nofrosttemp,nofrost temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1,17,1 "RC35",thermostat,86,nofrostmode,nofrost mode,enum [off\|outdoor\|room], ,true,select.thermostat_hc1_nofrost_mode,select.thermostat_hc1_nofrostmode,6,1,1,16,1 "RC35",thermostat,86,roominfluence,room influence,uint8 (>=0<=10),C,true,number.thermostat_hc1_room_influence,number.thermostat_hc1_roominfluence,6,1,1,13,1 "RC35",thermostat,86,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "RC35",thermostat,86,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 -"RC35",thermostat,86,flowtempoffset,flow temperature offset for mixer,uint8 (>=0<=20),C,true,number.thermostat_hc1_flow_temperature_offset_for_mixer,number.thermostat_hc1_flowtempoffset,6,1,1,57,1 +"RC35",thermostat,86,flowtempoffset,flow temperature offset for mixer,uint8 (>=0<=20),C,true,number.thermostat_hc1_flow_temperature_offset_for_mixer,number.thermostat_hc1_flowtempoffset,6,1,1,59,1 "RC35",thermostat,86,heatingtype,heating type,enum [off\|radiator\|convector\|floor], ,true,select.thermostat_hc1_heating_type,select.thermostat_hc1_heatingtype,6,1,1,19,1 "RC35",thermostat,86,reducemode,reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_reduce_mode,select.thermostat_hc1_reducemode,6,1,1,30,1 "RC35",thermostat,86,controlmode,control mode,enum [outdoor\|room], ,true,select.thermostat_hc1_control_mode,select.thermostat_hc1_controlmode,6,1,1,24,1 "RC35",thermostat,86,control,control device,enum [off\|RC20\|RC3x], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 -"RC35",thermostat,86,holidays,holiday dates,string, ,true,sensor.thermostat_hc1_holiday_dates,sensor.thermostat_hc1_holidays,6,1,1,58,13 -"RC35",thermostat,86,vacations,vacation dates,string, ,true,sensor.thermostat_hc1_vacation_dates,sensor.thermostat_hc1_vacations,6,1,1,71,13 +"RC35",thermostat,86,holidays,holiday dates,string, ,true,sensor.thermostat_hc1_holiday_dates,sensor.thermostat_hc1_holidays,6,1,1,60,13 +"RC35",thermostat,86,vacations,vacation dates,string, ,true,sensor.thermostat_hc1_vacation_dates,sensor.thermostat_hc1_vacations,6,1,1,73,13 "RC35",thermostat,86,program,program,enum [own 1\|family\|morning\|evening\|am\|pm\|midday\|singles\|seniors\|new\|own 2], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1 -"RC35",thermostat,86,pause,pause time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_pause_time,number.thermostat_hc1_pause,6,1,1,84,1 -"RC35",thermostat,86,party,party time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_party_time,number.thermostat_hc1_party,6,1,1,85,1 +"RC35",thermostat,86,pause,pause time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_pause_time,number.thermostat_hc1_pause,6,1,1,86,1 +"RC35",thermostat,86,party,party time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_party_time,number.thermostat_hc1_party,6,1,1,87,1 "RC35",thermostat,86,tempautotemp,temporary set temperature automode,uint8 (>=0<=30),C,true,number.thermostat_hc1_temporary_set_temperature_automode,number.thermostat_hc1_tempautotemp,6,1,1/2,26,1 "RC35",thermostat,86,noreducetemp,no reduce below temperature,int8 (>=-31<=10),C,true,number.thermostat_hc1_no_reduce_below_temperature,number.thermostat_hc1_noreducetemp,6,1,1,31,1 "RC35",thermostat,86,reducetemp,off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_off/reduce_switch_temperature,number.thermostat_hc1_reducetemp,6,1,1,32,1 -"RC35",thermostat,86,vacreducetemp,vacations off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_vacations_off/reduce_switch_temperature,number.thermostat_hc1_vacreducetemp,6,1,1,86,1 -"RC35",thermostat,86,vacreducemode,vacations reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_vacations_reduce_mode,select.thermostat_hc1_vacreducemode,6,1,1,87,1 +"RC35",thermostat,86,vacreducetemp,vacations off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_vacations_off/reduce_switch_temperature,number.thermostat_hc1_vacreducetemp,6,1,1,88,1 +"RC35",thermostat,86,vacreducemode,vacations reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_vacations_reduce_mode,select.thermostat_hc1_vacreducemode,6,1,1,89,1 "RC35",thermostat,86,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "RC35",thermostat,86,dhwprio,dhw priority,boolean, ,true,switch.thermostat_hc1_dhw_priority,switch.thermostat_hc1_dhwprio,6,1,1,33,1 "RC35",thermostat,86,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"RC35",thermostat,86,switchtime1,own1 program switchtime,string, ,true,sensor.thermostat_hc1_own1_program_switchtime,sensor.thermostat_hc1_switchtime1,6,1,1,88,8 -"RC35",thermostat,86,switchtime2,own2 program switchtime,string, ,true,sensor.thermostat_hc1_own2_program_switchtime,sensor.thermostat_hc1_switchtime2,6,1,1,96,8 +"RC35",thermostat,86,switchtime1,own1 program switchtime,string, ,true,sensor.thermostat_hc1_own1_program_switchtime,sensor.thermostat_hc1_switchtime1,6,1,1,90,8 +"RC35",thermostat,86,switchtime2,own2 program switchtime,string, ,true,sensor.thermostat_hc1_own2_program_switchtime,sensor.thermostat_hc1_switchtime2,6,1,1,98,8 "RC35",thermostat,86,mode,operating mode,enum [off\|on\|auto], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "RC35",thermostat,86,circmode,circulation pump mode,enum [off\|on\|auto], ,true,select.thermostat_dhw_circulation_pump_mode,select.thermostat_dhw_circmode,6,9,1,3,1 "RC35",thermostat,86,progmode,program,enum [std prog\|own prog], ,true,select.thermostat_dhw_program,select.thermostat_dhw_progmode,6,9,1,12,1 @@ -3698,8 +3698,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC10, Moduline 100",thermostat,90,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "RC10, Moduline 100",thermostat,90,mode,operating mode,enum [night\|day\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "RC10, Moduline 100",thermostat,90,modetype,mode type,enum [night\|day], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"RC10, Moduline 100",thermostat,90,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"RC10, Moduline 100",thermostat,90,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 +"RC10, Moduline 100",thermostat,90,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"RC10, Moduline 100",thermostat,90,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 "RC10, Moduline 100",thermostat,90,program,program,enum [family\|morning\|evening\|am\|pm\|midday\|singles\|seniors], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1 "RC10, Moduline 100",thermostat,90,minflowtemp,min flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "RC10, Moduline 100",thermostat,90,maxflowtemp,max flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 @@ -3715,12 +3715,12 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC20RF",thermostat,93,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "RC20RF",thermostat,93,mode,operating mode,enum [off\|manual\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "RC20RF",thermostat,93,manualtemp,manual temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_manual_temperature,number.thermostat_hc1_manualtemp,6,1,1/2,6,1 -"RC20RF",thermostat,93,offtemp,temperature when mode is off,uint8 (>=0<=127),C,true,number.thermostat_hc1_temperature_when_mode_is_off,number.thermostat_hc1_offtemp,6,1,1/2,104,1 -"RC20RF",thermostat,93,daytemp2,day temperature T2,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T2,number.thermostat_hc1_daytemp2,6,1,1/2,105,1 -"RC20RF",thermostat,93,daytemp3,day temperature T3,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T3,number.thermostat_hc1_daytemp3,6,1,1/2,106,1 -"RC20RF",thermostat,93,daytemp4,day temperature T4,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T4,number.thermostat_hc1_daytemp4,6,1,1/2,107,1 -"RC20RF",thermostat,93,nighttemp,night temperature T1,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature_T1,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 -"RC20RF",thermostat,93,switchtime,program switchtime,string, ,true,sensor.thermostat_hc1_program_switchtime,sensor.thermostat_hc1_switchtime,6,1,1,108,8 +"RC20RF",thermostat,93,offtemp,temperature when mode is off,uint8 (>=0<=127),C,true,number.thermostat_hc1_temperature_when_mode_is_off,number.thermostat_hc1_offtemp,6,1,1/2,106,1 +"RC20RF",thermostat,93,daytemp2,day temperature T2,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T2,number.thermostat_hc1_daytemp2,6,1,1/2,107,1 +"RC20RF",thermostat,93,daytemp3,day temperature T3,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T3,number.thermostat_hc1_daytemp3,6,1,1/2,108,1 +"RC20RF",thermostat,93,daytemp4,day temperature T4,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature_T4,number.thermostat_hc1_daytemp4,6,1,1/2,109,1 +"RC20RF",thermostat,93,nighttemp,night temperature T1,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature_T1,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 +"RC20RF",thermostat,93,switchtime,program switchtime,string, ,true,sensor.thermostat_hc1_program_switchtime,sensor.thermostat_hc1_switchtime,6,1,1,110,8 "RFM20 Remote",thermostat,94,errorcode,error code,string, ,false,sensor.thermostat_error_code,sensor.thermostat_errorcode,6,0,1,0,8 "RFM20 Remote",thermostat,94,lastcode,last error code,string, ,false,sensor.thermostat_last_error_code,sensor.thermostat_lastcode,6,0,1,8,25 "RFM20 Remote",thermostat,94,datetime,date/time,string, ,false,sensor.thermostat_date/time,sensor.thermostat_datetime,6,0,1,33,13 @@ -3736,8 +3736,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC25",thermostat,151,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "RC25",thermostat,151,mode,operating mode,enum [night\|day\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "RC25",thermostat,151,modetype,mode type,enum [night\|day], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"RC25",thermostat,151,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"RC25",thermostat,151,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 +"RC25",thermostat,151,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"RC25",thermostat,151,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 "RC25",thermostat,151,program,program,enum [family\|morning\|evening\|am\|pm\|midday\|singles\|seniors], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1 "RC25",thermostat,151,minflowtemp,min flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "RC25",thermostat,151,maxflowtemp,max flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 @@ -3818,8 +3818,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC200, CW100, CR120, CR50",thermostat,157,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,50,1 "RC200, CW100, CR120, CR50",thermostat,157,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,51,1 "RC200, CW100, CR120, CR50",thermostat,157,redthreshold,reduction threshold,int8 (>=12<=22),C,true,number.thermostat_hc1_reduction_threshold,number.thermostat_hc1_redthreshold,6,1,1/2,52,1 -"RC200, CW100, CR120, CR50",thermostat,157,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,-1,1 -"RC200, CW100, CR120, CR50",thermostat,157,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,-1,1 +"RC200, CW100, CR120, CR50",thermostat,157,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,53,1 +"RC200, CW100, CR120, CR50",thermostat,157,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,54,1 "RC200, CW100, CR120, CR50",thermostat,157,mode,operating mode,enum [off\|normal\|comfort\|auto\|own prog], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "RC200, CW100, CR120, CR50",thermostat,157,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 "RC200, CW100, CR120, CR50",thermostat,157,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -3907,8 +3907,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",thermostat,158,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,50,1 "RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",thermostat,158,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,51,1 "RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",thermostat,158,redthreshold,reduction threshold,int8 (>=12<=22),C,true,number.thermostat_hc1_reduction_threshold,number.thermostat_hc1_redthreshold,6,1,1/2,52,1 -"RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",thermostat,158,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,-1,1 -"RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",thermostat,158,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,-1,1 +"RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",thermostat,158,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,53,1 +"RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",thermostat,158,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,54,1 "RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",thermostat,158,mode,operating mode,enum [off\|normal\|comfort\|auto\|own prog], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",thermostat,158,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 "RC3*0, Moduline 3000/1010H, CW400, Sense II, HPC410",thermostat,158,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -3994,8 +3994,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC100, CR10, Moduline 1000/1010",thermostat,165,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,50,1 "RC100, CR10, Moduline 1000/1010",thermostat,165,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,51,1 "RC100, CR10, Moduline 1000/1010",thermostat,165,redthreshold,reduction threshold,int8 (>=12<=22),C,true,number.thermostat_hc1_reduction_threshold,number.thermostat_hc1_redthreshold,6,1,1/2,52,1 -"RC100, CR10, Moduline 1000/1010",thermostat,165,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,-1,1 -"RC100, CR10, Moduline 1000/1010",thermostat,165,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,-1,1 +"RC100, CR10, Moduline 1000/1010",thermostat,165,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,53,1 +"RC100, CR10, Moduline 1000/1010",thermostat,165,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,54,1 "RC100, CR10, Moduline 1000/1010",thermostat,165,mode,operating mode,enum [off\|normal\|comfort\|auto\|own prog], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "RC100, CR10, Moduline 1000/1010",thermostat,165,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 "RC100, CR10, Moduline 1000/1010",thermostat,165,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -4084,8 +4084,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "Rego 2000/3000",thermostat,172,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,50,1 "Rego 2000/3000",thermostat,172,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,51,1 "Rego 2000/3000",thermostat,172,redthreshold,reduction threshold,int8 (>=12<=22),C,true,number.thermostat_hc1_reduction_threshold,number.thermostat_hc1_redthreshold,6,1,1/2,52,1 -"Rego 2000/3000",thermostat,172,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,-1,1 -"Rego 2000/3000",thermostat,172,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,-1,1 +"Rego 2000/3000",thermostat,172,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,53,1 +"Rego 2000/3000",thermostat,172,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,54,1 "Rego 2000/3000",thermostat,172,mode,operating mode,enum [normal\|comfort\|eco+], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "Rego 2000/3000",thermostat,172,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 "Rego 2000/3000",thermostat,172,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -4200,8 +4200,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "Rego 3000, UI800, Logamatic BC400",thermostat,253,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,50,1 "Rego 3000, UI800, Logamatic BC400",thermostat,253,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,51,1 "Rego 3000, UI800, Logamatic BC400",thermostat,253,redthreshold,reduction threshold,int8 (>=12<=22),C,true,number.thermostat_hc1_reduction_threshold,number.thermostat_hc1_redthreshold,6,1,1/2,52,1 -"Rego 3000, UI800, Logamatic BC400",thermostat,253,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,-1,1 -"Rego 3000, UI800, Logamatic BC400",thermostat,253,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,-1,1 +"Rego 3000, UI800, Logamatic BC400",thermostat,253,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,53,1 +"Rego 3000, UI800, Logamatic BC400",thermostat,253,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,54,1 "Rego 3000, UI800, Logamatic BC400",thermostat,253,mode,operating mode,enum [off\|eco+\|eco\|comfort\|auto], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "Rego 3000, UI800, Logamatic BC400",thermostat,253,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 "Rego 3000, UI800, Logamatic BC400",thermostat,253,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -4223,8 +4223,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "ES72, RC20",thermostat,66,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "ES72, RC20",thermostat,66,mode,operating mode,enum [night\|day\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "ES72, RC20",thermostat,66,modetype,mode type,enum [night\|day], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"ES72, RC20",thermostat,66,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"ES72, RC20",thermostat,66,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 +"ES72, RC20",thermostat,66,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"ES72, RC20",thermostat,66,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 "ES72, RC20",thermostat,66,program,program,enum [family\|morning\|evening\|am\|pm\|midday\|singles\|seniors], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1 "ES72, RC20",thermostat,66,minflowtemp,min flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "ES72, RC20",thermostat,66,maxflowtemp,max flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 @@ -4250,40 +4250,40 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "ES73",thermostat,76,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "ES73",thermostat,76,mode,operating mode,enum [night\|day\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "ES73",thermostat,76,modetype,mode type,enum [night\|day], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"ES73",thermostat,76,daytemp,day temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"ES73",thermostat,76,nighttemp,night temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 +"ES73",thermostat,76,daytemp,day temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"ES73",thermostat,76,nighttemp,night temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 "ES73",thermostat,76,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 "ES73",thermostat,76,offsettemp,offset temperature,int8 (>=-5<=5),C,true,number.thermostat_hc1_offset_temperature,number.thermostat_hc1_offsettemp,6,1,1/2,10,1 -"ES73",thermostat,76,holidaytemp,holiday temperature,uint8 (>=5<=30),C,true,number.thermostat_hc1_holiday_temperature,number.thermostat_hc1_holidaytemp,6,1,1/2,55,1 +"ES73",thermostat,76,holidaytemp,holiday temperature,uint8 (>=5<=30),C,true,number.thermostat_hc1_holiday_temperature,number.thermostat_hc1_holidaytemp,6,1,1/2,57,1 "ES73",thermostat,76,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "ES73",thermostat,76,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1,8,1 "ES73",thermostat,76,summermode,summer mode,enum [winter\|summer], ,false,sensor.thermostat_hc1_summer_mode,sensor.thermostat_hc1_summermode,6,1,1,22,1 -"ES73",thermostat,76,holidaymode,holiday mode,boolean, ,false,binary_sensor.thermostat_hc1_holiday_mode,binary_sensor.thermostat_hc1_holidaymode,6,1,1,56,1 +"ES73",thermostat,76,holidaymode,holiday mode,boolean, ,false,binary_sensor.thermostat_hc1_holiday_mode,binary_sensor.thermostat_hc1_holidaymode,6,1,1,58,1 "ES73",thermostat,76,nofrosttemp,nofrost temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1,17,1 "ES73",thermostat,76,nofrostmode,nofrost mode,enum [off\|outdoor\|room], ,true,select.thermostat_hc1_nofrost_mode,select.thermostat_hc1_nofrostmode,6,1,1,16,1 "ES73",thermostat,76,roominfluence,room influence,uint8 (>=0<=10),C,true,number.thermostat_hc1_room_influence,number.thermostat_hc1_roominfluence,6,1,1,13,1 "ES73",thermostat,76,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "ES73",thermostat,76,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 -"ES73",thermostat,76,flowtempoffset,flow temperature offset for mixer,uint8 (>=0<=20),C,true,number.thermostat_hc1_flow_temperature_offset_for_mixer,number.thermostat_hc1_flowtempoffset,6,1,1,57,1 +"ES73",thermostat,76,flowtempoffset,flow temperature offset for mixer,uint8 (>=0<=20),C,true,number.thermostat_hc1_flow_temperature_offset_for_mixer,number.thermostat_hc1_flowtempoffset,6,1,1,59,1 "ES73",thermostat,76,heatingtype,heating type,enum [off\|radiator\|convector\|floor], ,true,select.thermostat_hc1_heating_type,select.thermostat_hc1_heatingtype,6,1,1,19,1 "ES73",thermostat,76,reducemode,reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_reduce_mode,select.thermostat_hc1_reducemode,6,1,1,30,1 "ES73",thermostat,76,controlmode,control mode,enum [outdoor\|room], ,true,select.thermostat_hc1_control_mode,select.thermostat_hc1_controlmode,6,1,1,24,1 "ES73",thermostat,76,control,control device,enum [off\|RC20\|RC3x], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 -"ES73",thermostat,76,holidays,holiday dates,string, ,true,sensor.thermostat_hc1_holiday_dates,sensor.thermostat_hc1_holidays,6,1,1,58,13 -"ES73",thermostat,76,vacations,vacation dates,string, ,true,sensor.thermostat_hc1_vacation_dates,sensor.thermostat_hc1_vacations,6,1,1,71,13 +"ES73",thermostat,76,holidays,holiday dates,string, ,true,sensor.thermostat_hc1_holiday_dates,sensor.thermostat_hc1_holidays,6,1,1,60,13 +"ES73",thermostat,76,vacations,vacation dates,string, ,true,sensor.thermostat_hc1_vacation_dates,sensor.thermostat_hc1_vacations,6,1,1,73,13 "ES73",thermostat,76,program,program,enum [own 1\|family\|morning\|evening\|am\|pm\|midday\|singles\|seniors\|new\|own 2], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1 -"ES73",thermostat,76,pause,pause time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_pause_time,number.thermostat_hc1_pause,6,1,1,84,1 -"ES73",thermostat,76,party,party time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_party_time,number.thermostat_hc1_party,6,1,1,85,1 +"ES73",thermostat,76,pause,pause time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_pause_time,number.thermostat_hc1_pause,6,1,1,86,1 +"ES73",thermostat,76,party,party time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_party_time,number.thermostat_hc1_party,6,1,1,87,1 "ES73",thermostat,76,tempautotemp,temporary set temperature automode,uint8 (>=0<=30),C,true,number.thermostat_hc1_temporary_set_temperature_automode,number.thermostat_hc1_tempautotemp,6,1,1/2,26,1 "ES73",thermostat,76,noreducetemp,no reduce below temperature,int8 (>=-31<=10),C,true,number.thermostat_hc1_no_reduce_below_temperature,number.thermostat_hc1_noreducetemp,6,1,1,31,1 "ES73",thermostat,76,reducetemp,off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_off/reduce_switch_temperature,number.thermostat_hc1_reducetemp,6,1,1,32,1 -"ES73",thermostat,76,vacreducetemp,vacations off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_vacations_off/reduce_switch_temperature,number.thermostat_hc1_vacreducetemp,6,1,1,86,1 -"ES73",thermostat,76,vacreducemode,vacations reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_vacations_reduce_mode,select.thermostat_hc1_vacreducemode,6,1,1,87,1 +"ES73",thermostat,76,vacreducetemp,vacations off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_vacations_off/reduce_switch_temperature,number.thermostat_hc1_vacreducetemp,6,1,1,88,1 +"ES73",thermostat,76,vacreducemode,vacations reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_vacations_reduce_mode,select.thermostat_hc1_vacreducemode,6,1,1,89,1 "ES73",thermostat,76,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "ES73",thermostat,76,dhwprio,dhw priority,boolean, ,true,switch.thermostat_hc1_dhw_priority,switch.thermostat_hc1_dhwprio,6,1,1,33,1 "ES73",thermostat,76,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"ES73",thermostat,76,switchtime1,own1 program switchtime,string, ,true,sensor.thermostat_hc1_own1_program_switchtime,sensor.thermostat_hc1_switchtime1,6,1,1,88,8 -"ES73",thermostat,76,switchtime2,own2 program switchtime,string, ,true,sensor.thermostat_hc1_own2_program_switchtime,sensor.thermostat_hc1_switchtime2,6,1,1,96,8 +"ES73",thermostat,76,switchtime1,own1 program switchtime,string, ,true,sensor.thermostat_hc1_own1_program_switchtime,sensor.thermostat_hc1_switchtime1,6,1,1,90,8 +"ES73",thermostat,76,switchtime2,own2 program switchtime,string, ,true,sensor.thermostat_hc1_own2_program_switchtime,sensor.thermostat_hc1_switchtime2,6,1,1,98,8 "ES73",thermostat,76,mode,operating mode,enum [off\|on\|auto], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "ES73",thermostat,76,circmode,circulation pump mode,enum [off\|on\|auto], ,true,select.thermostat_dhw_circulation_pump_mode,select.thermostat_dhw_circmode,6,9,1,3,1 "ES73",thermostat,76,progmode,program,enum [std prog\|own prog], ,true,select.thermostat_dhw_program,select.thermostat_dhw_progmode,6,9,1,12,1 @@ -4306,8 +4306,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "ES72, RC20",thermostat,113,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "ES72, RC20",thermostat,113,mode,operating mode,enum [night\|day\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "ES72, RC20",thermostat,113,modetype,mode type,enum [night\|day], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"ES72, RC20",thermostat,113,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"ES72, RC20",thermostat,113,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 +"ES72, RC20",thermostat,113,daytemp,day temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"ES72, RC20",thermostat,113,nighttemp,night temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 "ES72, RC20",thermostat,113,program,program,enum [family\|morning\|evening\|am\|pm\|midday\|singles\|seniors], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1 "ES72, RC20",thermostat,113,minflowtemp,min flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "ES72, RC20",thermostat,113,maxflowtemp,max flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 @@ -4330,40 +4330,40 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "ES79",thermostat,156,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "ES79",thermostat,156,mode,operating mode,enum [night\|day\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "ES79",thermostat,156,modetype,mode type,enum [night\|day], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"ES79",thermostat,156,daytemp,day temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,53,1 -"ES79",thermostat,156,nighttemp,night temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,54,1 +"ES79",thermostat,156,daytemp,day temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_day_temperature,number.thermostat_hc1_daytemp,6,1,1/2,55,1 +"ES79",thermostat,156,nighttemp,night temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_night_temperature,number.thermostat_hc1_nighttemp,6,1,1/2,56,1 "ES79",thermostat,156,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 "ES79",thermostat,156,offsettemp,offset temperature,int8 (>=-5<=5),C,true,number.thermostat_hc1_offset_temperature,number.thermostat_hc1_offsettemp,6,1,1/2,10,1 -"ES79",thermostat,156,holidaytemp,holiday temperature,uint8 (>=5<=30),C,true,number.thermostat_hc1_holiday_temperature,number.thermostat_hc1_holidaytemp,6,1,1/2,55,1 +"ES79",thermostat,156,holidaytemp,holiday temperature,uint8 (>=5<=30),C,true,number.thermostat_hc1_holiday_temperature,number.thermostat_hc1_holidaytemp,6,1,1/2,57,1 "ES79",thermostat,156,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "ES79",thermostat,156,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1,8,1 "ES79",thermostat,156,summermode,summer mode,enum [winter\|summer], ,false,sensor.thermostat_hc1_summer_mode,sensor.thermostat_hc1_summermode,6,1,1,22,1 -"ES79",thermostat,156,holidaymode,holiday mode,boolean, ,false,binary_sensor.thermostat_hc1_holiday_mode,binary_sensor.thermostat_hc1_holidaymode,6,1,1,56,1 +"ES79",thermostat,156,holidaymode,holiday mode,boolean, ,false,binary_sensor.thermostat_hc1_holiday_mode,binary_sensor.thermostat_hc1_holidaymode,6,1,1,58,1 "ES79",thermostat,156,nofrosttemp,nofrost temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1,17,1 "ES79",thermostat,156,nofrostmode,nofrost mode,enum [off\|outdoor\|room], ,true,select.thermostat_hc1_nofrost_mode,select.thermostat_hc1_nofrostmode,6,1,1,16,1 "ES79",thermostat,156,roominfluence,room influence,uint8 (>=0<=10),C,true,number.thermostat_hc1_room_influence,number.thermostat_hc1_roominfluence,6,1,1,13,1 "ES79",thermostat,156,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "ES79",thermostat,156,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 -"ES79",thermostat,156,flowtempoffset,flow temperature offset for mixer,uint8 (>=0<=20),C,true,number.thermostat_hc1_flow_temperature_offset_for_mixer,number.thermostat_hc1_flowtempoffset,6,1,1,57,1 +"ES79",thermostat,156,flowtempoffset,flow temperature offset for mixer,uint8 (>=0<=20),C,true,number.thermostat_hc1_flow_temperature_offset_for_mixer,number.thermostat_hc1_flowtempoffset,6,1,1,59,1 "ES79",thermostat,156,heatingtype,heating type,enum [off\|radiator\|convector\|floor], ,true,select.thermostat_hc1_heating_type,select.thermostat_hc1_heatingtype,6,1,1,19,1 "ES79",thermostat,156,reducemode,reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_reduce_mode,select.thermostat_hc1_reducemode,6,1,1,30,1 "ES79",thermostat,156,controlmode,control mode,enum [outdoor\|room], ,true,select.thermostat_hc1_control_mode,select.thermostat_hc1_controlmode,6,1,1,24,1 "ES79",thermostat,156,control,control device,enum [off\|RC20\|RC3x], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 -"ES79",thermostat,156,holidays,holiday dates,string, ,true,sensor.thermostat_hc1_holiday_dates,sensor.thermostat_hc1_holidays,6,1,1,58,13 -"ES79",thermostat,156,vacations,vacation dates,string, ,true,sensor.thermostat_hc1_vacation_dates,sensor.thermostat_hc1_vacations,6,1,1,71,13 +"ES79",thermostat,156,holidays,holiday dates,string, ,true,sensor.thermostat_hc1_holiday_dates,sensor.thermostat_hc1_holidays,6,1,1,60,13 +"ES79",thermostat,156,vacations,vacation dates,string, ,true,sensor.thermostat_hc1_vacation_dates,sensor.thermostat_hc1_vacations,6,1,1,73,13 "ES79",thermostat,156,program,program,enum [own 1\|family\|morning\|evening\|am\|pm\|midday\|singles\|seniors\|new\|own 2], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1 -"ES79",thermostat,156,pause,pause time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_pause_time,number.thermostat_hc1_pause,6,1,1,84,1 -"ES79",thermostat,156,party,party time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_party_time,number.thermostat_hc1_party,6,1,1,85,1 +"ES79",thermostat,156,pause,pause time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_pause_time,number.thermostat_hc1_pause,6,1,1,86,1 +"ES79",thermostat,156,party,party time,uint8 (>=0<=99),hours,true,number.thermostat_hc1_party_time,number.thermostat_hc1_party,6,1,1,87,1 "ES79",thermostat,156,tempautotemp,temporary set temperature automode,uint8 (>=0<=30),C,true,number.thermostat_hc1_temporary_set_temperature_automode,number.thermostat_hc1_tempautotemp,6,1,1/2,26,1 "ES79",thermostat,156,noreducetemp,no reduce below temperature,int8 (>=-31<=10),C,true,number.thermostat_hc1_no_reduce_below_temperature,number.thermostat_hc1_noreducetemp,6,1,1,31,1 "ES79",thermostat,156,reducetemp,off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_off/reduce_switch_temperature,number.thermostat_hc1_reducetemp,6,1,1,32,1 -"ES79",thermostat,156,vacreducetemp,vacations off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_vacations_off/reduce_switch_temperature,number.thermostat_hc1_vacreducetemp,6,1,1,86,1 -"ES79",thermostat,156,vacreducemode,vacations reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_vacations_reduce_mode,select.thermostat_hc1_vacreducemode,6,1,1,87,1 +"ES79",thermostat,156,vacreducetemp,vacations off/reduce switch temperature,int8 (>=-20<=10),C,true,number.thermostat_hc1_vacations_off/reduce_switch_temperature,number.thermostat_hc1_vacreducetemp,6,1,1,88,1 +"ES79",thermostat,156,vacreducemode,vacations reduce mode,enum [nofrost\|reduce\|room\|outdoor], ,true,select.thermostat_hc1_vacations_reduce_mode,select.thermostat_hc1_vacreducemode,6,1,1,89,1 "ES79",thermostat,156,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "ES79",thermostat,156,dhwprio,dhw priority,boolean, ,true,switch.thermostat_hc1_dhw_priority,switch.thermostat_hc1_dhwprio,6,1,1,33,1 "ES79",thermostat,156,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"ES79",thermostat,156,switchtime1,own1 program switchtime,string, ,true,sensor.thermostat_hc1_own1_program_switchtime,sensor.thermostat_hc1_switchtime1,6,1,1,88,8 -"ES79",thermostat,156,switchtime2,own2 program switchtime,string, ,true,sensor.thermostat_hc1_own2_program_switchtime,sensor.thermostat_hc1_switchtime2,6,1,1,96,8 +"ES79",thermostat,156,switchtime1,own1 program switchtime,string, ,true,sensor.thermostat_hc1_own1_program_switchtime,sensor.thermostat_hc1_switchtime1,6,1,1,90,8 +"ES79",thermostat,156,switchtime2,own2 program switchtime,string, ,true,sensor.thermostat_hc1_own2_program_switchtime,sensor.thermostat_hc1_switchtime2,6,1,1,98,8 "ES79",thermostat,156,mode,operating mode,enum [off\|on\|auto], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "ES79",thermostat,156,circmode,circulation pump mode,enum [off\|on\|auto], ,true,select.thermostat_dhw_circulation_pump_mode,select.thermostat_dhw_circmode,6,9,1,3,1 "ES79",thermostat,156,progmode,program,enum [std prog\|own prog], ,true,select.thermostat_dhw_program,select.thermostat_dhw_progmode,6,9,1,12,1 @@ -4392,7 +4392,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FW100",thermostat,105,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FW100",thermostat,105,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FW100",thermostat,105,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FW100",thermostat,105,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FW100",thermostat,105,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FW100",thermostat,105,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FW100",thermostat,105,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FW100",thermostat,105,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4400,10 +4400,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FW100",thermostat,105,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FW100",thermostat,105,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FW100",thermostat,105,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FW100",thermostat,105,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FW100",thermostat,105,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FW100",thermostat,105,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FW100",thermostat,105,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FW100",thermostat,105,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FW100",thermostat,105,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FW100",thermostat,105,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FW100",thermostat,105,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FW100",thermostat,105,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FW100",thermostat,105,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4427,7 +4427,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FW200",thermostat,106,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FW200",thermostat,106,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FW200",thermostat,106,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FW200",thermostat,106,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FW200",thermostat,106,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FW200",thermostat,106,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FW200",thermostat,106,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FW200",thermostat,106,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4435,10 +4435,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FW200",thermostat,106,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FW200",thermostat,106,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FW200",thermostat,106,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FW200",thermostat,106,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FW200",thermostat,106,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FW200",thermostat,106,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FW200",thermostat,106,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FW200",thermostat,106,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FW200",thermostat,106,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FW200",thermostat,106,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FW200",thermostat,106,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FW200",thermostat,106,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FW200",thermostat,106,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4462,7 +4462,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FR100",thermostat,107,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FR100",thermostat,107,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FR100",thermostat,107,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FR100",thermostat,107,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FR100",thermostat,107,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FR100",thermostat,107,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FR100",thermostat,107,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FR100",thermostat,107,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4470,10 +4470,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FR100",thermostat,107,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FR100",thermostat,107,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FR100",thermostat,107,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FR100",thermostat,107,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FR100",thermostat,107,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FR100",thermostat,107,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FR100",thermostat,107,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FR100",thermostat,107,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FR100",thermostat,107,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FR100",thermostat,107,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FR100",thermostat,107,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FR100",thermostat,107,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FR100",thermostat,107,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4497,7 +4497,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FR110",thermostat,108,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FR110",thermostat,108,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FR110",thermostat,108,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FR110",thermostat,108,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FR110",thermostat,108,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FR110",thermostat,108,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FR110",thermostat,108,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FR110",thermostat,108,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4505,10 +4505,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FR110",thermostat,108,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FR110",thermostat,108,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FR110",thermostat,108,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FR110",thermostat,108,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FR110",thermostat,108,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FR110",thermostat,108,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FR110",thermostat,108,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FR110",thermostat,108,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FR110",thermostat,108,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FR110",thermostat,108,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FR110",thermostat,108,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FR110",thermostat,108,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FR110",thermostat,108,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4532,7 +4532,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FB10",thermostat,109,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FB10",thermostat,109,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FB10",thermostat,109,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FB10",thermostat,109,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FB10",thermostat,109,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FB10",thermostat,109,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FB10",thermostat,109,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FB10",thermostat,109,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4540,10 +4540,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FB10",thermostat,109,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FB10",thermostat,109,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FB10",thermostat,109,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FB10",thermostat,109,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FB10",thermostat,109,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FB10",thermostat,109,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FB10",thermostat,109,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FB10",thermostat,109,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FB10",thermostat,109,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FB10",thermostat,109,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FB10",thermostat,109,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FB10",thermostat,109,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FB10",thermostat,109,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4567,7 +4567,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FB100",thermostat,110,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FB100",thermostat,110,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FB100",thermostat,110,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FB100",thermostat,110,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FB100",thermostat,110,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FB100",thermostat,110,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FB100",thermostat,110,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FB100",thermostat,110,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4575,10 +4575,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FB100",thermostat,110,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FB100",thermostat,110,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FB100",thermostat,110,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FB100",thermostat,110,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FB100",thermostat,110,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FB100",thermostat,110,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FB100",thermostat,110,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FB100",thermostat,110,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FB100",thermostat,110,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FB100",thermostat,110,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FB100",thermostat,110,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FB100",thermostat,110,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FB100",thermostat,110,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4602,7 +4602,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FR10",thermostat,111,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FR10",thermostat,111,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FR10",thermostat,111,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FR10",thermostat,111,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FR10",thermostat,111,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FR10",thermostat,111,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FR10",thermostat,111,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FR10",thermostat,111,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4610,10 +4610,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FR10",thermostat,111,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FR10",thermostat,111,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FR10",thermostat,111,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FR10",thermostat,111,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FR10",thermostat,111,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FR10",thermostat,111,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FR10",thermostat,111,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FR10",thermostat,111,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FR10",thermostat,111,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FR10",thermostat,111,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FR10",thermostat,111,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FR10",thermostat,111,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FR10",thermostat,111,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4637,7 +4637,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FW500",thermostat,116,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FW500",thermostat,116,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FW500",thermostat,116,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FW500",thermostat,116,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FW500",thermostat,116,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FW500",thermostat,116,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FW500",thermostat,116,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FW500",thermostat,116,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4645,10 +4645,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FW500",thermostat,116,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FW500",thermostat,116,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FW500",thermostat,116,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FW500",thermostat,116,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FW500",thermostat,116,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FW500",thermostat,116,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FW500",thermostat,116,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FW500",thermostat,116,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FW500",thermostat,116,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FW500",thermostat,116,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FW500",thermostat,116,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FW500",thermostat,116,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FW500",thermostat,116,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4672,7 +4672,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FR50",thermostat,147,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FR50",thermostat,147,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FR50",thermostat,147,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FR50",thermostat,147,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FR50",thermostat,147,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FR50",thermostat,147,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FR50",thermostat,147,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FR50",thermostat,147,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4680,10 +4680,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FR50",thermostat,147,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FR50",thermostat,147,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FR50",thermostat,147,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FR50",thermostat,147,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FR50",thermostat,147,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FR50",thermostat,147,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FR50",thermostat,147,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FR50",thermostat,147,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FR50",thermostat,147,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FR50",thermostat,147,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FR50",thermostat,147,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FR50",thermostat,147,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FR50",thermostat,147,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4707,7 +4707,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FR120",thermostat,191,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FR120",thermostat,191,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FR120",thermostat,191,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FR120",thermostat,191,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FR120",thermostat,191,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FR120",thermostat,191,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FR120",thermostat,191,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FR120",thermostat,191,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4715,10 +4715,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FR120",thermostat,191,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FR120",thermostat,191,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FR120",thermostat,191,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FR120",thermostat,191,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FR120",thermostat,191,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FR120",thermostat,191,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FR120",thermostat,191,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FR120",thermostat,191,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FR120",thermostat,191,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FR120",thermostat,191,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FR120",thermostat,191,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FR120",thermostat,191,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FR120",thermostat,191,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4742,7 +4742,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FW120",thermostat,192,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 "FW120",thermostat,192,mode,operating mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1 "FW120",thermostat,192,modetype,mode type,enum [nofrost\|eco\|heat], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1 -"FW120",thermostat,192,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,195,1 +"FW120",thermostat,192,heattemp,heat temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_heat_temperature,number.thermostat_hc1_heattemp,6,1,1/2,197,1 "FW120",thermostat,192,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1 "FW120",thermostat,192,nofrosttemp,nofrost temperature,int8 (>=-63<=63),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1/2,17,1 "FW120",thermostat,192,control,control device,enum [off\|FB10\|FB100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 @@ -4750,10 +4750,10 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "FW120",thermostat,192,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 "FW120",thermostat,192,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1 "FW120",thermostat,192,summertemp,summer temperature,uint8 (>=9<=25),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1/2,8,1 -"FW120",thermostat,192,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,196,1 -"FW120",thermostat,192,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,56,1 +"FW120",thermostat,192,roomsensor,room sensor,enum [extern\|intern\|auto], ,true,select.thermostat_hc1_room_sensor,select.thermostat_hc1_roomsensor,6,1,1,198,1 +"FW120",thermostat,192,holidaymode,holiday mode,enum [nofrost\|eco\|heat\|auto], ,true,select.thermostat_hc1_holiday_mode,select.thermostat_hc1_holidaymode,6,1,1,58,1 "FW120",thermostat,192,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1 -"FW120",thermostat,192,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,197,1 +"FW120",thermostat,192,heatup,heatup,enum [slow\|medium\|fast], ,true,select.thermostat_hc1_heatup,select.thermostat_hc1_heatup,6,1,1,199,1 "FW120",thermostat,192,minflowtemp,min flow temperature,uint8 (>=5<=70),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1 "FW120",thermostat,192,maxflowtemp,max flow temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1 "FW120",thermostat,192,designtemp,design temperature,uint8 (>=30<=90),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1 @@ -4853,8 +4853,8 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "RC120",thermostat,157,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,50,1 "RC120",thermostat,157,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,51,1 "RC120",thermostat,157,redthreshold,reduction threshold,int8 (>=12<=22),C,true,number.thermostat_hc1_reduction_threshold,number.thermostat_hc1_redthreshold,6,1,1/2,52,1 -"RC120",thermostat,157,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,-1,1 -"RC120",thermostat,157,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,-1,1 +"RC120",thermostat,157,solarinfl,solar influence,uint8 (>=-5<=4294967295),C,true,number.thermostat_hc1_solar_influence,number.thermostat_hc1_solarinfl,6,1,1,53,1 +"RC120",thermostat,157,currsolarinfl,curent solar influence,uint8 (>=0<=25),C,false,sensor.thermostat_hc1_curent_solar_influence,sensor.thermostat_hc1_currsolarinfl,6,1,1/10,54,1 "RC120",thermostat,157,mode,operating mode,enum [off\|comfort\|auto], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1 "RC120",thermostat,157,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 "RC120",thermostat,157,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -5253,6 +5253,38 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "T1RF",extension,220,mint,min temp.,uint8 (>=0<=254),C,true,number.extension_min_temp.,number.extension_mint,15,0,1,7,1 "T1RF",extension,220,maxt,max temp.,uint8 (>=0<=254),C,true,number.extension_max_temp.,number.extension_maxt,15,0,1,8,1 "T1RF",extension,220,mode,operating mode,uint8 (>=0<=254), ,false,sensor.extension_operating_mode,sensor.extension_mode,15,0,1,9,1 +"AM200",heatsource,228,sysflowtemp,system flow temperature,int16 (>=-3199<=3199),C,false,sensor.heatsource_ahs1_system_flow_temperature,sensor.heatsource_ahs1_sysflowtemp,17,19,1/10,0,1 +"AM200",heatsource,228,sysrettemp,system return temperature,int16 (>=-3199<=3199),C,false,sensor.heatsource_ahs1_system_return_temperature,sensor.heatsource_ahs1_sysrettemp,17,19,1/10,1,1 +"AM200",heatsource,228,altflowtemp,alternative hs flow temperature,int16 (>=-3199<=3199),C,false,sensor.heatsource_ahs1_alternative_hs_flow_temperature,sensor.heatsource_ahs1_altflowtemp,17,19,1/10,2,1 +"AM200",heatsource,228,altrettemp,alternative hs return temperature,int16 (>=-3199<=3199),C,false,sensor.heatsource_ahs1_alternative_hs_return_temperature,sensor.heatsource_ahs1_altrettemp,17,19,1/10,3,1 +"AM200",heatsource,228,cyltoptemp,cylinder top temperature,int16 (>=-3199<=3199),C,false,sensor.heatsource_ahs1_cylinder_top_temperature,sensor.heatsource_ahs1_cyltoptemp,17,19,1/10,4,1 +"AM200",heatsource,228,cylcentertemp,cylinder center temperature,int16 (>=-3199<=3199),C,false,sensor.heatsource_ahs1_cylinder_center_temperature,sensor.heatsource_ahs1_cylcentertemp,17,19,1/10,5,1 +"AM200",heatsource,228,cylbottomtemp,cylinder bottom temperature,int16 (>=-3199<=3199),C,false,sensor.heatsource_ahs1_cylinder_bottom_temperature,sensor.heatsource_ahs1_cylbottomtemp,17,19,1/10,6,1 +"AM200",heatsource,228,fluegastemp,flue gas temperature,int16 (>=-3199<=3199),C,false,sensor.heatsource_ahs1_flue_gas_temperature,sensor.heatsource_ahs1_fluegastemp,17,19,1/10,7,1 +"AM200",heatsource,228,valvebuffer,buffer valve,uint8 (>=0<=100),%,false,sensor.heatsource_ahs1_buffer_valve,sensor.heatsource_ahs1_valvebuffer,17,19,1,8,1 +"AM200",heatsource,228,valvereturn,return valve,uint8 (>=0<=100),%,false,sensor.heatsource_ahs1_return_valve,sensor.heatsource_ahs1_valvereturn,17,19,1,9,1 +"AM200",heatsource,228,apumpmod,alternative hs pump modulation,uint8 (>=0<=100),%,false,sensor.heatsource_ahs1_alternative_hs_pump_modulation,sensor.heatsource_ahs1_apumpmod,17,19,1,10,1 +"AM200",heatsource,228,vr2config,vr2 configuration,enum [off\|bypass], ,true,select.heatsource_ahs1_vr2_configuration,select.heatsource_ahs1_vr2config,17,19,1,11,1 +"AM200",heatsource,228,ahsactivated,alternate heat source activation,boolean, ,true,switch.heatsource_ahs1_alternate_heat_source_activation,switch.heatsource_ahs1_ahsactivated,17,19,1,12,1 +"AM200",heatsource,228,apumpconfig,primary pump config,boolean, ,true,switch.heatsource_ahs1_primary_pump_config,switch.heatsource_ahs1_apumpconfig,17,19,1,13,1 +"AM200",heatsource,228,apumpsignal,output for pr1 pump,enum [off\|pwm\|pwm inverse], ,true,select.heatsource_ahs1_output_for_pr1_pump,select.heatsource_ahs1_apumpsignal,17,19,1,14,1 +"AM200",heatsource,228,apumpmin,min output pump pr1,uint8 (>=12<=50),%,true,number.heatsource_ahs1_min_output_pump_pr1,number.heatsource_ahs1_apumpmin,17,19,1,15,1 +"AM200",heatsource,228,temprise,ahs return temp rise,boolean, ,true,switch.heatsource_ahs1_ahs_return_temp_rise,switch.heatsource_ahs1_temprise,17,19,1,16,1 +"AM200",heatsource,228,setreturntemp,set temp return,uint8 (>=40<=75),C,true,number.heatsource_ahs1_set_temp_return,number.heatsource_ahs1_setreturntemp,17,19,1,17,1 +"AM200",heatsource,228,mixruntime,mixer run time,uint16 (>=0<=600),seconds,true,number.heatsource_ahs1_mixer_run_time,number.heatsource_ahs1_mixruntime,17,19,1,18,1 +"AM200",heatsource,228,setflowtemp,set flow temperature,uint8 (>=40<=75),C,true,number.heatsource_ahs1_set_flow_temperature,number.heatsource_ahs1_setflowtemp,17,19,1,19,1 +"AM200",heatsource,228,bufbypass,buffer bypass config,enum [no\|mixer\|valve], ,true,select.heatsource_ahs1_buffer_bypass_config,select.heatsource_ahs1_bufbypass,17,19,1,20,1 +"AM200",heatsource,228,bufmixruntime,bypass mixer run time,uint16 (>=0<=600),seconds,true,number.heatsource_ahs1_bypass_mixer_run_time,number.heatsource_ahs1_bufmixruntime,17,19,1,21,1 +"AM200",heatsource,228,bufconfig,dhw buffer config,enum [off\|monovalent\|bivalent], ,true,select.heatsource_ahs1_dhw_buffer_config,select.heatsource_ahs1_bufconfig,17,19,1,22,1 +"AM200",heatsource,228,blockmode,config htg. blocking mode,enum [off\|auto\|blocking], ,true,select.heatsource_ahs1_config_htg._blocking_mode,select.heatsource_ahs1_blockmode,17,19,1,23,1 +"AM200",heatsource,228,blockterm,config of block terminal,enum [n_o\|n_c], ,true,select.heatsource_ahs1_config_of_block_terminal,select.heatsource_ahs1_blockterm,17,19,1,24,1 +"AM200",heatsource,228,blockhyst,hyst. for boiler block,int8 (>=0<=50),C,true,number.heatsource_ahs1_hyst._for_boiler_block,number.heatsource_ahs1_blockhyst,17,19,1,25,1 +"AM200",heatsource,228,releasewait,boiler release wait time,uint8 (>=0<=240),minutes,true,number.heatsource_ahs1_boiler_release_wait_time,number.heatsource_ahs1_releasewait,17,19,1,26,1 +"AM200",heatsource,228,burner,burner,boolean, ,false,binary_sensor.heatsource_ahs1_burner,binary_sensor.heatsource_ahs1_burner,17,19,1,27,1 +"AM200",heatsource,228,apump,alternative hs pump,boolean, ,false,binary_sensor.heatsource_ahs1_alternative_hs_pump,binary_sensor.heatsource_ahs1_apump,17,19,1,28,1 +"AM200",heatsource,228,heatrequest,heat request,uint8 (>=0<=100),%,false,sensor.heatsource_ahs1_heat_request,sensor.heatsource_ahs1_heatrequest,17,19,1,29,1 +"AM200",heatsource,228,blockremain,remaining blocktime,uint8 (>=0<=254),minutes,false,sensor.heatsource_ahs1_remaining_blocktime,sensor.heatsource_ahs1_blockremain,17,19,1,30,1 +"AM200",heatsource,228,blockremaindhw,remaining blocktime dhw,uint8 (>=0<=254),minutes,false,sensor.heatsource_ahs1_remaining_blocktime_dhw,sensor.heatsource_ahs1_blockremaindhw,17,19,1,31,1 "Logavent HRV176",ventilation,231,outfresh,outdoor fresh air,int16 (>=-3199<=3199),C,false,sensor.ventilation_outdoor_fresh_air,sensor.ventilation_outfresh,18,0,1/10,0,1 "Logavent HRV176",ventilation,231,infresh,indoor fresh air,int16 (>=-3199<=3199),C,false,sensor.ventilation_indoor_fresh_air,sensor.ventilation_infresh,18,0,1/10,1,1 "Logavent HRV176",ventilation,231,outexhaust,outdoor exhaust air,int16 (>=-3199<=3199),C,false,sensor.ventilation_outdoor_exhaust_air,sensor.ventilation_outexhaust,18,0,1/10,2,1 diff --git a/scripts/generate_csv_and_headers.sh b/scripts/generate_csv_and_headers.sh index 7535e1f19..8f4a8cd68 100755 --- a/scripts/generate_csv_and_headers.sh +++ b/scripts/generate_csv_and_headers.sh @@ -5,7 +5,7 @@ # Run as `sh scripts/generate_csv_and_headers.sh` from the root of the repository. # create a dummy modbus_entity_parameters.hpp so the first pass compiles -cat >./src/modbus_entity_parameters.hpp <./src/core/modbus_entity_parameters.hpp <./src/modbus_entity_parameters.hpp -ls -al ./src/modbus_entity_parameters.hpp +rm -f ./src/core/modbus_entity_parameters.hpp +echo "test entity_dump" | ./emsesp | python3 ./scripts/strip_csv.py | python3 ./scripts/update_modbus_registers.py >./src/core/modbus_entity_parameters.hpp +ls -al ./src/core/modbus_entity_parameters.hpp # dump_entities.csv make -s ARGS=-DEMSESP_STANDALONE diff --git a/src/core/modbus_entity_parameters.hpp b/src/core/modbus_entity_parameters.hpp index a5e25b92e..7dcf4ca92 100644 --- a/src/core/modbus_entity_parameters.hpp +++ b/src/core/modbus_entity_parameters.hpp @@ -343,36 +343,38 @@ const std::initializer_list Modbus::modbus_register_ma REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(cooloffdelay), 50, 1), // cooloffdelay REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchProgMode), 51, 1), // switchprogmode REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(redthreshold), 52, 1), // redthreshold - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daytemp), 53, 1), // daytemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(nighttemp2), 54, 1), // nighttemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(holidaytemp), 55, 1), // holidaytemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(holidaymode), 56, 1), // holidaymode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(flowtempoffset), 57, 1), // flowtempoffset - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(holidays), 58, 13), // holidays - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations), 71, 13), // vacations - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(pause), 84, 1), // pause - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(party), 85, 1), // party - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacreducetemp), 86, 1), // vacreducetemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacreducemode), 87, 1), // vacreducemode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchtime1), 88, 8), // switchtime1 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchtime2), 96, 8), // switchtime2 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(offtemp), 104, 1), // offtemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daylowtemp), 105, 1), // daytemp2 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daymidtemp), 106, 1), // daytemp3 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(dayhightemp), 107, 1), // daytemp4 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchtime), 108, 8), // switchtime - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations1), 116, 11), // vacations1 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations2), 127, 11), // vacations2 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations3), 138, 11), // vacations3 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations4), 149, 11), // vacations4 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations5), 160, 11), // vacations5 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations6), 171, 11), // vacations6 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations7), 182, 11), // vacations7 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(reducehours), 193, 1), // reducehours - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(reduceminutes), 194, 1), // reduceminutes - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(heattemp), 195, 1), // heattemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(roomsensor), 196, 1), // roomsensor - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(heatup), 197, 1), // heatup + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(solarinfl), 53, 1), // solarinfl + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(currsolarinfl), 54, 1), // currsolarinfl + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daytemp), 55, 1), // daytemp + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(nighttemp2), 56, 1), // nighttemp + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(holidaytemp), 57, 1), // holidaytemp + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(holidaymode), 58, 1), // holidaymode + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(flowtempoffset), 59, 1), // flowtempoffset + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(holidays), 60, 13), // holidays + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations), 73, 13), // vacations + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(pause), 86, 1), // pause + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(party), 87, 1), // party + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacreducetemp), 88, 1), // vacreducetemp + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacreducemode), 89, 1), // vacreducemode + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchtime1), 90, 8), // switchtime1 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchtime2), 98, 8), // switchtime2 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(offtemp), 106, 1), // offtemp + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daylowtemp), 107, 1), // daytemp2 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daymidtemp), 108, 1), // daytemp3 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(dayhightemp), 109, 1), // daytemp4 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchtime), 110, 8), // switchtime + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations1), 118, 11), // vacations1 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations2), 129, 11), // vacations2 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations3), 140, 11), // vacations3 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations4), 151, 11), // vacations4 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations5), 162, 11), // vacations5 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations6), 173, 11), // vacations6 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations7), 184, 11), // vacations7 + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(reducehours), 195, 1), // reducehours + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(reduceminutes), 196, 1), // reduceminutes + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(heattemp), 197, 1), // heattemp + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(roomsensor), 198, 1), // roomsensor + REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(heatup), 199, 1), // heatup REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(mode), 0, 1), // mode REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwSetTemp), 1, 1), // settemp REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwSetTempLow), 2, 1), // settemplow @@ -529,6 +531,38 @@ const std::initializer_list Modbus::modbus_register_ma REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(minT), 7, 1), // mint REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(maxT), 8, 1), // maxt REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(mode), 9, 1), // mode + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(sysFlowTemp), 0, 1), // sysflowtemp + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(sysRetTemp), 1, 1), // sysrettemp + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(aFlowTemp), 2, 1), // altflowtemp + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(aRetTemp), 3, 1), // altrettemp + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(cylTopTemp), 4, 1), // cyltoptemp + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(aCylCenterTemp), 5, 1), // cylcentertemp + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(cylBottomTemp), 6, 1), // cylbottomtemp + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(flueGasTemp), 7, 1), // fluegastemp + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(valveBuffer), 8, 1), // valvebuffer + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(valveReturn), 9, 1), // valvereturn + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(aPumpMod), 10, 1), // apumpmod + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(vr2Config), 11, 1), // vr2config + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(ahsActivated), 12, 1), // ahsactivated + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(aPumpConfig), 13, 1), // apumpconfig + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(aPumpSignal), 14, 1), // apumpsignal + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(aPumpMin), 15, 1), // apumpmin + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(tempRise), 16, 1), // temprise + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(setReturnTemp), 17, 1), // setreturntemp + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(mixRuntime), 18, 1), // mixruntime + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(setFlowTemp), 19, 1), // setflowtemp + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(bufBypass), 20, 1), // bufbypass + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(bufMixRuntime), 21, 1), // bufmixruntime + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(bufConfig), 22, 1), // bufconfig + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(blockMode), 23, 1), // blockmode + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(blockTerm), 24, 1), // blockterm + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(blockHyst), 25, 1), // blockhyst + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(releaseWait), 26, 1), // releasewait + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(burner), 27, 1), // burner + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(aPump), 28, 1), // apump + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(heatRequest), 29, 1), // heatrequest + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(blockRemain), 30, 1), // blockremain + REGISTER_MAPPING(dt::HEATSOURCE, TAG_TYPE_AHS, FL_(blockRemainWw), 31, 1), // blockremaindhw REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(outFresh), 0, 1), // outfresh REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(inFresh), 1, 1), // infresh REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(outEx), 2, 1), // outexhaust diff --git a/src/modbus_entity_parameters.hpp b/src/modbus_entity_parameters.hpp deleted file mode 100644 index 783b7bd9e..000000000 --- a/src/modbus_entity_parameters.hpp +++ /dev/null @@ -1,578 +0,0 @@ -#include "modbus.h" -#include "emsdevice.h" - -/* - * This file is auto-generated. Do not modify. - */ - -// clang-format off - -namespace emsesp { - -using dt = EMSdevice::DeviceType; - -#define REGISTER_MAPPING(device_type, device_value_tag_type, long_name, modbus_register_offset, modbus_register_count) \ - { device_type, device_value_tag_type, long_name[0], modbus_register_offset, modbus_register_count } - -// IMPORTANT: This list MUST be ordered by keys "device_type", "device_value_tag_type" and "modbus_register_offset" in this order. -const std::initializer_list Modbus::modbus_register_mappings = { - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(reset), 0, 1), // reset - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(forceHeatingOff), 1, 1), // heatingoff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatingActive), 2, 1), // heatingactive - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(tapwaterActive), 3, 1), // tapwateractive - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(selFlowTemp), 4, 1), // selflowtemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatingPumpMod), 5, 1), // heatingpumpmod - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(outdoorTemp), 6, 1), // outdoortemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(curFlowTemp), 7, 1), // curflowtemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(retTemp), 8, 1), // rettemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(switchTemp), 9, 1), // switchtemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(sysPress), 10, 1), // syspress - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(boilTemp), 11, 1), // boiltemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(headertemp), 12, 1), // headertemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatingActivated), 13, 1), // heatingactivated - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatingTemp), 14, 1), // heatingtemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatingPump), 15, 1), // heatingpump - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pumpModMax), 16, 1), // pumpmodmax - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pumpModMin), 17, 1), // pumpmodmin - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pumpMode), 18, 1), // pumpmode - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pumpCharacter), 19, 1), // pumpcharacter - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pumpDelay), 20, 1), // pumpdelay - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pumpOnTemp), 21, 1), // pumpontemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(selBurnPow), 22, 1), // selburnpow - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(curBurnPow), 23, 1), // curburnpow - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(burnStarts), 24, 2), // burnstarts - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(burnWorkMin), 26, 2), // burnworkmin - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(burn2WorkMin), 28, 2), // burn2workmin - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatWorkMin), 30, 2), // heatworkmin - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatStarts), 32, 2), // heatstarts - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(UBAuptime), 34, 2), // ubauptime - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(lastCode), 36, 28), // lastcode - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(serviceCode), 64, 2), // servicecode - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(serviceCodeNumber), 66, 1), // servicecodenumber - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(maintenanceMessage), 67, 2), // maintenancemessage - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(maintenanceType), 69, 1), // maintenance - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(maintenanceTime), 70, 1), // maintenancetime - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(maintenanceDate), 71, 6), // maintenancedate - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(emergencyOps), 77, 1), // emergencyops - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(emergencyTemp), 78, 1), // emergencytemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgTotal), 79, 2), // nrgtotal - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgHeat), 81, 2), // nrgheat - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgCool), 83, 2), // nrgcool - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(meterTotal), 85, 2), // metertotal - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(meterComp), 87, 2), // metercomp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(meterEHeat), 89, 2), // metereheat - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(meterHeat), 91, 2), // meterheat - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(meterCool), 93, 2), // metercool - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(upTimeTotal), 95, 2), // uptimetotal - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(upTimeControl), 97, 2), // uptimecontrol - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(upTimeCompHeating), 99, 2), // uptimecompheating - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(upTimeCompCooling), 101, 2), // uptimecompcooling - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(upTimeCompPool), 103, 2), // uptimecomppool - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(totalCompStarts), 105, 2), // totalcompstarts - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatingStarts), 107, 2), // heatingstarts - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(coolingStarts), 109, 2), // coolingstarts - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(poolStarts), 111, 2), // poolstarts - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgConsTotal), 113, 2), // nrgconstotal - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgConsCompTotal), 115, 2), // nrgconscomptotal - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgConsCompHeating), 117, 2), // nrgconscompheating - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgConsCompCooling), 119, 2), // nrgconscompcooling - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgConsCompPool), 121, 2), // nrgconscomppool - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxElecHeatNrgConsTotal), 123, 2), // auxelecheatnrgconstotal - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxElecHeatNrgConsHeating), 125, 2), // auxelecheatnrgconsheating - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxElecHeatNrgConsPool), 127, 2), // auxelecheatnrgconspool - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgSuppTotal), 129, 2), // nrgsupptotal - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgSuppHeating), 131, 2), // nrgsuppheating - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgSuppCooling), 133, 2), // nrgsuppcooling - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgSuppPool), 135, 2), // nrgsupppool - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpPower), 137, 1), // hppower - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpMaxPower), 138, 1), // hpmaxpower - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pvMaxComp), 139, 1), // pvmaxcomp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(powerReduction), 140, 1), // powerreduction - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpSetDiffPress), 141, 1), // hpsetdiffpress - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpCompOn), 142, 1), // hpcompon - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpActivity), 143, 1), // hpactivity - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpBrinePumpSpd), 144, 1), // hpbrinepumpspd - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpSwitchValve), 145, 1), // hpswitchvalve - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpCompSpd), 146, 1), // hpcompspd - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpCircSpd), 147, 1), // hpcircspd - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpBrineIn), 148, 1), // hpbrinein - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpBrineOut), 149, 1), // hpbrineout - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTc0), 150, 1), // hptc0 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTc1), 151, 1), // hptc1 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTc3), 152, 1), // hptc3 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTr1), 153, 1), // hptr1 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTr3), 154, 1), // hptr3 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTr4), 155, 1), // hptr4 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTr5), 156, 1), // hptr5 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTr6), 157, 1), // hptr6 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTr7), 158, 1), // hptr7 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTl2), 159, 1), // hptl2 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpPl1), 160, 1), // hppl1 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpPh1), 161, 1), // hpph1 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTa4), 162, 1), // hpta4 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpTw1), 163, 1), // hptw1 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(poolSetTemp), 164, 1), // poolsettemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hp4wayValve), 165, 1), // hp4way - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpInput1), 166, 1), // hpin1 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpIn1Opt), 167, 8), // hpin1opt - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpInput2), 175, 1), // hpin2 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpIn2Opt), 176, 8), // hpin2opt - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpInput3), 184, 1), // hpin3 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpIn3Opt), 185, 8), // hpin3opt - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpInput4), 193, 1), // hpin4 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpIn4Opt), 194, 8), // hpin4opt - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(maxHeatComp), 202, 1), // maxheatcomp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(maxHeatHeat), 203, 1), // maxheatheat - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(manDefrost), 204, 1), // mandefrost - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pvCooling), 205, 1), // pvcooling - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxHeaterOnly), 206, 1), // auxheateronly - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxHeaterOff), 207, 1), // auxheateroff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxHeaterStatus), 208, 1), // auxheaterstatus - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxHeaterLevel), 209, 1), // auxheaterlevel - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxHeaterDelay), 210, 1), // auxheaterdelay - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxMaxLimit), 211, 1), // auxmaxlimit - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxLimitStart), 212, 1), // auxlimitstart - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxHeatMode), 213, 1), // auxheatrmode - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpHystHeat), 214, 1), // hphystheat - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpHystCool), 215, 1), // hphystcool - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpHystPool), 216, 1), // hphystpool - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(silentMode), 217, 1), // silentmode - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(silentFrom), 218, 1), // silentfrom - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(silentTo), 219, 1), // silentto - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(minTempSilent), 220, 1), // mintempsilent - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(tempParMode), 221, 1), // tempparmode - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(auxHeatMixValve), 222, 1), // auxheatmix - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(tempDiffHeat), 223, 1), // tempdiffheat - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(tempDiffCool), 224, 1), // tempdiffcool - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(vp_cooling), 225, 1), // vpcooling - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatCable), 226, 1), // heatcable - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(VC0valve), 227, 1), // vc0valve - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(primePump), 228, 1), // primepump - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(primePumpMod), 229, 1), // primepumpmod - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hp3wayValve), 230, 1), // hp3way - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(elHeatStep1), 231, 1), // elheatstep1 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(elHeatStep2), 232, 1), // elheatstep2 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(elHeatStep3), 233, 1), // elheatstep3 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpEA0), 234, 1), // hpea0 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpPumpMode), 235, 1), // hppumpmode - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpFan), 236, 1), // fan - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpShutdown), 237, 1), // shutdown - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpCurrPower), 238, 1), // hpcurrpower - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(hpPowerLimit), 239, 1), // hppowerlimit - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pc0Flow), 240, 1), // pc0flow - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pc1Flow), 241, 1), // pc1flow - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pc1On), 242, 1), // pc1on - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(pc1Rate), 243, 1), // pc1rate - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(exhaustTemp), 244, 1), // exhausttemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(burnGas), 245, 1), // burngas - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(burnGas2), 246, 1), // burngas2 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(flameCurr), 247, 1), // flamecurr - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(fanWork), 248, 1), // fanwork - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(ignWork), 249, 1), // ignwork - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(oilPreHeat), 250, 1), // oilpreheat - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(burnMinPower), 251, 1), // burnminpower - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(burnMaxPower), 252, 1), // burnmaxpower - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(burnMinPeriod), 253, 1), // burnminperiod - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(absBurnPow), 254, 1), // absburnpow - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatblock), 255, 1), // heatblock - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(boilHystOn), 256, 1), // boilhyston - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(boilHystOff), 257, 1), // boilhystoff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(boil2HystOn), 258, 1), // boil2hyston - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(boil2HystOff), 259, 1), // boil2hystoff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(curveOn), 260, 1), // curveon - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(curveBase), 261, 1), // curvebase - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(curveEnd), 262, 1), // curveend - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(summertemp), 263, 1), // summertemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nofrostmode), 264, 1), // nofrostmode - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nofrosttemp), 265, 1), // nofrosttemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(gasMeterHeat), 266, 2), // gasmeterheat - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nrgHeat2), 268, 2), // nrgheat2 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(nomPower), 270, 1), // nompower - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(netFlowTemp), 271, 1), // netflowtemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatValve), 272, 1), // heatvalve - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(keepWarmTemp), 273, 1), // keepwarmtemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(setReturnTemp), 274, 1), // setreturntemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DEVICE_DATA, FL_(heatingOn), 275, 1), // heating - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(nrgWw), 0, 2), // nrg - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(meterWw), 2, 2), // meter - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(upTimeCompWw), 4, 2), // uptimecomp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwStartsHp), 6, 2), // startshp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(nrgConsCompWw), 8, 2), // nrgconscomp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(auxElecHeatNrgConsWw), 10, 2), // auxelecheatnrgcons - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(nrgSuppWw), 12, 2), // nrgsupp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(maxHeatDhw), 14, 1), // maxheat - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwAlternatingOper), 15, 1), // alternatingop - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwAltOpPrioHeat), 16, 1), // altopprioheat - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwAltOpPrioWw), 17, 1), // altopprio - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwComfOffTemp), 18, 1), // comfoff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwEcoOffTemp), 19, 1), // ecooff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwEcoPlusOffTemp), 20, 1), // ecoplusoff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwComfDiffTemp), 21, 1), // comfdiff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwEcoDiffTemp), 22, 1), // ecodiff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwEcoPlusDiffTemp), 23, 1), // ecoplusdiff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwComfStopTemp), 24, 1), // comfstop - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwEcoStopTemp), 25, 1), // ecostop - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwEcoPlusStopTemp), 26, 1), // ecoplusstop - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(hpCircPumpWw), 27, 1), // hpcircpump - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwtapactivated), 28, 1), // tapactivated - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwSetTemp), 29, 1), // settemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(selRoomTemp), 30, 1), // seltemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwSelTempLow), 31, 1), // seltemplow - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwSelTempEco), 32, 1), // tempecoplus - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwSelTempOff), 33, 1), // seltempoff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwSelTempSingle), 34, 1), // seltempsingle - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwSolarTemp), 35, 1), // solartemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwType), 36, 1), // type - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwComfort), 37, 1), // comfort - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwComfort1), 38, 1), // comfort1 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(flowtempoffset), 39, 1), // flowtempoffset - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwChargeOptimization), 40, 1), // chargeoptimization - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwMaxPower), 41, 1), // maxpower - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwMaxTemp), 42, 1), // maxtemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwCircPump), 43, 1), // circpump - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwChargeType), 44, 1), // chargetype - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwHystOn), 45, 1), // hyston - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwHystOff), 46, 1), // hystoff - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwDisinfectionTemp), 47, 1), // disinfectiontemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwCircMode), 48, 1), // circmode - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwCirc), 49, 1), // circ - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwCurTemp), 50, 1), // curtemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwCurTemp2), 51, 1), // curtemp2 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwCurFlow), 52, 1), // curflow - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwStorageTemp1), 53, 1), // storagetemp1 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwStorageTemp2), 54, 1), // storagetemp2 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(activated), 55, 1), // activated - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwOneTime), 56, 1), // onetime - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwDisinfecting), 57, 1), // disinfecting - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwCharging), 58, 1), // charging - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwRecharging), 59, 1), // recharging - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwTempOK), 60, 1), // tempok - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwActive), 61, 1), // active - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(ww3wayValve), 62, 1), // 3wayvalve - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwMixerTemp), 63, 1), // mixertemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(cylMiddleTemp), 64, 1), // cylmiddletemp - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwStarts), 65, 2), // starts - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwWorkM), 67, 2), // workm - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(gasMeterWw), 69, 2), // gasmeter - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(nrgWw2), 71, 2), // nrg2 - REGISTER_MAPPING(dt::BOILER, TAG_TYPE_DHW, FL_(wwValve), 73, 1), // dhwvalve - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(errorCode), 0, 8), // errorcode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(lastCode), 8, 25), // lastcode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(dateTime), 33, 13), // datetime - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(ibaCalIntTemperature), 46, 1), // intoffset - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(floordrystatus), 47, 1), // floordry - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(dampedoutdoortemp), 48, 1), // dampedoutdoortemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(floordrytemp), 49, 1), // floordrytemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(ibaBuildingType), 50, 1), // building - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(ibaMinExtTemperature), 51, 1), // minexttemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(damping), 52, 1), // damping - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(hasSolar), 53, 1), // solar - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(hybridStrategy), 54, 1), // hybridstrategy - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(switchOverTemp), 55, 1), // switchovertemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(energyCostRatio), 56, 1), // energycostratio - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(fossileFactor), 57, 1), // fossilefactor - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(electricFactor), 58, 1), // electricfactor - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(delayBoiler), 59, 1), // delayboiler - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(tempDiffBoiler), 60, 1), // tempdiffboiler - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(pvEnableWw), 61, 1), // pvenabledhw - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(pvRaiseHeat), 62, 1), // pvraiseheat - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(pvLowerCool), 63, 1), // pvlowercool - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(absent), 64, 1), // absent - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(ibaMainDisplay), 65, 1), // display - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(ibaLanguage), 66, 1), // language - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(ibaClockOffset), 67, 1), // clockoffset - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(tempsensor1), 68, 1), // inttemp1 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(tempsensor2), 69, 1), // inttemp2 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(autodst), 70, 1), // autodst - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(backlight), 71, 1), // backlight - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(brightness), 72, 1), // brightness - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(mixingvalves), 73, 1), // mixingvalves - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(heatingPID), 74, 1), // heatingpid - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(preheating), 75, 1), // preheating - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DEVICE_DATA, FL_(vacations), 76, 13), // vacations - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(selRoomTemp), 0, 1), // seltemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(roomTemp), 1, 1), // currtemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(haclimate), 2, 1), // haclimate - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(mode), 3, 1), // mode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(modetype), 4, 1), // modetype - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(ecotemp), 5, 1), // ecotemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(manualtemp), 6, 1), // manualtemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(comforttemp), 7, 1), // comforttemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(summertemp), 8, 1), // summertemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(designtemp), 9, 1), // designtemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(offsettemp), 10, 1), // offsettemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(minflowtemp), 11, 1), // minflowtemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(maxflowtemp), 12, 1), // maxflowtemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(roominfluence), 13, 1), // roominfluence - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(roominfl_factor), 14, 1), // roominflfactor - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(curroominfl), 15, 1), // curroominfl - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(nofrostmode), 16, 1), // nofrostmode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(nofrosttemp), 17, 1), // nofrosttemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(targetflowtemp), 18, 1), // targetflowtemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(heatingtype), 19, 1), // heatingtype - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(summersetmode), 20, 1), // summersetmode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(hpoperatingmode), 21, 1), // hpoperatingmode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(summermode), 22, 1), // summermode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(hpoperatingstate), 23, 1), // hpoperatingstate - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(controlmode), 24, 1), // controlmode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(program), 25, 1), // program - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(tempautotemp), 26, 1), // tempautotemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(remoteseltemp), 27, 1), // remoteseltemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(fastheatup), 28, 1), // fastheatup - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchonoptimization), 29, 1), // switchonoptimization - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(reducemode), 30, 1), // reducemode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(noreducetemp), 31, 1), // noreducetemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(reducetemp), 32, 1), // reducetemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(wwprio), 33, 1), // dhwprio - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(hpcooling), 34, 1), // hpcooling - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(coolingOn), 35, 1), // coolingon - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(hpmode), 36, 1), // hpmode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(dewoffset), 37, 1), // dewoffset - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(roomtempdiff), 38, 1), // roomtempdiff - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(hpminflowtemp), 39, 1), // hpminflowtemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(control), 40, 1), // control - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(remotetemp), 41, 1), // remotetemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(remotehum), 42, 1), // remotehum - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(heatondelay), 43, 1), // heatondelay - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(heatoffdelay), 44, 1), // heatoffdelay - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(instantstart), 45, 1), // instantstart - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(boost), 46, 1), // boost - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(boosttime), 47, 1), // boosttime - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(coolstart), 48, 1), // coolstart - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(coolondelay), 49, 1), // coolondelay - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(cooloffdelay), 50, 1), // cooloffdelay - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchProgMode), 51, 1), // switchprogmode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(redthreshold), 52, 1), // redthreshold - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daytemp), 53, 1), // daytemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(nighttemp2), 54, 1), // nighttemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(holidaytemp), 55, 1), // holidaytemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(holidaymode), 56, 1), // holidaymode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(flowtempoffset), 57, 1), // flowtempoffset - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(holidays), 58, 13), // holidays - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations), 71, 13), // vacations - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(pause), 84, 1), // pause - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(party), 85, 1), // party - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacreducetemp), 86, 1), // vacreducetemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacreducemode), 87, 1), // vacreducemode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchtime1), 88, 8), // switchtime1 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchtime2), 96, 8), // switchtime2 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(offtemp), 104, 1), // offtemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daylowtemp), 105, 1), // daytemp2 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daymidtemp), 106, 1), // daytemp3 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(dayhightemp), 107, 1), // daytemp4 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchtime), 108, 8), // switchtime - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations1), 116, 11), // vacations1 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations2), 127, 11), // vacations2 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations3), 138, 11), // vacations3 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations4), 149, 11), // vacations4 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations5), 160, 11), // vacations5 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations6), 171, 11), // vacations6 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations7), 182, 11), // vacations7 - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(reducehours), 193, 1), // reducehours - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(reduceminutes), 194, 1), // reduceminutes - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(heattemp), 195, 1), // heattemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(roomsensor), 196, 1), // roomsensor - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(heatup), 197, 1), // heatup - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(solarinfl), 198, 1), // solarinfl - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(currsolarinfl), 199, 1), // currsolarinfl - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(mode), 0, 1), // mode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwSetTemp), 1, 1), // settemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwSetTempLow), 2, 1), // settemplow - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwCircMode), 3, 1), // circmode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwChargeDuration), 4, 1), // chargeduration - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwCharge), 5, 1), // charge - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwExtra), 6, 1), // extra - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwDisinfecting), 7, 1), // disinfecting - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwDisinfectDay), 8, 1), // disinfectday - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwDisinfectTime), 9, 1), // disinfecttime - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwDailyHeating), 10, 1), // dailyheating - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwDailyHeatTime), 11, 1), // dailyheattime - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwProgMode), 12, 1), // progmode - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwCircProg), 13, 1), // circprog - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwDisinfectHour), 14, 1), // disinfecthour - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwMaxTemp), 15, 1), // maxtemp - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwOneTimeKey), 16, 1), // onetimekey - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwswitchtime), 17, 11), // switchtimeWW - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwcircswitchtime), 28, 8), // circswitchtime - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(holidays), 36, 13), // holidays - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(vacations), 49, 13), // vacations - REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwWhenModeOff), 62, 1), // whenmodeoff - REGISTER_MAPPING(dt::MIXER, TAG_TYPE_HC, FL_(flowTempHc), 0, 1), // flowtemphc - REGISTER_MAPPING(dt::MIXER, TAG_TYPE_HC, FL_(valveStatus), 1, 1), // valvestatus - REGISTER_MAPPING(dt::MIXER, TAG_TYPE_HC, FL_(flowSetTemp), 2, 1), // flowsettemp - REGISTER_MAPPING(dt::MIXER, TAG_TYPE_HC, FL_(wwPumpStatus), 3, 1), // pumpstatus - REGISTER_MAPPING(dt::MIXER, TAG_TYPE_HC, FL_(activated), 4, 1), // activated - REGISTER_MAPPING(dt::MIXER, TAG_TYPE_HC, FL_(mixerSetTime), 5, 1), // valvesettime - REGISTER_MAPPING(dt::MIXER, TAG_TYPE_HC, FL_(flowTempVf), 6, 1), // flowtempvf - REGISTER_MAPPING(dt::MIXER, TAG_TYPE_HC, FL_(flowtempoffset), 7, 1), // flowtempoffset - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(collectorTemp), 0, 1), // collectortemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(cylBottomTemp), 1, 1), // cylbottomtemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPump), 2, 1), // solarpump - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(pumpWorkTime), 3, 2), // pumpworktime - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(cylMaxTemp), 5, 1), // cylmaxtemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(collectorShutdown), 6, 1), // collectorshutdown - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(cylHeated), 7, 1), // cylheated - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPumpMod), 8, 1), // solarpumpmod - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(pumpMinMod), 9, 1), // pumpminmod - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPumpTurnonDiff), 10, 1), // turnondiff - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPumpTurnoffDiff), 11, 1), // turnoffdiff - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPower), 12, 1), // solarpower - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(energyLastHour), 13, 2), // energylasthour - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(maxFlow), 15, 1), // maxflow - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarIsEnabled), 16, 1), // solarenabled - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(cylMiddleTemp), 17, 1), // cylmiddletemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(retHeatAssist), 18, 1), // retheatassist - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(m1Valve), 19, 1), // heatassistvalve - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(collector2Temp), 20, 1), // collector2temp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(m1Power), 21, 1), // heatassistpower - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPump2), 22, 1), // solarpump2 - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPump2Mod), 23, 1), // solarpump2mod - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(cyl2BottomTemp), 24, 1), // cyl2bottomtemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(cyl3BottomTemp), 25, 1), // cyl3bottomtemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(cylTopTemp), 26, 1), // cyltoptemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(heatExchangerTemp), 27, 1), // heatexchangertemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(cylPumpMod), 28, 1), // cylpumpmod - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(valveStatus), 29, 1), // valvestatus - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(vs1Status), 30, 1), // vs1status - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(vs3Status), 31, 1), // vs3status - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(transferPump), 32, 1), // transferpump - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(transferPumpMod), 33, 1), // transferpumpmod - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(collectorMaxTemp), 34, 1), // collectormaxtemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(collectorMinTemp), 35, 1), // collectormintemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(energyToday), 36, 2), // energytoday - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(energyTotal), 38, 2), // energytotal - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(pump2WorkTime), 40, 2), // pump2worktime - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(m1WorkTime), 42, 2), // m1worktime - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(heatTransferSystem), 44, 1), // heattransfersystem - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(externalCyl), 45, 1), // externalcyl - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(thermalDisinfect), 46, 1), // thermaldisinfect - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(heatMetering), 47, 1), // heatmetering - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(activated), 48, 1), // activated - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPumpMode), 49, 1), // solarpumpmode - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPumpKick), 50, 1), // solarpumpkick - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(plainWaterMode), 51, 1), // plainwatermode - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(doubleMatchFlow), 52, 1), // doublematchflow - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(pump2MinMod), 53, 1), // pump2minmod - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPump2TurnonDiff), 54, 1), // turnondiff2 - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPump2TurnoffDiff), 55, 1), // turnoffdiff2 - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(solarPump2Kick), 56, 1), // pump2kick - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(climateZone), 57, 1), // climatezone - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(collector1Area), 58, 1), // collector1area - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(collector1Type), 59, 1), // collector1type - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(collector2Area), 60, 1), // collector2area - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(collector2Type), 61, 1), // collector2type - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(cylPriority), 62, 1), // cylpriority - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(heatCntFlowTemp), 63, 1), // heatcntflowtemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(heatCntRetTemp), 64, 1), // heatcntrettemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(heatCnt), 65, 1), // heatcnt - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(swapFlowTemp), 66, 1), // swapflowtemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DEVICE_DATA, FL_(swapRetTemp), 67, 1), // swaprettemp - REGISTER_MAPPING(dt::SOLAR, TAG_TYPE_DHW, FL_(wwMinTemp), 0, 1), // mintemp - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(airHumidity), 0, 1), // airhumidity - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(dewTemperature), 1, 1), // dewtemperature - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(curFlowTemp), 2, 1), // curflowtemp - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(retTemp), 3, 1), // rettemp - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(sysRetTemp), 4, 1), // sysrettemp - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hpTa4), 5, 1), // hpta4 - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hpTr1), 6, 1), // hptr1 - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hpTr3), 7, 1), // hptr3 - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hpTr4), 8, 1), // hptr4 - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hpTr5), 9, 1), // hptr5 - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hpTr6), 10, 1), // hptr6 - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hpTl2), 11, 1), // hptl2 - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hpPl1), 12, 1), // hppl1 - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hpPh1), 13, 1), // hpph1 - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(heatingPumpMod), 14, 1), // heatingpumpmod - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hpCompSpd), 15, 1), // hpcompspd - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(hybridStrategy), 16, 1), // hybridstrategy - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(lowNoiseMode), 17, 1), // lownoisemode - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(lowNoiseStart), 18, 1), // lownoisestart - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(lowNoiseStop), 19, 1), // lownoisestop - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(energyPriceGas), 20, 1), // energypricegas - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(energyPriceEl), 21, 1), // energypriceel - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(energyPricePV), 22, 1), // energyfeedpv - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(switchOverTemp), 23, 1), // switchovertemp - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(airPurgeMode), 24, 1), // airpurgemode - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(heatPumpOutput), 25, 1), // heatpumpoutput - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(coolingCircuit), 26, 1), // coolingcircuit - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(compStartMod), 27, 1), // compstartmod - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(heatDrainPan), 28, 1), // heatdrainpan - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(heatCable), 29, 1), // heatcable - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(nrgTotal), 30, 2), // nrgtotal - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(nrgHeat), 32, 2), // nrgheat - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(meterTotal), 34, 2), // metertotal - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(meterComp), 36, 2), // metercomp - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(meterEHeat), 38, 2), // metereheat - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(meterHeat), 40, 2), // meterheat - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(heatingStarts), 42, 2), // heatingstarts - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(fuelHeat), 44, 2), // fuelheat - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(elHeat), 46, 2), // elheat - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DEVICE_DATA, FL_(elGenHeat), 48, 2), // elgenheat - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DHW, FL_(hybridDHW), 0, 1), // hybriddhw - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DHW, FL_(nrgWw), 1, 2), // nrg - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DHW, FL_(meterWw), 3, 2), // meter - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DHW, FL_(wwStartsHp), 5, 2), // startshp - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DHW, FL_(fuelDhw), 7, 2), // fueldhw - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DHW, FL_(elDhw), 9, 2), // eldhw - REGISTER_MAPPING(dt::HEATPUMP, TAG_TYPE_DHW, FL_(elGenDhw), 11, 2), // elgendhw - REGISTER_MAPPING(dt::SWITCH, TAG_TYPE_DEVICE_DATA, FL_(activated), 0, 1), // activated - REGISTER_MAPPING(dt::SWITCH, TAG_TYPE_DEVICE_DATA, FL_(flowTempHc), 1, 1), // flowtemphc - REGISTER_MAPPING(dt::SWITCH, TAG_TYPE_DEVICE_DATA, FL_(status), 2, 1), // status - REGISTER_MAPPING(dt::CONTROLLER, TAG_TYPE_DEVICE_DATA, FL_(dateTime), 0, 13), // datetime - REGISTER_MAPPING(dt::ALERT, TAG_TYPE_DEVICE_DATA, FL_(setFlowTemp), 0, 1), // setflowtemp - REGISTER_MAPPING(dt::ALERT, TAG_TYPE_DEVICE_DATA, FL_(setBurnPow), 1, 1), // setburnpow - REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(flowTempVf), 0, 1), // flowtempvf - REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(input), 1, 1), // input - REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(outPower), 2, 1), // outpow - REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(setPower), 3, 1), // setpower - REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(setPoint), 4, 1), // setpoint - REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(minV), 5, 1), // minv - REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(maxV), 6, 1), // maxv - REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(minT), 7, 1), // mint - REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(maxT), 8, 1), // maxt - REGISTER_MAPPING(dt::EXTENSION, TAG_TYPE_DEVICE_DATA, FL_(mode), 9, 1), // mode - REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(outFresh), 0, 1), // outfresh - REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(inFresh), 1, 1), // infresh - REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(outEx), 2, 1), // outexhaust - REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(inEx), 3, 1), // inexhaust - REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(ventInSpeed), 4, 1), // ventinspeed - REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(ventOutSpeed), 5, 1), // ventoutspeed - REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(ventMode), 6, 1), // ventmode - REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(airquality), 7, 1), // airquality - REGISTER_MAPPING(dt::VENTILATION, TAG_TYPE_DEVICE_DATA, FL_(airHumidity), 8, 1), // airhumidity - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(selRoomTemp), 0, 1), // seltemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwTemp), 1, 1), // temp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwCurTemp2), 2, 1), // curtemp2 - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(hydrTemp), 3, 1), // hydrTemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwPump), 4, 1), // pump - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(flowtempoffset), 5, 1), // flowtempoffset - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwHystOn), 6, 1), // hyston - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwHystOff), 7, 1), // hystoff - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwDisinfectionTemp), 8, 1), // disinfectiontemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwCirc), 9, 1), // circ - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwCircMode), 10, 1), // circmode - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwTempStatus), 11, 1), // tempstatus - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwMaxTemp), 12, 1), // maxtemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwDiffTemp), 13, 1), // difftemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwRedTemp), 14, 1), // redtemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwRequiredTemp), 15, 1), // requiredtemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwStorageTemp1), 16, 1), // storagetemp1 - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwColdTemp), 17, 1), // coldtemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwTemp5), 18, 1), // temp5 - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(retTemp), 19, 1), // rettemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwHotTemp), 20, 1), // hottemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwDailyTemp), 21, 1), // dailytemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwCircTc), 22, 1), // circtc - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwKeepWarm), 23, 1), // keepwarm - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwStatus2), 24, 1), // status2 - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwPumpMod), 25, 1), // pumpmod - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwFlow), 26, 1), // flow - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(valveReturn), 27, 1), // valvereturn - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(deltaTRet), 28, 1), // deltatret - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(errorDisp), 29, 1), // errordisp -}; - -} // namespace emsesp - -// clang-format off - From 0b667703c283ceef8d590acb150c6c77426ae3c4 Mon Sep 17 00:00:00 2001 From: proddy Date: Thu, 16 Jan 2025 21:55:36 +0100 Subject: [PATCH 12/15] update --- cspell.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cspell.json b/cspell.json index 0399782b1..2cca22a36 100644 --- a/cspell.json +++ b/cspell.json @@ -30,6 +30,6 @@ "Makefile", "**/*.ini", "**/*.json", - "src/modbus_entity_parameters.hpp" + "src/core/modbus_entity_parameters.hpp" ] } \ No newline at end of file From 5482937332f8d75d1589a57edcb10bae98df8aad Mon Sep 17 00:00:00 2001 From: proddy Date: Thu, 16 Jan 2025 21:55:51 +0100 Subject: [PATCH 13/15] detect browser language if non set --- interface/src/App.tsx | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/interface/src/App.tsx b/interface/src/App.tsx index e25f48aa4..ae2023e73 100644 --- a/interface/src/App.tsx +++ b/interface/src/App.tsx @@ -4,28 +4,46 @@ import { Slide, ToastContainer } from 'react-toastify'; import AppRouting from 'AppRouting'; import CustomTheme from 'CustomTheme'; import TypesafeI18n from 'i18n/i18n-react'; -import { detectLocale } from 'i18n/i18n-util'; +import type { Locales } from 'i18n/i18n-types'; import { loadLocaleAsync } from 'i18n/i18n-util.async'; -import { localStorageDetector } from 'typesafe-i18n/detectors'; +import { detectLocale, navigatorDetector } from 'typesafe-i18n/detectors'; -const detectedLocale = detectLocale(localStorageDetector); +const availableLocales = [ + 'de', + 'en', + 'it', + 'fr', + 'nl', + 'no', + 'pl', + 'sk', + 'sv', + 'tr', + 'cz' +]; const App = () => { const [wasLoaded, setWasLoaded] = useState(false); + const [locale, setLocale] = useState('en'); useEffect(() => { - void loadLocaleAsync(detectedLocale).then(() => setWasLoaded(true)); + // determine locale, take from session if set other default to browser language + const browserLocale = detectLocale('en', availableLocales, navigatorDetector); + const newLocale = (localStorage.getItem('lang') || browserLocale) as Locales; + localStorage.setItem('lang', newLocale); + setLocale(newLocale); + void loadLocaleAsync(newLocale).then(() => setWasLoaded(true)); }, []); if (!wasLoaded) return null; return ( - + Date: Thu, 16 Jan 2025 21:57:53 +0100 Subject: [PATCH 14/15] remove comments --- lib_standalone/ArduinoJson.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib_standalone/ArduinoJson.h b/lib_standalone/ArduinoJson.h index 644d19c6c..1d27ef04a 100644 --- a/lib_standalone/ArduinoJson.h +++ b/lib_standalone/ArduinoJson.h @@ -2450,7 +2450,7 @@ class VariantData { return; var->removeMember(key, resources); } - void reset() { // TODO: remove + void reset() { type_ = VariantType::Null; } void setBoolean(bool value) { @@ -4313,7 +4313,7 @@ template struct Comparer; template struct Comparer::value>> : ComparerBase { - T rhs; // TODO: store adapted string? + T rhs; explicit Comparer(T value) : rhs(value) {} CompareResult visit(JsonString lhs) { int i = stringCompare(adaptString(rhs), adaptString(lhs)); @@ -5377,7 +5377,7 @@ class StringBuilder { append(*s++); } void append(const char* s, size_t n) { - while (n-- > 0) // TODO: memcpy + while (n-- > 0) append(*s++); } void append(char c) { From 9123dbcc9e3994f5d54f5cc20cb7a190a67e38c5 Mon Sep 17 00:00:00 2001 From: proddy Date: Thu, 16 Jan 2025 21:58:13 +0100 Subject: [PATCH 15/15] 3.7.2-dev.11 --- src/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/version.h b/src/version.h index 8dc02cafc..7fe9140fd 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.7.2-dev.10" +#define EMSESP_APP_VERSION "3.7.2-dev.11"