This commit is contained in:
Proddy
2023-11-26 20:11:36 +01:00
16 changed files with 185 additions and 207 deletions

View File

@@ -34,6 +34,7 @@ Writeable Text entities have moved from type `sensor` to `text` in Home Assistan
- fixed helper text in Web Device Entity dialog box for numerical ranges - fixed helper text in Web Device Entity dialog box for numerical ranges
- MQTT base with paths not working in HA [#1393](https://github.com/emsesp/EMS-ESP32/issues/1393) - MQTT base with paths not working in HA [#1393](https://github.com/emsesp/EMS-ESP32/issues/1393)
- set/read thermostat mode for RC100-RC300, [#1440](https://github.com/emsesp/EMS-ESP32/issues/1440) [#1442](https://github.com/emsesp/EMS-ESP32/issues/1442) - set/read thermostat mode for RC100-RC300, [#1440](https://github.com/emsesp/EMS-ESP32/issues/1440) [#1442](https://github.com/emsesp/EMS-ESP32/issues/1442)
- some setting commands for ems-boiler have used wrong ems+ telegram in 3.6.3
## Changed ## Changed

View File

@@ -1,6 +1,6 @@
# Changelog # Changelog
## [3.6.4] ## [3.6.5]
## **IMPORTANT! BREAKING CHANGES** ## **IMPORTANT! BREAKING CHANGES**

View File

@@ -1,6 +1,6 @@
{ {
"name": "EMS-ESP", "name": "EMS-ESP",
"version": "3.6.4", "version": "3.6.5",
"description": "build EMS-ESP WebUI", "description": "build EMS-ESP WebUI",
"homepage": "https://emsesp.github.io/docs", "homepage": "https://emsesp.github.io/docs",
"author": "proddy", "author": "proddy",
@@ -29,7 +29,7 @@
"@table-library/react-table-library": "4.1.7", "@table-library/react-table-library": "4.1.7",
"@types/imagemin": "^8.0.5", "@types/imagemin": "^8.0.5",
"@types/lodash-es": "^4.17.12", "@types/lodash-es": "^4.17.12",
"@types/node": "^20.9.5", "@types/node": "^20.10.0",
"@types/react": "^18.2.38", "@types/react": "^18.2.38",
"@types/react-dom": "^18.2.17", "@types/react-dom": "^18.2.17",
"@types/react-router-dom": "^5.3.3", "@types/react-router-dom": "^5.3.3",
@@ -68,7 +68,7 @@
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"preact": "^10.19.2", "preact": "^10.19.2",
"prettier": "^3.1.0", "prettier": "^3.1.0",
"rollup-plugin-visualizer": "^5.9.2", "rollup-plugin-visualizer": "^5.9.3",
"terser": "^5.24.0", "terser": "^5.24.0",
"vite": "^5.0.2", "vite": "^5.0.2",
"vite-plugin-imagemin": "^0.6.1", "vite-plugin-imagemin": "^0.6.1",

View File

@@ -1,9 +1,8 @@
import { useMatch, useResolvedPath } from 'react-router-dom'; import { useLocation } from 'react-router-dom';
export const useRouterTab = () => { export const useRouterTab = () => {
const routerTabPath = useResolvedPath(':tab'); const loc = useLocation().pathname;
const routerTabPathMatch = useMatch(routerTabPath.pathname); const routerTab = loc.substring(0, loc.lastIndexOf('/')) ? loc : false;
const routerTab = routerTabPathMatch?.params?.tab || false;
return { routerTab } as const; return { routerTab } as const;
}; };

View File

@@ -22,8 +22,12 @@ const AccessPoint: FC = () => {
return ( return (
<> <>
<RouterTabs value={routerTab}> <RouterTabs value={routerTab}>
<Tab value="status" label={LL.STATUS_OF(LL.ACCESS_POINT(1))} /> <Tab value="/ap/status" label={LL.STATUS_OF(LL.ACCESS_POINT(1))} />
<Tab value="settings" label={LL.SETTINGS_OF(LL.ACCESS_POINT(1))} disabled={!authenticatedContext.me.admin} /> <Tab
value="/ap/settings"
label={LL.SETTINGS_OF(LL.ACCESS_POINT(1))}
disabled={!authenticatedContext.me.admin}
/>
</RouterTabs> </RouterTabs>
<Routes> <Routes>
<Route path="status" element={<APStatusForm />} /> <Route path="status" element={<APStatusForm />} />
@@ -36,7 +40,7 @@ const AccessPoint: FC = () => {
</RequireAdmin> </RequireAdmin>
} }
/> />
<Route path="/*" element={<Navigate replace to="status" />} /> <Route path="*" element={<Navigate replace to="/ap/status" />} />
</Routes> </Routes>
</> </>
); );

View File

@@ -21,8 +21,8 @@ const Mqtt: FC = () => {
return ( return (
<> <>
<RouterTabs value={routerTab}> <RouterTabs value={routerTab}>
<Tab value="status" label={LL.STATUS_OF('MQTT')} /> <Tab value="/mqtt/status" label={LL.STATUS_OF('MQTT')} />
<Tab value="settings" label={LL.SETTINGS_OF('MQTT')} disabled={!authenticatedContext.me.admin} /> <Tab value="/mqtt/settings" label={LL.SETTINGS_OF('MQTT')} disabled={!authenticatedContext.me.admin} />
</RouterTabs> </RouterTabs>
<Routes> <Routes>
<Route path="status" element={<MqttStatusForm />} /> <Route path="status" element={<MqttStatusForm />} />
@@ -34,7 +34,7 @@ const Mqtt: FC = () => {
</RequireAdmin> </RequireAdmin>
} }
/> />
<Route path="/*" element={<Navigate replace to="status" />} /> <Route path="*" element={<Navigate replace to="/mqtt/status" />} />
</Routes> </Routes>
</> </>
); );

View File

@@ -44,9 +44,13 @@ const NetworkConnection: FC = () => {
}} }}
> >
<RouterTabs value={routerTab}> <RouterTabs value={routerTab}>
<Tab value="status" label={LL.STATUS_OF(LL.NETWORK(1))} /> <Tab value="/network/status" label={LL.STATUS_OF(LL.NETWORK(1))} />
<Tab value="scan" label={LL.NETWORK_SCAN()} disabled={!authenticatedContext.me.admin} /> <Tab value="/network/scan" label={LL.NETWORK_SCAN()} disabled={!authenticatedContext.me.admin} />
<Tab value="settings" label={LL.SETTINGS_OF(LL.NETWORK(1))} disabled={!authenticatedContext.me.admin} /> <Tab
value="/network/settings"
label={LL.SETTINGS_OF(LL.NETWORK(1))}
disabled={!authenticatedContext.me.admin}
/>
</RouterTabs> </RouterTabs>
<Routes> <Routes>
<Route path="status" element={<NetworkStatusForm />} /> <Route path="status" element={<NetworkStatusForm />} />
@@ -66,7 +70,7 @@ const NetworkConnection: FC = () => {
</RequireAdmin> </RequireAdmin>
} }
/> />
<Route path="/*" element={<Navigate replace to="status" />} /> <Route path="*" element={<Navigate replace to="/network/status" />} />
</Routes> </Routes>
</WiFiConnectionContext.Provider> </WiFiConnectionContext.Provider>
); );

View File

@@ -20,8 +20,8 @@ const NetworkTime: FC = () => {
return ( return (
<> <>
<RouterTabs value={routerTab}> <RouterTabs value={routerTab}>
<Tab value="status" label={LL.STATUS_OF('NTP')} /> <Tab value="/ntp/status" label={LL.STATUS_OF('NTP')} />
<Tab value="settings" label={LL.SETTINGS_OF('NTP')} disabled={!authenticatedContext.me.admin} /> <Tab value="/ntp/settings" label={LL.SETTINGS_OF('NTP')} disabled={!authenticatedContext.me.admin} />
</RouterTabs> </RouterTabs>
<Routes> <Routes>
<Route path="status" element={<NTPStatusForm />} /> <Route path="status" element={<NTPStatusForm />} />
@@ -33,7 +33,7 @@ const NetworkTime: FC = () => {
</RequireAdmin> </RequireAdmin>
} }
/> />
<Route path="/*" element={<Navigate replace to="status" />} /> <Route path="*" element={<Navigate replace to="/ntp/status" />} />
</Routes> </Routes>
</> </>
); );

View File

@@ -17,13 +17,13 @@ const Security: FC = () => {
return ( return (
<> <>
<RouterTabs value={routerTab}> <RouterTabs value={routerTab}>
<Tab value="users" label={LL.MANAGE_USERS()} /> <Tab value="/security/users" label={LL.MANAGE_USERS()} />
<Tab value="settings" label={LL.SETTINGS_OF(LL.SECURITY(1))} /> <Tab value="/security/settings" label={LL.SETTINGS_OF(LL.SECURITY(1))} />
</RouterTabs> </RouterTabs>
<Routes> <Routes>
<Route path="users" element={<ManageUsersForm />} /> <Route path="users" element={<ManageUsersForm />} />
<Route path="settings" element={<SecuritySettingsForm />} /> <Route path="settings" element={<SecuritySettingsForm />} />
<Route path="/*" element={<Navigate replace to="users" />} /> <Route path="*" element={<Navigate replace to="/security/users" />} />
</Routes> </Routes>
</> </>
); );

View File

@@ -23,10 +23,10 @@ const System: FC = () => {
return ( return (
<> <>
<RouterTabs value={routerTab}> <RouterTabs value={routerTab}>
<Tab value="status" label={LL.STATUS_OF(LL.SYSTEM(1))} /> <Tab value="/system/status" label={LL.STATUS_OF(LL.SYSTEM(1))} />
<Tab value="log" label={LL.LOG_OF(LL.SYSTEM(2))} /> <Tab value="/system/log" label={LL.LOG_OF(LL.SYSTEM(2))} />
<Tab value="ota" label={LL.SETTINGS_OF('OTA')} disabled={!me.admin} /> <Tab value="/system/ota" label={LL.SETTINGS_OF('OTA')} disabled={!me.admin} />
<Tab value="upload" label={LL.UPLOAD_DOWNLOAD()} disabled={!me.admin} /> <Tab value="/system/upload" label={LL.UPLOAD_DOWNLOAD()} disabled={!me.admin} />
</RouterTabs> </RouterTabs>
<Routes> <Routes>
<Route path="status" element={<SystemStatusForm />} /> <Route path="status" element={<SystemStatusForm />} />
@@ -47,7 +47,7 @@ const System: FC = () => {
</RequireAdmin> </RequireAdmin>
} }
/> />
<Route path="/*" element={<Navigate replace to="status" />} /> <Route path="*" element={<Navigate replace to="/system/status" />} />
</Routes> </Routes>
</> </>
); );

View File

@@ -20,15 +20,15 @@ const Dashboard: FC = () => {
return ( return (
<> <>
<RouterTabs value={routerTab}> <RouterTabs value={routerTab}>
<Tab value="devices" label={LL.DEVICES()} /> <Tab value="/dashboard/devices" label={LL.DEVICES()} />
<Tab value="sensors" label={LL.SENSORS()} /> <Tab value="/dashboard/sensors" label={LL.SENSORS()} />
<Tab value="status" label="Status" /> <Tab value="/dashboard/status" label="Status" />
</RouterTabs> </RouterTabs>
<Routes> <Routes>
<Route path="devices" element={<DashboardDevices />} /> <Route path="devices" element={<DashboardDevices />} />
<Route path="sensors" element={<DashboardSensors />} /> <Route path="sensors" element={<DashboardSensors />} />
<Route path="status" element={<DashboardStatus />} /> <Route path="status" element={<DashboardStatus />} />
<Route path="/*" element={<Navigate replace to="devices" />} /> <Route path="*" element={<Navigate replace to="/dashboard/devices" />} />
</Routes> </Routes>
</> </>
); );

View File

@@ -1,28 +1,83 @@
import { Tab } from '@mui/material'; import CommentIcon from '@mui/icons-material/CommentTwoTone';
import { Navigate, Route, Routes } from 'react-router-dom'; import EastIcon from '@mui/icons-material/East';
import HelpInformation from './HelpInformation'; import GitHubIcon from '@mui/icons-material/GitHub';
import MenuBookIcon from '@mui/icons-material/MenuBookTwoTone';
import { Box, List, ListItem, ListItemAvatar, ListItemText, Link, Typography } from '@mui/material';
import type { FC } from 'react'; import type { FC } from 'react';
import { SectionContent, useLayoutTitle } from 'components';
import { RouterTabs, useRouterTab, useLayoutTitle } from 'components';
import { useI18nContext } from 'i18n/i18n-react'; import { useI18nContext } from 'i18n/i18n-react';
const Help: FC = () => { const Help: FC = () => {
const { LL } = useI18nContext(); const { LL } = useI18nContext();
const { routerTab } = useRouterTab();
useLayoutTitle(LL.HELP_OF('')); useLayoutTitle(LL.HELP_OF(''));
const uploadURL = window.location.origin + '/system/upload';
return ( return (
<> <SectionContent title={LL.SUPPORT_INFORMATION()} titleGutter>
<RouterTabs value={routerTab}> <List>
<Tab value="information" label={LL.HELP_OF('EMS-ESP')} /> <ListItem>
</RouterTabs> <ListItemAvatar>
<Routes> <MenuBookIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
<Route path="information" element={<HelpInformation />} /> </ListItemAvatar>
<Route path="/*" element={<Navigate replace to="information" />} /> <ListItemText>
</Routes> {LL.HELP_INFORMATION_1()}&nbsp;
</> <EastIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
&nbsp;
<Link target="_blank" href="https://emsesp.github.io/docs" color="primary">
{LL.CLICK_HERE()}
</Link>
</ListItemText>
</ListItem>
<ListItem>
<ListItemAvatar>
<CommentIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
</ListItemAvatar>
<ListItemText>
{LL.HELP_INFORMATION_2()}&nbsp;
<EastIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
&nbsp;
<Link target="_blank" href="https://discord.gg/3J3GgnzpyT" color="primary">
{LL.CLICK_HERE()}
</Link>
</ListItemText>
</ListItem>
<ListItem>
<ListItemAvatar>
<GitHubIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
</ListItemAvatar>
<ListItemText>
{LL.HELP_INFORMATION_3()}&nbsp;
<EastIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
<Link target="_blank" href="https://github.com/emsesp/EMS-ESP32/issues/new/choose" color="primary">
{LL.CLICK_HERE()}
</Link>
<br />
<i>({LL.HELP_INFORMATION_4()}</i>&nbsp;
<Link href={uploadURL} color="primary">
{LL.UPLOAD()}
</Link>
)
</ListItemText>
</ListItem>
</List>
<Box border={1} p={1} mt={4} color="orange">
<Typography align="center" variant="subtitle1" color="orange">
<b>{LL.HELP_INFORMATION_5()}</b>
</Typography>
<Typography align="center">
<Link target="_blank" href="https://github.com/emsesp/EMS-ESP32" color="primary">
{'github.com/emsesp/EMS-ESP32'}
</Link>
</Typography>
<Typography color="white" align="center">
@proddy @MichaelDvP
</Typography>
</Box>
</SectionContent>
); );
}; };

View File

@@ -1,85 +0,0 @@
import CommentIcon from '@mui/icons-material/CommentTwoTone';
import EastIcon from '@mui/icons-material/East';
import GitHubIcon from '@mui/icons-material/GitHub';
import MenuBookIcon from '@mui/icons-material/MenuBookTwoTone';
import { Typography, Box, List, ListItem, ListItemText, Link, ListItemAvatar } from '@mui/material';
import type { FC } from 'react';
import { SectionContent } from 'components';
import { useI18nContext } from 'i18n/i18n-react';
const HelpInformation: FC = () => {
const { LL } = useI18nContext();
const uploadURL = window.location.origin + '/system/upload';
return (
<SectionContent title={LL.SUPPORT_INFORMATION()} titleGutter>
<List>
<ListItem>
<ListItemAvatar>
<MenuBookIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
</ListItemAvatar>
<ListItemText>
{LL.HELP_INFORMATION_1()}&nbsp;
<EastIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
&nbsp;
<Link target="_blank" href="https://emsesp.github.io/docs" color="primary">
{LL.CLICK_HERE()}
</Link>
</ListItemText>
</ListItem>
<ListItem>
<ListItemAvatar>
<CommentIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
</ListItemAvatar>
<ListItemText>
{LL.HELP_INFORMATION_2()}&nbsp;
<EastIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
&nbsp;
<Link target="_blank" href="https://discord.gg/3J3GgnzpyT" color="primary">
{LL.CLICK_HERE()}
</Link>
</ListItemText>
</ListItem>
<ListItem>
<ListItemAvatar>
<GitHubIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
</ListItemAvatar>
<ListItemText>
{LL.HELP_INFORMATION_3()}&nbsp;
<EastIcon style={{ fontSize: 24, color: 'lightblue', verticalAlign: 'middle' }} />
<Link target="_blank" href="https://github.com/emsesp/EMS-ESP32/issues/new/choose" color="primary">
{LL.CLICK_HERE()}
</Link>
<br />
<i>({LL.HELP_INFORMATION_4()}</i>&nbsp;
<Link href={uploadURL} color="primary">
{LL.UPLOAD()}
</Link>
)
</ListItemText>
</ListItem>
</List>
<Box border={1} p={1} mt={4} color="orange">
<Typography align="center" variant="subtitle1" color="orange">
<b>{LL.HELP_INFORMATION_5()}</b>
</Typography>
<Typography align="center">
<Link target="_blank" href="https://github.com/emsesp/EMS-ESP32" color="primary">
{'github.com/emsesp/EMS-ESP32'}
</Link>
</Typography>
<Typography color="white" align="center">
@proddy @MichaelDvP
</Typography>
</Box>
</SectionContent>
);
};
export default HelpInformation;

View File

@@ -18,17 +18,17 @@ const Settings: FC = () => {
return ( return (
<> <>
<RouterTabs value={routerTab}> <RouterTabs value={routerTab}>
<Tab value="application" label={LL.APPLICATION_SETTINGS()} /> <Tab value="/settings/application" label={LL.APPLICATION_SETTINGS()} />
<Tab value="customization" label={LL.CUSTOMIZATIONS()} /> <Tab value="/settings/customization" label={LL.CUSTOMIZATIONS()} />
<Tab value="scheduler" label={LL.SCHEDULER()} /> <Tab value="/settings/scheduler" label={LL.SCHEDULER()} />
<Tab value="customentities" label={LL.CUSTOM_ENTITIES(0)} /> <Tab value="/settings/customentities" label={LL.CUSTOM_ENTITIES(0)} />
</RouterTabs> </RouterTabs>
<Routes> <Routes>
<Route path="application" element={<SettingsApplication />} /> <Route path="application" element={<SettingsApplication />} />
<Route path="customization" element={<SettingsCustomization />} /> <Route path="customization" element={<SettingsCustomization />} />
<Route path="scheduler" element={<SettingsScheduler />} /> <Route path="scheduler" element={<SettingsScheduler />} />
<Route path="customentities" element={<SettingsEntities />} /> <Route path="customentities" element={<SettingsEntities />} />
<Route path="/*" element={<Navigate replace to="application" />} /> <Route path="*" element={<Navigate replace to="/settings/application" />} />
</Routes> </Routes>
</> </>
); );

View File

@@ -1129,86 +1129,86 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-android-arm-eabi@npm:4.5.2": "@rollup/rollup-android-arm-eabi@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-android-arm-eabi@npm:4.5.2" resolution: "@rollup/rollup-android-arm-eabi@npm:4.6.0"
conditions: os=android & cpu=arm conditions: os=android & cpu=arm
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-android-arm64@npm:4.5.2": "@rollup/rollup-android-arm64@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-android-arm64@npm:4.5.2" resolution: "@rollup/rollup-android-arm64@npm:4.6.0"
conditions: os=android & cpu=arm64 conditions: os=android & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-darwin-arm64@npm:4.5.2": "@rollup/rollup-darwin-arm64@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-darwin-arm64@npm:4.5.2" resolution: "@rollup/rollup-darwin-arm64@npm:4.6.0"
conditions: os=darwin & cpu=arm64 conditions: os=darwin & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-darwin-x64@npm:4.5.2": "@rollup/rollup-darwin-x64@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-darwin-x64@npm:4.5.2" resolution: "@rollup/rollup-darwin-x64@npm:4.6.0"
conditions: os=darwin & cpu=x64 conditions: os=darwin & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-linux-arm-gnueabihf@npm:4.5.2": "@rollup/rollup-linux-arm-gnueabihf@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.5.2" resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.6.0"
conditions: os=linux & cpu=arm conditions: os=linux & cpu=arm
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-linux-arm64-gnu@npm:4.5.2": "@rollup/rollup-linux-arm64-gnu@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.5.2" resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.6.0"
conditions: os=linux & cpu=arm64 & libc=glibc conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-linux-arm64-musl@npm:4.5.2": "@rollup/rollup-linux-arm64-musl@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.5.2" resolution: "@rollup/rollup-linux-arm64-musl@npm:4.6.0"
conditions: os=linux & cpu=arm64 & libc=musl conditions: os=linux & cpu=arm64 & libc=musl
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-linux-x64-gnu@npm:4.5.2": "@rollup/rollup-linux-x64-gnu@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.5.2" resolution: "@rollup/rollup-linux-x64-gnu@npm:4.6.0"
conditions: os=linux & cpu=x64 & libc=glibc conditions: os=linux & cpu=x64 & libc=glibc
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-linux-x64-musl@npm:4.5.2": "@rollup/rollup-linux-x64-musl@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-linux-x64-musl@npm:4.5.2" resolution: "@rollup/rollup-linux-x64-musl@npm:4.6.0"
conditions: os=linux & cpu=x64 & libc=musl conditions: os=linux & cpu=x64 & libc=musl
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-win32-arm64-msvc@npm:4.5.2": "@rollup/rollup-win32-arm64-msvc@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.5.2" resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.6.0"
conditions: os=win32 & cpu=arm64 conditions: os=win32 & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-win32-ia32-msvc@npm:4.5.2": "@rollup/rollup-win32-ia32-msvc@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.5.2" resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.6.0"
conditions: os=win32 & cpu=ia32 conditions: os=win32 & cpu=ia32
languageName: node languageName: node
linkType: hard linkType: hard
"@rollup/rollup-win32-x64-msvc@npm:4.5.2": "@rollup/rollup-win32-x64-msvc@npm:4.6.0":
version: 4.5.2 version: 4.6.0
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.5.2" resolution: "@rollup/rollup-win32-x64-msvc@npm:4.6.0"
conditions: os=win32 & cpu=x64 conditions: os=win32 & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1378,12 +1378,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/node@npm:*, @types/node@npm:^20.9.5": "@types/node@npm:*, @types/node@npm:^20.10.0":
version: 20.9.5 version: 20.10.0
resolution: "@types/node@npm:20.9.5" resolution: "@types/node@npm:20.10.0"
dependencies: dependencies:
undici-types: "npm:~5.26.4" undici-types: "npm:~5.26.4"
checksum: f7d02ef84a449f079bc77d7494dc96a1d45006b3a7583a41430d8b62ad7dd914bcce8d1ed60584b8725289e609c20288c840aadb21cc52d5b656fa7731c1a528 checksum: c7d5ddbdbf3491e2363135c9611eb6bfae90eda2957279237fa232bcb29cd0df1cc3ee149d6de9915b754262a531ee2d57d33c9ecd58d763e8ad4856113822f3
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1627,7 +1627,7 @@ __metadata:
"@table-library/react-table-library": "npm:4.1.7" "@table-library/react-table-library": "npm:4.1.7"
"@types/imagemin": "npm:^8.0.5" "@types/imagemin": "npm:^8.0.5"
"@types/lodash-es": "npm:^4.17.12" "@types/lodash-es": "npm:^4.17.12"
"@types/node": "npm:^20.9.5" "@types/node": "npm:^20.10.0"
"@types/react": "npm:^18.2.38" "@types/react": "npm:^18.2.38"
"@types/react-dom": "npm:^18.2.17" "@types/react-dom": "npm:^18.2.17"
"@types/react-router-dom": "npm:^5.3.3" "@types/react-router-dom": "npm:^5.3.3"
@@ -1659,7 +1659,7 @@ __metadata:
react-icons: "npm:^4.12.0" react-icons: "npm:^4.12.0"
react-router-dom: "npm:^6.20.0" react-router-dom: "npm:^6.20.0"
react-toastify: "npm:^9.1.3" react-toastify: "npm:^9.1.3"
rollup-plugin-visualizer: "npm:^5.9.2" rollup-plugin-visualizer: "npm:^5.9.3"
sockette: "npm:^2.0.6" sockette: "npm:^2.0.6"
terser: "npm:^5.24.0" terser: "npm:^5.24.0"
typesafe-i18n: "npm:^5.26.2" typesafe-i18n: "npm:^5.26.2"
@@ -2941,9 +2941,9 @@ __metadata:
linkType: hard linkType: hard
"electron-to-chromium@npm:^1.4.535": "electron-to-chromium@npm:^1.4.535":
version: 1.4.593 version: 1.4.594
resolution: "electron-to-chromium@npm:1.4.593" resolution: "electron-to-chromium@npm:1.4.594"
checksum: 836463303815c1e599183e4cd84549b76c1451602c68119bfd428f706202c7d2e799cdbf1408e2d154155f84bc85020491b3244b2f5a29614d96fa7d6967b114 checksum: 87a6f87cf5a5f217fc5815e3c3d2b14c32ff21684a802bb33324897311a12788aa7b88cb44adb70995470d686979987dc2edcd25c77a4c795fa6734e20ffc511
languageName: node languageName: node
linkType: hard linkType: hard
@@ -7105,41 +7105,41 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"rollup-plugin-visualizer@npm:^5.9.2": "rollup-plugin-visualizer@npm:^5.9.3":
version: 5.9.2 version: 5.9.3
resolution: "rollup-plugin-visualizer@npm:5.9.2" resolution: "rollup-plugin-visualizer@npm:5.9.3"
dependencies: dependencies:
open: "npm:^8.4.0" open: "npm:^8.4.0"
picomatch: "npm:^2.3.1" picomatch: "npm:^2.3.1"
source-map: "npm:^0.7.4" source-map: "npm:^0.7.4"
yargs: "npm:^17.5.1" yargs: "npm:^17.5.1"
peerDependencies: peerDependencies:
rollup: 2.x || 3.x rollup: 2.x || 3.x || 4.x
peerDependenciesMeta: peerDependenciesMeta:
rollup: rollup:
optional: true optional: true
bin: bin:
rollup-plugin-visualizer: dist/bin/cli.js rollup-plugin-visualizer: dist/bin/cli.js
checksum: 9cc5b140cdb384cd16538537ed41b8ecc97a21ee1fe7974775c6fbbb7522ed1733da7c47ab8b619c9b4f190de5de3b2ad34303afe94f943c41f2ce2ec621b6cb checksum: 569acbdf9401fb5e23456d889b1094e95a003331c63428732f94418eda59850fd74994587353f58c833a535cc24cdef56c06872996f76f98802ff22939ebbf0d
languageName: node languageName: node
linkType: hard linkType: hard
"rollup@npm:^4.2.0": "rollup@npm:^4.2.0":
version: 4.5.2 version: 4.6.0
resolution: "rollup@npm:4.5.2" resolution: "rollup@npm:4.6.0"
dependencies: dependencies:
"@rollup/rollup-android-arm-eabi": "npm:4.5.2" "@rollup/rollup-android-arm-eabi": "npm:4.6.0"
"@rollup/rollup-android-arm64": "npm:4.5.2" "@rollup/rollup-android-arm64": "npm:4.6.0"
"@rollup/rollup-darwin-arm64": "npm:4.5.2" "@rollup/rollup-darwin-arm64": "npm:4.6.0"
"@rollup/rollup-darwin-x64": "npm:4.5.2" "@rollup/rollup-darwin-x64": "npm:4.6.0"
"@rollup/rollup-linux-arm-gnueabihf": "npm:4.5.2" "@rollup/rollup-linux-arm-gnueabihf": "npm:4.6.0"
"@rollup/rollup-linux-arm64-gnu": "npm:4.5.2" "@rollup/rollup-linux-arm64-gnu": "npm:4.6.0"
"@rollup/rollup-linux-arm64-musl": "npm:4.5.2" "@rollup/rollup-linux-arm64-musl": "npm:4.6.0"
"@rollup/rollup-linux-x64-gnu": "npm:4.5.2" "@rollup/rollup-linux-x64-gnu": "npm:4.6.0"
"@rollup/rollup-linux-x64-musl": "npm:4.5.2" "@rollup/rollup-linux-x64-musl": "npm:4.6.0"
"@rollup/rollup-win32-arm64-msvc": "npm:4.5.2" "@rollup/rollup-win32-arm64-msvc": "npm:4.6.0"
"@rollup/rollup-win32-ia32-msvc": "npm:4.5.2" "@rollup/rollup-win32-ia32-msvc": "npm:4.6.0"
"@rollup/rollup-win32-x64-msvc": "npm:4.5.2" "@rollup/rollup-win32-x64-msvc": "npm:4.6.0"
fsevents: "npm:~2.3.2" fsevents: "npm:~2.3.2"
dependenciesMeta: dependenciesMeta:
"@rollup/rollup-android-arm-eabi": "@rollup/rollup-android-arm-eabi":
@@ -7170,7 +7170,7 @@ __metadata:
optional: true optional: true
bin: bin:
rollup: dist/bin/rollup rollup: dist/bin/rollup
checksum: 7a6d3fbdc72b1aaefce60966425c66dfce90ea24f8b42c3b3af94364226f7fe25e4635739d31f712df2394c88e74d9671256aa344241acbeefd6425b014c4b24 checksum: 782271a15d6e3b14faedb5946d24916317e14bd5a28e7a153f0186cddbb33b7d14515f77d345180a13a1c941545d6cc756024b80b51f49cfcd953e4bd997737b
languageName: node languageName: node
linkType: hard linkType: hard

View File

@@ -324,7 +324,7 @@ security_settings = {
] ]
}; };
const features = { const features = {
version: 'v3.6.4-demo', version: 'v3.6-demo',
// platform: 'ESP32' // platform: 'ESP32'
platform: 'ESP32-S3' platform: 'ESP32-S3'
}; };
@@ -355,7 +355,7 @@ const EMSESP_WRITE_ENTITIES_ENDPOINT = REST_ENDPOINT_ROOT + 'entities';
const emsesp_info = { const emsesp_info = {
System: { System: {
version: '3.6.4', version: '3.6.5',
uptime: '001+06:40:34.018', uptime: '001+06:40:34.018',
'uptime (seconds)': 110434, 'uptime (seconds)': 110434,
freemem: 131, freemem: 131,