mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59:52 +03:00
@@ -36,7 +36,7 @@
|
|||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
"react-icons": "^5.5.0",
|
"react-icons": "^5.5.0",
|
||||||
"react-router": "^7.2.0",
|
"react-router": "^7.2.0",
|
||||||
"react-toastify": "^11.0.3",
|
"react-toastify": "^11.0.5",
|
||||||
"typesafe-i18n": "^5.26.2",
|
"typesafe-i18n": "^5.26.2",
|
||||||
"typescript": "^5.7.3"
|
"typescript": "^5.7.3"
|
||||||
},
|
},
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
"prettier": "^3.5.2",
|
"prettier": "^3.5.2",
|
||||||
"rollup-plugin-visualizer": "^5.14.0",
|
"rollup-plugin-visualizer": "^5.14.0",
|
||||||
"terser": "^5.39.0",
|
"terser": "^5.39.0",
|
||||||
"typescript-eslint": "8.24.1",
|
"typescript-eslint": "8.25.0",
|
||||||
"vite": "^6.1.1",
|
"vite": "^6.1.1",
|
||||||
"vite-plugin-imagemin": "^0.6.1",
|
"vite-plugin-imagemin": "^0.6.1",
|
||||||
"vite-tsconfig-paths": "^5.1.4"
|
"vite-tsconfig-paths": "^5.1.4"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { Slide, ToastContainer } from 'react-toastify';
|
import { ToastContainer, Zoom } from 'react-toastify';
|
||||||
|
|
||||||
import AppRouting from 'AppRouting';
|
import AppRouting from 'AppRouting';
|
||||||
import CustomTheme from 'CustomTheme';
|
import CustomTheme from 'CustomTheme';
|
||||||
@@ -43,17 +43,20 @@ const App = () => {
|
|||||||
<AppRouting />
|
<AppRouting />
|
||||||
<ToastContainer
|
<ToastContainer
|
||||||
position="bottom-left"
|
position="bottom-left"
|
||||||
autoClose={2000}
|
autoClose={3000}
|
||||||
hideProgressBar={false}
|
hideProgressBar={false}
|
||||||
newestOnTop={false}
|
newestOnTop={false}
|
||||||
closeOnClick={true}
|
closeOnClick
|
||||||
rtl={false}
|
rtl={false}
|
||||||
pauseOnFocusLoss={false}
|
pauseOnFocusLoss
|
||||||
draggable={false}
|
draggable={false}
|
||||||
pauseOnHover={false}
|
pauseOnHover={false}
|
||||||
transition={Slide}
|
transition={Zoom}
|
||||||
closeButton={false}
|
closeButton={false}
|
||||||
theme="light"
|
theme="dark"
|
||||||
|
toastStyle={{
|
||||||
|
border: '1px solid #177ac9'
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
</CustomTheme>
|
</CustomTheme>
|
||||||
</TypesafeI18n>
|
</TypesafeI18n>
|
||||||
|
|||||||
@@ -593,7 +593,7 @@ const Customizations = () => {
|
|||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid>
|
<Grid>
|
||||||
<Typography variant="subtitle2" color="primary">
|
<Typography variant="subtitle2" color="grey">
|
||||||
{LL.SHOWING()} {shown_data.length}/{deviceEntities.length}
|
{LL.SHOWING()} {shown_data.length}/{deviceEntities.length}
|
||||||
{LL.ENTITIES(deviceEntities.length)}
|
{LL.ENTITIES(deviceEntities.length)}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
|
|||||||
import KeyboardArrowDownOutlinedIcon from '@mui/icons-material/KeyboardArrowDownOutlined';
|
import KeyboardArrowDownOutlinedIcon from '@mui/icons-material/KeyboardArrowDownOutlined';
|
||||||
import KeyboardArrowUpOutlinedIcon from '@mui/icons-material/KeyboardArrowUpOutlined';
|
import KeyboardArrowUpOutlinedIcon from '@mui/icons-material/KeyboardArrowUpOutlined';
|
||||||
import PlayArrowIcon from '@mui/icons-material/PlayArrow';
|
import PlayArrowIcon from '@mui/icons-material/PlayArrow';
|
||||||
|
import SearchIcon from '@mui/icons-material/Search';
|
||||||
import StarIcon from '@mui/icons-material/Star';
|
import StarIcon from '@mui/icons-material/Star';
|
||||||
import StarBorderOutlinedIcon from '@mui/icons-material/StarBorderOutlined';
|
import StarBorderOutlinedIcon from '@mui/icons-material/StarBorderOutlined';
|
||||||
import UnfoldMoreOutlinedIcon from '@mui/icons-material/UnfoldMoreOutlined';
|
import UnfoldMoreOutlinedIcon from '@mui/icons-material/UnfoldMoreOutlined';
|
||||||
@@ -32,9 +33,12 @@ import {
|
|||||||
DialogTitle,
|
DialogTitle,
|
||||||
Grid2 as Grid,
|
Grid2 as Grid,
|
||||||
IconButton,
|
IconButton,
|
||||||
|
InputAdornment,
|
||||||
List,
|
List,
|
||||||
ListItem,
|
ListItem,
|
||||||
ListItemText,
|
ListItemText,
|
||||||
|
TextField,
|
||||||
|
ToggleButton,
|
||||||
Typography
|
Typography
|
||||||
} from '@mui/material';
|
} from '@mui/material';
|
||||||
|
|
||||||
@@ -81,6 +85,7 @@ const Devices = () => {
|
|||||||
const [deviceValueDialogOpen, setDeviceValueDialogOpen] = useState(false);
|
const [deviceValueDialogOpen, setDeviceValueDialogOpen] = useState(false);
|
||||||
const [showDeviceInfo, setShowDeviceInfo] = useState(false);
|
const [showDeviceInfo, setShowDeviceInfo] = useState(false);
|
||||||
const [selectedDevice, setSelectedDevice] = useState<number>();
|
const [selectedDevice, setSelectedDevice] = useState<number>();
|
||||||
|
const [search, setSearch] = useState('');
|
||||||
|
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
@@ -591,8 +596,12 @@ const Devices = () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const shown_data = onlyFav
|
const shown_data = onlyFav
|
||||||
? deviceData.nodes.filter((dv) => hasMask(dv.id, DeviceEntityMask.DV_FAVORITE))
|
? deviceData.nodes.filter(
|
||||||
: deviceData.nodes;
|
(dv) =>
|
||||||
|
hasMask(dv.id, DeviceEntityMask.DV_FAVORITE) &&
|
||||||
|
dv.id.slice(2).includes(search)
|
||||||
|
)
|
||||||
|
: deviceData.nodes.filter((dv) => dv.id.slice(2).includes(search));
|
||||||
|
|
||||||
const deviceIndex = coreData.devices.findIndex(
|
const deviceIndex = coreData.devices.findIndex(
|
||||||
(d) => d.id === device_select.state.id
|
(d) => d.id === device_select.state.id
|
||||||
@@ -615,47 +624,11 @@ const Devices = () => {
|
|||||||
border: '1px solid #177ac9'
|
border: '1px solid #177ac9'
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Box sx={{ border: '1px solid #177ac9' }}>
|
<Box sx={{ p: 1 }}>
|
||||||
<Typography noWrap variant="subtitle1" color="warning.main" sx={{ ml: 1 }}>
|
|
||||||
{coreData.devices[deviceIndex].n} (
|
|
||||||
{coreData.devices[deviceIndex].tn})
|
|
||||||
</Typography>
|
|
||||||
|
|
||||||
<Grid container justifyContent="space-between">
|
<Grid container justifyContent="space-between">
|
||||||
<Typography sx={{ ml: 1 }} variant="subtitle2" color="grey">
|
<Typography noWrap variant="subtitle1" color="warning.main">
|
||||||
{LL.SHOWING() +
|
{coreData.devices[deviceIndex].n} (
|
||||||
' ' +
|
{coreData.devices[deviceIndex].tn})
|
||||||
shown_data.length +
|
|
||||||
'/' +
|
|
||||||
coreData.devices[deviceIndex].e +
|
|
||||||
' ' +
|
|
||||||
LL.ENTITIES(shown_data.length)}
|
|
||||||
<ButtonTooltip title={LL.DEVICE_DETAILS()}>
|
|
||||||
<IconButton onClick={() => setShowDeviceInfo(true)}>
|
|
||||||
<InfoOutlinedIcon color="primary" sx={{ fontSize: 18 }} />
|
|
||||||
</IconButton>
|
|
||||||
</ButtonTooltip>
|
|
||||||
{me.admin && (
|
|
||||||
<ButtonTooltip title={LL.CUSTOMIZATIONS()}>
|
|
||||||
<IconButton onClick={customize}>
|
|
||||||
<ConstructionIcon color="primary" sx={{ fontSize: 18 }} />
|
|
||||||
</IconButton>
|
|
||||||
</ButtonTooltip>
|
|
||||||
)}
|
|
||||||
<ButtonTooltip title={LL.EXPORT()}>
|
|
||||||
<IconButton onClick={handleDownloadCsv}>
|
|
||||||
<DownloadIcon color="primary" sx={{ fontSize: 18 }} />
|
|
||||||
</IconButton>
|
|
||||||
</ButtonTooltip>
|
|
||||||
<ButtonTooltip title={LL.FAVORITES()}>
|
|
||||||
<IconButton onClick={() => setOnlyFav(!onlyFav)}>
|
|
||||||
{onlyFav ? (
|
|
||||||
<StarIcon color="primary" sx={{ fontSize: 18 }} />
|
|
||||||
) : (
|
|
||||||
<StarBorderOutlinedIcon color="primary" sx={{ fontSize: 18 }} />
|
|
||||||
)}
|
|
||||||
</IconButton>
|
|
||||||
</ButtonTooltip>
|
|
||||||
</Typography>
|
</Typography>
|
||||||
<Grid justifyContent="flex-end">
|
<Grid justifyContent="flex-end">
|
||||||
<ButtonTooltip title={LL.CLOSE()}>
|
<ButtonTooltip title={LL.CLOSE()}>
|
||||||
@@ -665,6 +638,70 @@ const Devices = () => {
|
|||||||
</ButtonTooltip>
|
</ButtonTooltip>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
<TextField
|
||||||
|
size="small"
|
||||||
|
variant="outlined"
|
||||||
|
sx={{ width: '22ch' }}
|
||||||
|
placeholder={LL.SEARCH()}
|
||||||
|
onChange={(event) => {
|
||||||
|
setSearch(event.target.value);
|
||||||
|
}}
|
||||||
|
slotProps={{
|
||||||
|
input: {
|
||||||
|
startAdornment: (
|
||||||
|
<InputAdornment position="start">
|
||||||
|
<SearchIcon color="primary" sx={{ fontSize: 16 }} />
|
||||||
|
</InputAdornment>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<ButtonTooltip title={LL.DEVICE_DETAILS()}>
|
||||||
|
<IconButton onClick={() => setShowDeviceInfo(true)}>
|
||||||
|
<InfoOutlinedIcon color="primary" sx={{ fontSize: 18 }} />
|
||||||
|
</IconButton>
|
||||||
|
</ButtonTooltip>
|
||||||
|
{me.admin && (
|
||||||
|
<ButtonTooltip title={LL.CUSTOMIZATIONS()}>
|
||||||
|
<IconButton onClick={customize}>
|
||||||
|
<ConstructionIcon color="primary" sx={{ fontSize: 18 }} />
|
||||||
|
</IconButton>
|
||||||
|
</ButtonTooltip>
|
||||||
|
)}
|
||||||
|
<ButtonTooltip title={LL.EXPORT()}>
|
||||||
|
<IconButton onClick={handleDownloadCsv}>
|
||||||
|
<DownloadIcon color="primary" sx={{ fontSize: 18 }} />
|
||||||
|
</IconButton>
|
||||||
|
</ButtonTooltip>
|
||||||
|
|
||||||
|
<ButtonTooltip title={LL.FAVORITES()}>
|
||||||
|
<ToggleButton
|
||||||
|
value="1"
|
||||||
|
size="small"
|
||||||
|
selected={onlyFav}
|
||||||
|
onChange={() => {
|
||||||
|
setOnlyFav(!onlyFav);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{onlyFav ? (
|
||||||
|
<StarIcon color="primary" sx={{ fontSize: 18 }} />
|
||||||
|
) : (
|
||||||
|
<StarBorderOutlinedIcon color="primary" sx={{ fontSize: 18 }} />
|
||||||
|
)}{' '}
|
||||||
|
</ToggleButton>
|
||||||
|
</ButtonTooltip>
|
||||||
|
|
||||||
|
<span style={{ color: 'grey', fontSize: '12px' }}>
|
||||||
|
|
||||||
|
{LL.SHOWING() +
|
||||||
|
' ' +
|
||||||
|
shown_data.length +
|
||||||
|
'/' +
|
||||||
|
coreData.devices[deviceIndex].e +
|
||||||
|
' ' +
|
||||||
|
LL.ENTITIES(shown_data.length)}
|
||||||
|
</span>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Table
|
<Table
|
||||||
|
|||||||
@@ -1467,15 +1467,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@npm:8.24.1":
|
"@typescript-eslint/eslint-plugin@npm:8.25.0":
|
||||||
version: 8.24.1
|
version: 8.25.0
|
||||||
resolution: "@typescript-eslint/eslint-plugin@npm:8.24.1"
|
resolution: "@typescript-eslint/eslint-plugin@npm:8.25.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/regexpp": "npm:^4.10.0"
|
"@eslint-community/regexpp": "npm:^4.10.0"
|
||||||
"@typescript-eslint/scope-manager": "npm:8.24.1"
|
"@typescript-eslint/scope-manager": "npm:8.25.0"
|
||||||
"@typescript-eslint/type-utils": "npm:8.24.1"
|
"@typescript-eslint/type-utils": "npm:8.25.0"
|
||||||
"@typescript-eslint/utils": "npm:8.24.1"
|
"@typescript-eslint/utils": "npm:8.25.0"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.24.1"
|
"@typescript-eslint/visitor-keys": "npm:8.25.0"
|
||||||
graphemer: "npm:^1.4.0"
|
graphemer: "npm:^1.4.0"
|
||||||
ignore: "npm:^5.3.1"
|
ignore: "npm:^5.3.1"
|
||||||
natural-compare: "npm:^1.4.0"
|
natural-compare: "npm:^1.4.0"
|
||||||
@@ -1484,64 +1484,64 @@ __metadata:
|
|||||||
"@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0
|
"@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: ">=4.8.4 <5.8.0"
|
typescript: ">=4.8.4 <5.8.0"
|
||||||
checksum: 10c0/fe5f56f248370f40322a7cb2d96fbab724a7a8892895e3d41027c9a1df309916433633e04df84a1d3f9535d282953738b1ad627d8af37ab288a39a6e411afd76
|
checksum: 10c0/11d63850f5f03b29cd31166f8da111788dc74e46877c2e16a5c488d6c4aa4b6c68c0857b9a396ad920aa7f0f3e7166f4faecbb194c19cd2bb9d3f687c5d2b292
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/parser@npm:8.24.1":
|
"@typescript-eslint/parser@npm:8.25.0":
|
||||||
version: 8.24.1
|
version: 8.25.0
|
||||||
resolution: "@typescript-eslint/parser@npm:8.24.1"
|
resolution: "@typescript-eslint/parser@npm:8.25.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/scope-manager": "npm:8.24.1"
|
"@typescript-eslint/scope-manager": "npm:8.25.0"
|
||||||
"@typescript-eslint/types": "npm:8.24.1"
|
"@typescript-eslint/types": "npm:8.25.0"
|
||||||
"@typescript-eslint/typescript-estree": "npm:8.24.1"
|
"@typescript-eslint/typescript-estree": "npm:8.25.0"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.24.1"
|
"@typescript-eslint/visitor-keys": "npm:8.25.0"
|
||||||
debug: "npm:^4.3.4"
|
debug: "npm:^4.3.4"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: ">=4.8.4 <5.8.0"
|
typescript: ">=4.8.4 <5.8.0"
|
||||||
checksum: 10c0/9de557698c8debf3de06b6adf6aa06a8345e0e38600e5ccbeda62270d1a4a757dfa191db89d4e86cf373103a11bef1965c9d9889f622c51f4f26d1bf12394ae3
|
checksum: 10c0/9a54539ba297791f23093ff42a885cc57d36b26205d7a390e114d1f01cc584ce91ac6ead01819daa46b48f873cac6c829fcf399a436610bdbfa98e5cd78148a2
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/scope-manager@npm:8.24.1":
|
"@typescript-eslint/scope-manager@npm:8.25.0":
|
||||||
version: 8.24.1
|
version: 8.25.0
|
||||||
resolution: "@typescript-eslint/scope-manager@npm:8.24.1"
|
resolution: "@typescript-eslint/scope-manager@npm:8.25.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types": "npm:8.24.1"
|
"@typescript-eslint/types": "npm:8.25.0"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.24.1"
|
"@typescript-eslint/visitor-keys": "npm:8.25.0"
|
||||||
checksum: 10c0/779880743ed7ab67fe477f1ad5648bbd77ad69b4663b5a42024112004c8f231049b1e4eeb67e260005769c3bb005049e00a80b885e19d593ffb080bd39f4fa94
|
checksum: 10c0/0a53a07873bdb569be38053ec006009cc8ba6b12c538b6df0935afd18e431cb17da1eb15b0c9cd267ac211c47aaa44fbc8d7ff3b7b44ff711621ff305fa3b355
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/type-utils@npm:8.24.1":
|
"@typescript-eslint/type-utils@npm:8.25.0":
|
||||||
version: 8.24.1
|
version: 8.25.0
|
||||||
resolution: "@typescript-eslint/type-utils@npm:8.24.1"
|
resolution: "@typescript-eslint/type-utils@npm:8.25.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/typescript-estree": "npm:8.24.1"
|
"@typescript-eslint/typescript-estree": "npm:8.25.0"
|
||||||
"@typescript-eslint/utils": "npm:8.24.1"
|
"@typescript-eslint/utils": "npm:8.25.0"
|
||||||
debug: "npm:^4.3.4"
|
debug: "npm:^4.3.4"
|
||||||
ts-api-utils: "npm:^2.0.1"
|
ts-api-utils: "npm:^2.0.1"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: ">=4.8.4 <5.8.0"
|
typescript: ">=4.8.4 <5.8.0"
|
||||||
checksum: 10c0/ba248bc12068383374d9d077f9cca1815f347ea008d04d08ad7a54dbef70189a0da7872246f8369e6d30938fa7e408dadcda0ae71041be68fc836c886dd9c3ab
|
checksum: 10c0/b7477a2d239cfd337f7d28641666763cf680a43a8d377a09dc42415f715670d35fbb4e772e103dfe8cd620c377e66bce740106bb3983ee65a739c28fab7325d1
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/types@npm:8.24.1":
|
"@typescript-eslint/types@npm:8.25.0":
|
||||||
version: 8.24.1
|
version: 8.25.0
|
||||||
resolution: "@typescript-eslint/types@npm:8.24.1"
|
resolution: "@typescript-eslint/types@npm:8.25.0"
|
||||||
checksum: 10c0/ebb40ce16c746ef236dbcc25cb2e6950753ca6fb34d04ed7d477016370de1fdaf7402ed4569673c6ff14bf60af7124ff45c6ddd9328d2f8c94dc04178368e2a3
|
checksum: 10c0/b39addbee4be4d66e3089c2d01f9f1d69cedc13bff20e4fa9ed0ca5a0e7591d7c6e41ab3763c8c35404f971bc0fbf9f7867dbc2832740e5b63ee0049d60289f5
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@npm:8.24.1":
|
"@typescript-eslint/typescript-estree@npm:8.25.0":
|
||||||
version: 8.24.1
|
version: 8.25.0
|
||||||
resolution: "@typescript-eslint/typescript-estree@npm:8.24.1"
|
resolution: "@typescript-eslint/typescript-estree@npm:8.25.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types": "npm:8.24.1"
|
"@typescript-eslint/types": "npm:8.25.0"
|
||||||
"@typescript-eslint/visitor-keys": "npm:8.24.1"
|
"@typescript-eslint/visitor-keys": "npm:8.25.0"
|
||||||
debug: "npm:^4.3.4"
|
debug: "npm:^4.3.4"
|
||||||
fast-glob: "npm:^3.3.2"
|
fast-glob: "npm:^3.3.2"
|
||||||
is-glob: "npm:^4.0.3"
|
is-glob: "npm:^4.0.3"
|
||||||
@@ -1550,32 +1550,32 @@ __metadata:
|
|||||||
ts-api-utils: "npm:^2.0.1"
|
ts-api-utils: "npm:^2.0.1"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: ">=4.8.4 <5.8.0"
|
typescript: ">=4.8.4 <5.8.0"
|
||||||
checksum: 10c0/8eeeae6e8de1cd83f2eddd52293e9c31a655e0974cc2d410f00ba2b6fd6bb9aec1c346192d5784d64d0d1b15a55e56e35550788c04dda87e0f1a99b21a3eb709
|
checksum: 10c0/fc9de1c4f6ab81fb80b632dedef84d1ecf4c0abdc5f5246698deb6d86d5c6b5d582ef8a44fdef445bf7fbfa6658db516fe875c9d7c984bf4802e3a508b061856
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/utils@npm:8.24.1":
|
"@typescript-eslint/utils@npm:8.25.0":
|
||||||
version: 8.24.1
|
version: 8.25.0
|
||||||
resolution: "@typescript-eslint/utils@npm:8.24.1"
|
resolution: "@typescript-eslint/utils@npm:8.25.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/eslint-utils": "npm:^4.4.0"
|
"@eslint-community/eslint-utils": "npm:^4.4.0"
|
||||||
"@typescript-eslint/scope-manager": "npm:8.24.1"
|
"@typescript-eslint/scope-manager": "npm:8.25.0"
|
||||||
"@typescript-eslint/types": "npm:8.24.1"
|
"@typescript-eslint/types": "npm:8.25.0"
|
||||||
"@typescript-eslint/typescript-estree": "npm:8.24.1"
|
"@typescript-eslint/typescript-estree": "npm:8.25.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: ">=4.8.4 <5.8.0"
|
typescript: ">=4.8.4 <5.8.0"
|
||||||
checksum: 10c0/b3300d5c7e18ec524a46bf683052539f24df0d8c709e39e3bde9dfc6c65180610c46b875f1f4eaad5e311193a56acdfd7111a73f1e8aec4108e9cd19561bf8b8
|
checksum: 10c0/cd15c4919f02899fd3975049a0a051a1455332a108c085a3e90ae9872e2cddac7f20a9a2c616f1366fca84274649e836ad6a437c9c5ead0bdabf5a123d12403f
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/visitor-keys@npm:8.24.1":
|
"@typescript-eslint/visitor-keys@npm:8.25.0":
|
||||||
version: 8.24.1
|
version: 8.25.0
|
||||||
resolution: "@typescript-eslint/visitor-keys@npm:8.24.1"
|
resolution: "@typescript-eslint/visitor-keys@npm:8.25.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types": "npm:8.24.1"
|
"@typescript-eslint/types": "npm:8.25.0"
|
||||||
eslint-visitor-keys: "npm:^4.2.0"
|
eslint-visitor-keys: "npm:^4.2.0"
|
||||||
checksum: 10c0/ba09412fb4b1605aa73c890909c9a8dba2aa72e00ccd7d69baad17c564eedd77f489a06b1686985c7f0c49724787b82d76dcf4c146c4de44ef2c8776a9b6ad2b
|
checksum: 10c0/7eb84c5899a25b1eb89d3c3f4be3ff18171f934669c57e2530b6dfa5fdd6eaae60629f3c89d06f4c8075fd1c701de76c0b9194e2922895c661ab6091e48f7db9
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -1612,12 +1612,12 @@ __metadata:
|
|||||||
react-dom: "npm:^19.0.0"
|
react-dom: "npm:^19.0.0"
|
||||||
react-icons: "npm:^5.5.0"
|
react-icons: "npm:^5.5.0"
|
||||||
react-router: "npm:^7.2.0"
|
react-router: "npm:^7.2.0"
|
||||||
react-toastify: "npm:^11.0.3"
|
react-toastify: "npm:^11.0.5"
|
||||||
rollup-plugin-visualizer: "npm:^5.14.0"
|
rollup-plugin-visualizer: "npm:^5.14.0"
|
||||||
terser: "npm:^5.39.0"
|
terser: "npm:^5.39.0"
|
||||||
typesafe-i18n: "npm:^5.26.2"
|
typesafe-i18n: "npm:^5.26.2"
|
||||||
typescript: "npm:^5.7.3"
|
typescript: "npm:^5.7.3"
|
||||||
typescript-eslint: "npm:8.24.1"
|
typescript-eslint: "npm:8.25.0"
|
||||||
vite: "npm:^6.1.1"
|
vite: "npm:^6.1.1"
|
||||||
vite-plugin-imagemin: "npm:^0.6.1"
|
vite-plugin-imagemin: "npm:^0.6.1"
|
||||||
vite-tsconfig-paths: "npm:^5.1.4"
|
vite-tsconfig-paths: "npm:^5.1.4"
|
||||||
@@ -5621,15 +5621,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"react-toastify@npm:^11.0.3":
|
"react-toastify@npm:^11.0.5":
|
||||||
version: 11.0.3
|
version: 11.0.5
|
||||||
resolution: "react-toastify@npm:11.0.3"
|
resolution: "react-toastify@npm:11.0.5"
|
||||||
dependencies:
|
dependencies:
|
||||||
clsx: "npm:^2.1.1"
|
clsx: "npm:^2.1.1"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^18 || ^19
|
react: ^18 || ^19
|
||||||
react-dom: ^18 || ^19
|
react-dom: ^18 || ^19
|
||||||
checksum: 10c0/23b989c6080bc5bf0eb0c1f7ed17bd53d067d9beb33baf93c520119cd69cf75c9f2d1ee524dfe6c8a2a5d326029772b576de00e018b379d03a0e37630b83adea
|
checksum: 10c0/50f5b81323ebb1957b2efd0963fac24aa1407155d16ab756ffd6d0f42f8af17e796b3958a9fce13e9d1b945d6c3a5a9ebf13529478474d8a2af4bf1dd0db67d2
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -6646,17 +6646,17 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"typescript-eslint@npm:8.24.1":
|
"typescript-eslint@npm:8.25.0":
|
||||||
version: 8.24.1
|
version: 8.25.0
|
||||||
resolution: "typescript-eslint@npm:8.24.1"
|
resolution: "typescript-eslint@npm:8.25.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/eslint-plugin": "npm:8.24.1"
|
"@typescript-eslint/eslint-plugin": "npm:8.25.0"
|
||||||
"@typescript-eslint/parser": "npm:8.24.1"
|
"@typescript-eslint/parser": "npm:8.25.0"
|
||||||
"@typescript-eslint/utils": "npm:8.24.1"
|
"@typescript-eslint/utils": "npm:8.25.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: ">=4.8.4 <5.8.0"
|
typescript: ">=4.8.4 <5.8.0"
|
||||||
checksum: 10c0/5bcb6af12d04777ca04ca9300552e1c7410d640950945d854be41c264fdfe965ce40c0203336e073eb0697567d59043b3096dfed825e76fd7347081e9abf3b16
|
checksum: 10c0/bdc1165be1bc60311045ca69aa1bff4bbb7feac906c6b7885c4bc859693d8ca1b88840a1ba10b226ca2343c4bd7388b7a36e5c787b0d7f1bab5ababb80e783cc
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|||||||
@@ -1986,6 +1986,8 @@ bool Thermostat::set_brightness(const char * value, const int8_t id) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// thermostat/hc<x>/remotetemp
|
||||||
|
// value of -1 to turn off
|
||||||
bool Thermostat::set_remotetemp(const char * value, const int8_t id) {
|
bool Thermostat::set_remotetemp(const char * value, const int8_t id) {
|
||||||
float f;
|
float f;
|
||||||
if (!Helpers::value2temperature(value, f)) {
|
if (!Helpers::value2temperature(value, f)) {
|
||||||
@@ -2147,11 +2149,15 @@ bool Thermostat::set_control(const char * value, const int8_t id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ctrl;
|
uint8_t ctrl;
|
||||||
|
// Junkers
|
||||||
|
// 1-FB10, 2-FB100
|
||||||
if (model() == EMSdevice::EMS_DEVICE_FLAG_JUNKERS && !has_flags(EMSdevice::EMS_DEVICE_FLAG_JUNKERS_OLD)) {
|
if (model() == EMSdevice::EMS_DEVICE_FLAG_JUNKERS && !has_flags(EMSdevice::EMS_DEVICE_FLAG_JUNKERS_OLD)) {
|
||||||
if (Helpers::value2enum(value, ctrl, FL_(enum_j_control))) {
|
if (Helpers::value2enum(value, ctrl, FL_(enum_j_control))) {
|
||||||
write_command(set_typeids[hc->hc()], 1, ctrl);
|
write_command(set_typeids[hc->hc()], 1, ctrl);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
// BC400
|
||||||
|
// 1-RC100, 2-RC100H, 3-RC200
|
||||||
} else if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400) {
|
} else if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400) {
|
||||||
if (Helpers::value2enum(value, ctrl, FL_(enum_control2))) {
|
if (Helpers::value2enum(value, ctrl, FL_(enum_control2))) {
|
||||||
write_command(hpmode_typeids[hc->hc()], 3, ctrl);
|
write_command(hpmode_typeids[hc->hc()], 3, ctrl);
|
||||||
@@ -2170,6 +2176,8 @@ bool Thermostat::set_control(const char * value, const int8_t id) {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
// RC100 or RC300
|
||||||
|
// 1-RC200, 2-RC100, 3-RC100H
|
||||||
} else if (isRC300() || model() == EMSdevice::EMS_DEVICE_FLAG_RC100) {
|
} else if (isRC300() || model() == EMSdevice::EMS_DEVICE_FLAG_RC100) {
|
||||||
if (Helpers::value2enum(value, ctrl, FL_(enum_control1))) {
|
if (Helpers::value2enum(value, ctrl, FL_(enum_control1))) {
|
||||||
write_command(hpmode_typeids[hc->hc()], 3, ctrl);
|
write_command(hpmode_typeids[hc->hc()], 3, ctrl);
|
||||||
|
|||||||
Reference in New Issue
Block a user