mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
autodetect, download and install firmware upgrades
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
## **IMPORTANT! BREAKING CHANGES with 3.6.5**
|
||||
|
||||
- new device WATER shows dhw entities from MM100 and SM100 in dhw setting
|
||||
- renamed WWC to DHW, always create DHW nests/topics, remove ww prefix from mqtt names [#1634](https://github.com/emsesp/EMS-ESP32/issues/1634). To preserve current value of dhw energy (nrgww), follow ([#1938]https://github.com/emsesp/EMS-ESP32/issues/1938)
|
||||
- renamed WWC to DHW, always create DHW nests/topics, remove ww prefix from mqtt names [#1634](https://github.com/emsesp/EMS-ESP32/issues/1634). To preserve current value of dhw energy (nrgww), follow ([#1938]<https://github.com/emsesp/EMS-ESP32/issues/1938>)
|
||||
- change temperaturesensor id to underscore
|
||||
- system/info API command has it's JSON keys and names changed to camelCase
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
- RC310 cooling parameters [#1857](https://github.com/emsesp/EMS-ESP32/issues/1857)
|
||||
- command `api/device/entities` [#1897](https://github.com/emsesp/EMS-ESP32/issues/1897)
|
||||
- switchprogmode [#1903]<https://github.com/emsesp/EMS-ESP32/discussions/1903>
|
||||
- Autodetect and download firmware upgrades
|
||||
|
||||
## Fixed
|
||||
|
||||
|
||||
@@ -48,3 +48,6 @@ export const uploadFile = (file: File) => {
|
||||
|
||||
export const uploadURL = (data: { url: string }) =>
|
||||
alovaInstance.Post('/rest/uploadURL', data);
|
||||
|
||||
export const checkUpgrade = (data: { version: string }) =>
|
||||
alovaInstance.Post('/rest/checkUpgrade', data);
|
||||
|
||||
@@ -1,10 +1,21 @@
|
||||
import { useState } from 'react';
|
||||
import { toast } from 'react-toastify';
|
||||
|
||||
import CancelIcon from '@mui/icons-material/Cancel';
|
||||
import DownloadIcon from '@mui/icons-material/GetApp';
|
||||
import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
|
||||
import PowerSettingsNewIcon from '@mui/icons-material/PowerSettingsNew';
|
||||
import WarningIcon from '@mui/icons-material/Warning';
|
||||
import { Box, Button, Divider, Link, Typography } from '@mui/material';
|
||||
import {
|
||||
Box,
|
||||
Button,
|
||||
Dialog,
|
||||
DialogActions,
|
||||
DialogContent,
|
||||
DialogTitle,
|
||||
Link,
|
||||
Typography
|
||||
} from '@mui/material';
|
||||
|
||||
import * as SystemApi from 'api/system';
|
||||
import {
|
||||
@@ -14,7 +25,7 @@ import {
|
||||
getSchedule,
|
||||
getSettings
|
||||
} from 'api/app';
|
||||
import { getDevVersion, getStableVersion } from 'api/system';
|
||||
import { checkUpgrade, getDevVersion, getStableVersion } from 'api/system';
|
||||
|
||||
import { dialogStyle } from 'CustomTheme';
|
||||
import { useRequest } from 'alova/client';
|
||||
@@ -34,6 +45,9 @@ const DownloadUpload = () => {
|
||||
|
||||
const [restarting, setRestarting] = useState<boolean>(false);
|
||||
const [restartNeeded, setRestartNeeded] = useState<boolean>(false);
|
||||
const [openDialog, setOpenDialog] = useState<boolean>(false);
|
||||
const [useDev, setUseDev] = useState<boolean>(false);
|
||||
const [upgradeAvailable, setUpgradeAvailable] = useState<boolean>(false);
|
||||
|
||||
const { send: sendSettings } = useRequest(getSettings(), {
|
||||
immediate: false
|
||||
@@ -95,20 +109,24 @@ const DownloadUpload = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const { send: sendCheckUpgrade } = useRequest(checkUpgrade, {
|
||||
immediate: false
|
||||
}).onSuccess((event) => {
|
||||
setUpgradeAvailable(event.data.upgradeable);
|
||||
});
|
||||
|
||||
// called immediately to get the latest version, on page load
|
||||
const { data: latestVersion } = useRequest(getStableVersion, {
|
||||
immediate: true
|
||||
// uncomment for testing
|
||||
// https://github.com/emsesp/EMS-ESP32/releases/download/v3.6.5/EMS-ESP-3_6_5-ESP32-16MB+.bin
|
||||
// uncomment next 2 lines for testing, uses https://github.com/emsesp/EMS-ESP32/releases/download/v3.6.5/EMS-ESP-3_6_5-ESP32-16MB+.bin
|
||||
// immediate: false,
|
||||
// initialData: '3.6.5'
|
||||
});
|
||||
const { data: latestDevVersion } = useRequest(getDevVersion, {
|
||||
immediate: true
|
||||
// uncomment for testing
|
||||
// https://github.com/emsesp/EMS-ESP32/releases/download/latest/EMS-ESP-3_7_0-dev_31-ESP32-16MB+.bin
|
||||
// uncomment next 2 lines for testing, uses https://github.com/emsesp/EMS-ESP32/releases/download/latest/EMS-ESP-3_7_0-dev_31-ESP32-16MB+.bin
|
||||
// immediate: false,
|
||||
// initialData: '3.7.0-dev.31'
|
||||
// initialData: '3.7.0-dev.32'
|
||||
}).onSuccess((event) => {
|
||||
void sendCheckUpgrade({ version: event.data });
|
||||
});
|
||||
|
||||
const STABLE_URL = 'https://github.com/emsesp/EMS-ESP32/releases/download/';
|
||||
@@ -119,8 +137,17 @@ const DownloadUpload = () => {
|
||||
const DEV_RELNOTES_URL =
|
||||
'https://github.com/emsesp/EMS-ESP32/blob/dev/CHANGELOG_LATEST.md';
|
||||
|
||||
const getBinURL = (v: string) =>
|
||||
'EMS-ESP-' + v.replaceAll('.', '_') + '-' + getPlatform() + '.bin';
|
||||
const getBinURL = (useDev: boolean) => {
|
||||
const filename =
|
||||
'EMS-ESP-' +
|
||||
(useDev ? latestDevVersion : latestVersion).replaceAll('.', '_') +
|
||||
'-' +
|
||||
getPlatform() +
|
||||
'.bin';
|
||||
return useDev
|
||||
? DEV_URL + filename
|
||||
: STABLE_URL + 'v' + latestVersion + '/' + filename;
|
||||
};
|
||||
|
||||
const getPlatform = () => {
|
||||
return (
|
||||
@@ -181,11 +208,72 @@ const DownloadUpload = () => {
|
||||
|
||||
useLayoutTitle(LL.DOWNLOAD_UPLOAD());
|
||||
|
||||
const renderUploadDialog = () => {
|
||||
if (latestDevVersion === undefined || latestVersion === undefined) {
|
||||
return null;
|
||||
}
|
||||
return (
|
||||
<Dialog
|
||||
sx={dialogStyle}
|
||||
open={openDialog}
|
||||
onClose={() => setOpenDialog(false)}
|
||||
>
|
||||
<DialogTitle>
|
||||
{LL.INSTALL('') +
|
||||
' ' +
|
||||
(useDev ? LL.DEVELOPMENT() : LL.STABLE()) +
|
||||
' Firmware'}
|
||||
</DialogTitle>
|
||||
<DialogContent dividers>
|
||||
<Typography mb={2}>
|
||||
{LL.INSTALL_VERSION(useDev ? latestDevVersion : latestVersion)}
|
||||
</Typography>
|
||||
<Link
|
||||
target="_blank"
|
||||
href={useDev ? DEV_RELNOTES_URL : STABLE_RELNOTES_URL}
|
||||
color="primary"
|
||||
>
|
||||
{LL.RELEASE_NOTES()}
|
||||
</Link>
|
||||
|
|
||||
<Link target="_blank" href={getBinURL(useDev)} color="primary">
|
||||
{LL.DOWNLOAD(1)}
|
||||
</Link>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<Button
|
||||
startIcon={<CancelIcon />}
|
||||
variant="outlined"
|
||||
onClick={() => setOpenDialog(false)}
|
||||
color="secondary"
|
||||
>
|
||||
{LL.CANCEL()}
|
||||
</Button>
|
||||
<Button
|
||||
startIcon={<WarningIcon color="warning" />}
|
||||
variant="outlined"
|
||||
onClick={() => installFirmwareURL(getBinURL(useDev))}
|
||||
color="primary"
|
||||
>
|
||||
{LL.INSTALL('')}
|
||||
</Button>
|
||||
</DialogActions>
|
||||
</Dialog>
|
||||
);
|
||||
};
|
||||
|
||||
const showFirmwareDialog = (useDev: boolean) => {
|
||||
setUseDev(useDev);
|
||||
setOpenDialog(true);
|
||||
};
|
||||
|
||||
const content = () => {
|
||||
if (!data) {
|
||||
return <FormLoader onRetry={loadData} errorMessage={error?.message} />;
|
||||
}
|
||||
|
||||
const isDev = data.emsesp_version.includes('dev');
|
||||
|
||||
return (
|
||||
<>
|
||||
<Typography sx={{ pb: 2 }} variant="h6" color="primary">
|
||||
@@ -274,76 +362,49 @@ const DownloadUpload = () => {
|
||||
</Typography>
|
||||
</Box>
|
||||
<Box p={2} mt={2} border="1px solid grey" borderRadius={2}>
|
||||
{LL.VERSION_ON() + ' '}
|
||||
<b>{data.emsesp_version}</b> ({getPlatform()})
|
||||
<Divider />
|
||||
{latestVersion && (
|
||||
<Box mt={2}>
|
||||
{LL.THE_LATEST()} {LL.OFFICIAL()} {LL.RELEASE_IS()}
|
||||
<b>{latestVersion}</b>
|
||||
(
|
||||
<Link target="_blank" href={STABLE_RELNOTES_URL} color="primary">
|
||||
{LL.RELEASE_NOTES()}
|
||||
</Link>
|
||||
) (
|
||||
<Link
|
||||
target="_blank"
|
||||
href={
|
||||
STABLE_URL + 'v' + latestVersion + '/' + getBinURL(latestVersion)
|
||||
}
|
||||
color="primary"
|
||||
>
|
||||
{LL.DOWNLOAD(1)}
|
||||
</Link>
|
||||
)
|
||||
<Typography>
|
||||
<b>{LL.VERSION() + ':'}</b> {data.emsesp_version}
|
||||
{data.build_flags && (
|
||||
<Typography variant="caption">
|
||||
({data.build_flags})
|
||||
</Typography>
|
||||
)}
|
||||
</Typography>
|
||||
<Typography>
|
||||
<b>Platform:</b> {getPlatform()}
|
||||
</Typography>
|
||||
<Typography>
|
||||
<b>Release:</b> {isDev ? LL.DEVELOPMENT() : LL.STABLE()}
|
||||
{!isDev && (
|
||||
<Button
|
||||
sx={{ ml: 2 }}
|
||||
size="small"
|
||||
startIcon={<WarningIcon color="warning" />}
|
||||
variant="outlined"
|
||||
color="primary"
|
||||
onClick={() =>
|
||||
installFirmwareURL(
|
||||
STABLE_URL + 'v' + latestVersion + '/' + getBinURL(latestVersion)
|
||||
)
|
||||
}
|
||||
onClick={() => showFirmwareDialog(true)}
|
||||
>
|
||||
{LL.INSTALL(0)}
|
||||
{LL.SWITCH_DEV()}
|
||||
</Button>
|
||||
</Box>
|
||||
)}
|
||||
{latestDevVersion && (
|
||||
<Box mt={2}>
|
||||
{LL.THE_LATEST()} {LL.DEVELOPMENT()} {LL.RELEASE_IS()}
|
||||
|
||||
<b>{latestDevVersion}</b>
|
||||
(
|
||||
<Link target="_blank" href={DEV_RELNOTES_URL} color="primary">
|
||||
{LL.RELEASE_NOTES()}
|
||||
</Link>
|
||||
) (
|
||||
<Link
|
||||
target="_blank"
|
||||
href={DEV_URL + getBinURL(latestDevVersion)}
|
||||
color="primary"
|
||||
>
|
||||
{LL.DOWNLOAD(1)}
|
||||
</Link>
|
||||
)
|
||||
)}
|
||||
</Typography>
|
||||
{upgradeAvailable ? (
|
||||
<Typography mt={2} color="secondary">
|
||||
<InfoOutlinedIcon color="secondary" sx={{ verticalAlign: 'middle' }} />
|
||||
{LL.UPGRADE_AVAILABLE()}
|
||||
<Button
|
||||
sx={{ ml: 2 }}
|
||||
size="small"
|
||||
startIcon={<WarningIcon color="warning" />}
|
||||
variant="outlined"
|
||||
color="primary"
|
||||
onClick={() =>
|
||||
installFirmwareURL(DEV_URL + getBinURL(latestDevVersion))
|
||||
}
|
||||
onClick={() => showFirmwareDialog(true)}
|
||||
>
|
||||
{LL.INSTALL(0)}
|
||||
{LL.INSTALL('v' + isDev ? latestDevVersion : latestVersion)}
|
||||
</Button>
|
||||
</Box>
|
||||
</Typography>
|
||||
) : (
|
||||
<Typography mt={2}>{LL.LATEST_VERSION()}</Typography>
|
||||
)}
|
||||
{renderUploadDialog()}
|
||||
</Box>
|
||||
|
||||
<Typography sx={{ pt: 2, pb: 2 }} variant="h6" color="primary">
|
||||
@@ -374,11 +435,7 @@ const DownloadUpload = () => {
|
||||
|
||||
return (
|
||||
<SectionContent>
|
||||
{restarting ? (
|
||||
<RestartMonitor message="Please wait while the firmware is being uploaded and installed. This can take a few minutes. EMS-ESP will automatically restart when completed." />
|
||||
) : (
|
||||
content()
|
||||
)}
|
||||
{restarting ? <RestartMonitor message={LL.WAIT_FIRMWARE()} /> : content()}
|
||||
</SectionContent>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -145,7 +145,7 @@ const de: Translation = {
|
||||
CUSTOMIZATIONS_HELP_1: 'Wählen Sie ein Gerät aus und passen Sie die Entitäten mithilfe der Optionen an',
|
||||
CUSTOMIZATIONS_HELP_2: 'Als Favorit markieren',
|
||||
CUSTOMIZATIONS_HELP_3: 'Schreibaktion deaktivieren',
|
||||
CUSTOMIZATIONS_HELP_4: 'von MQTT und API ausschließen',
|
||||
CUSTOMIZATIONS_HELP_4: 'Von MQTT und API ausschließen',
|
||||
CUSTOMIZATIONS_HELP_5: 'Aus dem Kontrollzentrum ausblenden',
|
||||
CUSTOMIZATIONS_HELP_6: 'Aus dem Speicher löschen',
|
||||
SELECT_DEVICE: 'Wählen Sie ein Gerät aus',
|
||||
@@ -161,7 +161,7 @@ const de: Translation = {
|
||||
HELP_INFORMATION_5: 'EMS-ESP ist ein freies Open-Source Projekt. Bitte unterstützen Sie die zukünftige Entwicklung mit einem "Star" auf GitHub!',
|
||||
UPLOAD: 'Hochladen',
|
||||
DOWNLOAD: '{{H|h|h}}erunterladen',
|
||||
INSTALL: 'Installieren',
|
||||
INSTALL: 'Installieren {0}',
|
||||
ABORTED: 'abgebrochen',
|
||||
FAILED: 'gescheitert',
|
||||
SUCCESSFUL: 'erfolgreich',
|
||||
@@ -169,16 +169,13 @@ const de: Translation = {
|
||||
LOG_OF: '{0}protokoll',
|
||||
STATUS_OF: '{0} Status',
|
||||
DOWNLOAD_UPLOAD: 'Herunterladen/Hochladen',
|
||||
VERSION_ON: 'Sie verwenden derzeit',
|
||||
CLOSE: 'Schließen',
|
||||
USE: 'Verwenden Sie',
|
||||
FACTORY_RESET: 'Werkseinstellung',
|
||||
SYSTEM_FACTORY_TEXT: 'EMS-ESP wurde auf Werkseinstellung gesetzt und startet als Zugangspunkt neu',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Sind Sie sicher alle Einstellungen auf Werkseinstellung zu setzen?',
|
||||
THE_LATEST: 'Die neueste',
|
||||
OFFICIAL: 'offizielle',
|
||||
STABLE: 'Stable', // TODO translate
|
||||
DEVELOPMENT: 'Entwicklungs',
|
||||
RELEASE_IS: 'Release ist',
|
||||
RELEASE_NOTES: 'Versionshinweise',
|
||||
EMS_ESP_VER: 'EMS-ESP Version',
|
||||
UPTIME: 'System Betriebszeit',
|
||||
@@ -333,9 +330,14 @@ const de: Translation = {
|
||||
ENABLE_MODBUS: 'Modbus aktivieren',
|
||||
VIEW_LOG: 'Sehen Sie sich das Protokoll an, um Probleme zu diagnostizieren',
|
||||
UPLOAD_DRAG: 'Ziehen Sie eine Datei hierher oder klicken Sie, um eine auszuwählen',
|
||||
SERVICES: 'Dienstleistungen',
|
||||
SERVICES: 'Dienste',
|
||||
ALLVALUES: 'Alle Werte',
|
||||
SPECIAL_FUNCTIONS: 'Special Functions' // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Sonderfunktionen',
|
||||
WAIT_FIRMWARE: 'Please wait while the firmware is being uploaded. The device will restart automatically.', // TODO translate
|
||||
INSTALL_VERSION: 'This will install vesion {0}. Are you sure?', // TODO translate
|
||||
SWITCH_DEV: 'Switch to development version', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest version.' // TODO translate
|
||||
};
|
||||
|
||||
export default de;
|
||||
|
||||
@@ -161,7 +161,7 @@ const en: Translation = {
|
||||
HELP_INFORMATION_5: 'EMS-ESP is a free and open-source project. Please support its future development by giving it a star on GitHub!',
|
||||
UPLOAD: 'Upload',
|
||||
DOWNLOAD: '{{D|d|d}}ownload',
|
||||
INSTALL: 'Install',
|
||||
INSTALL: 'Install {0}',
|
||||
ABORTED: 'aborted',
|
||||
FAILED: 'failed',
|
||||
SUCCESSFUL: 'successful',
|
||||
@@ -169,16 +169,13 @@ const en: Translation = {
|
||||
LOG_OF: '{0} Log',
|
||||
STATUS_OF: '{0} Status',
|
||||
DOWNLOAD_UPLOAD: 'Download/Upload',
|
||||
VERSION_ON: 'You are currently on version',
|
||||
CLOSE: 'Close',
|
||||
USE: 'Use',
|
||||
FACTORY_RESET: 'Factory Reset',
|
||||
SYSTEM_FACTORY_TEXT: 'Device has been factory reset and will now restart',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Are you sure you want to reset EMS-ESP to its factory defaults?',
|
||||
THE_LATEST: 'The latest',
|
||||
OFFICIAL: 'official',
|
||||
DEVELOPMENT: 'development',
|
||||
RELEASE_IS: 'release is',
|
||||
STABLE: 'Stable',
|
||||
DEVELOPMENT: 'Development',
|
||||
RELEASE_NOTES: 'release notes',
|
||||
EMS_ESP_VER: 'EMS-ESP Version',
|
||||
UPTIME: 'System Uptime',
|
||||
@@ -335,7 +332,12 @@ const en: Translation = {
|
||||
UPLOAD_DRAG: 'drag and drop a file here or click to select one',
|
||||
SERVICES: 'Services',
|
||||
ALLVALUES: 'All Values',
|
||||
SPECIAL_FUNCTIONS: 'Special Functions'
|
||||
SPECIAL_FUNCTIONS: 'Special Functions',
|
||||
WAIT_FIRMWARE: 'Please wait while the firmware is being uploaded. The device will restart automatically.', // TODO translate
|
||||
INSTALL_VERSION: 'This will install vesion {0}. Are you sure?', // TODO translate
|
||||
SWITCH_DEV: 'Switch to development version', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest version.' // TODO translate
|
||||
};
|
||||
|
||||
export default en;
|
||||
|
||||
@@ -161,7 +161,7 @@ const fr: Translation = {
|
||||
HELP_INFORMATION_5: 'EMS-ESP est un projet libre et open-source. Merci de soutenir son développement futur en lui donnant une étoile sur GitHub !',
|
||||
UPLOAD: 'Upload',
|
||||
DOWNLOAD: '{{D|d|d}}ownload',
|
||||
INSTALL: 'Installer',
|
||||
INSTALL: 'Installer {0}',
|
||||
ABORTED: 'annulé',
|
||||
FAILED: 'échoué',
|
||||
SUCCESSFUL: 'réussi',
|
||||
@@ -169,16 +169,13 @@ const fr: Translation = {
|
||||
LOG_OF: '{0} Log',
|
||||
STATUS_OF: 'Statut {0}',
|
||||
DOWNLOAD_UPLOAD: 'Download/Upload', // TODO translate
|
||||
VERSION_ON: 'You are currently on', // TODO translate
|
||||
CLOSE: 'Fermer',
|
||||
USE: 'Utiliser',
|
||||
FACTORY_RESET: 'Réinitialisation',
|
||||
SYSTEM_FACTORY_TEXT: "L'appareil a été réinitialisé et va maintenant redémarrer",
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: "Êtes-vous sûr de vouloir réinitialiser l'appareil à ses paramètres d'usine ?",
|
||||
THE_LATEST: 'La dernière',
|
||||
OFFICIAL: 'officielle',
|
||||
DEVELOPMENT: 'développement',
|
||||
RELEASE_IS: 'release est', // TODO translate
|
||||
STABLE: 'Stable', // TODO translate
|
||||
DEVELOPMENT: 'Développement',
|
||||
RELEASE_NOTES: 'notes de version',
|
||||
EMS_ESP_VER: 'Version EMS-ESP',
|
||||
UPTIME: 'Durée de fonctionnement du système',
|
||||
@@ -335,7 +332,12 @@ const fr: Translation = {
|
||||
UPLOAD_DRAG: 'drag and drop a file here or click to select one', // TODO translate
|
||||
SERVICES: 'Services', // TODO translate
|
||||
ALLVALUES: 'All Values', // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions' // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions',
|
||||
WAIT_FIRMWARE: 'Please wait while the firmware is being uploaded. The device will restart automatically.', // TODO translate
|
||||
INSTALL_VERSION: 'This will install vesion {0}. Are you sure?', // TODO translate
|
||||
SWITCH_DEV: 'Switch to development version', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest version.' // TODO translate // TODO translate
|
||||
};
|
||||
|
||||
export default fr;
|
||||
|
||||
@@ -161,7 +161,7 @@ const it: Translation = {
|
||||
HELP_INFORMATION_5: 'EMS-ESP è un progetto gratuito e open-source. Supporta il suo sviluppo futuro assegnandogli una stella su GitHub!',
|
||||
UPLOAD: 'Carica',
|
||||
DOWNLOAD: 'Scarica',
|
||||
INSTALL: 'Installare',
|
||||
INSTALL: 'Installare {0}',
|
||||
ABORTED: 'Annullato',
|
||||
FAILED: 'Fallito',
|
||||
SUCCESSFUL: 'Riuscito',
|
||||
@@ -169,16 +169,13 @@ const it: Translation = {
|
||||
LOG_OF: 'Registro {0}',
|
||||
STATUS_OF: 'Stato {0}',
|
||||
DOWNLOAD_UPLOAD: 'Scaricamento/Caricamento',
|
||||
VERSION_ON: 'Attualmente stai eseguendo la versione',
|
||||
CLOSE: 'Chiudere',
|
||||
USE: 'Usa',
|
||||
FACTORY_RESET: 'Impostazioni di fabbrica',
|
||||
SYSTEM_FACTORY_TEXT: 'Il dispositivo è stato ripristinato alle impostazioni di fabbrica e ora verrà riavviato',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Sei sicuro di voler ripristinare il dispositivo alle impostazioni di fabbrica??',
|
||||
THE_LATEST: 'Ultima',
|
||||
OFFICIAL: 'ufficiale',
|
||||
DEVELOPMENT: 'sviluppo',
|
||||
RELEASE_IS: 'rilascio é',
|
||||
STABLE: 'Stable', // TODO translate
|
||||
DEVELOPMENT: 'Sviluppo',
|
||||
RELEASE_NOTES: 'note rilascio',
|
||||
EMS_ESP_VER: 'Versione EMS-ESP',
|
||||
UPTIME: 'Tempo di attività del sistema',
|
||||
@@ -335,7 +332,12 @@ const it: Translation = {
|
||||
UPLOAD_DRAG: 'drag and drop a file here or click to select one', // TODO translate
|
||||
SERVICES: 'Services', // TODO translate
|
||||
ALLVALUES: 'All Values', // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions' // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Please wait while the firmware is being uploaded. The device will restart automatically.', // TODO translate
|
||||
INSTALL_VERSION: 'This will install vesion {0}. Are you sure?', // TODO translate
|
||||
SWITCH_DEV: 'Switch to development version', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest version.' // TODO translate
|
||||
};
|
||||
|
||||
export default it;
|
||||
|
||||
@@ -161,7 +161,7 @@ const nl: Translation = {
|
||||
HELP_INFORMATION_5: 'EMS-ESP is een gratis en open source project. Steun ons met een Star op GitHub!',
|
||||
UPLOAD: 'Upload',
|
||||
DOWNLOAD: '{{D|d|d}}ownload',
|
||||
INSTALL: 'Installeren',
|
||||
INSTALL: 'Installeren {0}',
|
||||
ABORTED: 'afgebroken',
|
||||
FAILED: 'mislukt',
|
||||
SUCCESSFUL: 'successvol',
|
||||
@@ -169,16 +169,13 @@ const nl: Translation = {
|
||||
LOG_OF: '{0} Log',
|
||||
STATUS_OF: '{0} Status',
|
||||
DOWNLOAD_UPLOAD: 'Download/Upload',
|
||||
VERSION_ON: 'U bevindt zich momenteel op versie',
|
||||
CLOSE: 'Sluiten',
|
||||
USE: 'Gebruik',
|
||||
FACTORY_RESET: 'Fabrieksinstellingen',
|
||||
SYSTEM_FACTORY_TEXT: 'Gateway is gereset en start nu weer op met fabrieksinstellingen',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Weet je zeker dat je een reset naar fabrieksinstellingen uit wilt voeren?',
|
||||
THE_LATEST: 'De laatste',
|
||||
OFFICIAL: 'official',
|
||||
DEVELOPMENT: 'development',
|
||||
RELEASE_IS: 'release is',
|
||||
STABLE: 'Stable',
|
||||
DEVELOPMENT: 'Development',
|
||||
RELEASE_NOTES: 'release notes',
|
||||
EMS_ESP_VER: 'EMS-ESP Versie',
|
||||
UPTIME: 'Systeem Uptime',
|
||||
@@ -335,7 +332,12 @@ const nl: Translation = {
|
||||
UPLOAD_DRAG: 'drag and drop a file here or click to select one', // TODO translate
|
||||
SERVICES: 'Services', // TODO translate
|
||||
ALLVALUES: 'All Values', // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions' // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Please wait while the firmware is being uploaded. The device will restart automatically.', // TODO translate
|
||||
INSTALL_VERSION: 'This will install vesion {0}. Are you sure?', // TODO translate
|
||||
SWITCH_DEV: 'Switch to development version', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest version.' // TODO translate
|
||||
};
|
||||
|
||||
export default nl;
|
||||
|
||||
@@ -161,7 +161,7 @@ const no: Translation = {
|
||||
HELP_INFORMATION_5: 'EMS-ESP er gratis og åpen kildekode. Bidra til utviklingen ved å gi oss en stjerne på GitHub!',
|
||||
UPLOAD: 'Opplasning',
|
||||
DOWNLOAD: '{{N|n|n}}edlasting',
|
||||
INSTALL: 'Installer',
|
||||
INSTALL: 'Installer {0}',
|
||||
ABORTED: 'avbrutt',
|
||||
FAILED: 'feilet',
|
||||
SUCCESSFUL: 'vellykket',
|
||||
@@ -169,16 +169,13 @@ const no: Translation = {
|
||||
LOG_OF: '{0} Logg',
|
||||
STATUS_OF: '{0} Status',
|
||||
DOWNLOAD_UPLOAD: 'Nedlasting/Opp',
|
||||
VERSION_ON: 'You are currently on', // TODO translate
|
||||
CLOSE: 'Steng',
|
||||
USE: 'Bruk',
|
||||
FACTORY_RESET: 'Sett tilbake til fabrikkinstilling',
|
||||
SYSTEM_FACTORY_TEXT: 'Enhet har blitt satt tilbake til fabrikkinstilling og vil restarte',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Er du sikker på at du vil resette enheten til fabrikkinstillinger?',
|
||||
THE_LATEST: 'Den nyeste',
|
||||
OFFICIAL: 'official',
|
||||
DEVELOPMENT: 'development',
|
||||
RELEASE_IS: 'release er',
|
||||
STABLE: 'Stable', // TODO translate
|
||||
DEVELOPMENT: 'Development',
|
||||
RELEASE_NOTES: 'release notes',
|
||||
EMS_ESP_VER: 'EMS-ESP Version',
|
||||
UPTIME: 'System Oppetid',
|
||||
@@ -335,7 +332,12 @@ const no: Translation = {
|
||||
UPLOAD_DRAG: 'drag and drop a file here or click to select one', // TODO translate
|
||||
SERVICES: 'Services', // TODO translate
|
||||
ALLVALUES: 'All Values', // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions' // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Please wait while the firmware is being uploaded. The device will restart automatically.', // TODO translate
|
||||
INSTALL_VERSION: 'This will install vesion {0}. Are you sure?', // TODO translate
|
||||
SWITCH_DEV: 'Switch to development version', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest version.' // TODO translate
|
||||
};
|
||||
|
||||
export default no;
|
||||
|
||||
@@ -161,7 +161,7 @@ const pl: BaseTranslation = {
|
||||
HELP_INFORMATION_5: 'EMS-ESP jest darmowym projektem typu open-source. Aby go wesprzeć, rozważ przyznanie nam gwiazdki na GitHub!',
|
||||
UPLOAD: 'Wysyłanie',
|
||||
DOWNLOAD: '{{P|p||P}}obier{{anie|z||z}}',
|
||||
INSTALL: 'Zainstalować',
|
||||
INSTALL: 'Zainstalować {0}',
|
||||
ABORTED: 'zostało przerwane!',
|
||||
FAILED: 'nie powiodł{{o|a|}} się!',
|
||||
SUCCESSFUL: 'powiodło się.',
|
||||
@@ -169,16 +169,13 @@ const pl: BaseTranslation = {
|
||||
LOG_OF: 'Log {0}',
|
||||
STATUS_OF: 'Status {0}',
|
||||
DOWNLOAD_UPLOAD: 'Plików przesyłanie',
|
||||
VERSION_ON: 'Aktualnie używasz',
|
||||
CLOSE: 'Zamknij',
|
||||
USE: 'Aby zaktualizować firmware skorzystaj z funkcji',
|
||||
FACTORY_RESET: 'Ustawienia fabryczne',
|
||||
SYSTEM_FACTORY_TEXT: 'Interfejs EMS-ESP został przywrócony do ustawień fabrycznych i zostanie teraz ponownie uruchomiony.',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Na pewno chcesz przywrócić ustawienia fabryczne interfejsu EMS-ESP? ',
|
||||
THE_LATEST: 'Najnowsze',
|
||||
OFFICIAL: 'oficjalne',
|
||||
DEVELOPMENT: 'testowe',
|
||||
RELEASE_IS: 'wydanie to',
|
||||
STABLE: 'Stable', // TODO translate
|
||||
DEVELOPMENT: 'Testowe',
|
||||
RELEASE_NOTES: 'lista zmian',
|
||||
EMS_ESP_VER: 'Wersja EMS-ESP',
|
||||
UPTIME: 'Czas działania systemu',
|
||||
@@ -335,7 +332,12 @@ const pl: BaseTranslation = {
|
||||
UPLOAD_DRAG: 'drag and drop a file here or click to select one', // TODO translate
|
||||
SERVICES: 'Services', // TODO translate
|
||||
ALLVALUES: 'All Values', // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions' // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Please wait while the firmware is being uploaded. The device will restart automatically.', // TODO translate
|
||||
INSTALL_VERSION: 'This will install vesion {0}. Are you sure?', // TODO translate
|
||||
SWITCH_DEV: 'Switch to development version', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest version.' // TODO translate
|
||||
};
|
||||
|
||||
export default pl;
|
||||
|
||||
@@ -161,7 +161,7 @@ const sk: Translation = {
|
||||
HELP_INFORMATION_5: 'EMS-ESP je bezplatný a open source projekt. Podporte jeho budúci vývoj tým, že mu dáte hviezdičku na GitHub!',
|
||||
UPLOAD: 'Nahrať',
|
||||
DOWNLOAD: '{{S|s|s}}tiahnuť',
|
||||
INSTALL: 'Inštalovať',
|
||||
INSTALL: 'Inštalovať {0}',
|
||||
ABORTED: 'zrušené',
|
||||
FAILED: 'chybné',
|
||||
SUCCESSFUL: 'úspešné',
|
||||
@@ -169,16 +169,13 @@ const sk: Translation = {
|
||||
LOG_OF: '{0} Log',
|
||||
STATUS_OF: '{0} Stav',
|
||||
DOWNLOAD_UPLOAD: 'Stiahnuť/Nahrať',
|
||||
VERSION_ON: 'Momentálne nainštalovaná verzia: ',
|
||||
CLOSE: 'Zatvoriť',
|
||||
USE: 'Použiť',
|
||||
FACTORY_RESET: 'Továrenské nastavenia',
|
||||
SYSTEM_FACTORY_TEXT: 'Zariadenie bolo obnovené z výroby a teraz sa reštartuje',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Naozaj chcete resetovať EMS-ESP na predvolené výrobné nastavenia?',
|
||||
THE_LATEST: 'Posledná',
|
||||
OFFICIAL: 'officiálna',
|
||||
DEVELOPMENT: 'vývojárska',
|
||||
RELEASE_IS: 'verzia je',
|
||||
STABLE: 'Stable', // TODO translate
|
||||
DEVELOPMENT: 'Vývojárska',
|
||||
RELEASE_NOTES: 'poznámky k verzii',
|
||||
EMS_ESP_VER: 'EMS-ESP verzia',
|
||||
UPTIME: 'Beh systému',
|
||||
@@ -335,7 +332,12 @@ const sk: Translation = {
|
||||
UPLOAD_DRAG: 'drag and drop a file here or click to select one', // TODO translate
|
||||
SERVICES: 'Services', // TODO translate
|
||||
ALLVALUES: 'All Values', // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions' // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Please wait while the firmware is being uploaded. The device will restart automatically.', // TODO translate
|
||||
INSTALL_VERSION: 'This will install vesion {0}. Are you sure?', // TODO translate
|
||||
SWITCH_DEV: 'Switch to development version', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest version.' // TODO translate
|
||||
};
|
||||
|
||||
export default sk;
|
||||
|
||||
@@ -161,7 +161,7 @@ const sv: Translation = {
|
||||
HELP_INFORMATION_5: 'EMS-ESP är gratis och är öppen källkod. Bidra till utvecklingen genom att ge oss en stjärna på GitHub!',
|
||||
UPLOAD: 'Uppladdning',
|
||||
DOWNLOAD: '{{N|n|n}}edladdning',
|
||||
INSTALL: 'Installera',
|
||||
INSTALL: 'Installera {0}',
|
||||
ABORTED: 'Avbruten',
|
||||
FAILED: 'Misslyckades',
|
||||
SUCCESSFUL: 'Lyckades',
|
||||
@@ -169,16 +169,13 @@ const sv: Translation = {
|
||||
LOG_OF: '{0} Logg',
|
||||
STATUS_OF: '{0} Status',
|
||||
DOWNLOAD_UPLOAD: 'Nedladdning/Upp',
|
||||
VERSION_ON: 'You are currently on', // TODO translate
|
||||
CLOSE: 'Stäng',
|
||||
USE: 'Använd',
|
||||
FACTORY_RESET: 'Fabriksåterställning',
|
||||
SYSTEM_FACTORY_TEXT: 'Enheten har blivit fabriksåterställd och startar nu om',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Är du säker att du vill fabriksåterställa enheten?',
|
||||
THE_LATEST: 'Den senaste',
|
||||
OFFICIAL: 'officiell',
|
||||
DEVELOPMENT: 'utveckling',
|
||||
RELEASE_IS: 'release är',
|
||||
STABLE: 'Stable', // TODO translate
|
||||
DEVELOPMENT: 'Utveckling',
|
||||
RELEASE_NOTES: 'release-logg',
|
||||
EMS_ESP_VER: 'EMS-ESP Version',
|
||||
UPTIME: 'Systemets Upptid',
|
||||
@@ -335,7 +332,12 @@ const sv: Translation = {
|
||||
UPLOAD_DRAG: 'drag and drop a file here or click to select one', // TODO translate
|
||||
SERVICES: 'Services', // TODO translate
|
||||
ALLVALUES: 'All Values', // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions' // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Please wait while the firmware is being uploaded. The device will restart automatically.', // TODO translate
|
||||
INSTALL_VERSION: 'This will install vesion {0}. Are you sure?', // TODO translate
|
||||
SWITCH_DEV: 'Switch to development version', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest version.' // TODO translate
|
||||
};
|
||||
|
||||
export default sv;
|
||||
|
||||
@@ -161,7 +161,7 @@ const tr: Translation = {
|
||||
HELP_INFORMATION_5: 'EMS-ESP ücretsiz ve açık kaynaklı bir projedir. Lütfen geliştirmeyi desteklemek için GitHubda projeye yıldız verin!',
|
||||
UPLOAD: 'Yükleme',
|
||||
DOWNLOAD: '{{İ|i|i}}İndirme',
|
||||
INSTALL: 'Düzenlemek',
|
||||
INSTALL: 'Düzenlemek {0}',
|
||||
ABORTED: 'iptal edildi',
|
||||
FAILED: 'başarısız',
|
||||
SUCCESSFUL: 'başarılı',
|
||||
@@ -169,16 +169,13 @@ const tr: Translation = {
|
||||
LOG_OF: '{0} Kaydı',
|
||||
STATUS_OF: '{0} Durumu',
|
||||
DOWNLOAD_UPLOAD: 'İndirme/Yükleme',
|
||||
VERSION_ON: 'You are currently on', // TODO translate
|
||||
CLOSE: 'Kapat',
|
||||
USE: 'KUllan',
|
||||
FACTORY_RESET: 'Fabrika ayarına dönme',
|
||||
SYSTEM_FACTORY_TEXT: 'Cihaz fabrika ayarlarına döndü ve şimdi yendiden başlatılacak',
|
||||
SYSTEM_FACTORY_TEXT_DIALOG: 'Cihazı fabrika ayarlarına döndürmek istediğinize emin misiniz?',
|
||||
THE_LATEST: 'En son',
|
||||
OFFICIAL: 'resmi',
|
||||
DEVELOPMENT: 'geliştirme',
|
||||
RELEASE_IS: 'release is', // TODO translate
|
||||
STABLE: 'Stable', // TODO translate
|
||||
DEVELOPMENT: 'Geliştirme',
|
||||
RELEASE_NOTES: 'yayınlanma notları',
|
||||
EMS_ESP_VER: 'EMS-ESP Sürümü',
|
||||
UPTIME: 'Sistem Çalışma Süresi',
|
||||
@@ -335,7 +332,12 @@ const tr: Translation = {
|
||||
UPLOAD_DRAG: 'drag and drop a file here or click to select one', // TODO translate
|
||||
SERVICES: 'Services', // TODO translate
|
||||
ALLVALUES: 'All Values', // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions' // TODO translate
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Please wait while the firmware is being uploaded. The device will restart automatically.', // TODO translate
|
||||
INSTALL_VERSION: 'This will install vesion {0}. Are you sure?', // TODO translate
|
||||
SWITCH_DEV: 'Switch to development version', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest version.' // TODO translate
|
||||
};
|
||||
|
||||
export default tr;
|
||||
|
||||
@@ -4,6 +4,7 @@ import type { NetworkConnectionStatus } from './network';
|
||||
|
||||
export interface HardwareStatus {
|
||||
emsesp_version: string;
|
||||
build_flags: string;
|
||||
esp_platform: string;
|
||||
max_alloc_heap: number;
|
||||
cpu_type: string;
|
||||
@@ -30,7 +31,6 @@ export interface HardwareStatus {
|
||||
|
||||
export interface SystemStatus {
|
||||
emsesp_version: string;
|
||||
esp_platform: string;
|
||||
status: busConnectionStatus;
|
||||
uptime: number;
|
||||
bus_uptime: number;
|
||||
|
||||
@@ -368,8 +368,10 @@ const SIGN_IN_ENDPOINT = REST_ENDPOINT_ROOT + 'signIn';
|
||||
const GENERATE_TOKEN_ENDPOINT = REST_ENDPOINT_ROOT + 'generateToken';
|
||||
|
||||
const hardware_status = {
|
||||
emsesp_version: '3.7-demo',
|
||||
emsesp_version: '3.7.0-dev.33',
|
||||
// emsesp_version: '3.6.5',
|
||||
esp_platform: 'ESP32S3',
|
||||
build_flags: 'DEMO',
|
||||
cpu_type: 'ESP32-S3',
|
||||
cpu_rev: 0,
|
||||
cpu_cores: 2,
|
||||
@@ -395,8 +397,8 @@ const hardware_status = {
|
||||
};
|
||||
|
||||
const system_status = {
|
||||
emsesp_version: '3.7-demo',
|
||||
esp_platform: 'ESP32',
|
||||
emsesp_version: '3.7.0-dev.33',
|
||||
// emsesp_version: '3.6.5',
|
||||
status: 0,
|
||||
// status: 2,
|
||||
uptime: 77186,
|
||||
@@ -452,6 +454,7 @@ const EMSESP_DEVICEDATA_ENDPOINT2 = REST_ENDPOINT_ROOT + 'deviceData/:id?';
|
||||
const EMSESP_DEVICEENTITIES_ENDPOINT1 = REST_ENDPOINT_ROOT + 'deviceEntities';
|
||||
const EMSESP_DEVICEENTITIES_ENDPOINT2 = REST_ENDPOINT_ROOT + 'deviceEntities/:id?';
|
||||
|
||||
const EMSESP_CHECK_UPGRADE_ENDPOINT = REST_ENDPOINT_ROOT + 'checkUpgrade';
|
||||
const EMSESP_BOARDPROFILE_ENDPOINT = REST_ENDPOINT_ROOT + 'boardProfile';
|
||||
const EMSESP_WRITE_DEVICEVALUE_ENDPOINT = REST_ENDPOINT_ROOT + 'writeDeviceValue';
|
||||
const EMSESP_WRITE_DEVICENAME_ENDPOINT = REST_ENDPOINT_ROOT + 'writeDeviceName';
|
||||
@@ -4529,6 +4532,17 @@ router
|
||||
return status(200);
|
||||
})
|
||||
|
||||
// check upgrade
|
||||
.post(EMSESP_CHECK_UPGRADE_ENDPOINT, async (request: any) => {
|
||||
const content = await request.json();
|
||||
console.log('check upgrade', content.version);
|
||||
const data = {
|
||||
upgradeable: true
|
||||
// upgradeable: false
|
||||
};
|
||||
return data;
|
||||
})
|
||||
|
||||
// Settings - board profile
|
||||
.post(EMSESP_BOARDPROFILE_ENDPOINT, async (request: any) => {
|
||||
const content = await request.json();
|
||||
|
||||
@@ -1 +1 @@
|
||||
#define EMSESP_APP_VERSION "3.7.0-dev.32"
|
||||
#define EMSESP_APP_VERSION "3.7.0-dev.33"
|
||||
|
||||
@@ -24,12 +24,15 @@
|
||||
|
||||
namespace emsesp {
|
||||
|
||||
// /rest/hardwareStatus
|
||||
WebStatusService::WebStatusService(AsyncWebServer * server, SecurityManager * securityManager) {
|
||||
server->on(HARDWARE_STATUS_SERVICE_PATH, HTTP_GET, [this](AsyncWebServerRequest * request) { hardwareStatus(request); });
|
||||
server->on(SYSTEM_STATUS_SERVICE_PATH, HTTP_GET, [this](AsyncWebServerRequest * request) { systemStatus(request); });
|
||||
// GET
|
||||
server->on(EMSESP_HARDWARE_STATUS_SERVICE_PATH, HTTP_GET, [this](AsyncWebServerRequest * request) { hardwareStatus(request); });
|
||||
server->on(EMSESP_SYSTEM_STATUS_SERVICE_PATH, HTTP_GET, [this](AsyncWebServerRequest * request) { systemStatus(request); });
|
||||
// POST
|
||||
server->on(EMSESP_CHECK_UPGRADE_PATH, [this](AsyncWebServerRequest * request, JsonVariant json) { checkUpgrade(request, json); });
|
||||
}
|
||||
|
||||
// /rest/systemStatus
|
||||
void WebStatusService::systemStatus(AsyncWebServerRequest * request) {
|
||||
// This is a litle trick for the OTA upload. We don't want the React RestartService to think we're finished
|
||||
// with the upload so we fake it and pretent the /rest/systemStatus is not available. That way the spinner keeps spinning.
|
||||
@@ -42,25 +45,15 @@ void WebStatusService::systemStatus(AsyncWebServerRequest * request) {
|
||||
auto * response = new AsyncJsonResponse(false);
|
||||
JsonObject root = response->getRoot();
|
||||
|
||||
#ifdef EMSESP_DEBUG
|
||||
root["emsesp_version"] = std::string(EMSESP_APP_VERSION) + " (DEBUG)";
|
||||
#else
|
||||
#ifdef EMSESP_TEST
|
||||
root["emsesp_version"] = std::string(EMSESP_APP_VERSION) + " (TEST)";
|
||||
#else
|
||||
root["emsesp_version"] = EMSESP_APP_VERSION;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
root["esp_platform"] = EMSESP_PLATFORM; // from default_settings.h: ESP32, ESP32C3, ESP32S2, ESP32S3
|
||||
root["status"] = EMSESP::bus_status(); // 0, 1 or 2
|
||||
root["bus_uptime"] = EMSbus::bus_uptime();
|
||||
root["num_devices"] = EMSESP::count_devices();
|
||||
root["num_sensors"] = EMSESP::temperaturesensor_.no_sensors();
|
||||
root["num_analogs"] = EMSESP::analogsensor_.no_sensors();
|
||||
root["free_heap"] = EMSESP::system_.getHeapMem();
|
||||
root["uptime"] = uuid::get_uptime_sec();
|
||||
root["mqtt_status"] = EMSESP::mqtt_.connected();
|
||||
root["status"] = EMSESP::bus_status(); // 0, 1 or 2
|
||||
root["bus_uptime"] = EMSbus::bus_uptime();
|
||||
root["num_devices"] = EMSESP::count_devices();
|
||||
root["num_sensors"] = EMSESP::temperaturesensor_.no_sensors();
|
||||
root["num_analogs"] = EMSESP::analogsensor_.no_sensors();
|
||||
root["free_heap"] = EMSESP::system_.getHeapMem();
|
||||
root["uptime"] = uuid::get_uptime_sec();
|
||||
root["mqtt_status"] = EMSESP::mqtt_.connected();
|
||||
|
||||
#ifndef EMSESP_STANDALONE
|
||||
root["ntp_status"] = [] {
|
||||
@@ -104,21 +97,25 @@ void WebStatusService::systemStatus(AsyncWebServerRequest * request) {
|
||||
request->send(response);
|
||||
}
|
||||
|
||||
// /rest/hardwareStatus
|
||||
void WebStatusService::hardwareStatus(AsyncWebServerRequest * request) {
|
||||
EMSESP::system_.refreshHeapMem(); // refresh free heap and max alloc heap
|
||||
|
||||
auto * response = new AsyncJsonResponse(false);
|
||||
JsonObject root = response->getRoot();
|
||||
|
||||
#ifdef EMSESP_DEBUG
|
||||
root["emsesp_version"] = std::string(EMSESP_APP_VERSION) + " (DEBUG)";
|
||||
#else
|
||||
#ifdef EMSESP_TEST
|
||||
root["emsesp_version"] = std::string(EMSESP_APP_VERSION) + " (TEST)";
|
||||
#else
|
||||
root["emsesp_version"] = EMSESP_APP_VERSION;
|
||||
|
||||
#ifdef EMSESP_DEBUG
|
||||
#ifdef EMSESP_TEST
|
||||
root["build_flags"] = "DEBUG,TEST";
|
||||
#else
|
||||
root["build_flags"] = "DEBUG";
|
||||
#endif
|
||||
#elif defined(EMSESP_TEST)
|
||||
root["build_flags"] = "TEST";
|
||||
#endif
|
||||
|
||||
root["esp_platform"] = EMSESP_PLATFORM;
|
||||
|
||||
#ifndef EMSESP_STANDALONE
|
||||
@@ -154,4 +151,21 @@ void WebStatusService::hardwareStatus(AsyncWebServerRequest * request) {
|
||||
request->send(response);
|
||||
}
|
||||
|
||||
// returns trues if there is an upgrade available
|
||||
void WebStatusService::checkUpgrade(AsyncWebServerRequest * request, JsonVariant json) {
|
||||
auto * response = new AsyncJsonResponse();
|
||||
JsonObject root = response->getRoot();
|
||||
|
||||
version::Semver200_version settings_version(EMSESP_APP_VERSION);
|
||||
std::string latest_version = json["version"] | EMSESP_APP_VERSION;
|
||||
version::Semver200_version this_version(latest_version);
|
||||
|
||||
emsesp::EMSESP::logger().debug("Checking for upgrade: %s > %s", EMSESP_APP_VERSION, latest_version.c_str());
|
||||
|
||||
root["upgradeable"] = (this_version > settings_version);
|
||||
|
||||
response->setLength();
|
||||
request->send(response);
|
||||
}
|
||||
|
||||
} // namespace emsesp
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
#ifndef WebStatusService_h
|
||||
#define WebStatusService_h
|
||||
|
||||
#define HARDWARE_STATUS_SERVICE_PATH "/rest/hardwareStatus"
|
||||
#define SYSTEM_STATUS_SERVICE_PATH "/rest/systemStatus"
|
||||
#define EMSESP_HARDWARE_STATUS_SERVICE_PATH "/rest/hardwareStatus"
|
||||
#define EMSESP_SYSTEM_STATUS_SERVICE_PATH "/rest/systemStatus"
|
||||
#define EMSESP_CHECK_UPGRADE_PATH "/rest/checkUpgrade"
|
||||
|
||||
#include <semver200.h>
|
||||
|
||||
namespace emsesp {
|
||||
|
||||
@@ -13,6 +16,7 @@ class WebStatusService {
|
||||
private:
|
||||
void systemStatus(AsyncWebServerRequest * request);
|
||||
void hardwareStatus(AsyncWebServerRequest * request);
|
||||
void checkUpgrade(AsyncWebServerRequest * request, JsonVariant json);
|
||||
};
|
||||
|
||||
} // namespace emsesp
|
||||
|
||||
Reference in New Issue
Block a user