12 Commits

Author SHA1 Message Date
Proddy
6bc40ce2e1 Merge pull request #2815 from proddy/dev
package update
2025-12-14 12:44:48 +01:00
Proddy
84544979fa Merge branch 'emsesp:dev' into dev 2025-12-14 12:44:23 +01:00
proddy
2446e4d1fd package update 2025-12-14 12:44:04 +01:00
Proddy
4a15b39945 Merge pull request #2814 from MichaelDvP/dev
remove unused parameter
2025-12-14 12:12:19 +01:00
MichaelDvP
df080bbad9 Merge branch 'dev' of https://github.com/emsesp/EMS-ESP32 into dev 2025-12-14 11:32:46 +01:00
Proddy
8632af8820 Merge pull request #2813 from proddy/dev
fix HA modes (#2812)
2025-12-14 11:07:58 +01:00
Proddy
27047c0f39 Merge branch 'emsesp:dev' into dev 2025-12-14 11:07:33 +01:00
proddy
95de3e339d fix HA modes 2025-12-14 11:07:16 +01:00
MichaelDvP
99f44aece5 remove unused parameter 2025-12-14 09:23:28 +01:00
MichaelDvP
4e589aecbf Merge branch 'dev' of https://github.com/emsesp/EMS-ESP32 into dev 2025-12-14 09:20:58 +01:00
MichaelDvP
068744b681 config check 2025-12-13 15:01:14 +01:00
MichaelDvP
c8ab89ef37 fix pl translation 2025-12-13 10:52:58 +01:00
7 changed files with 54 additions and 54 deletions

View File

@@ -23,14 +23,14 @@
"standalone-devcontainer": "concurrently -c \"auto\" \"typesafe-i18n\" \"pnpm:mock-rest\" \"vite --host\"" "standalone-devcontainer": "concurrently -c \"auto\" \"typesafe-i18n\" \"pnpm:mock-rest\" \"vite --host\""
}, },
"dependencies": { "dependencies": {
"@alova/adapter-xhr": "2.3.0", "@alova/adapter-xhr": "2.3.1",
"@emotion/react": "^11.14.0", "@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.1", "@emotion/styled": "^11.14.1",
"@mui/icons-material": "^7.3.6", "@mui/icons-material": "^7.3.6",
"@mui/material": "^7.3.6", "@mui/material": "^7.3.6",
"@preact/compat": "^18.3.1", "@preact/compat": "^18.3.1",
"@table-library/react-table-library": "4.1.15", "@table-library/react-table-library": "4.1.15",
"alova": "3.4.0", "alova": "3.4.1",
"async-validator": "^4.2.5", "async-validator": "^4.2.5",
"etag": "^1.8.1", "etag": "^1.8.1",
"formidable": "^3.5.4", "formidable": "^3.5.4",
@@ -52,7 +52,7 @@
"@preact/compat": "^18.3.1", "@preact/compat": "^18.3.1",
"@preact/preset-vite": "^2.10.2", "@preact/preset-vite": "^2.10.2",
"@trivago/prettier-plugin-sort-imports": "^6.0.0", "@trivago/prettier-plugin-sort-imports": "^6.0.0",
"@types/node": "^25.0.1", "@types/node": "^25.0.2",
"@types/react": "^19.2.7", "@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3", "@types/react-dom": "^19.2.3",
"axe-core": "^4.11.0", "axe-core": "^4.11.0",

View File

@@ -9,8 +9,8 @@ importers:
.: .:
dependencies: dependencies:
'@alova/adapter-xhr': '@alova/adapter-xhr':
specifier: 2.3.0 specifier: 2.3.1
version: 2.3.0(alova@3.4.0) version: 2.3.1(alova@3.4.1)
'@emotion/react': '@emotion/react':
specifier: ^11.14.0 specifier: ^11.14.0
version: 11.14.0(@types/react@19.2.7)(react@19.2.3) version: 11.14.0(@types/react@19.2.7)(react@19.2.3)
@@ -30,8 +30,8 @@ importers:
specifier: 4.1.15 specifier: 4.1.15
version: 4.1.15(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) version: 4.1.15(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
alova: alova:
specifier: 3.4.0 specifier: 3.4.1
version: 3.4.0 version: 3.4.1
async-validator: async-validator:
specifier: ^4.2.5 specifier: ^4.2.5
version: 4.2.5 version: 4.2.5
@@ -83,13 +83,13 @@ importers:
version: 9.39.2 version: 9.39.2
'@preact/preset-vite': '@preact/preset-vite':
specifier: ^2.10.2 specifier: ^2.10.2
version: 2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)) version: 2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.2)(terser@5.44.1))
'@trivago/prettier-plugin-sort-imports': '@trivago/prettier-plugin-sort-imports':
specifier: ^6.0.0 specifier: ^6.0.0
version: 6.0.0(prettier@3.7.4) version: 6.0.0(prettier@3.7.4)
'@types/node': '@types/node':
specifier: ^25.0.1 specifier: ^25.0.2
version: 25.0.1 version: 25.0.2
'@types/react': '@types/react':
specifier: ^19.2.7 specifier: ^19.2.7
version: 19.2.7 version: 19.2.7
@@ -122,23 +122,23 @@ importers:
version: 8.49.0(eslint@9.39.2)(typescript@5.9.3) version: 8.49.0(eslint@9.39.2)(typescript@5.9.3)
vite: vite:
specifier: ^7.2.7 specifier: ^7.2.7
version: 7.2.7(@types/node@25.0.1)(terser@5.44.1) version: 7.2.7(@types/node@25.0.2)(terser@5.44.1)
vite-plugin-imagemin: vite-plugin-imagemin:
specifier: ^0.6.1 specifier: ^0.6.1
version: 0.6.1(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)) version: 0.6.1(vite@7.2.7(@types/node@25.0.2)(terser@5.44.1))
vite-tsconfig-paths: vite-tsconfig-paths:
specifier: ^5.1.4 specifier: ^5.1.4
version: 5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)) version: 5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.2)(terser@5.44.1))
packages: packages:
'@alova/adapter-xhr@2.3.0': '@alova/adapter-xhr@2.3.1':
resolution: {integrity: sha512-IegkchjfXFxXgn6JUZuVEHFQn+jojzrnNdzrGhX5ecEOIC8M/CQvLQzXjLeT6PbGiwnXwvZWL2ya4eqQz51+uQ==} resolution: {integrity: sha512-mhViueeSJ6yfyEUvHIWyZlb6V8+9GJCzwU1hUsvjXSZHpkzGCeNUefxjjFC++K9UBsvUzJ5KGeyeqoToUQg3gg==}
peerDependencies: peerDependencies:
alova: ^3.0.20 alova: ^3.0.20
'@alova/shared@1.3.1': '@alova/shared@1.3.2':
resolution: {integrity: sha512-ijSOaFLUFcVzMKSY3avoEE5C03/p9atjMDPBwvNkwnzaCrhv6/m4A121NdadF8YlHCRuifyYfz90IyEdMXTsJg==} resolution: {integrity: sha512-1XvDLWgYpVZ99MmLl1f3Fw4T6S6pPYk5afz5cwRVjuq8JXEGsDn9IygDKfvRyWqkqCBx7Jif07LIct1O+MVEow==}
'@babel/code-frame@7.27.1': '@babel/code-frame@7.27.1':
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
@@ -860,8 +860,8 @@ packages:
resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==}
deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed.
'@types/node@25.0.1': '@types/node@25.0.2':
resolution: {integrity: sha512-czWPzKIAXucn9PtsttxmumiQ9N0ok9FrBwgRWrwmVLlp86BrMExzvXRLFYRJ+Ex3g6yqj+KuaxfX1JTgV2lpfg==} resolution: {integrity: sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA==}
'@types/parse-json@4.0.2': '@types/parse-json@4.0.2':
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
@@ -960,8 +960,8 @@ packages:
ajv@6.12.6: ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
alova@3.4.0: alova@3.4.1:
resolution: {integrity: sha512-/vSvVbA45CHg34Y5erx+wVxy1B/n4UoGX7dKqSpLVz9cDSDSOhqCnRD/dV+AErjMmQeVpJrjmDT7SCkhQbnUeQ==} resolution: {integrity: sha512-xGChKIiCHDqcMglF9RyuWAsk+ltwnja8Dp4MgRIRbUlhOi8XFiQnaoWwIQzJcODKeblmmiFAK7YrYnpskFZWLA==}
engines: {node: '>= 18.0.0'} engines: {node: '>= 18.0.0'}
ansi-regex@2.1.1: ansi-regex@2.1.1:
@@ -3095,12 +3095,12 @@ packages:
snapshots: snapshots:
'@alova/adapter-xhr@2.3.0(alova@3.4.0)': '@alova/adapter-xhr@2.3.1(alova@3.4.1)':
dependencies: dependencies:
'@alova/shared': 1.3.1 '@alova/shared': 1.3.2
alova: 3.4.0 alova: 3.4.1
'@alova/shared@1.3.1': {} '@alova/shared@1.3.2': {}
'@babel/code-frame@7.27.1': '@babel/code-frame@7.27.1':
dependencies: dependencies:
@@ -3595,18 +3595,18 @@ snapshots:
dependencies: dependencies:
preact: 10.28.0 preact: 10.28.0
'@preact/preset-vite@2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1))': '@preact/preset-vite@2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.2)(terser@5.44.1))':
dependencies: dependencies:
'@babel/core': 7.28.5 '@babel/core': 7.28.5
'@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5)
'@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.5)
'@prefresh/vite': 2.4.11(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)) '@prefresh/vite': 2.4.11(preact@10.28.0)(vite@7.2.7(@types/node@25.0.2)(terser@5.44.1))
'@rollup/pluginutils': 4.2.1 '@rollup/pluginutils': 4.2.1
babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.5) babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.5)
debug: 4.4.3 debug: 4.4.3
picocolors: 1.1.1 picocolors: 1.1.1
vite: 7.2.7(@types/node@25.0.1)(terser@5.44.1) vite: 7.2.7(@types/node@25.0.2)(terser@5.44.1)
vite-prerender-plugin: 0.5.12(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)) vite-prerender-plugin: 0.5.12(vite@7.2.7(@types/node@25.0.2)(terser@5.44.1))
transitivePeerDependencies: transitivePeerDependencies:
- preact - preact
- supports-color - supports-color
@@ -3619,7 +3619,7 @@ snapshots:
'@prefresh/utils@1.2.1': {} '@prefresh/utils@1.2.1': {}
'@prefresh/vite@2.4.11(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1))': '@prefresh/vite@2.4.11(preact@10.28.0)(vite@7.2.7(@types/node@25.0.2)(terser@5.44.1))':
dependencies: dependencies:
'@babel/core': 7.28.5 '@babel/core': 7.28.5
'@prefresh/babel-plugin': 0.5.2 '@prefresh/babel-plugin': 0.5.2
@@ -3627,7 +3627,7 @@ snapshots:
'@prefresh/utils': 1.2.1 '@prefresh/utils': 1.2.1
'@rollup/pluginutils': 4.2.1 '@rollup/pluginutils': 4.2.1
preact: 10.28.0 preact: 10.28.0
vite: 7.2.7(@types/node@25.0.1)(terser@5.44.1) vite: 7.2.7(@types/node@25.0.2)(terser@5.44.1)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -3734,7 +3734,7 @@ snapshots:
'@types/glob@7.2.0': '@types/glob@7.2.0':
dependencies: dependencies:
'@types/minimatch': 6.0.0 '@types/minimatch': 6.0.0
'@types/node': 25.0.1 '@types/node': 25.0.2
'@types/imagemin-gifsicle@7.0.4': '@types/imagemin-gifsicle@7.0.4':
dependencies: dependencies:
@@ -3763,19 +3763,19 @@ snapshots:
'@types/imagemin@7.0.1': '@types/imagemin@7.0.1':
dependencies: dependencies:
'@types/node': 25.0.1 '@types/node': 25.0.2
'@types/json-schema@7.0.15': {} '@types/json-schema@7.0.15': {}
'@types/keyv@3.1.4': '@types/keyv@3.1.4':
dependencies: dependencies:
'@types/node': 25.0.1 '@types/node': 25.0.2
'@types/minimatch@6.0.0': '@types/minimatch@6.0.0':
dependencies: dependencies:
minimatch: 10.1.1 minimatch: 10.1.1
'@types/node@25.0.1': '@types/node@25.0.2':
dependencies: dependencies:
undici-types: 7.16.0 undici-types: 7.16.0
@@ -3797,11 +3797,11 @@ snapshots:
'@types/responselike@1.0.3': '@types/responselike@1.0.3':
dependencies: dependencies:
'@types/node': 25.0.1 '@types/node': 25.0.2
'@types/svgo@2.6.4': '@types/svgo@2.6.4':
dependencies: dependencies:
'@types/node': 25.0.1 '@types/node': 25.0.2
'@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)': '@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)':
dependencies: dependencies:
@@ -3907,9 +3907,9 @@ snapshots:
json-schema-traverse: 0.4.1 json-schema-traverse: 0.4.1
uri-js: 4.4.1 uri-js: 4.4.1
alova@3.4.0: alova@3.4.1:
dependencies: dependencies:
'@alova/shared': 1.3.1 '@alova/shared': 1.3.2
rate-limiter-flexible: 5.0.5 rate-limiter-flexible: 5.0.5
ansi-regex@2.1.1: {} ansi-regex@2.1.1: {}
@@ -5963,7 +5963,7 @@ snapshots:
spdx-correct: 3.2.0 spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1 spdx-expression-parse: 3.0.1
vite-plugin-imagemin@0.6.1(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)): vite-plugin-imagemin@0.6.1(vite@7.2.7(@types/node@25.0.2)(terser@5.44.1)):
dependencies: dependencies:
'@types/imagemin': 7.0.1 '@types/imagemin': 7.0.1
'@types/imagemin-gifsicle': 7.0.4 '@types/imagemin-gifsicle': 7.0.4
@@ -5988,11 +5988,11 @@ snapshots:
imagemin-webp: 6.1.0 imagemin-webp: 6.1.0
jpegtran-bin: 6.0.1 jpegtran-bin: 6.0.1
pathe: 0.2.0 pathe: 0.2.0
vite: 7.2.7(@types/node@25.0.1)(terser@5.44.1) vite: 7.2.7(@types/node@25.0.2)(terser@5.44.1)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
vite-prerender-plugin@0.5.12(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)): vite-prerender-plugin@0.5.12(vite@7.2.7(@types/node@25.0.2)(terser@5.44.1)):
dependencies: dependencies:
kolorist: 1.8.0 kolorist: 1.8.0
magic-string: 0.30.21 magic-string: 0.30.21
@@ -6000,20 +6000,20 @@ snapshots:
simple-code-frame: 1.3.0 simple-code-frame: 1.3.0
source-map: 0.7.6 source-map: 0.7.6
stack-trace: 1.0.0-pre2 stack-trace: 1.0.0-pre2
vite: 7.2.7(@types/node@25.0.1)(terser@5.44.1) vite: 7.2.7(@types/node@25.0.2)(terser@5.44.1)
vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)): vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.2)(terser@5.44.1)):
dependencies: dependencies:
debug: 4.4.3 debug: 4.4.3
globrex: 0.1.2 globrex: 0.1.2
tsconfck: 3.1.6(typescript@5.9.3) tsconfck: 3.1.6(typescript@5.9.3)
optionalDependencies: optionalDependencies:
vite: 7.2.7(@types/node@25.0.1)(terser@5.44.1) vite: 7.2.7(@types/node@25.0.2)(terser@5.44.1)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
- typescript - typescript
vite@7.2.7(@types/node@25.0.1)(terser@5.44.1): vite@7.2.7(@types/node@25.0.2)(terser@5.44.1):
dependencies: dependencies:
esbuild: 0.25.12 esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.3) fdir: 6.5.0(picomatch@4.0.3)
@@ -6022,7 +6022,7 @@ snapshots:
rollup: 4.53.3 rollup: 4.53.3
tinyglobby: 0.2.15 tinyglobby: 0.2.15
optionalDependencies: optionalDependencies:
'@types/node': 25.0.1 '@types/node': 25.0.2
fsevents: 2.3.3 fsevents: 2.3.3
terser: 5.44.1 terser: 5.44.1

View File

@@ -1367,6 +1367,7 @@ bool Mqtt::publish_ha_climate_config(const DeviceValue & dv, const bool has_room
// map EMS modes to HA climate modes // map EMS modes to HA climate modes
// EMS modes: auto, manual, heat, off, night, day, nofrost, eco, comfort, cool) // EMS modes: auto, manual, heat, off, night, day, nofrost, eco, comfort, cool)
// HA supports: auto, off, cool, heat, dry, fan_only // HA supports: auto, off, cool, heat, dry, fan_only
// we map day and manual to heat
if (mode_options != nullptr) { if (mode_options != nullptr) {
// scan through mode_options and add to modes // scan through mode_options and add to modes
bool found_auto = false; bool found_auto = false;
@@ -1377,13 +1378,13 @@ bool Mqtt::publish_ha_climate_config(const DeviceValue & dv, const bool has_room
const char * mode = mode_options[i][0]; // take EN const char * mode = mode_options[i][0]; // take EN
if (!strcmp(mode, FL_(auto)[0])) { if (!strcmp(mode, FL_(auto)[0])) {
found_auto = true; found_auto = true;
} else if (!strcmp(mode, FL_(heat)[0])) { } else if (!strcmp(mode, FL_(heat)[0]) || !strcmp(mode, FL_(day)[0]) || !strcmp(mode, FL_(manual)[0])) {
found_heat = true; found_heat = true;
} else if (!strcmp(mode, FL_(off)[0])) { } else if (!strcmp(mode, FL_(off)[0])) {
found_off = true; found_off = true;
} else if (!strcmp(mode, FL_(cool)[0])) { } else if (!strcmp(mode, FL_(cool)[0])) {
found_cool = true; found_cool = true;
} }
} }
// only add modes if we found at least one // only add modes if we found at least one

View File

@@ -37,7 +37,7 @@
#include <uuid/log.h> #include <uuid/log.h>
#include <PButton.h> #include <PButton.h>
#if defined(CONFIG_IDF_TARGET_ESP32) #if CONFIG_IDF_TARGET_ESP32
// there is no official API available on the original ESP32 // there is no official API available on the original ESP32
extern "C" { extern "C" {
uint8_t temprature_sens_read(); uint8_t temprature_sens_read();

View File

@@ -319,7 +319,7 @@ int16_t TemperatureSensor::get_temperature_c(const uint8_t addr[]) {
} }
// update temperature sensor information name and offset // update temperature sensor information name and offset
bool TemperatureSensor::update(const char * id, const char * name, int16_t offset, bool hide, bool is_system) { bool TemperatureSensor::update(const char * id, const char * name, int16_t offset, bool is_system) {
// find the sensor // find the sensor
for (auto & sensor : sensors_) { for (auto & sensor : sensors_) {
if (!strcmp(id, sensor.id())) { if (!strcmp(id, sensor.id())) {

View File

@@ -124,7 +124,7 @@ class TemperatureSensor {
return sensors_.size(); return sensors_.size();
} }
bool update(const char * id, const char * name, int16_t offset, bool hide = false, bool is_system = false); bool update(const char * id, const char * name, int16_t offset, bool is_system = false);
#if defined(EMSESP_TEST) #if defined(EMSESP_TEST)
void load_test_data(); void load_test_data();

View File

@@ -3104,11 +3104,10 @@ bool Thermostat::set_mode(const char * value, const int8_t id) {
uint8_t enum_index = 0; uint8_t enum_index = 0;
// check for the mode being a full string name or single digit // check for the mode being a full string name or single digit
// if not found, try the HA mode list if HA is enabled
if (!Helpers::value2enum(value, enum_index, mode_list)) { if (!Helpers::value2enum(value, enum_index, mode_list)) {
mode_list = FL_(enum_mode_ha); mode_list = FL_(enum_mode_ha);
if (!Mqtt::ha_enabled() || !Helpers::value2enum(value, enum_index, mode_list)) { if (!Mqtt::ha_enabled() || !Helpers::value2enum(value, enum_index, mode_list)) {
// We have logging on fail in command.cpp
// LOG_WARNING("wrong mode: %s", value);
return false; // not found return false; // not found
} }
} }