Merge pull request #1821 from proddy/dev

minor changes
This commit is contained in:
Proddy
2024-06-25 09:53:21 +01:00
committed by GitHub
12 changed files with 24 additions and 41 deletions

View File

@@ -5,8 +5,8 @@ on:
push: push:
branches: branches:
- dev - dev
pull_request: # pull_request:
types: [opened, synchronize, reopened] # types: [opened, synchronize, reopened]
jobs: jobs:
build: build:

View File

@@ -5,7 +5,7 @@
## **IMPORTANT! BREAKING CHANGES** ## **IMPORTANT! BREAKING CHANGES**
- new device WATER shows dhw entities from MM100 and SM100 in dhw setting - new device WATER shows dhw entities from MM100 and SM100 in dhw setting
- rename WWC to DHW, always create DHW nests/topics, remove ww prefix from mqtt names [#1634](https://github.com/emsesp/EMS-ESP32/issues/1634) - renamed WWC to DHW, always create DHW nests/topics, remove ww prefix from mqtt names [#1634](https://github.com/emsesp/EMS-ESP32/issues/1634)
## Added ## Added
@@ -40,3 +40,4 @@
- dynamic register dhw circuits for thermostat - dynamic register dhw circuits for thermostat
- removed OTA feature [#1738](https://github.com/emsesp/EMS-ESP32/issues/1738) - removed OTA feature [#1738](https://github.com/emsesp/EMS-ESP32/issues/1738)
- added shower min duration [[#1801](https://github.com/emsesp/EMS-ESP32/issues/1801)] - added shower min duration [[#1801](https://github.com/emsesp/EMS-ESP32/issues/1801)]
- Include TXT file along with the generated CSV for Device Data export/download

View File

@@ -23,7 +23,7 @@ const en: Translation = {
ONOFF: 'on/off', ONOFF: 'on/off',
TYPE: 'Type', TYPE: 'Type',
DESCRIPTION: 'Description', DESCRIPTION: 'Description',
ENTITIES: 'Entities', ENTITIES: 'entities',
REFRESH: 'Refresh', REFRESH: 'Refresh',
EXPORT: 'Export', EXPORT: 'Export',
DEVICE_DETAILS: 'Device Details', DEVICE_DETAILS: 'Device Details',

View File

@@ -23,7 +23,7 @@ const fr: Translation = {
ONOFF: 'on/off', ONOFF: 'on/off',
TYPE: 'Type', TYPE: 'Type',
DESCRIPTION: 'Description', DESCRIPTION: 'Description',
ENTITIES: 'Entités', ENTITIES: 'entités',
REFRESH: 'Rafraîchir', REFRESH: 'Rafraîchir',
EXPORT: 'Exporter', EXPORT: 'Exporter',
DEVICE_DETAILS: "Détails de l'appareil", DEVICE_DETAILS: "Détails de l'appareil",

View File

@@ -23,7 +23,7 @@ const it: Translation = {
ONOFF: 'on/off', ONOFF: 'on/off',
TYPE: 'Tipo', TYPE: 'Tipo',
DESCRIPTION: 'Descrizione', DESCRIPTION: 'Descrizione',
ENTITIES: 'Entità', ENTITIES: 'entità',
REFRESH: 'Ricaricare', REFRESH: 'Ricaricare',
EXPORT: 'Esporta', EXPORT: 'Esporta',
DEVICE_DETAILS: 'Dettagli dispositivo', DEVICE_DETAILS: 'Dettagli dispositivo',

View File

@@ -23,7 +23,7 @@ const nl: Translation = {
ONOFF: 'aan/uit', ONOFF: 'aan/uit',
TYPE: 'Type', TYPE: 'Type',
DESCRIPTION: 'Beschrijving', DESCRIPTION: 'Beschrijving',
ENTITIES: 'Entiteiten', ENTITIES: 'entiteiten',
REFRESH: 'Ververs', REFRESH: 'Ververs',
EXPORT: 'Export', EXPORT: 'Export',
DEVICE_DETAILS: 'Device Gegevens', DEVICE_DETAILS: 'Device Gegevens',

View File

@@ -23,7 +23,7 @@ const sk: Translation = {
ONOFF: 'zap/vyp', ONOFF: 'zap/vyp',
TYPE: 'Typ', TYPE: 'Typ',
DESCRIPTION: 'Popis', DESCRIPTION: 'Popis',
ENTITIES: 'Entity', ENTITIES: 'entity',
REFRESH: 'Obnoviť', REFRESH: 'Obnoviť',
EXPORT: 'Export', EXPORT: 'Export',
DEVICE_DETAILS: 'Detaily zariadenia', DEVICE_DETAILS: 'Detaily zariadenia',

View File

@@ -23,7 +23,7 @@ const sv: Translation = {
ONOFF: 'på/av', ONOFF: 'på/av',
TYPE: 'Typ', TYPE: 'Typ',
DESCRIPTION: 'Beskrivning', DESCRIPTION: 'Beskrivning',
ENTITIES: 'Entiteter', ENTITIES: 'entiteter',
REFRESH: 'Uppdatera', REFRESH: 'Uppdatera',
EXPORT: 'Exportera', EXPORT: 'Exportera',
DEVICE_DETAILS: 'Enhetsdetaljer', DEVICE_DETAILS: 'Enhetsdetaljer',

View File

@@ -23,7 +23,7 @@ const tr: Translation = {
ONOFF: 'açık/kapalı', ONOFF: 'açık/kapalı',
TYPE: 'Tür', TYPE: 'Tür',
DESCRIPTION: 'Açıklama', DESCRIPTION: 'Açıklama',
ENTITIES: 'Varlıklar', ENTITIES: 'varlıklar',
REFRESH: 'Yenile', REFRESH: 'Yenile',
EXPORT: 'Dışarı al', EXPORT: 'Dışarı al',
DEVICE_DETAILS: 'Cihaz Ayrıntıları', DEVICE_DETAILS: 'Cihaz Ayrıntıları',

View File

@@ -426,8 +426,9 @@ const Devices: FC = () => {
document.body.removeChild(downloadLink); document.body.removeChild(downloadLink);
}; };
const device = { ...{ device: coreData.devices[deviceIndex] }, ...deviceData };
downloadBlob( downloadBlob(
new Blob([JSON.stringify(deviceData, null, 2)], { new Blob([JSON.stringify(device, null, 2)], {
type: 'text;charset:utf-8' type: 'text;charset:utf-8'
}) })
); );
@@ -650,7 +651,7 @@ const Devices: FC = () => {
</Typography> </Typography>
<Grid container justifyContent="space-between"> <Grid container justifyContent="space-between">
<Typography sx={{ ml: 1 }} variant="subtitle2" color="primary"> <Typography sx={{ ml: 1 }} variant="subtitle2" color="grey">
{LL.SHOWING() + {LL.SHOWING() +
' ' + ' ' +
shown_data.length + shown_data.length +
@@ -660,61 +661,40 @@ const Devices: FC = () => {
LL.ENTITIES(shown_data.length)} LL.ENTITIES(shown_data.length)}
<ButtonTooltip title="Info"> <ButtonTooltip title="Info">
<IconButton onClick={() => setShowDeviceInfo(true)}> <IconButton onClick={() => setShowDeviceInfo(true)}>
<InfoOutlinedIcon <InfoOutlinedIcon color="primary" sx={{ fontSize: 18 }} />
color="primary"
sx={{ fontSize: 18, verticalAlign: 'middle' }}
/>
</IconButton> </IconButton>
</ButtonTooltip> </ButtonTooltip>
{me.admin && ( {me.admin && (
<ButtonTooltip title={LL.CUSTOMIZATIONS()}> <ButtonTooltip title={LL.CUSTOMIZATIONS()}>
<IconButton onClick={customize}> <IconButton onClick={customize}>
<FormatListNumberedIcon <FormatListNumberedIcon color="primary" sx={{ fontSize: 18 }} />
color="primary"
sx={{ fontSize: 18, verticalAlign: 'middle' }}
/>
</IconButton> </IconButton>
</ButtonTooltip> </ButtonTooltip>
)} )}
<ButtonTooltip title={LL.EXPORT()}> <ButtonTooltip title={LL.EXPORT()}>
<IconButton onClick={handleDownloadCsv}> <IconButton onClick={handleDownloadCsv}>
<DownloadIcon <DownloadIcon color="primary" sx={{ fontSize: 18 }} />
color="primary"
sx={{ fontSize: 18, verticalAlign: 'middle' }}
/>
</IconButton> </IconButton>
</ButtonTooltip> </ButtonTooltip>
<ButtonTooltip title="Favorites"> <ButtonTooltip title="Favorites">
<IconButton onClick={() => setOnlyFav(!onlyFav)}> <IconButton onClick={() => setOnlyFav(!onlyFav)}>
{onlyFav ? ( {onlyFav ? (
<StarIcon <StarIcon color="primary" sx={{ fontSize: 18 }} />
color="primary"
sx={{ fontSize: 18, verticalAlign: 'middle' }}
/>
) : ( ) : (
<StarBorderOutlinedIcon <StarBorderOutlinedIcon color="primary" sx={{ fontSize: 18 }} />
color="primary"
sx={{ fontSize: 18, verticalAlign: 'middle' }}
/>
)} )}
</IconButton> </IconButton>
</ButtonTooltip> </ButtonTooltip>
<ButtonTooltip title={LL.REFRESH()}> <ButtonTooltip title={LL.REFRESH()}>
<IconButton onClick={refreshData}> <IconButton onClick={refreshData}>
<RefreshIcon <RefreshIcon color="primary" sx={{ fontSize: 18 }} />
color="primary"
sx={{ fontSize: 18, verticalAlign: 'middle' }}
/>
</IconButton> </IconButton>
</ButtonTooltip> </ButtonTooltip>
</Typography> </Typography>
<Grid item zeroMinWidth justifyContent="flex-end"> <Grid item zeroMinWidth justifyContent="flex-end">
<ButtonTooltip title={LL.CANCEL()}> <ButtonTooltip title={LL.CANCEL()}>
<IconButton onClick={resetDeviceSelect}> <IconButton onClick={resetDeviceSelect}>
<HighlightOffIcon <HighlightOffIcon color="primary" sx={{ fontSize: 18 }} />
color="primary"
sx={{ fontSize: 18, verticalAlign: 'middle' }}
/>
</IconButton> </IconButton>
</ButtonTooltip> </ButtonTooltip>
</Grid> </Grid>

View File

@@ -39,6 +39,7 @@ ESP8266React::ESP8266React(AsyncWebServer * server, FS * fs)
response->addHeader("Content-Encoding", "gzip"); response->addHeader("Content-Encoding", "gzip");
// response->addHeader("Content-Encoding", "br"); // only works over HTTPS // response->addHeader("Content-Encoding", "br"); // only works over HTTPS
// response->addHeader("Cache-Control", "public, immutable, max-age=31536000"); // response->addHeader("Cache-Control", "public, immutable, max-age=31536000");
response->addHeader("Cache-Control", "must-revalidate"); // ensure that a client will check the server for a change
response->addHeader("Last-Modified", last_modified); response->addHeader("Last-Modified", last_modified);
response->addHeader("ETag", hash); response->addHeader("ETag", hash);
@@ -46,6 +47,7 @@ ESP8266React::ESP8266React(AsyncWebServer * server, FS * fs)
}; };
server->on(uri, HTTP_GET, requestHandler); server->on(uri, HTTP_GET, requestHandler);
// Serving non matching get requests with "/index.html" // Serving non matching get requests with "/index.html"
// OPTIONS get a straight up 200 response // OPTIONS get a straight up 200 response
if (strncmp(uri, "/index.html", 11) == 0) { if (strncmp(uri, "/index.html", 11) == 0) {

View File

@@ -1 +1 @@
#define EMSESP_APP_VERSION "3.7.0-dev.17" #define EMSESP_APP_VERSION "3.7.0-dev.18"