diff --git a/interface/package.json b/interface/package.json index 332ff89f4..8e417f884 100644 --- a/interface/package.json +++ b/interface/package.json @@ -49,7 +49,7 @@ "@preact/compat": "^18.3.1", "@preact/preset-vite": "^2.10.2", "@trivago/prettier-plugin-sort-imports": "^5.2.2", - "@types/node": "^24.7.0", + "@types/node": "^24.7.2", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.1", "concurrently": "^9.2.1", @@ -63,5 +63,5 @@ "vite-plugin-imagemin": "^0.6.1", "vite-tsconfig-paths": "^5.1.4" }, - "packageManager": "pnpm@10.18.1+sha512.77a884a165cbba2d8d1c19e3b4880eee6d2fcabd0d879121e282196b80042351d5eb3ca0935fa599da1dc51265cc68816ad2bddd2a2de5ea9fdf92adbec7cd34" + "packageManager": "pnpm@10.18.2" } diff --git a/interface/pnpm-lock.yaml b/interface/pnpm-lock.yaml index d2303c938..f5f47a495 100644 --- a/interface/pnpm-lock.yaml +++ b/interface/pnpm-lock.yaml @@ -80,13 +80,13 @@ importers: version: 18.3.1(preact@10.27.2) '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.2(@babel/core@7.28.4)(preact@10.27.2)(vite@7.1.9(@types/node@24.7.0)(terser@5.44.0)) + version: 2.10.2(@babel/core@7.28.4)(preact@10.27.2)(vite@7.1.9(@types/node@24.7.2)(terser@5.44.0)) '@trivago/prettier-plugin-sort-imports': specifier: ^5.2.2 version: 5.2.2(prettier@3.6.2) '@types/node': - specifier: ^24.7.0 - version: 24.7.0 + specifier: ^24.7.2 + version: 24.7.2 '@types/react': specifier: ^19.2.2 version: 19.2.2 @@ -116,13 +116,13 @@ importers: version: 8.46.0(eslint@9.37.0)(typescript@5.9.3) vite: specifier: ^7.1.9 - version: 7.1.9(@types/node@24.7.0)(terser@5.44.0) + version: 7.1.9(@types/node@24.7.2)(terser@5.44.0) vite-plugin-imagemin: specifier: ^0.6.1 - version: 0.6.1(vite@7.1.9(@types/node@24.7.0)(terser@5.44.0)) + version: 0.6.1(vite@7.1.9(@types/node@24.7.2)(terser@5.44.0)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(terser@5.44.0)) + version: 5.1.4(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.2)(terser@5.44.0)) packages: @@ -851,8 +851,8 @@ packages: 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. - '@types/node@24.7.0': - resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==} + '@types/node@24.7.2': + resolution: {integrity: sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -1014,8 +1014,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.8.14: - resolution: {integrity: sha512-GM9c0cWWR8Ga7//Ves/9KRgTS8nLausCkP3CGiFLrnwA2CDUluXgaQqvrULoR2Ujrd/mz/lkX87F5BHFsNr5sQ==} + baseline-browser-mapping@2.8.16: + resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} hasBin: true bin-build@3.0.0: @@ -1104,8 +1104,8 @@ packages: resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} engines: {node: '>=0.10.0'} - caniuse-lite@1.0.30001749: - resolution: {integrity: sha512-0rw2fJOmLfnzCRbkm8EyHL8SvI2Apu5UbnQuTsJ0ClgrH8hcwFooJ1s5R0EP8o8aVrFu8++ae29Kt9/gZAZp/Q==} + caniuse-lite@1.0.30001750: + resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==} caw@2.0.1: resolution: {integrity: sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==} @@ -1324,8 +1324,8 @@ packages: duplexer3@0.1.5: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - electron-to-chromium@1.5.233: - resolution: {integrity: sha512-iUdTQSf7EFXsDdQsp8MwJz5SVk4APEFqXU/S47OtQ0YLqacSwPXdZ5vRlMX3neb07Cy2vgioNuRnWUXFwuslkg==} + electron-to-chromium@1.5.234: + resolution: {integrity: sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3575,18 +3575,18 @@ snapshots: dependencies: preact: 10.27.2 - '@preact/preset-vite@2.10.2(@babel/core@7.28.4)(preact@10.27.2)(vite@7.1.9(@types/node@24.7.0)(terser@5.44.0))': + '@preact/preset-vite@2.10.2(@babel/core@7.28.4)(preact@10.27.2)(vite@7.1.9(@types/node@24.7.2)(terser@5.44.0))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.4) - '@prefresh/vite': 2.4.10(preact@10.27.2)(vite@7.1.9(@types/node@24.7.0)(terser@5.44.0)) + '@prefresh/vite': 2.4.10(preact@10.27.2)(vite@7.1.9(@types/node@24.7.2)(terser@5.44.0)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.4) debug: 4.4.3 picocolors: 1.1.1 - vite: 7.1.9(@types/node@24.7.0)(terser@5.44.0) - vite-prerender-plugin: 0.5.12(vite@7.1.9(@types/node@24.7.0)(terser@5.44.0)) + vite: 7.1.9(@types/node@24.7.2)(terser@5.44.0) + vite-prerender-plugin: 0.5.12(vite@7.1.9(@types/node@24.7.2)(terser@5.44.0)) transitivePeerDependencies: - preact - supports-color @@ -3599,7 +3599,7 @@ snapshots: '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.10(preact@10.27.2)(vite@7.1.9(@types/node@24.7.0)(terser@5.44.0))': + '@prefresh/vite@2.4.10(preact@10.27.2)(vite@7.1.9(@types/node@24.7.2)(terser@5.44.0))': dependencies: '@babel/core': 7.28.4 '@prefresh/babel-plugin': 0.5.2 @@ -3607,7 +3607,7 @@ snapshots: '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 preact: 10.27.2 - vite: 7.1.9(@types/node@24.7.0)(terser@5.44.0) + vite: 7.1.9(@types/node@24.7.2)(terser@5.44.0) transitivePeerDependencies: - supports-color @@ -3712,7 +3712,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 24.7.0 + '@types/node': 24.7.2 '@types/imagemin-gifsicle@7.0.4': dependencies: @@ -3741,19 +3741,19 @@ snapshots: '@types/imagemin@7.0.1': dependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 '@types/json-schema@7.0.15': {} '@types/keyv@3.1.4': dependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 '@types/minimatch@6.0.0': dependencies: minimatch: 10.0.3 - '@types/node@24.7.0': + '@types/node@24.7.2': dependencies: undici-types: 7.14.0 @@ -3775,11 +3775,11 @@ snapshots: '@types/responselike@1.0.3': dependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 '@types/svgo@2.6.4': dependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 '@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)': dependencies: @@ -3936,7 +3936,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.8.14: {} + baseline-browser-mapping@2.8.16: {} bin-build@3.0.0: dependencies: @@ -3993,9 +3993,9 @@ snapshots: browserslist@4.26.3: dependencies: - baseline-browser-mapping: 2.8.14 - caniuse-lite: 1.0.30001749 - electron-to-chromium: 1.5.233 + baseline-browser-mapping: 2.8.16 + caniuse-lite: 1.0.30001750 + electron-to-chromium: 1.5.234 node-releases: 2.0.23 update-browserslist-db: 1.1.3(browserslist@4.26.3) @@ -4053,7 +4053,7 @@ snapshots: camelcase@2.1.1: {} - caniuse-lite@1.0.30001749: {} + caniuse-lite@1.0.30001750: {} caw@2.0.1: dependencies: @@ -4340,7 +4340,7 @@ snapshots: duplexer3@0.1.5: {} - electron-to-chromium@1.5.233: {} + electron-to-chromium@1.5.234: {} emoji-regex@8.0.0: {} @@ -5936,7 +5936,7 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-plugin-imagemin@0.6.1(vite@7.1.9(@types/node@24.7.0)(terser@5.44.0)): + vite-plugin-imagemin@0.6.1(vite@7.1.9(@types/node@24.7.2)(terser@5.44.0)): dependencies: '@types/imagemin': 7.0.1 '@types/imagemin-gifsicle': 7.0.4 @@ -5961,11 +5961,11 @@ snapshots: imagemin-webp: 6.1.0 jpegtran-bin: 6.0.1 pathe: 0.2.0 - vite: 7.1.9(@types/node@24.7.0)(terser@5.44.0) + vite: 7.1.9(@types/node@24.7.2)(terser@5.44.0) transitivePeerDependencies: - supports-color - vite-prerender-plugin@0.5.12(vite@7.1.9(@types/node@24.7.0)(terser@5.44.0)): + vite-prerender-plugin@0.5.12(vite@7.1.9(@types/node@24.7.2)(terser@5.44.0)): dependencies: kolorist: 1.8.0 magic-string: 0.30.19 @@ -5973,20 +5973,20 @@ snapshots: simple-code-frame: 1.3.0 source-map: 0.7.6 stack-trace: 1.0.0-pre2 - vite: 7.1.9(@types/node@24.7.0)(terser@5.44.0) + vite: 7.1.9(@types/node@24.7.2)(terser@5.44.0) - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(terser@5.44.0)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.2)(terser@5.44.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.1.9(@types/node@24.7.0)(terser@5.44.0) + vite: 7.1.9(@types/node@24.7.2)(terser@5.44.0) transitivePeerDependencies: - supports-color - typescript - vite@7.1.9(@types/node@24.7.0)(terser@5.44.0): + vite@7.1.9(@types/node@24.7.2)(terser@5.44.0): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -5995,7 +5995,7 @@ snapshots: rollup: 4.52.4 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 fsevents: 2.3.3 terser: 5.44.0 diff --git a/src/core/device_library.h b/src/core/device_library.h index 917b9f6ae..aa0177d2c 100644 --- a/src/core/device_library.h +++ b/src/core/device_library.h @@ -203,6 +203,7 @@ {163, DeviceType::WATER, "SM100, MS100", DeviceFlags::EMS_DEVICE_FLAG_SM100}, {164, DeviceType::WATER, "SM200, MS200", DeviceFlags::EMS_DEVICE_FLAG_SM100}, {248, DeviceType::MIXER, "HM210", DeviceFlags::EMS_DEVICE_FLAG_MMPLUS} +{17, DeviceType::CONNECT, "MX400", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x50 Wirelss Base // {157, DeviceType::THERMOSTAT, "RC120", DeviceFlags::EMS_DEVICE_FLAG_CR120} #endif diff --git a/src/core/emsesp.cpp b/src/core/emsesp.cpp index 8f45309e1..ee1c68efe 100644 --- a/src/core/emsesp.cpp +++ b/src/core/emsesp.cpp @@ -362,6 +362,10 @@ void EMSESP::dump_all_entities(uuid::console::Shell & shell) { if (device.device_type == DeviceType::HEATSOURCE) { device_id = EMSdevice::EMS_DEVICE_ID_AHS1; } + // For MX400 SRC plus base + if (device.device_type == DeviceType::CONNECT && device.product_id == 17) { + device_id = EMSdevice::EMS_DEVICE_ID_RFBASE; + } // add the device and print out all the entities // for testing the mixer use ... if (device.product_id == 69) { @@ -1414,8 +1418,8 @@ bool EMSESP::add_device(const uint8_t device_id, const uint8_t product_id, const LOG_INFO("Detected EMS device: %s (0x%02X)", EMSdevice::device_type_2_device_name(device_type), device_id); // register the MQTT subscribe topic for this device - // except for connect, controller and gateway - if ((device_type == DeviceType::CONNECT) || (device_type == DeviceType::CONTROLLER) || (device_type == DeviceType::GATEWAY)) { + // except for controller and gateway + if ((device_type == DeviceType::CONTROLLER) || (device_type == DeviceType::GATEWAY)) { return true; } diff --git a/src/devices/connect.cpp b/src/devices/connect.cpp index c8995be18..f9db117a7 100644 --- a/src/devices/connect.cpp +++ b/src/devices/connect.cpp @@ -24,7 +24,7 @@ REGISTER_FACTORY(Connect, EMSdevice::DeviceType::CONNECT); Connect::Connect(uint8_t device_type, uint8_t device_id, uint8_t product_id, const char * version, const char * name, uint8_t flags, uint8_t brand) : EMSdevice(device_type, device_id, product_id, version, name, flags, brand) { - if (device_id == 0x02) { // Modems have no entities + if (device_id != EMSdevice::EMS_DEVICE_ID_RFBASE) { // Modems have no entities return; } register_telegram_type(0xD1, "RFOutdoorTemp", false, MAKE_PF_CB(process_OutdoorTemp));