diff --git a/docs/dump_telegrams.csv b/docs/dump_telegrams.csv
index 6de36b5b4..0a7cf4199 100644
--- a/docs/dump_telegrams.csv
+++ b/docs/dump_telegrams.csv
@@ -29,7 +29,7 @@ telegram_type_id,name,is_fetched
0x3B,Energy,
0x3D,RC35Set,
0x3E,RC35Monitor,
-0x3F,RC35Timer,
+0x3F,RC30Timer,
0x40,RC30Temp,
0x41,RC30Monitor,
0x42,RC35Timer2,
@@ -62,6 +62,7 @@ telegram_type_id,name,is_fetched
0xB1,RC10Monitor,
0xBB,HybridSettings,fetched
0xBF,ErrorMessage,
+0xC0,RCErrorMessage,
0xC2,UBAErrorMessage3,
0xD1,UBAOutdoorTemp,
0xE3,UBAMonitorSlowPlus2,
@@ -101,7 +102,7 @@ telegram_type_id,name,is_fetched
0x0292,HPMode,fetched
0x0293,HPMode,fetched
0x0294,HPMode,fetched
-0x029B,RC300Curves,
+0x029B,RC300Curves,fetched
0x029C,RC300Curves,
0x029D,RC300Curves,
0x029E,RC300Curves,
@@ -109,10 +110,10 @@ telegram_type_id,name,is_fetched
0x02A0,RC300Curves,
0x02A1,RC300Curves,
0x02A2,RC300Curves,
-0x02A5,RC300Monitor,fetched
-0x02A6,RC300Monitor,
-0x02A7,CRFMonitor,
-0x02A8,RC300Monitor,
+0x02A5,RC300Monitor,
+0x02A6,CRFMonitor,
+0x02A7,RC300Monitor,
+0x02A8,CRFMonitor,
0x02A9,RC300Monitor,
0x02AA,RC300Monitor,
0x02AB,RC300Monitor,
diff --git a/interface/package.json b/interface/package.json
index be323b631..6cbae2ec3 100644
--- a/interface/package.json
+++ b/interface/package.json
@@ -35,14 +35,14 @@
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-icons": "^5.5.0",
- "react-router": "^7.4.1",
+ "react-router": "^7.5.0",
"react-toastify": "^11.0.5",
"typesafe-i18n": "^5.26.2",
- "typescript": "^5.8.2"
+ "typescript": "^5.8.3"
},
"devDependencies": {
"@babel/core": "^7.26.10",
- "@eslint/js": "^9.23.0",
+ "@eslint/js": "^9.24.0",
"@preact/compat": "^18.3.1",
"@preact/preset-vite": "^2.10.1",
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
@@ -51,7 +51,7 @@
"@types/react": "^19.1.0",
"@types/react-dom": "^19.1.1",
"concurrently": "^9.1.2",
- "eslint": "^9.23.0",
+ "eslint": "^9.24.0",
"eslint-config-prettier": "^10.1.1",
"formidable": "^3.5.2",
"prettier": "^3.5.3",
diff --git a/interface/src/app/status/Version.tsx b/interface/src/app/status/Version.tsx
index 85f93df7f..08a7cfa45 100644
--- a/interface/src/app/status/Version.tsx
+++ b/interface/src/app/status/Version.tsx
@@ -2,6 +2,7 @@ import { useContext, useEffect, useState } from 'react';
import { toast } from 'react-toastify';
import CancelIcon from '@mui/icons-material/Cancel';
+import CloseIcon from '@mui/icons-material/Close';
import CheckIcon from '@mui/icons-material/Done';
import DownloadIcon from '@mui/icons-material/GetApp';
import WarningIcon from '@mui/icons-material/Warning';
@@ -78,7 +79,7 @@ const Version = () => {
send: loadData,
error
} = useRequest(SystemApi.readSystemStatus).onSuccess((event) => {
- // older version of EMS-ESP on 4MB boards, can't use OTA because of SSL support in HttpClient
+ // older version of EMS-ESP using ESP32 (not S3) and no PSRAM, can't use OTA because of SSL support in HttpClient
if (event.data.arduino_version.startsWith('Tasmota')) {
setDownloadOnly(true);
}
@@ -145,20 +146,21 @@ const Version = () => {
);
};
- const getBinURL = () => {
+ const getBinURL = (showingDev: boolean) => {
if (!internetLive) {
return '';
}
+
const filename =
'EMS-ESP-' +
- (fetchDevVersion ? latestDevVersion.name : latestVersion.name).replaceAll(
+ (showingDev ? latestDevVersion.name : latestVersion.name).replaceAll(
'.',
'_'
) +
'-' +
getPlatform() +
'.bin';
- return fetchDevVersion
+ return showingDev
? DEV_URL + filename
: STABLE_URL + 'v' + latestVersion.name + '/' + filename;
};
@@ -180,7 +182,7 @@ const Version = () => {
useLayoutTitle('EMS-ESP Firmware');
const renderInstallDialog = () => {
- const binURL = getBinURL();
+ const binURL = getBinURL(fetchDevVersion);
return (
);
@@ -273,23 +278,6 @@ const Version = () => {
return;
}
- if (downloadOnly) {
- return (
- }
- variant="outlined"
- onClick={() => setOpenInstallDialog(false)}
- color="warning"
- size="small"
- >
-
- {LL.DOWNLOAD(1)}
-
-
- );
- }
-
return (