diff --git a/interface/package.json b/interface/package.json index 1e6a29575..d18938043 100644 --- a/interface/package.json +++ b/interface/package.json @@ -21,7 +21,7 @@ "lint": "eslint . --fix" }, "dependencies": { - "@alova/adapter-xhr": "2.0.12", + "@alova/adapter-xhr": "2.1.0", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", "@mui/icons-material": "^6.2.1", @@ -36,7 +36,7 @@ "react-dom": "^19.0.0", "react-icons": "^5.4.0", "react-router": "^7.0.2", - "react-toastify": "^11.0.0", + "react-toastify": "^11.0.1", "typesafe-i18n": "^5.26.2", "typescript": "^5.7.2" }, @@ -48,7 +48,7 @@ "@trivago/prettier-plugin-sort-imports": "^5.2.0", "@types/formidable": "^3", "@types/node": "^22.10.2", - "@types/react": "^19.0.1", + "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", "concurrently": "^9.1.0", "eslint": "^9.17.0", diff --git a/interface/yarn.lock b/interface/yarn.lock index 5a6ec0297..229a282c3 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -5,14 +5,14 @@ __metadata: version: 8 cacheKey: 10c0 -"@alova/adapter-xhr@npm:2.0.12": - version: 2.0.12 - resolution: "@alova/adapter-xhr@npm:2.0.12" +"@alova/adapter-xhr@npm:2.1.0": + version: 2.1.0 + resolution: "@alova/adapter-xhr@npm:2.1.0" dependencies: "@alova/shared": "npm:1.1.2" peerDependencies: alova: ^3.0.20 - checksum: 10c0/d5713945de00f4fb63b5ef477de5d5d53e5ca1dfa08d52e2e4e4d0ab1a88e336619606c1361e785cd896bd2fcb0e2d0d7762a8762f58187621c6224dc3999a54 + checksum: 10c0/41cf62a5ed7fb654df8b201ce33c665950fde6b845b7c061a1b28132cfcc60b099ad20f807affb8dfbb4563439dc60b2c7c25126717137e1748cfa00436da01b languageName: node linkType: hard @@ -1436,12 +1436,12 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^19.0.1": - version: 19.0.1 - resolution: "@types/react@npm:19.0.1" +"@types/react@npm:^19.0.2": + version: 19.0.2 + resolution: "@types/react@npm:19.0.2" dependencies: csstype: "npm:^3.0.2" - checksum: 10c0/25eb69114abb9a6d5fc4414ee584388275bbc9ac32976449cf58b95fe9880efe6b3f936c3842be9bed8c571546a9752e8d3e2095288381e9c809269f5f574f2e + checksum: 10c0/8992f39701fcf1bf893ef8f94a56196445667baf08fe4f6050a14e229a17aad3265ad3efc01595ff3b4d5d5c69da885f9aa4ff80f164a613018734efcff1eb8f languageName: node linkType: hard @@ -1579,7 +1579,7 @@ __metadata: version: 0.0.0-use.local resolution: "EMS-ESP@workspace:." dependencies: - "@alova/adapter-xhr": "npm:2.0.12" + "@alova/adapter-xhr": "npm:2.1.0" "@babel/core": "npm:^7.26.0" "@emotion/react": "npm:^11.14.0" "@emotion/styled": "npm:^11.14.0" @@ -1592,7 +1592,7 @@ __metadata: "@trivago/prettier-plugin-sort-imports": "npm:^5.2.0" "@types/formidable": "npm:^3" "@types/node": "npm:^22.10.2" - "@types/react": "npm:^19.0.1" + "@types/react": "npm:^19.0.2" "@types/react-dom": "npm:^19.0.2" alova: "npm:3.2.7" async-validator: "npm:^4.2.5" @@ -1608,7 +1608,7 @@ __metadata: react-dom: "npm:^19.0.0" react-icons: "npm:^5.4.0" react-router: "npm:^7.0.2" - react-toastify: "npm:^11.0.0" + react-toastify: "npm:^11.0.1" rollup-plugin-visualizer: "npm:^5.12.0" terser: "npm:^5.37.0" typesafe-i18n: "npm:^5.26.2" @@ -5607,15 +5607,15 @@ __metadata: languageName: node linkType: hard -"react-toastify@npm:^11.0.0": - version: 11.0.0 - resolution: "react-toastify@npm:11.0.0" +"react-toastify@npm:^11.0.1": + version: 11.0.1 + resolution: "react-toastify@npm:11.0.1" dependencies: clsx: "npm:^2.1.1" peerDependencies: react: ^18 || ^19 react-dom: ^18 || ^19 - checksum: 10c0/0c0665a2b58e7545bf8ec0a2fe0e025b8d94e704b43f2831aace1fb128ec3b94a979eb7ca6f644ab376f32484eecef4042bf2ad3ea8e84c525c941501fb02113 + checksum: 10c0/ead322440484e89b184d0db59842b65a606ddbd1f6695d8695698178c55782ca7ac1dded24cf1f6aa3c40853579370131dee3943785e0f9db97d15ea4d9c711e languageName: node linkType: hard diff --git a/mock-api/rest_server.ts b/mock-api/rest_server.ts index 9d1bb4b39..3043baf95 100644 --- a/mock-api/rest_server.ts +++ b/mock-api/rest_server.ts @@ -14,7 +14,7 @@ const headers = { 'Content-type': 'application/msgpack' }; -let VERSION_IS_UPGRADEABLE; +let VERSION_IS_UPGRADEABLE: boolean; // Versions // default - on latest stable, no upgrades @@ -882,6 +882,18 @@ const emsesp_coredata = { v: '73.03', e: 63, url: 'thermostat' + }, + { + id: 11, + tn: 'Ventilation', + t: 18, + b: '', + n: 'Vent4000CC', + d: 81, + p: 231, + v: '53.02', + e: 10, + url: 'ventilation' } ] }; @@ -936,6 +948,10 @@ const activity = { // 5 - MM10 mixer // 6 - SM10 solar // 7 - Nefit Trendline boiler +// 8 - Bosch Compress 7000i AW Heat Pump +// 9 - RC100H thermostat +// 10 - Thermostat RC310 +// 11 - Ventilation // 99 - Custom const emsesp_devicedata_1 = { @@ -3776,6 +3792,71 @@ const emsesp_devicedata_10 = { ] }; +const emsesp_devicedata_11 = { + nodes: [ + { + v: 11, + u: 1, + id: '00outdoor fresh air' + }, + { + v: 13.699999809265137, + u: 1, + id: '00indoor fresh air' + }, + { + v: 11.399999618530273, + u: 1, + id: '00outdoor exhaust air' + }, + { + v: 14.800000190734863, + u: 1, + id: '00indoor exhaust air' + }, + { + v: 0, + u: 3, + id: '00in blower speed' + }, + { + v: 0, + u: 3, + id: '00out blower speed' + }, + { + v: 'auto', + u: 0, + id: '00ventilation mode', + c: 'ventmode', + l: [ + 'auto', + 'off', + 'L1', + 'L2', + 'L3', + 'L4', + 'demand', + 'sleep', + 'intense', + 'bypass', + 'party', + 'fireplace' + ] + }, + { + v: 1770, + u: 0, + id: '00air quality (voc)' + }, + { + v: 53, + u: 3, + id: '00relative air humidity' + } + ] +}; + const emsesp_devicedata_99 = { nodes: [ { @@ -3940,7 +4021,7 @@ let emsesp_modules = { const dummy_deviceentities = [ { v: 'unknown', - n: 'no entities for this device', + n: 'sorry, no demo entities for this device!', id: 'unknown', m: 0, w: false @@ -3955,6 +4036,7 @@ const emsesp_deviceentities_6 = dummy_deviceentities; const emsesp_deviceentities_8 = dummy_deviceentities; const emsesp_deviceentities_9 = dummy_deviceentities; const emsesp_deviceentities_10 = dummy_deviceentities; +const emsesp_deviceentities_11 = dummy_deviceentities; const emsesp_deviceentities_none = dummy_deviceentities; const emsesp_deviceentities_2 = [ @@ -4272,6 +4354,9 @@ function deviceData(id: number) { if (id == 10) { return new Response(encoder.encode(emsesp_devicedata_10), { headers }); } + if (id == 11) { + return new Response(encoder.encode(emsesp_devicedata_11), { headers }); + } if (id == 99) { return new Response(encoder.encode(emsesp_devicedata_99), { headers }); } @@ -4325,6 +4410,7 @@ function getDashboardEntityData(id: number) { else if (id == 8) device_data = emsesp_devicedata_8; else if (id == 9) device_data = emsesp_devicedata_9; else if (id == 10) device_data = emsesp_devicedata_10; + else if (id == 11) device_data = emsesp_devicedata_11; else if (id == 99) device_data = emsesp_devicedata_99; // filter device_data on @@ -4541,7 +4627,9 @@ router } else if (id === 9) { updateMask(entity, emsesp_deviceentities_9, emsesp_devicedata_9); } else if (id === 10) { - updateMask(entity, emsesp_deviceentities_9, emsesp_devicedata_10); + updateMask(entity, emsesp_deviceentities_10, emsesp_devicedata_10); + } else if (id === 11) { + updateMask(entity, emsesp_deviceentities_11, emsesp_devicedata_11); } } console.log('customization saved', content); @@ -4646,6 +4734,10 @@ router objIndex = emsesp_devicedata_10.nodes.findIndex((obj) => obj.c == command); emsesp_devicedata_10.nodes[objIndex].v = value; } + if (id === 10) { + objIndex = emsesp_devicedata_11.nodes.findIndex((obj) => obj.c == command); + emsesp_devicedata_11.nodes[objIndex].v = value; + } if (id === DeviceTypeUniqueID.CUSTOM_UID) { // custom entities objIndex = emsesp_devicedata_99.nodes.findIndex((obj) => obj.c == command);