mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-05-12 17:15:52 +00:00
Merge branch 'dev' of https://github.com/emsesp/EMS-ESP32 into dev
This commit is contained in:
2
.github/workflows/pre_release.yml
vendored
2
.github/workflows/pre_release.yml
vendored
@@ -30,7 +30,7 @@ jobs:
|
||||
- name: Get EMS-ESP version
|
||||
id: build_info
|
||||
run: |
|
||||
version=`grep -E '^#define EMSESP_APP_VERSION' ./src/version.h | awk -F'"' '{print $2}'`
|
||||
version=`grep -E '^#define EMSESP_APP_VERSION' ./src/emsesp_version.h | awk -F'"' '{print $2}'`
|
||||
echo "VERSION=$version" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install PlatformIO
|
||||
|
||||
2
.github/workflows/test_release.yml
vendored
2
.github/workflows/test_release.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
||||
- name: Get EMS-ESP source code and version
|
||||
id: build_info
|
||||
run: |
|
||||
version=`grep -E '^#define EMSESP_APP_VERSION' ./src/version.h | awk -F'"' '{print $2}'`
|
||||
version=`grep -E '^#define EMSESP_APP_VERSION' ./src/emsesp_version.h | awk -F'"' '{print $2}'`
|
||||
echo "VERSION=$version" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install PlatformIO
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -76,3 +76,4 @@ CMakeLists.txt
|
||||
logs/*
|
||||
sdkconfig.*
|
||||
sdkconfig_tasmota_esp32
|
||||
yarn.lock
|
||||
|
||||
2
Makefile
2
Makefile
@@ -98,7 +98,7 @@ CXX := /usr/bin/g++
|
||||
# LDFLAGS Linker Flags
|
||||
#----------------------------------------------------------------------
|
||||
CPPFLAGS += $(DEFINES) $(DEFAULTS) $(INCLUDE)
|
||||
CPPFLAGS += -ggdb -g3 -O3
|
||||
CPPFLAGS += -ggdb -g3
|
||||
CPPFLAGS += -MMD
|
||||
CPPFLAGS += -flto=auto -fno-lto
|
||||
CPPFLAGS += -Wall -Wextra -Werror
|
||||
|
||||
@@ -377,7 +377,7 @@
|
||||
| maxheatcomp | heat limit compressor | enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW] | | true | DEVICE_DATA | 206 | 1 | 1 |
|
||||
| maxheatheat | heat limit heating | enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW] | | true | DEVICE_DATA | 207 | 1 | 1 |
|
||||
| dhw.maxheat | heat limit | enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW] | | true | DHW | 14 | 1 | 1 |
|
||||
| mandefrost | manual defrost | boolean | | true | DEVICE_DATA | 208 | 1 | 1 |
|
||||
| auxheatersource | aux heater source | enum [not installed\|electric heater\|exclusive\|parallel\|hybrid] | | true | DEVICE_DATA | 208 | 1 | 1 |
|
||||
| pvcooling | cooling only with PV | boolean | | true | DEVICE_DATA | 209 | 1 | 1 |
|
||||
| auxheateronly | aux heater only | boolean | | true | DEVICE_DATA | 210 | 1 | 1 |
|
||||
| auxheateroff | disable aux heater | boolean | | true | DEVICE_DATA | 211 | 1 | 1 |
|
||||
@@ -1532,7 +1532,7 @@
|
||||
| maxheatcomp | heat limit compressor | enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW] | | true | DEVICE_DATA | 206 | 1 | 1 |
|
||||
| maxheatheat | heat limit heating | enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW] | | true | DEVICE_DATA | 207 | 1 | 1 |
|
||||
| dhw.maxheat | heat limit | enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW] | | true | DHW | 14 | 1 | 1 |
|
||||
| mandefrost | manual defrost | boolean | | true | DEVICE_DATA | 208 | 1 | 1 |
|
||||
| auxheatersource | aux heater source | enum [not installed\|electric heater\|exclusive\|parallel\|hybrid] | | true | DEVICE_DATA | 208 | 1 | 1 |
|
||||
| pvcooling | cooling only with PV | boolean | | true | DEVICE_DATA | 209 | 1 | 1 |
|
||||
| auxheateronly | aux heater only | boolean | | true | DEVICE_DATA | 210 | 1 | 1 |
|
||||
| auxheateroff | disable aux heater | boolean | | true | DEVICE_DATA | 211 | 1 | 1 |
|
||||
@@ -2097,7 +2097,7 @@
|
||||
| maxheatcomp | heat limit compressor | enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW] | | true | DEVICE_DATA | 206 | 1 | 1 |
|
||||
| maxheatheat | heat limit heating | enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW] | | true | DEVICE_DATA | 207 | 1 | 1 |
|
||||
| dhw.maxheat | heat limit | enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW] | | true | DHW | 14 | 1 | 1 |
|
||||
| mandefrost | manual defrost | boolean | | true | DEVICE_DATA | 208 | 1 | 1 |
|
||||
| auxheatersource | aux heater source | enum [not installed\|electric heater\|exclusive\|parallel\|hybrid] | | true | DEVICE_DATA | 208 | 1 | 1 |
|
||||
| pvcooling | cooling only with PV | boolean | | true | DEVICE_DATA | 209 | 1 | 1 |
|
||||
| auxheateronly | aux heater only | boolean | | true | DEVICE_DATA | 210 | 1 | 1 |
|
||||
| auxheateroff | disable aux heater | boolean | | true | DEVICE_DATA | 211 | 1 | 1 |
|
||||
|
||||
@@ -118,7 +118,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
|
||||
"CS*800i, Logatherm WLW*",boiler,8,maxheatcomp,heat limit compressor,enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW], ,true,select.boiler_heat_limit_compressor,select.boiler_maxheatcomp,5,0,1,206,1
|
||||
"CS*800i, Logatherm WLW*",boiler,8,maxheatheat,heat limit heating,enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW], ,true,select.boiler_heat_limit_heating,select.boiler_maxheatheat,5,0,1,207,1
|
||||
"CS*800i, Logatherm WLW*",boiler,8,dhw.maxheat,heat limit,enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW], ,true,select.boiler_dhw_heat_limit,select.boiler_dhw_maxheat,5,9,1,14,1
|
||||
"CS*800i, Logatherm WLW*",boiler,8,mandefrost,manual defrost,boolean, ,true,switch.boiler_manual_defrost,switch.boiler_mandefrost,5,0,1,208,1
|
||||
"CS*800i, Logatherm WLW*",boiler,8,auxheatersource,aux heater source,enum [not installed\|electric heater\|exclusive\|parallel\|hybrid], ,true,select.boiler_aux_heater_source,select.boiler_auxheatersource,5,0,1,208,1
|
||||
"CS*800i, Logatherm WLW*",boiler,8,pvcooling,cooling only with PV,boolean, ,true,switch.boiler_cooling_only_with_PV,switch.boiler_pvcooling,5,0,1,209,1
|
||||
"CS*800i, Logatherm WLW*",boiler,8,auxheateronly,aux heater only,boolean, ,true,switch.boiler_aux_heater_only,switch.boiler_auxheateronly,5,0,1,210,1
|
||||
"CS*800i, Logatherm WLW*",boiler,8,auxheateroff,disable aux heater,boolean, ,true,switch.boiler_disable_aux_heater,switch.boiler_auxheateroff,5,0,1,211,1
|
||||
@@ -2377,7 +2377,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
|
||||
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,maxheatcomp,heat limit compressor,enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW], ,true,select.boiler_heat_limit_compressor,select.boiler_maxheatcomp,5,0,1,206,1
|
||||
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,maxheatheat,heat limit heating,enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW], ,true,select.boiler_heat_limit_heating,select.boiler_maxheatheat,5,0,1,207,1
|
||||
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.maxheat,heat limit,enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW], ,true,select.boiler_dhw_heat_limit,select.boiler_dhw_maxheat,5,9,1,14,1
|
||||
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,mandefrost,manual defrost,boolean, ,true,switch.boiler_manual_defrost,switch.boiler_mandefrost,5,0,1,208,1
|
||||
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,auxheatersource,aux heater source,enum [not installed\|electric heater\|exclusive\|parallel\|hybrid], ,true,select.boiler_aux_heater_source,select.boiler_auxheatersource,5,0,1,208,1
|
||||
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,pvcooling,cooling only with PV,boolean, ,true,switch.boiler_cooling_only_with_PV,switch.boiler_pvcooling,5,0,1,209,1
|
||||
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,auxheateronly,aux heater only,boolean, ,true,switch.boiler_aux_heater_only,switch.boiler_auxheateronly,5,0,1,210,1
|
||||
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,auxheateroff,disable aux heater,boolean, ,true,switch.boiler_disable_aux_heater,switch.boiler_auxheateroff,5,0,1,211,1
|
||||
@@ -2584,7 +2584,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
|
||||
"Geo 5xx",boiler,173,maxheatcomp,heat limit compressor,enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW], ,true,select.boiler_heat_limit_compressor,select.boiler_maxheatcomp,5,0,1,206,1
|
||||
"Geo 5xx",boiler,173,maxheatheat,heat limit heating,enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW], ,true,select.boiler_heat_limit_heating,select.boiler_maxheatheat,5,0,1,207,1
|
||||
"Geo 5xx",boiler,173,dhw.maxheat,heat limit,enum [0 kW\|2 kW\|3 kW\|4 kW\|6 kW\|9 kW], ,true,select.boiler_dhw_heat_limit,select.boiler_dhw_maxheat,5,9,1,14,1
|
||||
"Geo 5xx",boiler,173,mandefrost,manual defrost,boolean, ,true,switch.boiler_manual_defrost,switch.boiler_mandefrost,5,0,1,208,1
|
||||
"Geo 5xx",boiler,173,auxheatersource,aux heater source,enum [not installed\|electric heater\|exclusive\|parallel\|hybrid], ,true,select.boiler_aux_heater_source,select.boiler_auxheatersource,5,0,1,208,1
|
||||
"Geo 5xx",boiler,173,pvcooling,cooling only with PV,boolean, ,true,switch.boiler_cooling_only_with_PV,switch.boiler_pvcooling,5,0,1,209,1
|
||||
"Geo 5xx",boiler,173,auxheateronly,aux heater only,boolean, ,true,switch.boiler_aux_heater_only,switch.boiler_auxheateronly,5,0,1,210,1
|
||||
"Geo 5xx",boiler,173,auxheateroff,disable aux heater,boolean, ,true,switch.boiler_disable_aux_heater,switch.boiler_auxheateroff,5,0,1,211,1
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -13,7 +13,7 @@ telegram_type_id,name,is_fetched
|
||||
0x19,UBAMonitorSlow,
|
||||
0x1A,UBASetPoints,
|
||||
0x1C,UBAMaintenanceStatus,
|
||||
0x1E,HydrTemp,
|
||||
0x1E,WM10TempMessage,
|
||||
0x23,JunkersSetMixer,fetched
|
||||
0x26,UBASettingsWW,fetched
|
||||
0x28,WeatherComp,fetched
|
||||
@@ -109,10 +109,10 @@ telegram_type_id,name,is_fetched
|
||||
0x02A0,RC300Curves,
|
||||
0x02A1,RC300Curves,
|
||||
0x02A2,RC300Curves,
|
||||
0x02A5,CRFMonitor,
|
||||
0x02A5,RC300Monitor,fetched
|
||||
0x02A6,RC300Monitor,
|
||||
0x02A7,RC300Monitor,
|
||||
0x02A8,CRFMonitor,
|
||||
0x02A7,CRFMonitor,
|
||||
0x02A8,RC300Monitor,
|
||||
0x02A9,RC300Monitor,
|
||||
0x02AA,RC300Monitor,
|
||||
0x02AB,RC300Monitor,
|
||||
@@ -133,7 +133,7 @@ telegram_type_id,name,is_fetched
|
||||
0x02BE,RC300Set,
|
||||
0x02BF,RC300Set,
|
||||
0x02C0,RC300Set,
|
||||
0x02CC,RC300Set2,
|
||||
0x02CC,HPPressure,fetched
|
||||
0x02CD,MMPLUSConfigMessage,fetched
|
||||
0x02CE,RC300Set2,
|
||||
0x02D0,RC300Set2,
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1,3 +1,3 @@
|
||||
nodeLinker: node-modules
|
||||
|
||||
yarnPath: .yarn/releases/yarn-4.7.0.cjs
|
||||
yarnPath: .yarn/releases/yarn-4.8.1.cjs
|
||||
|
||||
@@ -24,18 +24,18 @@
|
||||
"@alova/adapter-xhr": "2.1.1",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.0",
|
||||
"@mui/icons-material": "^7.0.0",
|
||||
"@mui/material": "^7.0.0",
|
||||
"@mui/icons-material": "^7.0.1",
|
||||
"@mui/material": "^7.0.1",
|
||||
"@table-library/react-table-library": "4.1.12",
|
||||
"alova": "3.2.10",
|
||||
"async-validator": "^4.2.5",
|
||||
"jwt-decode": "^4.0.0",
|
||||
"mime-types": "^2.1.35",
|
||||
"mime-types": "^3.0.1",
|
||||
"preact": "^10.26.4",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react": "^19.1.0",
|
||||
"react-dom": "^19.1.0",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-router": "^7.4.0",
|
||||
"react-router": "^7.4.1",
|
||||
"react-toastify": "^11.0.5",
|
||||
"typesafe-i18n": "^5.26.2",
|
||||
"typescript": "^5.8.2"
|
||||
@@ -47,7 +47,7 @@
|
||||
"@preact/preset-vite": "^2.10.1",
|
||||
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
||||
"@types/formidable": "^3",
|
||||
"@types/node": "^22.13.13",
|
||||
"@types/node": "^22.13.14",
|
||||
"@types/react": "^19.0.12",
|
||||
"@types/react-dom": "^19.0.4",
|
||||
"concurrently": "^9.1.2",
|
||||
@@ -62,5 +62,5 @@
|
||||
"vite-plugin-imagemin": "^0.6.1",
|
||||
"vite-tsconfig-paths": "^5.1.4"
|
||||
},
|
||||
"packageManager": "yarn@4.7.0"
|
||||
"packageManager": "yarn@4.8.1"
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ const SystemMonitor = () => {
|
||||
color="error"
|
||||
onClick={onCancel}
|
||||
>
|
||||
{LL.RESET(0)}
|
||||
{LL.RESTART()}
|
||||
</Button>
|
||||
</MessageBox>
|
||||
) : (
|
||||
|
||||
@@ -4,7 +4,6 @@ import { toast } from 'react-toastify';
|
||||
import CancelIcon from '@mui/icons-material/Cancel';
|
||||
import CheckIcon from '@mui/icons-material/Done';
|
||||
import DownloadIcon from '@mui/icons-material/GetApp';
|
||||
import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
|
||||
import WarningIcon from '@mui/icons-material/Warning';
|
||||
import {
|
||||
Box,
|
||||
@@ -45,7 +44,9 @@ const Version = () => {
|
||||
const [openInstallDialog, setOpenInstallDialog] = useState<boolean>(false);
|
||||
const [usingDevVersion, setUsingDevVersion] = useState<boolean>(false);
|
||||
const [fetchDevVersion, setFetchDevVersion] = useState<boolean>(false);
|
||||
const [upgradeAvailable, setUpgradeAvailable] = useState<boolean>(false);
|
||||
const [devUpgradeAvailable, setDevUpgradeAvailable] = useState<boolean>(false);
|
||||
const [stableUpgradeAvailable, setStableUpgradeAvailable] =
|
||||
useState<boolean>(false);
|
||||
const [internetLive, setInternetLive] = useState<boolean>(false);
|
||||
const [downloadOnly, setDownloadOnly] = useState<boolean>(false);
|
||||
|
||||
@@ -63,8 +64,13 @@ const Version = () => {
|
||||
immediate: false
|
||||
}
|
||||
).onSuccess((event) => {
|
||||
const data = event.data as { emsesp_version: string; upgradeable: boolean };
|
||||
setUpgradeAvailable(data.upgradeable);
|
||||
const data = event.data as {
|
||||
emsesp_version: string;
|
||||
dev_upgradeable: boolean;
|
||||
stable_upgradeable: boolean;
|
||||
};
|
||||
setDevUpgradeAvailable(data.dev_upgradeable);
|
||||
setStableUpgradeAvailable(data.stable_upgradeable);
|
||||
});
|
||||
|
||||
const {
|
||||
@@ -173,55 +179,59 @@ const Version = () => {
|
||||
|
||||
useLayoutTitle('EMS-ESP Firmware');
|
||||
|
||||
const renderInstallDialog = () => (
|
||||
<Dialog
|
||||
sx={dialogStyle}
|
||||
open={openInstallDialog}
|
||||
onClose={() => closeInstallDialog()}
|
||||
>
|
||||
<DialogTitle>
|
||||
{LL.INSTALL() +
|
||||
' ' +
|
||||
(fetchDevVersion ? LL.DEVELOPMENT() : LL.STABLE()) +
|
||||
' Firmware'}
|
||||
</DialogTitle>
|
||||
<DialogContent dividers>
|
||||
<Typography mb={2}>
|
||||
{LL.INSTALL_VERSION(
|
||||
fetchDevVersion ? latestDevVersion?.name : latestVersion?.name
|
||||
)}
|
||||
</Typography>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<Button
|
||||
startIcon={<CancelIcon />}
|
||||
variant="outlined"
|
||||
onClick={() => closeInstallDialog()}
|
||||
color="secondary"
|
||||
>
|
||||
{LL.CANCEL()}
|
||||
</Button>
|
||||
<Button
|
||||
startIcon={<DownloadIcon />}
|
||||
variant="outlined"
|
||||
onClick={() => closeInstallDialog()}
|
||||
color="primary"
|
||||
>
|
||||
<Link underline="none" target="_blank" href={getBinURL()} color="primary">
|
||||
{LL.DOWNLOAD(1)}
|
||||
</Link>
|
||||
</Button>
|
||||
<Button
|
||||
startIcon={<WarningIcon color="warning" />}
|
||||
variant="outlined"
|
||||
onClick={() => installFirmwareURL(getBinURL())}
|
||||
color="primary"
|
||||
>
|
||||
{LL.INSTALL()}
|
||||
</Button>
|
||||
</DialogActions>
|
||||
</Dialog>
|
||||
);
|
||||
const renderInstallDialog = () => {
|
||||
const binURL = getBinURL();
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
sx={dialogStyle}
|
||||
open={openInstallDialog}
|
||||
onClose={() => closeInstallDialog()}
|
||||
>
|
||||
<DialogTitle>
|
||||
{LL.INSTALL() +
|
||||
' ' +
|
||||
(fetchDevVersion ? LL.DEVELOPMENT() : LL.STABLE()) +
|
||||
' Firmware'}
|
||||
</DialogTitle>
|
||||
<DialogContent dividers>
|
||||
<Typography mb={2}>
|
||||
{LL.INSTALL_VERSION(
|
||||
fetchDevVersion ? latestDevVersion?.name : latestVersion?.name
|
||||
)}
|
||||
</Typography>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<Button
|
||||
startIcon={<CancelIcon />}
|
||||
variant="outlined"
|
||||
onClick={() => closeInstallDialog()}
|
||||
color="secondary"
|
||||
>
|
||||
{LL.CANCEL()}
|
||||
</Button>
|
||||
<Button
|
||||
startIcon={<DownloadIcon />}
|
||||
variant="outlined"
|
||||
onClick={() => closeInstallDialog()}
|
||||
color="primary"
|
||||
>
|
||||
<Link underline="none" target="_blank" href={binURL} color="primary">
|
||||
{LL.DOWNLOAD(1)}
|
||||
</Link>
|
||||
</Button>
|
||||
<Button
|
||||
startIcon={<WarningIcon color="warning" />}
|
||||
variant="outlined"
|
||||
onClick={() => installFirmwareURL(binURL)}
|
||||
color="primary"
|
||||
>
|
||||
{LL.INSTALL()}
|
||||
</Button>
|
||||
</DialogActions>
|
||||
</Dialog>
|
||||
);
|
||||
};
|
||||
|
||||
const showFirmwareDialog = (useDevVersion: boolean) => {
|
||||
setFetchDevVersion(useDevVersion);
|
||||
@@ -232,7 +242,33 @@ const Version = () => {
|
||||
setOpenInstallDialog(false);
|
||||
};
|
||||
|
||||
const showButtons = (showDev: boolean) => {
|
||||
const showButtons = (showingDev: boolean) => {
|
||||
const choice = showingDev
|
||||
? !usingDevVersion
|
||||
? LL.SWITCH_RELEASE_TYPE(LL.DEVELOPMENT())
|
||||
: devUpgradeAvailable
|
||||
? LL.UPDATE_AVAILABLE()
|
||||
: undefined
|
||||
: usingDevVersion
|
||||
? LL.SWITCH_RELEASE_TYPE(LL.STABLE())
|
||||
: stableUpgradeAvailable
|
||||
? LL.UPDATE_AVAILABLE()
|
||||
: undefined;
|
||||
|
||||
if (!choice) {
|
||||
return (
|
||||
<>
|
||||
<CheckIcon
|
||||
color="success"
|
||||
sx={{ verticalAlign: 'middle', ml: 0.5, mr: 0.5 }}
|
||||
/>
|
||||
<span style={{ color: '#66bb6a', fontSize: '0.8em' }}>
|
||||
{LL.LATEST_VERSION(usingDevVersion ? LL.DEVELOPMENT() : LL.STABLE())}
|
||||
</span>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
if (!me.admin) {
|
||||
return;
|
||||
}
|
||||
@@ -258,16 +294,11 @@ const Version = () => {
|
||||
<Button
|
||||
sx={{ ml: 2 }}
|
||||
variant="outlined"
|
||||
color="warning"
|
||||
color={choice === LL.UPDATE_AVAILABLE() ? 'success' : 'warning'}
|
||||
size="small"
|
||||
onClick={() => showFirmwareDialog(showDev)}
|
||||
onClick={() => showFirmwareDialog(showingDev)}
|
||||
>
|
||||
{upgradeAvailable || (!usingDevVersion && showDev)
|
||||
? LL.UPGRADE()
|
||||
: !showDev && usingDevVersion
|
||||
? LL.STABLE()
|
||||
: LL.REINSTALL()}
|
||||
…
|
||||
{choice}
|
||||
</Button>
|
||||
);
|
||||
};
|
||||
@@ -419,24 +450,6 @@ const Version = () => {
|
||||
</Typography>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
{upgradeAvailable ? (
|
||||
<Typography mt={2} color="warning">
|
||||
<InfoOutlinedIcon
|
||||
color="warning"
|
||||
sx={{ verticalAlign: 'middle', mr: 2 }}
|
||||
/>
|
||||
{LL.UPGRADE_AVAILABLE()}
|
||||
</Typography>
|
||||
) : (
|
||||
<Typography mt={2} color="success">
|
||||
<CheckIcon
|
||||
color="success"
|
||||
sx={{ verticalAlign: 'middle', mr: 2 }}
|
||||
/>
|
||||
{LL.LATEST_VERSION()}
|
||||
</Typography>
|
||||
)}
|
||||
</>
|
||||
) : (
|
||||
<Typography mt={2} color="warning">
|
||||
|
||||
@@ -332,8 +332,8 @@ const cz: Translation = {
|
||||
SPECIAL_FUNCTIONS: 'Speciální funkce',
|
||||
WAIT_FIRMWARE: 'Firmware se nahrává a instaluje',
|
||||
INSTALL_VERSION: 'Tímto se instalovat verze {0}. Jste si jistí?',
|
||||
UPGRADE_AVAILABLE: 'Je k dispozici aktualizace firmwaru!',
|
||||
LATEST_VERSION: 'Používáte nejnovější verzi firmwaru',
|
||||
UPDATE_AVAILABLE: 'update available', // TODO translate
|
||||
LATEST_VERSION: 'Používáte nejnovější verzi {0}firmwaru',
|
||||
PLEASE_WAIT: 'Prosím čekejte',
|
||||
RESTARTING_PRE: 'Inicializace',
|
||||
RESTARTING_POST: 'Příprava',
|
||||
@@ -343,7 +343,6 @@ const cz: Translation = {
|
||||
BYTES: 'Bytes', // TODO translate
|
||||
BITMASK: 'Bit Mask',// TODO translate
|
||||
DUPLICATE: 'Duplikát',
|
||||
UPGRADE: 'Upgrade',
|
||||
DASHBOARD_1: 'Všechny aktivní entity EMS jsou označené jako oblíbené. Všechny vlastní entity, harmonogramy a externí sensory jsou zobrazeny níže.',
|
||||
NO_DATA_1: 'Nebyly nalezeny žádné oblíbené entity. Použijte',
|
||||
NO_DATA_2: 'modul sloužící k jejich výběru.',
|
||||
@@ -351,8 +350,8 @@ const cz: Translation = {
|
||||
THIS_VERSION: 'Tato verze',
|
||||
PLATFORM: 'Platforma',
|
||||
RELEASE_TYPE: 'Typ sestavení',
|
||||
REINSTALL: 'Přeinstalovat',
|
||||
INTERNET_CONNECTION_REQUIRED: 'Pro automatickou kontrolu a instalaci aktualizací je třeba internetové připojení',
|
||||
SWITCH_RELEASE_TYPE: 'Přepnout na {0} verzi'
|
||||
};
|
||||
|
||||
export default cz;
|
||||
|
||||
@@ -42,7 +42,7 @@ const de: Translation = {
|
||||
CANCEL: 'Abbrechen',
|
||||
RESET: 'Zurücksetzen',
|
||||
APPLY_CHANGES: 'Änderungen anwenden ({0})',
|
||||
UPDATE: 'Update',
|
||||
UPDATE: 'Update', // TODO translate
|
||||
EXECUTE: 'Ausführen',
|
||||
REMOVE: 'Entfernen',
|
||||
PROBLEM_UPDATING: 'Problem beim Aktualisieren',
|
||||
@@ -332,8 +332,8 @@ const de: Translation = {
|
||||
SPECIAL_FUNCTIONS: 'Sonderfunktionen',
|
||||
WAIT_FIRMWARE: 'Die Firmware wird hochgeladen und installiert.',
|
||||
INSTALL_VERSION: 'Dadurch wird die Version {0} heruntergeladen. Sind Sie sicher?',
|
||||
UPGRADE_AVAILABLE: 'Es ist ein Firmware-Upgrade verfügbar.',
|
||||
LATEST_VERSION: 'Sie verwenden die neueste Firmware-Version',
|
||||
UPDATE_AVAILABLE: 'Firmware-Update verfügbar',
|
||||
LATEST_VERSION: 'Sie verwenden die neueste {0} Firmware-Version',
|
||||
PLEASE_WAIT: 'Bitte warten',
|
||||
RESTARTING_PRE: 'Initialisierung',
|
||||
RESTARTING_POST: 'Vorbereitung',
|
||||
@@ -343,7 +343,6 @@ const de: Translation = {
|
||||
BYTES: 'Bytes',
|
||||
BITMASK: 'Bit Maske',
|
||||
DUPLICATE: 'Kopieren',
|
||||
UPGRADE: 'Aktualisieren',
|
||||
DASHBOARD_1: 'Alle EMS-Entitäten, die aktiv und als Favorit markiert sind, sowie alle benutzerdefinierten Entitäten, Zeitpläne und externen Sensordaten werden unten angezeigt.',
|
||||
NO_DATA_1: 'Keine favorisierten EMS-Entitäten gefunden! Verwenden Sie das Modul',
|
||||
NO_DATA_2: ', um sie zu markieren.',
|
||||
@@ -351,8 +350,8 @@ const de: Translation = {
|
||||
THIS_VERSION: 'Diese Version',
|
||||
PLATFORM: 'Plattform',
|
||||
RELEASE_TYPE: 'Release Typ',
|
||||
REINSTALL: 'Neu installieren',
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internetverbindung erforderlich für automatische Version-Überprüfung und -Aktualisierung',
|
||||
SWITCH_RELEASE_TYPE: 'Zum {0}-Release wechseln'
|
||||
};
|
||||
|
||||
export default de;
|
||||
|
||||
@@ -332,8 +332,8 @@ const en: Translation = {
|
||||
SPECIAL_FUNCTIONS: 'Special Functions',
|
||||
WAIT_FIRMWARE: 'Firmware is uploading and installing',
|
||||
INSTALL_VERSION: 'This will install version {0}. Are you sure?',
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!',
|
||||
LATEST_VERSION: 'You are using the latest firmware version',
|
||||
UPDATE_AVAILABLE: 'update available',
|
||||
LATEST_VERSION: 'You are using the latest {0} firmware version',
|
||||
PLEASE_WAIT: 'Please wait',
|
||||
RESTARTING_PRE: 'Initializing',
|
||||
RESTARTING_POST: 'Preparing',
|
||||
@@ -344,15 +344,14 @@ const en: Translation = {
|
||||
BYTES: 'Bytes',
|
||||
BITMASK: 'Bit Mask',
|
||||
DUPLICATE: 'Duplicate',
|
||||
UPGRADE: 'Upgrade',
|
||||
NO_DATA_1: 'No favorite EMS entities found yet. Use the',
|
||||
NO_DATA_2: 'module to mark them.',
|
||||
NO_DATA_3: 'To see all available entities go to',
|
||||
THIS_VERSION: 'This Version',
|
||||
PLATFORM: 'Platform',
|
||||
RELEASE_TYPE: 'Release Type',
|
||||
REINSTALL: 'Re-install',
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading',
|
||||
SWITCH_RELEASE_TYPE: 'Switch to {0} release'
|
||||
};
|
||||
|
||||
export default en;
|
||||
|
||||
@@ -66,7 +66,7 @@ const fr: Translation = {
|
||||
TEMP_SENSOR: 'Capteur de température',
|
||||
TEMP_SENSORS: 'Capteurs de température',
|
||||
WRITE_CMD_SENT: 'Envoyer la commande sent',
|
||||
EMS_BUS_WARNING: 'Bus EMS déconnecté. Si ce message persiste après quelques secondes, vérifiez les paramètres et la configuration de la carte.',
|
||||
EMS_BUS_WARNING: 'Bus EMS déconnecté. Si ce message persiste après quelques secondes, vérifiez les paramètres et la configuration de la carte.',
|
||||
EMS_BUS_SCANNING: 'Scan des appareils EMS...',
|
||||
CONNECTED: 'Connecté',
|
||||
TX_ISSUES: 'Problèmes de transmission (Tx) - Essayez un autre mode Tx',
|
||||
@@ -332,8 +332,8 @@ const fr: Translation = {
|
||||
SPECIAL_FUNCTIONS: 'Special Functions',
|
||||
WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate
|
||||
INSTALL_VERSION: 'This will install version {0}. Are you sure?', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest firmware version', // TODO translate
|
||||
UPDATE_AVAILABLE: 'update available', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest {0} firmware version', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
@@ -343,7 +343,6 @@ const fr: Translation = {
|
||||
BYTES: 'Bytes', // TODO translate
|
||||
BITMASK: 'Bit Mask',// TODO translate
|
||||
DUPLICATE: 'Duplicate', // TODO translate
|
||||
UPGRADE: 'Upgrade', // TODO translate
|
||||
DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate
|
||||
NO_DATA_1: 'No favorite EMS entities found yet. Use the', // TODO translate
|
||||
NO_DATA_2: 'module to mark them.', // TODO translate
|
||||
@@ -351,8 +350,8 @@ const fr: Translation = {
|
||||
THIS_VERSION: 'This Version', // TODO translate
|
||||
PLATFORM: 'Platform', // TODO translate
|
||||
RELEASE_TYPE: 'Release Type', // TODO translate
|
||||
REINSTALL: 'Re-install', // TODO translate
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading',
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate
|
||||
SWITCH_RELEASE_TYPE: 'Switch to {0} release' // TODO translate
|
||||
};
|
||||
|
||||
export default fr;
|
||||
|
||||
@@ -332,8 +332,8 @@ const it: Translation = {
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate
|
||||
INSTALL_VERSION: 'This will install version {0}. Are you sure?', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest firmware version', // TODO translate
|
||||
UPDATE_AVAILABLE: 'update available', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest {0}firmware version', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
@@ -343,7 +343,6 @@ const it: Translation = {
|
||||
BYTES: 'Bytes', // TODO translate
|
||||
BITMASK: 'Bit Mask',// TODO translate
|
||||
DUPLICATE: 'Duplicate', // TODO translate
|
||||
UPGRADE: 'Upgrade', // TODO translate
|
||||
DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate
|
||||
NO_DATA_1: 'No favorite EMS entities found yet. Use the', // TODO translate
|
||||
NO_DATA_2: 'module to mark them.', // TODO translate
|
||||
@@ -351,8 +350,8 @@ const it: Translation = {
|
||||
THIS_VERSION: 'This Version', // TODO translate
|
||||
PLATFORM: 'Platform', // TODO translate
|
||||
RELEASE_TYPE: 'Release Type', // TODO translate
|
||||
REINSTALL: 'Re-install', // TODO translate
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading',
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate
|
||||
SWITCH_RELEASE_TYPE: 'Switch to {0} release' // TODO translate
|
||||
};
|
||||
|
||||
export default it;
|
||||
|
||||
@@ -273,7 +273,7 @@ const nl: Translation = {
|
||||
NETWORK_SUBNET: 'Subnetmasker',
|
||||
NETWORK_DNS: 'DNS Servers',
|
||||
ADDRESS_OF: '{0} Address',
|
||||
ADMINISTRATOR: 'Administrator',
|
||||
ADMINISTRATOR: 'Administrator',
|
||||
GUEST: 'Gast',
|
||||
NEW: 'Nieuwe',
|
||||
NEW_NAME_OF: 'Hernoem {0}',
|
||||
@@ -320,7 +320,7 @@ const nl: Translation = {
|
||||
DOWNLOAD_UPLOAD_1: 'Download en upload instellingen en firmware',
|
||||
MODULES: 'Module',
|
||||
MODULES_1: 'Externe modules activeren of deactiveren',
|
||||
MODULES_UPDATED: 'Modules geüpdatet',
|
||||
MODULES_UPDATED: 'Modules geüpdatet',
|
||||
MODULES_DESCRIPTION: 'Klik op de module om EMS-ESP library modules te activeren of te deactiveren',
|
||||
MODULES_NONE: 'Geen externe modules gedetecteerd',
|
||||
RENAME: 'Hernoemen',
|
||||
@@ -332,18 +332,17 @@ const nl: Translation = {
|
||||
SPECIAL_FUNCTIONS: 'Speciale functies',
|
||||
WAIT_FIRMWARE: 'Firmware wordt geüpload en geïnstalleerd',
|
||||
INSTALL_VERSION: 'Hiermee wordt versie {0} geïnstalleerd. Weet je het zeker?',
|
||||
UPGRADE_AVAILABLE: 'Er is een firmware-upgrade beschikbaar!',
|
||||
LATEST_VERSION: 'U gebruikt de nieuwste firmwareversie',
|
||||
UPDATE_AVAILABLE: 'update beschikbaar',
|
||||
LATEST_VERSION: 'U gebruikt de nieuwste {0} firmwareversie',
|
||||
PLEASE_WAIT: 'Een ogenblik geduld',
|
||||
RESTARTING_PRE: 'Initialiseren',
|
||||
RESTARTING_POST: 'Voorbereiding',
|
||||
AUTO_SCROLL: 'Automatisch Scrollen',
|
||||
DASHBOARD: 'Dashboard',
|
||||
DEVELOPER_MODE: 'Ontwikkelaarsmodus',
|
||||
BYTES: 'Bytes', // TODO translate
|
||||
BITMASK: 'Bit Mask',// TODO translate
|
||||
BYTES: 'Bytes',
|
||||
BITMASK: 'Bit Mask',
|
||||
DUPLICATE: 'Duplicaat',
|
||||
UPGRADE: 'Upgraden',
|
||||
DASHBOARD_1: 'Alle EMS-entiteiten die actief zijn en als favoriet zijn gemarkeerd, plus alle aangepaste entiteiten en externe sensorgegevens worden hieronder weergegeven.',
|
||||
NO_DATA_1: 'Er zijn nog geen favoriete EMS-entiteiten gevonden. Gebruik de',
|
||||
NO_DATA_2: 'module om ze te markeren.',
|
||||
@@ -351,8 +350,8 @@ const nl: Translation = {
|
||||
THIS_VERSION: 'Deze Versie',
|
||||
PLATFORM: 'Platform',
|
||||
RELEASE_TYPE: 'Release Typ',
|
||||
REINSTALL: 'Opnieuw Installeren',
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internetverbinding vereist voor automatische versiecontrole en -upgrade',
|
||||
SWITCH_RELEASE_TYPE: 'Switch naar {0} release'
|
||||
};
|
||||
|
||||
export default nl;
|
||||
@@ -332,8 +332,8 @@ const no: Translation = {
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate
|
||||
INSTALL_VERSION: 'This will install version {0}. Are you sure?', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest firmware version', // TODO translate
|
||||
UPDATE_AVAILABLE: 'update available', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest {0}firmware version', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
@@ -343,7 +343,6 @@ const no: Translation = {
|
||||
BYTES: 'Bytes', // TODO translate
|
||||
BITMASK: 'Bit Mask',// TODO translate
|
||||
DUPLICATE: 'Duplicate', // TODO translate
|
||||
UPGRADE: 'Upgrade', // TODO translate
|
||||
DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate
|
||||
NO_DATA_1: 'No favorite EMS entities found yet. Use the', // TODO translate
|
||||
NO_DATA_2: 'module to mark them.', // TODO translate
|
||||
@@ -351,8 +350,8 @@ const no: Translation = {
|
||||
THIS_VERSION: 'This Version', // TODO translate
|
||||
PLATFORM: 'Platform', // TODO translate
|
||||
RELEASE_TYPE: 'Release Type', // TODO translate
|
||||
REINSTALL: 'Re-install', // TODO translate
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading',
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate
|
||||
SWITCH_RELEASE_TYPE: 'Switch to {0} release' // TODO translate
|
||||
};
|
||||
|
||||
export default no;
|
||||
|
||||
@@ -332,8 +332,8 @@ const pl: BaseTranslation = {
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate
|
||||
INSTALL_VERSION: 'This will install version {0}. Are you sure?', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest firmware version', // TODO translate
|
||||
UPDATE_AVAILABLE: 'update available', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest {0} firmware version', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
@@ -343,7 +343,6 @@ const pl: BaseTranslation = {
|
||||
BYTES: 'Bytes', // TODO translate
|
||||
BITMASK: 'Bit Mask',// TODO translate
|
||||
DUPLICATE: 'Duplicate', // TODO translate
|
||||
UPGRADE: 'Upgrade', // TODO translate
|
||||
DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate
|
||||
NO_DATA_1: 'No favorite EMS entities found yet. Use the', // TODO translate
|
||||
NO_DATA_2: 'module to mark them.', // TODO translate
|
||||
@@ -351,8 +350,8 @@ const pl: BaseTranslation = {
|
||||
THIS_VERSION: 'This Version', // TODO translate
|
||||
PLATFORM: 'Platform', // TODO translate
|
||||
RELEASE_TYPE: 'Release Type', // TODO translate
|
||||
REINSTALL: 'Re-install', // TODO translate
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate
|
||||
SWITCH_RELEASE_TYPE: 'Switch to {0} release' // TODO translate
|
||||
};
|
||||
|
||||
export default pl;
|
||||
|
||||
@@ -155,7 +155,7 @@ const sk: Translation = {
|
||||
NAME: 'Názov',
|
||||
CUSTOMIZATIONS_RESET: 'Naozaj chcete odstrániť všetky prispôsobenia vrátane vlastných nastavení snímačov teploty a analógových snímačov?',
|
||||
SUPPORT_INFORMATION: 'Informácie pre podporu',
|
||||
HELP_INFORMATION_1: 'Navštívte online wiki, kde nájdete pokyny na konfiguráciu EMS-ESP',
|
||||
HELP_INFORMATION_1: 'Navštívte online wiki, kde nájdete pokyny na konfiguráciu EMS-ESP',
|
||||
HELP_INFORMATION_2: 'Pre živý komunitný chat sa pripojte na náš Discord server',
|
||||
HELP_INFORMATION_3: 'Ak chcete požiadať o funkciu alebo nahlásiť chybu',
|
||||
HELP_INFORMATION_4: 'nezabudnite si stiahnuť a pripojiť informácie o vašom systéme, aby ste mohli rýchlejšie reagovať pri nahlasovaní problému',
|
||||
@@ -323,7 +323,7 @@ const sk: Translation = {
|
||||
MODULES_UPDATED: 'Aktualizované moduly',
|
||||
MODULES_DESCRIPTION: 'Kliknutím na modul aktivujete alebo deaktivujete moduly knižnice EMS-ESP',
|
||||
MODULES_NONE: 'Neboli zistené žiadne externé moduly',
|
||||
RENAME: 'Premenovať',
|
||||
RENAME: 'Premenovať',
|
||||
ENABLE_MODBUS: 'Povoliť Modbus',
|
||||
VIEW_LOG: 'Zobrazte log na diagnostiku problémov',
|
||||
UPLOAD_DRAG: 'presuňte sem súbor alebo ho kliknutím vyberte',
|
||||
@@ -332,8 +332,8 @@ const sk: Translation = {
|
||||
SPECIAL_FUNCTIONS: 'Špeciálne funkcie',
|
||||
WAIT_FIRMWARE: 'Firmvér sa nahráva a inštaluje',
|
||||
INSTALL_VERSION: 'Týmto sa inštalovať verzia {0}. Si si istý?',
|
||||
UPGRADE_AVAILABLE: 'K dispozícii je aktualizácia firmvéru!',
|
||||
LATEST_VERSION: 'Používate poslednú verziu firmvéru',
|
||||
UPDATE_AVAILABLE: 'update available', // TODO translate
|
||||
LATEST_VERSION: 'Používate poslednú {0} verziu firmvéru',
|
||||
PLEASE_WAIT: 'Čakajte prosím',
|
||||
RESTARTING_PRE: 'Prebieha inicializácia',
|
||||
RESTARTING_POST: 'Príprava',
|
||||
@@ -343,7 +343,6 @@ const sk: Translation = {
|
||||
BYTES: 'Bytov',
|
||||
BITMASK: 'Bitová maska',
|
||||
DUPLICATE: 'Duplicitné',
|
||||
UPGRADE: 'Inovovať',
|
||||
DASHBOARD_1: 'Všetky entity EMS, ktoré sú aktívne a označené ako obľúbené, plus všetky vlastné entity, plány a údaje externých senzorov sú zobrazené nižšie.',
|
||||
NO_DATA_1: 'Nenašli sa žiadne obľúbené entity EMS. Použite',
|
||||
NO_DATA_2: 'modul na ich označenie.',
|
||||
@@ -351,8 +350,8 @@ const sk: Translation = {
|
||||
THIS_VERSION: 'Táto verzia',
|
||||
PLATFORM: 'Platforma',
|
||||
RELEASE_TYPE: 'Typ vydania',
|
||||
REINSTALL: 'Preinštalovať',
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internetové pripojenie je potrebné pre automatickú kontrolu a aktualizáciu',
|
||||
SWITCH_RELEASE_TYPE: 'Prepnúť na {0} verziu'
|
||||
};
|
||||
|
||||
export default sk;
|
||||
|
||||
@@ -332,8 +332,8 @@ const sv: Translation = {
|
||||
SPECIAL_FUNCTIONS: 'Specialfunktioner',
|
||||
WAIT_FIRMWARE: 'Firmware laddas upp och installeras',
|
||||
INSTALL_VERSION: 'Det här kommer installera version {0}. Är du säker?',
|
||||
UPGRADE_AVAILABLE: 'Det finns en tillgänglig firmwareupgradering!',
|
||||
LATEST_VERSION: 'Du använder den senaste firmwareversionen.',
|
||||
UPDATE_AVAILABLE: 'update available', // TODO translate
|
||||
LATEST_VERSION: 'Du använder den senaste {0} firmwareversionen.',
|
||||
PLEASE_WAIT: 'Var god vänta',
|
||||
RESTARTING_PRE: 'Initialiserar',
|
||||
RESTARTING_POST: 'Förbereder',
|
||||
@@ -343,7 +343,6 @@ const sv: Translation = {
|
||||
BYTES: 'Bytes', // TODO translate
|
||||
BITMASK: 'Bit Mask',// TODO translate
|
||||
DUPLICATE: 'Dublett',
|
||||
UPGRADE: 'Uppgradera',
|
||||
DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate
|
||||
NO_DATA_1: 'No favorite EMS entities found yet. Use the', // TODO translate
|
||||
NO_DATA_2: 'module to mark them.', // TODO translate
|
||||
@@ -351,8 +350,8 @@ const sv: Translation = {
|
||||
THIS_VERSION: 'This Version', // TODO translate
|
||||
PLATFORM: 'Platform', // TODO translate
|
||||
RELEASE_TYPE: 'Release Type', // TODO translate
|
||||
REINSTALL: 'Re-install', // TODO translate
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internetanslutning krävs för automatisk version kontroll och uppdatering',
|
||||
SWITCH_RELEASE_TYPE: 'Byt till {0} version'
|
||||
};
|
||||
|
||||
export default sv;
|
||||
|
||||
@@ -332,8 +332,8 @@ const tr: Translation = {
|
||||
SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate
|
||||
WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate
|
||||
INSTALL_VERSION: 'This will install version {0}. Are you sure?', // TODO translate
|
||||
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate
|
||||
UPDATE_AVAILABLE: 'update available!', // TODO translate
|
||||
LATEST_VERSION: 'You are using the latest {0}firmware version.', // TODO translate
|
||||
PLEASE_WAIT: 'Please wait', // TODO translate
|
||||
RESTARTING_PRE: 'Initializing', // TODO translate
|
||||
RESTARTING_POST: 'Preparing', // TODO translate
|
||||
@@ -343,7 +343,6 @@ const tr: Translation = {
|
||||
BYTES: 'Bytes', // TODO translate
|
||||
BITMASK: 'Bit Mask',// TODO translate
|
||||
DUPLICATE: 'Duplicate', // TODO translate
|
||||
UPGRADE: 'Upgrade', // TODO translate
|
||||
DASHBOARD_1: 'All EMS entities that are active and marked as Favorite, plus all Custom Entities, Schedules and external Sensors data are displayed below.', // TODO translate
|
||||
NO_DATA_1: 'No favorite EMS entities found yet. Use the', // TODO translate
|
||||
NO_DATA_2: 'module to mark them.', // TODO translate
|
||||
@@ -351,8 +350,8 @@ const tr: Translation = {
|
||||
THIS_VERSION: 'This Version', // TODO translate
|
||||
PLATFORM: 'Platform', // TODO translate
|
||||
RELEASE_TYPE: 'Release Type', // TODO translate
|
||||
REINSTALL: 'Re-install', // TODO translate
|
||||
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate
|
||||
SWITCH_RELEASE_TYPE: 'Switch to {0} release' // TODO translate
|
||||
};
|
||||
|
||||
export default tr;
|
||||
|
||||
@@ -790,38 +790,38 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/core-downloads-tracker@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "@mui/core-downloads-tracker@npm:7.0.0"
|
||||
checksum: 10c0/3028987b44763774f7adf16326687a2045d4802ad3957862e262912cca63ac07f918239b2944dd0e9892df44f9c4c588cebeeb5df06e2d577b809bc432369832
|
||||
"@mui/core-downloads-tracker@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "@mui/core-downloads-tracker@npm:7.0.1"
|
||||
checksum: 10c0/8291211a5aefd9348c9fddd4b12340087f2d661bfbdcf6797b09b2e58ae9a4a37ae80de7124613b870ea3a8ea5661b6a35849214eeb2d5f238cdba10d381d056
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/icons-material@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "@mui/icons-material@npm:7.0.0"
|
||||
"@mui/icons-material@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "@mui/icons-material@npm:7.0.1"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.26.10"
|
||||
peerDependencies:
|
||||
"@mui/material": ^7.0.0
|
||||
"@mui/material": ^7.0.1
|
||||
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 10c0/3915dc9bc873beba3d1846b5e4dab5ee8fa77292be68c5bc58951aaf18fb015e149fbb2a7d17a344c3ac109c238d4b6630dc4379bb5b253f6126f82069ae8a01
|
||||
checksum: 10c0/375ba909363cc248154937bcc8522ba98566311bf20d4c0c3114ed4bd31430354b0d5779523b3f7cf78bb15ba7544d137a7ccbde63cf75ec957ae30e73083693
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/material@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "@mui/material@npm:7.0.0"
|
||||
"@mui/material@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "@mui/material@npm:7.0.1"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.26.10"
|
||||
"@mui/core-downloads-tracker": "npm:^7.0.0"
|
||||
"@mui/system": "npm:^7.0.0"
|
||||
"@mui/core-downloads-tracker": "npm:^7.0.1"
|
||||
"@mui/system": "npm:^7.0.1"
|
||||
"@mui/types": "npm:^7.4.0"
|
||||
"@mui/utils": "npm:^7.0.0"
|
||||
"@mui/utils": "npm:^7.0.1"
|
||||
"@popperjs/core": "npm:^2.11.8"
|
||||
"@types/react-transition-group": "npm:^4.4.12"
|
||||
clsx: "npm:^2.1.1"
|
||||
@@ -832,7 +832,7 @@ __metadata:
|
||||
peerDependencies:
|
||||
"@emotion/react": ^11.5.0
|
||||
"@emotion/styled": ^11.3.0
|
||||
"@mui/material-pigment-css": ^7.0.0
|
||||
"@mui/material-pigment-css": ^7.0.1
|
||||
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
@@ -845,16 +845,16 @@ __metadata:
|
||||
optional: true
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 10c0/165a646d238b9e9b8c66efb55a46612aced2466c9e7cbf3808d0ad4c0200f757c26a5c227cf02aaa1978e6f27f76f8c17ad2c4cf29e010de83b7e15caae278d6
|
||||
checksum: 10c0/95203b299dc5481f8fe903f7604dea641067db431c0606bffa5fafa8a4e9e0a0203a8d5ef9af3e314186c779c08654d6e0c1b85c70d8320397f2ce7a05ee633d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/private-theming@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "@mui/private-theming@npm:7.0.0"
|
||||
"@mui/private-theming@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "@mui/private-theming@npm:7.0.1"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.26.10"
|
||||
"@mui/utils": "npm:^7.0.0"
|
||||
"@mui/utils": "npm:^7.0.1"
|
||||
prop-types: "npm:^15.8.1"
|
||||
peerDependencies:
|
||||
"@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
@@ -862,13 +862,13 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 10c0/c901aeee59add7b36382282a0338ec4bbfd1e22d8759c127c497fd6f6ddb464eba04dc611e86aaaa6ae44dd11037950d7bfa33189314b5e8993ceceff072863f
|
||||
checksum: 10c0/15f0037925d9dd59b0bdc4bf6031407e31ef008ebe0e437f424eeed3f433bafd585676b995739f0362c9d403c0cbe2f99478d5eeadd60bfa8b1d968a6be7185d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/styled-engine@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "@mui/styled-engine@npm:7.0.0"
|
||||
"@mui/styled-engine@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "@mui/styled-engine@npm:7.0.1"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.26.10"
|
||||
"@emotion/cache": "npm:^11.13.5"
|
||||
@@ -885,19 +885,19 @@ __metadata:
|
||||
optional: true
|
||||
"@emotion/styled":
|
||||
optional: true
|
||||
checksum: 10c0/9ed5ee9b16ced11ecc411ad1c98613e17a634d17868bdbb668cf57ccd9d4fe248a22607def8327e0ddc289444a4b40e3d629e6220b78d60634c4d7c80810533f
|
||||
checksum: 10c0/cdef1c15ea645198440cd87a53c1a0155f444688387ed816b98890e42bd22a9204242cae8fb1b56124fe05c163d9e38fa482901804dee0bef6f88da1cddd8579
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/system@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "@mui/system@npm:7.0.0"
|
||||
"@mui/system@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "@mui/system@npm:7.0.1"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.26.10"
|
||||
"@mui/private-theming": "npm:^7.0.0"
|
||||
"@mui/styled-engine": "npm:^7.0.0"
|
||||
"@mui/private-theming": "npm:^7.0.1"
|
||||
"@mui/styled-engine": "npm:^7.0.1"
|
||||
"@mui/types": "npm:^7.4.0"
|
||||
"@mui/utils": "npm:^7.0.0"
|
||||
"@mui/utils": "npm:^7.0.1"
|
||||
clsx: "npm:^2.1.1"
|
||||
csstype: "npm:^3.1.3"
|
||||
prop-types: "npm:^15.8.1"
|
||||
@@ -913,7 +913,7 @@ __metadata:
|
||||
optional: true
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 10c0/4fb99d0594be2783d78cf820389aeb9a8c7ace69eea1edde3fae84e598223e8e35605074d8bc7fdaf25b4f414d82963d4f0bf421a6a50ab547e3fa2b10869cff
|
||||
checksum: 10c0/58de50dceef8a85aa24cda596836c034068b6f3e960c47520b9401a3f6f5bdf013e6ad7adb1a31cc57707ae304d524813ed53d4d12c1193ec8ca6b31d90f8dcf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -931,9 +931,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/utils@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "@mui/utils@npm:7.0.0"
|
||||
"@mui/utils@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "@mui/utils@npm:7.0.1"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.26.10"
|
||||
"@mui/types": "npm:^7.4.0"
|
||||
@@ -947,7 +947,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 10c0/89c6df710ddbd506a77428a1c0bd600c8902ccad42ff9e0d49df2435d236aa9a2d5bf600f473a742bb2934632165206caacfac2315cf2a03644f1aa6aeb4cbc1
|
||||
checksum: 10c0/bf5d721c9e09f2eba359db227dfafca51152a47753c6f32d020f8a9af572f8f14515e03592b2a95b5bea8207efe775d7d1ae4a0e42f0638f03a15fd1d303ffce
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1091,142 +1091,142 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-android-arm-eabi@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-android-arm-eabi@npm:4.37.0"
|
||||
"@rollup/rollup-android-arm-eabi@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-android-arm-eabi@npm:4.38.0"
|
||||
conditions: os=android & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-android-arm64@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-android-arm64@npm:4.37.0"
|
||||
"@rollup/rollup-android-arm64@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-android-arm64@npm:4.38.0"
|
||||
conditions: os=android & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-darwin-arm64@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-darwin-arm64@npm:4.37.0"
|
||||
"@rollup/rollup-darwin-arm64@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-darwin-arm64@npm:4.38.0"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-darwin-x64@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-darwin-x64@npm:4.37.0"
|
||||
"@rollup/rollup-darwin-x64@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-darwin-x64@npm:4.38.0"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-freebsd-arm64@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-freebsd-arm64@npm:4.37.0"
|
||||
"@rollup/rollup-freebsd-arm64@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-freebsd-arm64@npm:4.38.0"
|
||||
conditions: os=freebsd & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-freebsd-x64@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-freebsd-x64@npm:4.37.0"
|
||||
"@rollup/rollup-freebsd-x64@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-freebsd-x64@npm:4.38.0"
|
||||
conditions: os=freebsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-arm-gnueabihf@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.37.0"
|
||||
"@rollup/rollup-linux-arm-gnueabihf@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.38.0"
|
||||
conditions: os=linux & cpu=arm & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-arm-musleabihf@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.37.0"
|
||||
"@rollup/rollup-linux-arm-musleabihf@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.38.0"
|
||||
conditions: os=linux & cpu=arm & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-arm64-gnu@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.37.0"
|
||||
"@rollup/rollup-linux-arm64-gnu@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.38.0"
|
||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-arm64-musl@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.37.0"
|
||||
"@rollup/rollup-linux-arm64-musl@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.38.0"
|
||||
conditions: os=linux & cpu=arm64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-loongarch64-gnu@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.37.0"
|
||||
"@rollup/rollup-linux-loongarch64-gnu@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.38.0"
|
||||
conditions: os=linux & cpu=loong64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.37.0"
|
||||
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.38.0"
|
||||
conditions: os=linux & cpu=ppc64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-riscv64-gnu@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.37.0"
|
||||
"@rollup/rollup-linux-riscv64-gnu@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.38.0"
|
||||
conditions: os=linux & cpu=riscv64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-riscv64-musl@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.37.0"
|
||||
"@rollup/rollup-linux-riscv64-musl@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.38.0"
|
||||
conditions: os=linux & cpu=riscv64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-s390x-gnu@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.37.0"
|
||||
"@rollup/rollup-linux-s390x-gnu@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.38.0"
|
||||
conditions: os=linux & cpu=s390x & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-x64-gnu@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.37.0"
|
||||
"@rollup/rollup-linux-x64-gnu@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.38.0"
|
||||
conditions: os=linux & cpu=x64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-linux-x64-musl@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-linux-x64-musl@npm:4.37.0"
|
||||
"@rollup/rollup-linux-x64-musl@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-linux-x64-musl@npm:4.38.0"
|
||||
conditions: os=linux & cpu=x64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-win32-arm64-msvc@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.37.0"
|
||||
"@rollup/rollup-win32-arm64-msvc@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.38.0"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-win32-ia32-msvc@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.37.0"
|
||||
"@rollup/rollup-win32-ia32-msvc@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.38.0"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/rollup-win32-x64-msvc@npm:4.37.0":
|
||||
version: 4.37.0
|
||||
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.37.0"
|
||||
"@rollup/rollup-win32-x64-msvc@npm:4.38.0":
|
||||
version: 4.38.0
|
||||
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.38.0"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
@@ -1293,14 +1293,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/estree@npm:1.0.6":
|
||||
version: 1.0.6
|
||||
resolution: "@types/estree@npm:1.0.6"
|
||||
checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/estree@npm:^1.0.6":
|
||||
"@types/estree@npm:1.0.7, @types/estree@npm:^1.0.6":
|
||||
version: 1.0.7
|
||||
resolution: "@types/estree@npm:1.0.7"
|
||||
checksum: 10c0/be815254316882f7c40847336cd484c3bc1c3e34f710d197160d455dc9d6d050ffbf4c3bc76585dba86f737f020ab20bdb137ebe0e9116b0c86c7c0342221b8c
|
||||
@@ -1422,12 +1415,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:*, @types/node@npm:^22.13.13":
|
||||
version: 22.13.13
|
||||
resolution: "@types/node@npm:22.13.13"
|
||||
"@types/node@npm:*, @types/node@npm:^22.13.14":
|
||||
version: 22.13.14
|
||||
resolution: "@types/node@npm:22.13.14"
|
||||
dependencies:
|
||||
undici-types: "npm:~6.20.0"
|
||||
checksum: 10c0/daf792ba5dcff1316abf4b33680f94b792f8d54d6ae495efc8929531e0ba1284a248d29aab117d2259f9280284d986ad5799b193b0516e2b926d713aab835f7d
|
||||
checksum: 10c0/fa2ab5b8277bfbcc86c42e46a3ea9871b0d559894cc9d955685d17178c9499f0b1bf03d1d1ea8d92ef2dda818988f4035acb8abf9dc15423a998fa56173ab804
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1611,14 +1604,14 @@ __metadata:
|
||||
"@emotion/react": "npm:^11.14.0"
|
||||
"@emotion/styled": "npm:^11.14.0"
|
||||
"@eslint/js": "npm:^9.23.0"
|
||||
"@mui/icons-material": "npm:^7.0.0"
|
||||
"@mui/material": "npm:^7.0.0"
|
||||
"@mui/icons-material": "npm:^7.0.1"
|
||||
"@mui/material": "npm:^7.0.1"
|
||||
"@preact/compat": "npm:^18.3.1"
|
||||
"@preact/preset-vite": "npm:^2.10.1"
|
||||
"@table-library/react-table-library": "npm:4.1.12"
|
||||
"@trivago/prettier-plugin-sort-imports": "npm:^5.2.2"
|
||||
"@types/formidable": "npm:^3"
|
||||
"@types/node": "npm:^22.13.13"
|
||||
"@types/node": "npm:^22.13.14"
|
||||
"@types/react": "npm:^19.0.12"
|
||||
"@types/react-dom": "npm:^19.0.4"
|
||||
alova: "npm:3.2.10"
|
||||
@@ -1628,13 +1621,13 @@ __metadata:
|
||||
eslint-config-prettier: "npm:^10.1.1"
|
||||
formidable: "npm:^3.5.2"
|
||||
jwt-decode: "npm:^4.0.0"
|
||||
mime-types: "npm:^2.1.35"
|
||||
mime-types: "npm:^3.0.1"
|
||||
preact: "npm:^10.26.4"
|
||||
prettier: "npm:^3.5.3"
|
||||
react: "npm:^19.0.0"
|
||||
react-dom: "npm:^19.0.0"
|
||||
react: "npm:^19.1.0"
|
||||
react-dom: "npm:^19.1.0"
|
||||
react-icons: "npm:^5.5.0"
|
||||
react-router: "npm:^7.4.0"
|
||||
react-router: "npm:^7.4.1"
|
||||
react-toastify: "npm:^11.0.5"
|
||||
rollup-plugin-visualizer: "npm:^5.14.0"
|
||||
terser: "npm:^5.39.0"
|
||||
@@ -2638,9 +2631,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"electron-to-chromium@npm:^1.5.73":
|
||||
version: 1.5.124
|
||||
resolution: "electron-to-chromium@npm:1.5.124"
|
||||
checksum: 10c0/f27de21f8763836daf5593bbedb8b78f41e88519aa27d3232e9f3e34b0a0fd5aee9cc37a31c3a36d2fa32291827738e996e866ad8ceb479e4c45bc0ee396ecba
|
||||
version: 1.5.128
|
||||
resolution: "electron-to-chromium@npm:1.5.128"
|
||||
checksum: 10c0/3c64ec24a8aff8e9954e99366aebdf41c0a5d0e48a498435b68d4deddd938584af53c1b176edd166285cfb9dcd407d4897184208a0369d1bb97e21d8daee8bc2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4763,26 +4756,19 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mime-db@npm:1.52.0":
|
||||
version: 1.52.0
|
||||
resolution: "mime-db@npm:1.52.0"
|
||||
checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mime-db@npm:^1.28.0":
|
||||
"mime-db@npm:^1.28.0, mime-db@npm:^1.54.0":
|
||||
version: 1.54.0
|
||||
resolution: "mime-db@npm:1.54.0"
|
||||
checksum: 10c0/8d907917bc2a90fa2df842cdf5dfeaf509adc15fe0531e07bb2f6ab15992416479015828d6a74200041c492e42cce3ebf78e5ce714388a0a538ea9c53eece284
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mime-types@npm:^2.1.35":
|
||||
version: 2.1.35
|
||||
resolution: "mime-types@npm:2.1.35"
|
||||
"mime-types@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "mime-types@npm:3.0.1"
|
||||
dependencies:
|
||||
mime-db: "npm:1.52.0"
|
||||
checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
|
||||
mime-db: "npm:^1.54.0"
|
||||
checksum: 10c0/bd8c20d3694548089cf229016124f8f40e6a60bbb600161ae13e45f793a2d5bb40f96bbc61f275836696179c77c1d6bf4967b2a75e0a8ad40fe31f4ed5be4da5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5593,14 +5579,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-dom@npm:^19.0.0":
|
||||
version: 19.0.0
|
||||
resolution: "react-dom@npm:19.0.0"
|
||||
"react-dom@npm:^19.1.0":
|
||||
version: 19.1.0
|
||||
resolution: "react-dom@npm:19.1.0"
|
||||
dependencies:
|
||||
scheduler: "npm:^0.25.0"
|
||||
scheduler: "npm:^0.26.0"
|
||||
peerDependencies:
|
||||
react: ^19.0.0
|
||||
checksum: 10c0/a36ce7ab507b237ae2759c984cdaad4af4096d8199fb65b3815c16825e5cfeb7293da790a3fc2184b52bfba7ba3ff31c058c01947aff6fd1a3701632aabaa6a9
|
||||
react: ^19.1.0
|
||||
checksum: 10c0/3e26e89bb6c67c9a6aa86cb888c7a7f8258f2e347a6d2a15299c17eb16e04c19194e3452bc3255bd34000a61e45e2cb51e46292392340432f133e5a5d2dfb5fc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5621,15 +5607,15 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"react-is@npm:^19.0.0":
|
||||
version: 19.0.0
|
||||
resolution: "react-is@npm:19.0.0"
|
||||
checksum: 10c0/d1be8e8500cf04f76df71942a21ef3a71266397a383d7ec8885f35190df818d35c65efd35aed7be47a89ad99aaff2c52e0c4e39e8930844a6b997622e50625a8
|
||||
version: 19.1.0
|
||||
resolution: "react-is@npm:19.1.0"
|
||||
checksum: 10c0/b6c6cadd172d5d39f66d493700d137a5545c294a62ce0f8ec793d59794c97d2bed6bad227626f16bd0e90004ed7fdc8ed662a004e6edcf5d2b7ecb6e3040ea6b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-router@npm:^7.4.0":
|
||||
version: 7.4.0
|
||||
resolution: "react-router@npm:7.4.0"
|
||||
"react-router@npm:^7.4.1":
|
||||
version: 7.4.1
|
||||
resolution: "react-router@npm:7.4.1"
|
||||
dependencies:
|
||||
"@types/cookie": "npm:^0.6.0"
|
||||
cookie: "npm:^1.0.1"
|
||||
@@ -5641,7 +5627,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
react-dom:
|
||||
optional: true
|
||||
checksum: 10c0/9cf943d7854e1e4d068162efa9a61e2d06a5c679cf3272a867046cc97a6cc65c9744490f54e8fd77bbe2d114610a5cb285ceb3d3941b9b19ac6f63385ac0a89d
|
||||
checksum: 10c0/c501e46bf4e672f977250acb431ecfad120d7a0383bbb17e5c3276a1390c01d36bd36bd995c9dddca39ba3a8521be11295292595523d880ec11240fc5d74e637
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5695,10 +5681,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react@npm:^19.0.0":
|
||||
version: 19.0.0
|
||||
resolution: "react@npm:19.0.0"
|
||||
checksum: 10c0/9cad8f103e8e3a16d15cb18a0d8115d8bd9f9e1ce3420310aea381eb42aa0a4f812cf047bb5441349257a05fba8a291515691e3cb51267279b2d2c3253f38471
|
||||
"react@npm:^19.1.0":
|
||||
version: 19.1.0
|
||||
resolution: "react@npm:19.1.0"
|
||||
checksum: 10c0/530fb9a62237d54137a13d2cfb67a7db6a2156faed43eecc423f4713d9b20c6f2728b026b45e28fcd72e8eadb9e9ed4b089e99f5e295d2f0ad3134251bdd3698
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5879,30 +5865,30 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"rollup@npm:^4.30.1":
|
||||
version: 4.37.0
|
||||
resolution: "rollup@npm:4.37.0"
|
||||
version: 4.38.0
|
||||
resolution: "rollup@npm:4.38.0"
|
||||
dependencies:
|
||||
"@rollup/rollup-android-arm-eabi": "npm:4.37.0"
|
||||
"@rollup/rollup-android-arm64": "npm:4.37.0"
|
||||
"@rollup/rollup-darwin-arm64": "npm:4.37.0"
|
||||
"@rollup/rollup-darwin-x64": "npm:4.37.0"
|
||||
"@rollup/rollup-freebsd-arm64": "npm:4.37.0"
|
||||
"@rollup/rollup-freebsd-x64": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-arm-musleabihf": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-arm64-gnu": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-arm64-musl": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-loongarch64-gnu": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-riscv64-gnu": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-riscv64-musl": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-s390x-gnu": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-x64-gnu": "npm:4.37.0"
|
||||
"@rollup/rollup-linux-x64-musl": "npm:4.37.0"
|
||||
"@rollup/rollup-win32-arm64-msvc": "npm:4.37.0"
|
||||
"@rollup/rollup-win32-ia32-msvc": "npm:4.37.0"
|
||||
"@rollup/rollup-win32-x64-msvc": "npm:4.37.0"
|
||||
"@types/estree": "npm:1.0.6"
|
||||
"@rollup/rollup-android-arm-eabi": "npm:4.38.0"
|
||||
"@rollup/rollup-android-arm64": "npm:4.38.0"
|
||||
"@rollup/rollup-darwin-arm64": "npm:4.38.0"
|
||||
"@rollup/rollup-darwin-x64": "npm:4.38.0"
|
||||
"@rollup/rollup-freebsd-arm64": "npm:4.38.0"
|
||||
"@rollup/rollup-freebsd-x64": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-arm-musleabihf": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-arm64-gnu": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-arm64-musl": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-loongarch64-gnu": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-riscv64-gnu": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-riscv64-musl": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-s390x-gnu": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-x64-gnu": "npm:4.38.0"
|
||||
"@rollup/rollup-linux-x64-musl": "npm:4.38.0"
|
||||
"@rollup/rollup-win32-arm64-msvc": "npm:4.38.0"
|
||||
"@rollup/rollup-win32-ia32-msvc": "npm:4.38.0"
|
||||
"@rollup/rollup-win32-x64-msvc": "npm:4.38.0"
|
||||
"@types/estree": "npm:1.0.7"
|
||||
fsevents: "npm:~2.3.2"
|
||||
dependenciesMeta:
|
||||
"@rollup/rollup-android-arm-eabi":
|
||||
@@ -5949,7 +5935,7 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
rollup: dist/bin/rollup
|
||||
checksum: 10c0/2e00382e08938636edfe0a7547ea2eaa027205dc0b6ff85d8b82be0fbe55a4ef88a1995fee2a5059e33dbccf12d1376c236825353afb89c96298cc95c5160a46
|
||||
checksum: 10c0/931a6d3bf34fa13adec44a8660319bb7b2f61fbabbf2030f4d29df991fb37b6a685cd7dc203fde8d4ab8b4fe783f1fe8814e448a97f651dc4727511faf958cb4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5992,10 +5978,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"scheduler@npm:^0.25.0":
|
||||
version: 0.25.0
|
||||
resolution: "scheduler@npm:0.25.0"
|
||||
checksum: 10c0/a4bb1da406b613ce72c1299db43759526058fdcc413999c3c3e0db8956df7633acf395cb20eb2303b6a65d658d66b6585d344460abaee8080b4aa931f10eaafe
|
||||
"scheduler@npm:^0.26.0":
|
||||
version: 0.26.0
|
||||
resolution: "scheduler@npm:0.26.0"
|
||||
checksum: 10c0/5b8d5bfddaae3513410eda54f2268e98a376a429931921a81b5c3a2873aab7ca4d775a8caac5498f8cbc7d0daeab947cf923dbd8e215d61671f9f4e392d34356
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
@@ -147,5 +147,6 @@ double ledcSetup(uint8_t chan, double freq, uint8_t bit_num) {
|
||||
void ledcAttachPin(uint8_t pin, uint8_t chan) {};
|
||||
void ledcWrite(uint8_t chan, uint32_t duty) {};
|
||||
void neopixelWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val) {};
|
||||
void rgbLedWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val) {};
|
||||
|
||||
#endif
|
||||
@@ -72,6 +72,7 @@ double ledcSetup(uint8_t chan, double freq, uint8_t bit_num);
|
||||
void ledcAttachPin(uint8_t pin, uint8_t chan);
|
||||
void ledcWrite(uint8_t chan, uint32_t duty);
|
||||
void neopixelWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val);
|
||||
void rgbLedWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val);
|
||||
|
||||
#define PROGMEM
|
||||
#define PGM_P const char *
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,3 +1,3 @@
|
||||
nodeLinker: node-modules
|
||||
|
||||
yarnPath: .yarn/releases/yarn-4.7.0.cjs
|
||||
yarnPath: .yarn/releases/yarn-4.8.1.cjs
|
||||
|
||||
@@ -15,5 +15,5 @@
|
||||
"itty-router": "^5.0.18",
|
||||
"prettier": "^3.5.3"
|
||||
},
|
||||
"packageManager": "yarn@4.7.0"
|
||||
"packageManager": "yarn@4.8.1"
|
||||
}
|
||||
|
||||
@@ -112,47 +112,46 @@ let system_status = {
|
||||
status: 3
|
||||
};
|
||||
|
||||
let VERSION_IS_UPGRADEABLE: boolean;
|
||||
// Testing Versioning
|
||||
let DEV_VERSION_IS_UPGRADEABLE: boolean;
|
||||
let STABLE_VERSION_IS_UPGRADEABLE: boolean;
|
||||
let THIS_VERSION: string;
|
||||
let version_test: number;
|
||||
|
||||
// Versions
|
||||
// default - on latest stable, no stable upgrades
|
||||
let THIS_VERSION = '3.7.2';
|
||||
let LATEST_STABLE_VERSION = '3.7.2';
|
||||
let LATEST_DEV_VERSION = '3.7.3-dev.9';
|
||||
let LATEST_DEV_VERSION = '3.7.3-dev.3';
|
||||
|
||||
// scenarios for testing versioning
|
||||
let version_test = 0;
|
||||
version_test = 0; // on latest stable, no upgrades, but can switch
|
||||
// version_test = 1; // on latest dev, no update
|
||||
// version_test = 2; // on stable, upgrade stable to latest stable
|
||||
// version_test = 3; // on dev, upgrade dev to latest dev
|
||||
version_test = 0; // on latest stable, can switch to dev only
|
||||
// version_test = 1; // on latest dev, can switch back to stable only or reinstall
|
||||
// version_test = 2; // upgrade an older stable to latest stable or switch to latest dev
|
||||
// version_test = 3; // upgrade an older dev to latest dev, switch to stable available
|
||||
|
||||
switch (version_test as number) {
|
||||
case 0:
|
||||
default:
|
||||
// use default - on latest stable, no upgrades, but can switch
|
||||
VERSION_IS_UPGRADEABLE = false;
|
||||
// on latest stable, can upgrade to dev only
|
||||
THIS_VERSION = LATEST_STABLE_VERSION;
|
||||
STABLE_VERSION_IS_UPGRADEABLE = false;
|
||||
DEV_VERSION_IS_UPGRADEABLE = true;
|
||||
break;
|
||||
case 1:
|
||||
// on latest dev, no update
|
||||
THIS_VERSION = '3.7.2-dev.9';
|
||||
LATEST_STABLE_VERSION = '3.7.2';
|
||||
LATEST_DEV_VERSION = '3.7.3-dev.9';
|
||||
VERSION_IS_UPGRADEABLE = false;
|
||||
// on latest dev, no updates to either dev or stable
|
||||
THIS_VERSION = LATEST_DEV_VERSION;
|
||||
STABLE_VERSION_IS_UPGRADEABLE = false;
|
||||
DEV_VERSION_IS_UPGRADEABLE = false;
|
||||
break;
|
||||
case 2:
|
||||
// upgrade stable to latest stable
|
||||
// upgrade an older stable to latest stable or the latest dev
|
||||
THIS_VERSION = '3.6.5';
|
||||
LATEST_STABLE_VERSION = '3.7.2';
|
||||
LATEST_DEV_VERSION = '3.7.3-dev.12';
|
||||
VERSION_IS_UPGRADEABLE = true;
|
||||
STABLE_VERSION_IS_UPGRADEABLE = true;
|
||||
DEV_VERSION_IS_UPGRADEABLE = true;
|
||||
break;
|
||||
case 3:
|
||||
// upgrade dev to latest dev
|
||||
THIS_VERSION = '3.7.2-dev-1';
|
||||
LATEST_STABLE_VERSION = '3.7.2';
|
||||
LATEST_DEV_VERSION = '3.7.3-dev.12';
|
||||
VERSION_IS_UPGRADEABLE = true;
|
||||
// upgrade an older dev to latest dev, no stable upgrades available
|
||||
THIS_VERSION = '3.7.3-dev.2';
|
||||
STABLE_VERSION_IS_UPGRADEABLE = false;
|
||||
DEV_VERSION_IS_UPGRADEABLE = true;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -270,10 +269,10 @@ function updateMask(entity: any, de: any, dd: any) {
|
||||
const old_custom_name = dd.nodes[dd_objIndex].cn;
|
||||
console.log(
|
||||
'comparing names, old (' +
|
||||
old_custom_name +
|
||||
') with new (' +
|
||||
new_custom_name +
|
||||
')'
|
||||
old_custom_name +
|
||||
') with new (' +
|
||||
new_custom_name +
|
||||
')'
|
||||
);
|
||||
if (old_custom_name !== new_custom_name) {
|
||||
changed = true;
|
||||
@@ -366,21 +365,23 @@ function check_upgrade(version: string) {
|
||||
if (version) {
|
||||
const dev_version = version.split(',')[0];
|
||||
const stable_version = version.split(',')[1];
|
||||
|
||||
console.log(
|
||||
'latest dev version: ' +
|
||||
dev_version +
|
||||
', latest stable version: ' +
|
||||
stable_version
|
||||
);
|
||||
console.log(
|
||||
'Version upgrade check from version ' +
|
||||
THIS_VERSION +
|
||||
', upgradable: ' +
|
||||
VERSION_IS_UPGRADEABLE
|
||||
'Version upgrade check. This version (' +
|
||||
THIS_VERSION +
|
||||
') to dev (' +
|
||||
dev_version +
|
||||
') is ' +
|
||||
(DEV_VERSION_IS_UPGRADEABLE ? 'YES' : 'NO') +
|
||||
' and to stable (' +
|
||||
stable_version +
|
||||
') is ' +
|
||||
(STABLE_VERSION_IS_UPGRADEABLE ? 'YES' : 'NO')
|
||||
);
|
||||
data = {
|
||||
emsesp_version: THIS_VERSION,
|
||||
upgradeable: VERSION_IS_UPGRADEABLE
|
||||
dev_upgradeable: DEV_VERSION_IS_UPGRADEABLE,
|
||||
stable_upgradeable: STABLE_VERSION_IS_UPGRADEABLE
|
||||
};
|
||||
} else {
|
||||
console.log('requesting ems-esp version (' + THIS_VERSION + ')');
|
||||
|
||||
@@ -54,34 +54,7 @@ framework = arduino
|
||||
board_build.partitions = partitions/esp32_partition_16M.csv
|
||||
board_upload.flash_size = 16MB
|
||||
board_build.app_partition_name = app0
|
||||
platform = espressif32@6.10.0 ; Arduino Core 2.0.17 / IDF 4.4.7
|
||||
; platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.11/platform-espressif32.zip ; Arduino Core 3.1.1 / IDF 5.3.2
|
||||
;
|
||||
; Experimental for building using espidf and the Hybrid mode to remove core libraries.
|
||||
;
|
||||
; custom_sdkconfig = https://raw.githubusercontent.com/pioarduino/sdkconfig/refs/heads/main/sdkconfig_tasmota_esp32
|
||||
; '# CONFIG_ETH_USE_ESP32_EMAC is not set'
|
||||
; '# CONFIG_ETH_PHY_INTERFACE_RMII is not set'
|
||||
; '# CONFIG_ETH_RMII_CLK_INPUT is not set'
|
||||
; '# CONFIG_ETH_RMII_CLK_IN_GPIO is not set'
|
||||
; custom_component_remove = espressif/esp_hosted
|
||||
; espressif/esp_wifi_remote
|
||||
; espressif/esp-dsp
|
||||
; espressif/network_provisioning
|
||||
; espressif/esp-zboss-lib
|
||||
; espressif/esp-zigbee-lib
|
||||
; espressif/esp_rainmaker
|
||||
; espressif/rmaker_common
|
||||
; espressif/esp_insights
|
||||
; espressif/esp_diag_data_store
|
||||
; espressif/esp_diagnostics
|
||||
; espressif/cbor
|
||||
; espressif/qrcode
|
||||
; espressif/esp-sr
|
||||
; espressif/libsodium
|
||||
; espressif/esp-modbus
|
||||
; chmorgan/esp-libhelix-mp3
|
||||
; espressif/esp32-camera
|
||||
platform = espressif32@6.10.0 ; Arduino Core v2.0.17 / IDF v4.4.7
|
||||
|
||||
; 32MB Flash variants
|
||||
[espressif32_base_32M]
|
||||
|
||||
@@ -9,10 +9,10 @@ OUTPUT_DIR = "build{}".format(os.path.sep)
|
||||
|
||||
def bin_copy(source, target, env):
|
||||
|
||||
# get the application version from version.h
|
||||
# get the application version from emsesp_version.h
|
||||
bag = {}
|
||||
exprs = [(re.compile(r'^#define EMSESP_APP_VERSION\s+"(\S+)"'), 'app_version')]
|
||||
with open('./src/version.h', 'r') as f:
|
||||
with open('./src/emsesp_version.h', 'r') as f:
|
||||
for l in f.readlines():
|
||||
for expr, var in exprs:
|
||||
m = expr.match(l)
|
||||
|
||||
@@ -11,7 +11,7 @@ def move_file(source, target, env):
|
||||
# get the build info
|
||||
bag = {}
|
||||
exprs = [(re.compile(r'^#define EMSESP_APP_VERSION\s+"(\S+)"'), 'app_version')]
|
||||
with open('./src/version.h', 'r') as f:
|
||||
with open('./src/emsesp_version.h', 'r') as f:
|
||||
for l in f.readlines():
|
||||
for expr, var in exprs:
|
||||
m = expr.match(l)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
sonar.organization=emsesp
|
||||
sonar.projectKey=emsesp_EMS-ESP32
|
||||
sonar.projectName=EMS-ESP32
|
||||
sonar.projectVersion=3.7.2
|
||||
sonar.projectVersion=3.7.3
|
||||
sonar.sources=./src
|
||||
sonar.cfamily.compile-commands=compile_commands.json
|
||||
sonar.sourceEncoding=UTF-8
|
||||
|
||||
@@ -53,7 +53,9 @@ class SecuritySettings {
|
||||
// users
|
||||
settings.users.clear();
|
||||
if (root["users"].is<JsonArray>()) {
|
||||
for (JsonVariant user : root["users"].as<JsonArray>()) {
|
||||
JsonArray users = root["users"].as<JsonArray>();
|
||||
for (size_t i = 0; i < users.size(); i++) {
|
||||
JsonObject user = users[i].as<JsonObject>();
|
||||
settings.users.emplace_back(user["username"], user["password"], user["admin"]);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
#include "roomcontrol.h"
|
||||
#include "command.h"
|
||||
|
||||
#include "../version.h"
|
||||
#include "../emsesp_version.h"
|
||||
|
||||
// Load external modules
|
||||
class Module {}; // forward declaration
|
||||
|
||||
@@ -551,7 +551,11 @@ void System::led_init(bool refresh) {
|
||||
if (refresh) {
|
||||
// disabled old led port before setting new one
|
||||
if ((led_gpio_ != 0) && is_valid_gpio(led_gpio_)) {
|
||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||
led_type_ ? neopixelWrite(led_gpio_, 0, 0, 0) : digitalWrite(led_gpio_, !LED_ON);
|
||||
#else
|
||||
led_type_ ? rgbLedWrite(led_gpio_, 0, 0, 0) : digitalWrite(led_gpio_, !LED_ON);
|
||||
#endif
|
||||
pinMode(led_gpio_, INPUT);
|
||||
}
|
||||
reload_settings();
|
||||
@@ -560,7 +564,11 @@ void System::led_init(bool refresh) {
|
||||
if ((led_gpio_ != 0) && is_valid_gpio(led_gpio_)) { // 0 means disabled
|
||||
if (led_type_) {
|
||||
// rgb LED WS2812B, use Neopixel
|
||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||
neopixelWrite(led_gpio_, 0, 0, 0);
|
||||
#else
|
||||
rgbLedWrite(led_gpio_, 0, 0, 0);
|
||||
#endif
|
||||
} else {
|
||||
pinMode(led_gpio_, OUTPUT);
|
||||
digitalWrite(led_gpio_, !LED_ON); // start with LED off
|
||||
@@ -817,12 +825,20 @@ void System::system_check() {
|
||||
if (healthcheck_ == 0) {
|
||||
// everything is healthy, show LED permanently on or off depending on setting
|
||||
if (led_gpio_) {
|
||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||
led_type_ ? neopixelWrite(led_gpio_, 0, hide_led_ ? 0 : 128, 0) : digitalWrite(led_gpio_, hide_led_ ? !LED_ON : LED_ON);
|
||||
#else
|
||||
led_type_ ? rgbLedWrite(led_gpio_, 0, hide_led_ ? 0 : 128, 0) : digitalWrite(led_gpio_, hide_led_ ? !LED_ON : LED_ON);
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
// turn off LED so we're ready to the flashes
|
||||
if (led_gpio_) {
|
||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||
led_type_ ? neopixelWrite(led_gpio_, 0, 0, 0) : digitalWrite(led_gpio_, !LED_ON);
|
||||
#else
|
||||
led_type_ ? rgbLedWrite(led_gpio_, 0, 0, 0) : digitalWrite(led_gpio_, !LED_ON);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -882,7 +898,11 @@ void System::led_monitor() {
|
||||
// reset the whole sequence
|
||||
led_long_timer_ = uuid::get_uptime();
|
||||
led_flash_step_ = 0;
|
||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||
led_type_ ? neopixelWrite(led_gpio_, 0, 0, 0) : digitalWrite(led_gpio_, !LED_ON); // LED off
|
||||
#else
|
||||
led_type_ ? rgbLedWrite(led_gpio_, 0, 0, 0) : digitalWrite(led_gpio_, !LED_ON); // LED off
|
||||
#endif
|
||||
} else if (led_flash_step_ % 2) {
|
||||
// handle the step events (on odd numbers 3,5,7,etc). see if we need to turn on a LED
|
||||
// 1 flash is the EMS bus is not connected
|
||||
@@ -892,17 +912,33 @@ void System::led_monitor() {
|
||||
if (led_type_) {
|
||||
if (led_flash_step_ == 3) {
|
||||
if ((healthcheck_ & HEALTHCHECK_NO_NETWORK) == HEALTHCHECK_NO_NETWORK) {
|
||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||
neopixelWrite(led_gpio_, 128, 0, 0); // red
|
||||
#else
|
||||
rgbLedWrite(led_gpio_, 128, 0, 0); // red
|
||||
#endif
|
||||
} else if ((healthcheck_ & HEALTHCHECK_NO_BUS) == HEALTHCHECK_NO_BUS) {
|
||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||
neopixelWrite(led_gpio_, 0, 0, 128); // blue
|
||||
#else
|
||||
rgbLedWrite(led_gpio_, 0, 0, 128); // blue
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if (led_flash_step_ == 5 && (healthcheck_ & HEALTHCHECK_NO_NETWORK) == HEALTHCHECK_NO_NETWORK) {
|
||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||
neopixelWrite(led_gpio_, 128, 0, 0); // red
|
||||
#else
|
||||
rgbLedWrite(led_gpio_, 128, 0, 0); // red
|
||||
#endif
|
||||
}
|
||||
if ((led_flash_step_ == 7) && ((healthcheck_ & HEALTHCHECK_NO_NETWORK) == HEALTHCHECK_NO_NETWORK)
|
||||
&& ((healthcheck_ & HEALTHCHECK_NO_BUS) == HEALTHCHECK_NO_BUS)) {
|
||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||
neopixelWrite(led_gpio_, 0, 0, 128); // blue
|
||||
#else
|
||||
rgbLedWrite(led_gpio_, 0, 0, 128); // blue
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
if ((led_flash_step_ == 3)
|
||||
@@ -926,7 +962,11 @@ void System::led_monitor() {
|
||||
} else {
|
||||
// turn the led off after the flash, on even number count
|
||||
if (led_on_) {
|
||||
#if ESP_ARDUINO_VERSION_MAJOR < 3
|
||||
led_type_ ? neopixelWrite(led_gpio_, 0, 0, 0) : digitalWrite(led_gpio_, !LED_ON);
|
||||
#else
|
||||
led_type_ ? rgbLedWrite(led_gpio_, 0, 0, 0) : digitalWrite(led_gpio_, !LED_ON);
|
||||
#endif
|
||||
led_on_ = false;
|
||||
}
|
||||
}
|
||||
|
||||
1
src/emsesp_version.h
Normal file
1
src/emsesp_version.h
Normal file
@@ -0,0 +1 @@
|
||||
#define EMSESP_APP_VERSION "3.7.3-dev.4"
|
||||
@@ -1112,19 +1112,30 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
// EMSESP::webStatusService.action(&request, doc.as<JsonVariant>());
|
||||
|
||||
// test version checks
|
||||
// test with "current_version_s = "3.7.1-dev.8" in WebStatusService::checkUpgrade()
|
||||
// request.url("/rest/action");
|
||||
// deserializeJson(doc, "{\"action\":\"checkUpgrade\", \"param\":\"3.7.1-dev.9,3.7.0\"}"); // is upgradable
|
||||
// EMSESP::webStatusService.action(&request, doc.as<JsonVariant>());
|
||||
// deserializeJson(doc, "{\"action\":\"checkUpgrade\", \"param\":\"3.7.1-dev.7,3.7.0\"}"); // is not upgradable
|
||||
// EMSESP::webStatusService.action(&request, doc.as<JsonVariant>());
|
||||
// use same data as in rest_server.ts
|
||||
// log shows first if you can upgrade to dev, and then if you can upgrade to stable
|
||||
request.url("/rest/action");
|
||||
std::string LATEST_STABLE_VERSION = "3.7.2";
|
||||
std::string LATEST_DEV_VERSION = "3.7.3-dev.3";
|
||||
std::string param = LATEST_DEV_VERSION + "," + LATEST_STABLE_VERSION;
|
||||
std::string action = "{\"action\":\"checkUpgrade\", \"param\":\"" + param + "\"}";
|
||||
deserializeJson(doc, action);
|
||||
|
||||
// test with "current_version_s = "3.6.5" in WebStatusService::checkUpgrade()
|
||||
// request.url("/rest/action");
|
||||
// deserializeJson(doc, "{\"action\":\"checkUpgrade\", \"param\":\"3.7.1-dev.9,3.6.5\"}"); // is noy upgradable
|
||||
// EMSESP::webStatusService.action(&request, doc.as<JsonVariant>());
|
||||
// deserializeJson(doc, "{\"action\":\"checkUpgrade\", \"param\":\"3.7.1-dev.7,3.7.0\"}"); // is upgradable
|
||||
// EMSESP::webStatusService.action(&request, doc.as<JsonVariant>());
|
||||
// case 0: on latest stable, can upgrade to dev only. So true, false
|
||||
EMSESP::webStatusService.set_current_version(LATEST_STABLE_VERSION);
|
||||
EMSESP::webStatusService.action(&request, doc.as<JsonVariant>());
|
||||
|
||||
// case 1: on latest dev, no updates to either dev or stable. So false, false
|
||||
EMSESP::webStatusService.set_current_version(LATEST_DEV_VERSION);
|
||||
EMSESP::webStatusService.action(&request, doc.as<JsonVariant>());
|
||||
|
||||
// case 2: upgrade an older stable to latest stable or the latest dev. So true, true
|
||||
EMSESP::webStatusService.set_current_version("3.6.5");
|
||||
EMSESP::webStatusService.action(&request, doc.as<JsonVariant>());
|
||||
|
||||
// case 3: upgrade an older dev to latest dev, no stable upgrades available. So true, false
|
||||
EMSESP::webStatusService.set_current_version("3.7.3-dev.2");
|
||||
EMSESP::webStatusService.action(&request, doc.as<JsonVariant>());
|
||||
|
||||
// char data6[] = "{\"device\":\"system\", \"cmd\":\"read\",\"value\":\"8 2 27 1\"}";
|
||||
// deserializeJson(doc, data6);
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace emsesp {
|
||||
// #define EMSESP_DEBUG_DEFAULT "310"
|
||||
// #define EMSESP_DEBUG_DEFAULT "render"
|
||||
// #define EMSESP_DEBUG_DEFAULT "api"
|
||||
// #define EMSESP_DEBUG_DEFAULT "api3"
|
||||
#define EMSESP_DEBUG_DEFAULT "api3"
|
||||
// #define EMSESP_DEBUG_DEFAULT "api4"
|
||||
// #define EMSESP_DEBUG_DEFAULT "crash"
|
||||
// #define EMSESP_DEBUG_DEFAULT "dv"
|
||||
|
||||
@@ -73,14 +73,17 @@ void EMSuart::uart_event_task(void * pvParameters) {
|
||||
*/
|
||||
void EMSuart::start(const uint8_t tx_mode, const uint8_t rx_gpio, const uint8_t tx_gpio) {
|
||||
if (tx_mode_ == 0xFF) {
|
||||
uart_config_t uart_config = {
|
||||
.baud_rate = EMSUART_BAUD,
|
||||
.data_bits = UART_DATA_8_BITS,
|
||||
.parity = UART_PARITY_DISABLE,
|
||||
.stop_bits = UART_STOP_BITS_1,
|
||||
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
|
||||
.rx_flow_ctrl_thresh = 0, // not used - https://docs.espressif.com/projects/esp-idf/en/v3.3.6/api-reference/peripherals/uart.html
|
||||
.source_clk = UART_SCLK_APB,
|
||||
uart_config_t uart_config = {.baud_rate = EMSUART_BAUD,
|
||||
.data_bits = UART_DATA_8_BITS,
|
||||
.parity = UART_PARITY_DISABLE,
|
||||
.stop_bits = UART_STOP_BITS_1,
|
||||
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
|
||||
.rx_flow_ctrl_thresh = 0,
|
||||
.source_clk = UART_SCLK_APB
|
||||
#if ESP_ARDUINO_VERSION_MAJOR >= 3
|
||||
,
|
||||
.flags = {0, 0}
|
||||
#endif
|
||||
};
|
||||
#if defined(EMSUART_RX_INVERT)
|
||||
inverse_mask |= UART_SIGNAL_RXD_INV;
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#define EMSESP_APP_VERSION "3.7.3-dev.3"
|
||||
@@ -219,37 +219,38 @@ void WebStatusService::action(AsyncWebServerRequest * request, JsonVariant json)
|
||||
// action = checkUpgrade
|
||||
// versions holds the latest development version and stable version in one string, comma separated
|
||||
bool WebStatusService::checkUpgrade(JsonObject root, std::string & versions) {
|
||||
std::string current_version_s;
|
||||
#ifndef EMSESP_STANDALONE
|
||||
current_version_s = EMSESP_APP_VERSION;
|
||||
#else
|
||||
// for testing only - see api3 test in test.cpp
|
||||
// current_version_s = "3.6.5";
|
||||
current_version_s = "3.7.2-dev.1";
|
||||
#endif
|
||||
|
||||
if (!versions.empty()) {
|
||||
version::Semver200_version current_version(current_version_s);
|
||||
bool using_dev_version = !current_version.prerelease().find("dev"); // look for dev in the name to determine if we're using dev version
|
||||
version::Semver200_version latest_version(using_dev_version ? versions.substr(0, versions.find(',')) : versions.substr(versions.find(',') + 1));
|
||||
bool upgradeable = (latest_version > current_version);
|
||||
version::Semver200_version latest_dev_version(versions.substr(0, versions.find(',')));
|
||||
version::Semver200_version latest_stable_version(versions.substr(versions.find(',') + 1));
|
||||
|
||||
bool dev_upgradeable = latest_dev_version > current_version;
|
||||
bool stable_upgradeable = latest_stable_version > current_version;
|
||||
|
||||
#if defined(EMSESP_DEBUG)
|
||||
// look for dev in the name to determine if we're using a dev release
|
||||
bool using_dev_version = !current_version.prerelease().find("dev");
|
||||
emsesp::EMSESP::logger()
|
||||
.debug("Checking Version upgrade. Using %s release branch. current version=%d.%d.%d-%s, latest version=%d.%d.%d-%s (%s upgradeable)",
|
||||
(using_dev_version ? "dev" : "stable"),
|
||||
.debug("Checking version upgrade. This version=%d.%d.%d-%s (%s),latest dev=%d.%d.%d-%s (%s upgradeable),latest stable=%d.%d.%d-%s (%s upgradeable)",
|
||||
current_version.major(),
|
||||
current_version.minor(),
|
||||
current_version.patch(),
|
||||
current_version.prerelease().c_str(),
|
||||
latest_version.major(),
|
||||
latest_version.minor(),
|
||||
latest_version.patch(),
|
||||
latest_version.prerelease().c_str(),
|
||||
upgradeable ? "IS" : "NOT");
|
||||
using_dev_version ? "Dev" : "Stable",
|
||||
latest_dev_version.major(),
|
||||
latest_dev_version.minor(),
|
||||
latest_dev_version.patch(),
|
||||
latest_dev_version.prerelease().c_str(),
|
||||
dev_upgradeable ? "is" : "is not",
|
||||
latest_stable_version.major(),
|
||||
latest_stable_version.minor(),
|
||||
latest_stable_version.patch(),
|
||||
latest_stable_version.prerelease().c_str(),
|
||||
stable_upgradeable ? "is" : "is not");
|
||||
#endif
|
||||
|
||||
root["upgradeable"] = upgradeable;
|
||||
root["dev_upgradeable"] = dev_upgradeable;
|
||||
root["stable_upgradeable"] = stable_upgradeable;
|
||||
}
|
||||
|
||||
root["emsesp_version"] = current_version_s; // always send back current version
|
||||
|
||||
@@ -5,12 +5,19 @@
|
||||
#define EMSESP_ACTION_SERVICE_PATH "/rest/action"
|
||||
|
||||
#include <semver200.h> // for version checking
|
||||
#include "../emsesp_version.h"
|
||||
|
||||
namespace emsesp {
|
||||
|
||||
class WebStatusService {
|
||||
public:
|
||||
WebStatusService(AsyncWebServer * server, SecurityManager * securityManager);
|
||||
void set_current_version(const std::string & version) {
|
||||
current_version_s = version;
|
||||
}
|
||||
std::string get_current_version() {
|
||||
return current_version_s;
|
||||
}
|
||||
|
||||
// make action function public so we can test in the debug and standalone mode
|
||||
#ifndef EMSESP_STANDALONE
|
||||
@@ -29,6 +36,8 @@ class WebStatusService {
|
||||
bool uploadURL(const char * url);
|
||||
bool setSystemStatus(const char * status);
|
||||
void allvalues(JsonObject output);
|
||||
|
||||
std::string current_version_s = EMSESP_APP_VERSION;
|
||||
};
|
||||
|
||||
} // namespace emsesp
|
||||
|
||||
Reference in New Issue
Block a user