Merge branch 'dev' into dev2

This commit is contained in:
MichaelDvP
2023-12-19 18:35:10 +01:00
29 changed files with 642 additions and 233 deletions

View File

@@ -13,6 +13,8 @@
- heatpump energy meters [#1463](https://github.com/emsesp/EMS-ESP32/issues/1463)
- heatpump max power [#1475](https://github.com/emsesp/EMS-ESP32/issues/1475)
- checkbox for MQTT-TLS enable [#1474](https://github.com/emsesp/EMS-ESP32/issues/1474)
- added SK (Slovencina) language. Thanks @misa1515
- CPU info [#1497](https://github.com/emsesp/EMS-ESP32/pull/1497)
## Fixed

View File

@@ -20,20 +20,20 @@
"lint": "eslint . --cache --fix"
},
"dependencies": {
"@alova/adapter-xhr": "^1.0.1",
"@alova/adapter-xhr": "^1.0.2",
"@babel/core": "^7.23.6",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@mui/icons-material": "^5.15.0",
"@mui/material": "^5.15.0",
"@mui/icons-material": "^5.15.1",
"@mui/material": "^5.15.1",
"@table-library/react-table-library": "4.1.7",
"@types/imagemin": "^8.0.5",
"@types/lodash-es": "^4.17.12",
"@types/node": "^20.10.4",
"@types/react": "^18.2.43",
"@types/react-dom": "^18.2.17",
"@types/node": "^20.10.5",
"@types/react": "^18.2.45",
"@types/react-dom": "^18.2.18",
"@types/react-router-dom": "^5.3.3",
"alova": "^2.16.0",
"alova": "^2.16.1",
"async-validator": "^4.2.5",
"history": "^5.3.0",
"jwt-decode": "^4.0.0",
@@ -43,7 +43,7 @@
"react-dom": "latest",
"react-dropzone": "^14.2.3",
"react-icons": "^4.12.0",
"react-router-dom": "^6.20.1",
"react-router-dom": "^6.21.0",
"react-toastify": "^9.1.3",
"sockette": "^2.0.6",
"typesafe-i18n": "^5.26.2",
@@ -52,16 +52,16 @@
"devDependencies": {
"@preact/compat": "^17.1.2",
"@preact/preset-vite": "^2.7.0",
"@typescript-eslint/eslint-plugin": "^6.14.0",
"@typescript-eslint/parser": "^6.14.0",
"@typescript-eslint/eslint-plugin": "^6.15.0",
"@typescript-eslint/parser": "^6.15.0",
"concurrently": "^8.2.2",
"eslint": "^8.55.0",
"eslint": "^8.56.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^17.1.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-autofix": "^1.1.0",
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-prettier": "alpha",
"eslint-plugin-react": "^7.33.2",
@@ -70,7 +70,7 @@
"prettier": "^3.1.1",
"rollup-plugin-visualizer": "^5.11.0",
"terser": "^5.26.0",
"vite": "^5.0.8",
"vite": "^5.0.10",
"vite-plugin-imagemin": "^0.6.1",
"vite-tsconfig-paths": "^4.2.2"
},

View File

@@ -22,6 +22,7 @@ import ITflag from 'i18n/IT.svg';
import NLflag from 'i18n/NL.svg';
import NOflag from 'i18n/NO.svg';
import PLflag from 'i18n/PL.svg';
import SKflag from 'i18n/SK.svg';
import SVflag from 'i18n/SV.svg';
import TRflag from 'i18n/TR.svg';
import { I18nContext } from 'i18n/i18n-react';
@@ -142,6 +143,10 @@ const SignIn: FC = () => {
<img src={PLflag} style={{ width: 16, verticalAlign: 'middle' }} />
&nbsp;PL
</MenuItem>
<MenuItem key="sk" value="sk">
<img src={SKflag} style={{ width: 16, verticalAlign: 'middle' }} />
&nbsp;SK
</MenuItem>
<MenuItem key="sv" value="sv">
<img src={SVflag} style={{ width: 16, verticalAlign: 'middle' }} />
&nbsp;SV

View File

@@ -14,11 +14,9 @@ import {
} from '@mui/material';
import { useState, useContext } from 'react';
import type { TypographyProps } from '@mui/material';
import type { Locales } from 'i18n/i18n-types';
import type { FC, ChangeEventHandler } from 'react';
import { AuthenticatedContext } from 'contexts/authentication';
import DEflag from 'i18n/DE.svg';
import FRflag from 'i18n/FR.svg';
import GBflag from 'i18n/GB.svg';
@@ -26,8 +24,10 @@ import ITflag from 'i18n/IT.svg';
import NLflag from 'i18n/NL.svg';
import NOflag from 'i18n/NO.svg';
import PLflag from 'i18n/PL.svg';
import SKflag from 'i18n/SK.svg';
import SVflag from 'i18n/SV.svg';
import TRflag from 'i18n/TR.svg';
import { I18nContext } from 'i18n/i18n-react';
import { loadLocaleAsync } from 'i18n/i18n-util.async';
@@ -102,6 +102,10 @@ const LayoutAuthMenu: FC = () => {
<img src={PLflag} style={{ width: 16, verticalAlign: 'middle' }} />
&nbsp;PL
</MenuItem>
<MenuItem key="sk" value="sk">
<img src={SKflag} style={{ width: 16, verticalAlign: 'middle' }} />
&nbsp;SK
</MenuItem>
<MenuItem key="sv" value="sv">
<img src={SVflag} style={{ width: 16, verticalAlign: 'middle' }} />
&nbsp;SV

View File

@@ -1,6 +1,7 @@
import AppsIcon from '@mui/icons-material/Apps';
import BuildIcon from '@mui/icons-material/Build';
import CancelIcon from '@mui/icons-material/Cancel';
import DeveloperBoardIcon from '@mui/icons-material/DeveloperBoard';
import DevicesIcon from '@mui/icons-material/Devices';
import FolderIcon from '@mui/icons-material/Folder';
import MemoryIcon from '@mui/icons-material/Memory';
@@ -9,7 +10,6 @@ import RefreshIcon from '@mui/icons-material/Refresh';
import SdCardAlertIcon from '@mui/icons-material/SdCardAlert';
import SdStorageIcon from '@mui/icons-material/SdStorage';
import SettingsBackupRestoreIcon from '@mui/icons-material/SettingsBackupRestore';
import ShowChartIcon from '@mui/icons-material/ShowChart';
import TimerIcon from '@mui/icons-material/Timer';
import {
Avatar,
@@ -200,15 +200,6 @@ const SystemStatusForm: FC = () => {
</Button>
</ListItem>
<Divider variant="inset" component="li" />
<ListItem>
<ListItemAvatar>
<Avatar>
<DevicesIcon />
</Avatar>
</ListItemAvatar>
<ListItemText primary={LL.PLATFORM()} secondary={data.esp_platform + ' / ' + data.sdk_version} />
</ListItem>
<Divider variant="inset" component="li" />
<ListItem>
<ListItemAvatar>
<Avatar>
@@ -221,10 +212,31 @@ const SystemStatusForm: FC = () => {
<ListItem>
<ListItemAvatar>
<Avatar>
<ShowChartIcon />
<DevicesIcon />
</Avatar>
</ListItemAvatar>
<ListItemText primary={LL.CPU_FREQ()} secondary={data.cpu_freq_mhz + ' MHz'} />
<ListItemText primary="SDK" secondary={data.arduino_version + ' / ESP-IDF v' + data.sdk_version} />
</ListItem>
<Divider variant="inset" component="li" />
<ListItem>
<ListItemAvatar>
<Avatar>
<DeveloperBoardIcon />
</Avatar>
</ListItemAvatar>
<ListItemText
primary="CPU"
secondary={
data.cpu_type +
' (rev.' +
data.cpu_rev +
', ' +
(data.cpu_cores == 1 ? 'single-core)' : 'dual-core)') +
' @ ' +
data.cpu_freq_mhz +
' Mhz'
}
/>
</ListItem>
<Divider variant="inset" component="li" />
<ListItem>
@@ -277,7 +289,9 @@ const SystemStatusForm: FC = () => {
</ListItemAvatar>
<ListItemText
primary={LL.APPSIZE()}
secondary={formatNumber(data.app_used) + ' KB / ' + formatNumber(data.app_free) + ' KB'}
secondary={
data.partition + ': ' + formatNumber(data.app_used) + ' KB / ' + formatNumber(data.app_free) + ' KB'
}
/>
</ListItem>
<Divider variant="inset" component="li" />

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 85.333 512 341.333"><path fill="#FFF" d="M0 85.337h512v341.326H0z"/><path fill="#0052B4" d="M0 196.641h512v118.717H0z"/><path fill="#D80027" d="M0 315.359h512v111.304H0z"/><path fill="#FFF" d="M129.468 181.799v85.136c0 48.429 63.267 63.267 63.267 63.267S256 315.362 256 266.935v-85.136H129.468z"/><path fill="#D80027" d="M146.126 184.294v81.941c0 5.472 1.215 10.64 3.623 15.485h85.97c2.408-4.844 3.623-10.012 3.623-15.485v-81.941h-93.216z"/><path fill="#FFF" d="M221.301 241.427h-21.425v-14.283h14.284v-14.283h-14.284v-14.284h-14.283v14.284h-14.282v14.283h14.282v14.283h-21.426v14.284h21.426v14.283h14.283v-14.283h21.425z"/><path fill="#0052B4" d="M169.232 301.658c9.204 5.783 18.66 9.143 23.502 10.636 4.842-1.494 14.298-4.852 23.502-10.636 9.282-5.833 15.79-12.506 19.484-19.939a24.878 24.878 0 0 0-14.418-4.583c-1.956 0-3.856.232-5.682.657-3.871-8.796-12.658-14.94-22.884-14.94-10.227 0-19.013 6.144-22.884 14.94a25.048 25.048 0 0 0-5.682-.657 24.88 24.88 0 0 0-14.418 4.583c3.691 7.433 10.198 14.106 19.48 19.939z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -196,11 +196,10 @@ const de: Translation = {
EMS_ESP_VER: 'EMS-ESP Version',
PLATFORM: 'Platform (Platform / SDK)',
UPTIME: 'System Betriebszeit',
CPU_FREQ: 'CPU Frequenz',
HEAP: 'freier RAM Speicher (Gesamt / max. Block)',
PSRAM: 'PSRAM (Größe / Frei)',
FLASH: 'Flash Speicher (Größe / Geschwindigkeit)',
APPSIZE: 'Programm (Genutzt / Frei)',
APPSIZE: 'Programm (Partition: Genutzt / Frei)',
FILESYSTEM: 'Dateisystem (Genutzt / Frei)',
BUFFER_SIZE: 'max. Puffergröße',
COMPACT: 'Kompakte Darstellung',

View File

@@ -196,11 +196,10 @@ const en: Translation = {
EMS_ESP_VER: 'EMS-ESP Version',
PLATFORM: 'Device (Platform / SDK)',
UPTIME: 'System Uptime',
CPU_FREQ: 'CPU Frequency',
HEAP: 'Heap (Free / Max Alloc)',
PSRAM: 'PSRAM (Size / Free)',
FLASH: 'Flash Chip (Size / Speed)',
APPSIZE: 'Application (Used / Free)',
APPSIZE: 'Application (Partition: Used / Free)',
FILESYSTEM: 'File System (Used / Free)',
BUFFER_SIZE: 'Max Buffer Size',
COMPACT: 'Compact',

View File

@@ -196,11 +196,10 @@ const fr: Translation = {
EMS_ESP_VER: 'Version EMS-ESP',
PLATFORM: 'Appareil (Plateforme / SDK)',
UPTIME: 'Durée de fonctionnement du système',
CPU_FREQ: 'Fréquence du CPU',
HEAP: 'Heap (Libre / Max Allouée)',
PSRAM: 'PSRAM (Taille / Libre)',
FLASH: 'Flash Chip (Taille / Vitesse)',
APPSIZE: 'Application (Utilisée / Libre)',
APPSIZE: 'Application (Partition: Utilisée / Libre)',
FILESYSTEM: 'File System (Utilisée / Libre)',
BUFFER_SIZE: 'Max taille du buffer',
COMPACT: 'Compact',

View File

@@ -198,11 +198,10 @@ const it: Translation = {
EMS_ESP_VER: 'Versione EMS-ESP',
PLATFORM: 'Dispositivo (Piattaforma / SDK)',
UPTIME: 'Tempo di attività del sistema',
CPU_FREQ: 'Frequenza CPU ',
HEAP: 'Heap (Free / Max Alloc)',
PSRAM: 'PSRAM (Size / Free)',
FLASH: 'Flash Chip (Size / Speed)',
APPSIZE: 'Applicazione (Usata / Libera)',
APPSIZE: 'Applicazione (Partizione: Usata / Libera)',
FILESYSTEM: 'Memoria Sistema (Usata / Libera)',
BUFFER_SIZE: 'Max Buffer Size',
COMPACT: 'Compact',

View File

@@ -196,11 +196,10 @@ const nl: Translation = {
EMS_ESP_VER: 'EMS-ESP Versie',
PLATFORM: 'Apparaat (Platform / SDK)',
UPTIME: 'Systeem Uptime',
CPU_FREQ: 'CPU Frequency',
HEAP: 'Heap (Free / Max Alloc)',
PSRAM: 'PSRAM (Size / Free)',
FLASH: 'Flash Chip (Size / Speed)',
APPSIZE: 'Application (Used / Free)',
APPSIZE: 'Application (Partition: Used / Free)',
FILESYSTEM: 'File System (Used / Free)',
BUFFER_SIZE: 'Max Buffer Size',
COMPACT: 'Compact',

View File

@@ -196,11 +196,10 @@ const no: Translation = {
EMS_ESP_VER: 'EMS-ESP Version',
PLATFORM: 'Enhet (Platform / SDK)',
UPTIME: 'System Oppetid',
CPU_FREQ: 'CPU Frekvens',
HEAP: 'Heap (Ledig / Max Allokert)',
PSRAM: 'PSRAM (Størrelse / Ledig)',
FLASH: 'Flash Chip (Størrelse / Hastighet)',
APPSIZE: 'Applikasjon (Brukt / Ledig)',
APPSIZE: 'Applikasjon (Partition: Brukt / Ledig)',
FILESYSTEM: 'File System (Brukt / Ledig)',
BUFFER_SIZE: 'Max Buffer Størrelse',
COMPACT: 'Komprimere',

View File

@@ -196,11 +196,10 @@ const pl: BaseTranslation = {
EMS_ESP_VER: 'Wersja EMS-ESP',
PLATFORM: 'Urządzenie (platforma / SDK)',
UPTIME: 'Czas działania systemu',
CPU_FREQ: 'Taktowanie CPU',
HEAP: 'HEAP (wolne / maksymalny przydział)',
PSRAM: 'PSRAM (rozmiar / wolne)',
FLASH: 'FLASH (rozmiar / taktowanie)',
APPSIZE: 'Aplikacja (wykorzystane / wolne)',
APPSIZE: 'Aplikacja (Partition: wykorzystane / wolne)',
FILESYSTEM: 'System plików (wykorzystane / wolne)',
BUFFER_SIZE: 'Maksymalna pojemność bufora (ilość wpisów)',
COMPACT: 'Kompaktowy',

View File

@@ -0,0 +1,336 @@
import type { Translation } from '../i18n-types';
/* prettier-ignore */
/* eslint-disable */
const sk: Translation = {
LANGUAGE: 'Jazyk',
RETRY: 'Opakovať',
LOADING: 'Načítanie',
IS_REQUIRED: '{0} je požadovaných',
SIGN_IN: 'Prihlásiť sa',
SIGN_OUT: 'Odhlásiť sa',
USERNAME: 'Užívateľské meno',
PASSWORD: 'Heslo',
SU_PASSWORD: 'su heslo',
DASHBOARD: 'Panel',
SETTINGS_OF: '{0} Nastavenia',
HELP_OF: '{0} Pomoc',
LOGGED_IN: 'Prihlásený ako {name}',
PLEASE_SIGNIN: 'Ak chcete pokračovať, prihláste sa',
UPLOAD_SUCCESSFUL: 'Nahratie úspešné',
DOWNLOAD_SUCCESSFUL: 'Stiahnutie úspešné',
INVALID_LOGIN: 'Nesprávne prihlasovacie údaje',
NETWORK: 'Sieť',
SECURITY: 'Zabezpečenie',
ONOFF_CAP: 'ZAP/VYP',
ONOFF: 'zap/vyp',
TYPE: 'Typ',
DESCRIPTION: 'Popis',
ENTITIES: 'Entity',
REFRESH: 'Obnoviť',
EXPORT: 'Export',
DEVICE_DETAILS: 'Detaily zariadenia',
ID_OF: '{0} ID',
DEVICE: 'Zariadenie',
PRODUCT: 'Produkt',
VERSION: 'Verzia',
BRAND: 'Značka',
ENTITY_NAME: 'Názov entity',
VALUE: '{{Value|value}}',
DEVICE_DATA: 'Dáta zariadenia',
SENSOR_DATA: 'Dáta snímača',
DEVICES: 'Zariadenia',
SENSORS: 'Snímače',
RUN_COMMAND: 'Volať príkaz',
CHANGE_VALUE: 'Zmena hodnoty',
CANCEL: 'Zrušiť',
RESET: 'Reset',
APPLY_CHANGES: 'Aplikovať zmeny ({0})',
UPDATE: 'Aktualizovať',
EXECUTE: 'Spustiť',
REMOVE: 'Odstrániť',
PROBLEM_UPDATING: 'Problém s aktualizáciou',
PROBLEM_LOADING: 'Problém s načítaním',
ANALOG_SENSOR: 'Analógový snímač',
ANALOG_SENSORS: 'Analógové snímače',
SETTINGS: 'Nastavenia',
UPDATED_OF: '{0} aktualizovaných',
UPDATE_OF: '{0} aktualizované',
REMOVED_OF: '{0} odstránených',
DELETION_OF: '{0} zmazaných',
OFFSET: 'Ofset',
FACTOR: 'Faktor',
FREQ: 'Frekvencia',
DUTY_CYCLE: 'Duty Cycle',
UNIT: 'UoM',
STARTVALUE: 'Počiatočná hodnota',
WARN_GPIO: 'Upozornenie: Buďte opatrní pri priraďovaní GPIO!',
EDIT: 'Editovať',
SENSOR: 'Snímač',
TEMP_SENSOR: 'Snímač teploty',
TEMP_SENSORS: 'Snímače teploty',
WRITE_CMD_SENT: 'Príkaz zápisu bol odoslaný',
EMS_BUS_WARNING: 'Zbernica EMS odpojená. Ak toto upozornenie pretrváva aj po niekoľkých sekundách, skontrolujte nastavenia a profil dosky',
EMS_BUS_SCANNING: 'Zisťovanie EMS zariadení...',
CONNECTED: 'Pripojené',
TX_ISSUES: 'Problémy s Tx skontrolujte Tx režim',
DISCONNECTED: 'Odpojené',
EMS_SCAN: 'Naozaj chcete spustiť úplnú kontrolu zariadenia zbernice EMS?',
EMS_BUS_STATUS: 'Stav zbernice EMS',
ACTIVE_DEVICES: 'Aktívne zariadenia a snímače',
EMS_DEVICE: 'EMS zariadenie',
SUCCESS: 'ÚSPEŠNÉ',
FAIL: 'ZLYHANIE',
QUALITY: 'KVALITA',
SCAN_DEVICES: 'Scan pre nové zariadenia',
EMS_BUS_STATUS_TITLE: 'EMS zbernica & stav aktivity',
SCAN: 'Scan',
STATUS_NAMES: [
'EMS Telegramy prijaté (Rx)',
'EMS Čítania (Tx)',
'EMS Zápisy (Tx)',
'Čítanie snímača teploty',
'Analógové snímanie',
'MQTT Publikovanie',
'API volania',
'Syslog správy'
],
NUM_DEVICES: '{num} Zariadenia{{s}}',
NUM_TEMP_SENSORS: '{num} Teplotné snímače{{s}}',
NUM_ANALOG_SENSORS: '{num} Analógové snímače{{s}}',
NUM_DAYS: '{num} dní{{s}}',
NUM_SECONDS: '{num} sekúnd{{s}}',
NUM_HOURS: '{num} hodín{{s}}',
NUM_MINUTES: '{num} minút{{s}}',
APPLICATION_SETTINGS: 'Nastavenia aplikácie',
CUSTOMIZATIONS: 'Prispôsobenia',
APPLICATION_RESTARTING: 'EMS-ESP sa reštartuje',
INTERFACE_BOARD_PROFILE: 'Profil boardu rozhrania',
BOARD_PROFILE_TEXT: 'Vyberte vopred nakonfigurovaný profil dosky rozhrania zo zoznamu nižšie alebo vyberte možnosť Vlastné a nakonfigurujte svoje vlastné hardvérové nastavenia',
BOARD_PROFILE: 'Board profil',
CUSTOM: 'Vlastné',
GPIO_OF: '{0} GPIO',
BUTTON: 'Tlačidlo',
TEMPERATURE: 'Teplota',
PHY_TYPE: 'Eth PHY Typ',
DISABLED: 'zakázané',
TX_MODE: 'Tx režim',
HARDWARE: 'Hardware',
EMS_BUS: '{{BUS|EMS BUS}}',
GENERAL_OPTIONS: 'Všeobecné možnosti',
LANGUAGE_ENTITIES: 'Jazyk (pre entity zariadenia)',
HIDE_LED: 'Skryť LED',
ENABLE_TELNET: 'Povoliť Telnet konzolu',
ENABLE_ANALOG: 'Povoliť analógové snímače',
CONVERT_FAHRENHEIT: 'Previesť hodnoty teploty na fahrenheity',
BYPASS_TOKEN: 'Vynechajte autorizáciu prístupového tokenu pri volaniach API',
READONLY: 'Povoliť režim len na čítanie (blokuje všetky odchádzajúce príkazy EMS Tx Write)',
UNDERCLOCK_CPU: 'Podtaktovanie rýchlosti procesora',
HEATINGOFF: 'Spustite kotol s núteným vykurovaním',
ENABLE_SHOWER_TIMER: 'Povoliť časovač sprchovania',
ENABLE_SHOWER_ALERT: 'Povoliť upozornenie na sprchu',
TRIGGER_TIME: 'Čas spustenia',
COLD_SHOT_DURATION: 'Trvanie studeného záberu',
FORMATTING_OPTIONS: 'Možnosti formátovania',
BOOLEAN_FORMAT_DASHBOARD: 'Panel Boolean formát',
BOOLEAN_FORMAT_API: 'Boolean formát API/MQTT',
ENUM_FORMAT: 'Enum formát API/MQTT',
INDEX: 'Index',
ENABLE_PARASITE: 'Povolenie parazitného napájania',
LOGGING: 'Logovanie',
LOG_HEX: 'Záznam telegramov EMS v hexadecimálnej sústave',
ENABLE_SYSLOG: 'Povoliť Syslog',
LOG_LEVEL: 'Log úroveň',
MARK_INTERVAL: 'Označenie intervalu',
SECONDS: 'sekundy',
MINUTES: 'minúty',
HOURS: 'hodiny',
RESTART: 'Reštart',
RESTART_TEXT: 'EMS-ESP sa musí reštartovať, aby sa použili zmenené systémové nastavenia',
RESTART_CONFIRM: 'Ste si istí, že chcete reštartovať EMS-ESP?',
COMMAND: 'Príkaz',
CUSTOMIZATIONS_RESTART: 'Ste si istí, že chcete reštartovať EMS-ESP?',
CUSTOMIZATIONS_FULL: 'Vybrané subjekty prekročili limit. Prosím, ukladajte v dávkach',
CUSTOMIZATIONS_SAVED: 'Uložené prispôsobenia',
CUSTOMIZATIONS_HELP_1: 'Vyberte zariadenie a prispôsobte možnosti entít alebo kliknutím premenujte',
CUSTOMIZATIONS_HELP_2: 'označiť ako obľúbené',
CUSTOMIZATIONS_HELP_3: 'zakázať akciu zápisu',
CUSTOMIZATIONS_HELP_4: 'vylúčiť z MQTT a API',
CUSTOMIZATIONS_HELP_5: 'skryť z panela',
CUSTOMIZATIONS_HELP_6: 'odstrániť z pamäte',
SELECT_DEVICE: 'Zvoliť zariadenie',
SET_ALL: 'nastaviť všetko',
OPTIONS: 'Možnosti',
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?',
DEVICE_ENTITIES: 'Entity zariadenia',
SUPPORT_INFORMATION: 'Informácie o podpore',
CLICK_HERE: 'Kliknite tu',
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',
HELP_INFORMATION_5: 'EMS-ESP je bezplatný a open source projekt. Podporte jeho budúci vývoj tým, že mu dáte hviezdičku na Github!',
UPLOAD: 'Nahrať',
DOWNLOAD: '{{S|s|s}}tiahnuť',
ABORTED: 'zrušené',
FAILED: 'chybné',
SUCCESSFUL: 'úspešné',
SYSTEM: 'Systém',
LOG_OF: '{0} Log',
STATUS_OF: '{0} Stav',
UPLOAD_DOWNLOAD: 'Nahrať/Stiahnuť',
VERSION_ON: 'Momentálne ste vo verzii',
SYSTEM_APPLY_FIRMWARE: 'na použitie nového firmvéru',
CLOSE: 'Zatvoriť',
USE: 'Použiť',
FACTORY_RESET: 'Továrenské nastavenia',
SYSTEM_FACTORY_TEXT: 'Zariadenie bolo obnovené z výroby a teraz sa reštartuje',
SYSTEM_FACTORY_TEXT_DIALOG: 'Naozaj chcete resetovať EMS-ESP na predvolené výrobné nastavenia?',
VERSION_CHECK: 'Kontrola verzie',
THE_LATEST: 'Posledná',
OFFICIAL: 'officiálna',
DEVELOPMENT: 'vývojárska',
RELEASE_IS: 'vydanie je',
RELEASE_NOTES: 'poznámky k vydaniu',
EMS_ESP_VER: 'EMS-ESP verzia',
PLATFORM: 'Zariadenie (Platforma / SDK)',
UPTIME: 'Beh systému',
HEAP: 'Zásobník (voľné / max pridelenie)',
PSRAM: 'PSRAM (Veľkosť / Voľné)',
FLASH: 'Flash chip (Veľkosť / Rýchlosť)',
APPSIZE: 'Applikácia (Priečka: Použité / Voľné)',
FILESYSTEM: 'Súborový systém (Použité / Voľné)',
BUFFER_SIZE: 'Maximálna veľkosť vyrovnávacej pamäte',
COMPACT: 'Kompaktné',
ENABLE_OTA: 'Povoliť OTA aktualizácie',
DOWNLOAD_CUSTOMIZATION_TEXT: 'Stiahnutie prispôsobení entity',
DOWNLOAD_SCHEDULE_TEXT: 'Stiahnutie plánovača udalostí',
DOWNLOAD_SETTINGS_TEXT: 'Stiahnite si nastavenia aplikácie. Pri zdieľaní nastavení buďte opatrní, pretože tento súbor obsahuje heslá a iné citlivé systémové informácie.',
UPLOAD_TEXT: 'Najskôr nahrajte nový súbor firmvéru (.bin), nastavenia alebo prispôsobenia (.json), pre voliteľné overenie nahrajte súbor (.md5)',
UPLOADING: 'Nahrávanie',
UPLOAD_DROP_TEXT: 'Zahodiť súbor alebo kliknúť sem',
ERROR: 'Neočakávaná chyba, prosím skúste to znova',
TIME_SET: 'Nastavený čas',
MANAGE_USERS: 'Správa používateľov',
IS_ADMIN: 'je Admin',
USER_WARNING: 'Musíte mať nakonfigurovaného aspoň jedného používateľa administrátora',
ADD: 'Pridať',
ACCESS_TOKEN_FOR: 'Prístupový token pre',
ACCESS_TOKEN_TEXT: 'Nižšie uvedený token sa používa pri volaniach REST API, ktoré vyžadujú autorizáciu. Môže byť odovzdaný buď ako token Bearer v hlavičke Authorization (Autorizácia), alebo v parametri dotazu URL access_token.',
GENERATING_TOKEN: 'Generovanie tokenu',
USER: 'Užívateľ',
MODIFY: 'Upraviť',
SU_TEXT: 'Heslo su (superužívateľ) sa používa na podpisovanie autentifikačných tokenov a tiež na povolenie oprávnení správcu v rámci konzoly.',
NOT_ENABLED: 'Nie je povolené',
ERRORS_OF: '{0} errory',
DISCONNECT_REASON: 'Dôvod odpojenia',
ENABLE_MQTT: 'Povoliť MQTT',
BROKER: 'Broker',
CLIENT: 'Klient',
BASE_TOPIC: 'Base',
OPTIONAL: 'voliteľné',
FORMATTING: 'Formátovanie',
MQTT_FORMAT: 'Formát témy/záťaže',
MQTT_NEST_1: 'Vnorené do jednej témy',
MQTT_NEST_2: 'Ako jednotlivé témy',
MQTT_RESPONSE: 'Publikovanie výstupu príkazu do témy `response`',
MQTT_PUBLISH_TEXT_1: 'Zverejňovanie tém jednotlivých hodnôt pri zmene',
MQTT_PUBLISH_TEXT_2: 'Publikovanie do tém príkazov (ioBroker)',
MQTT_PUBLISH_TEXT_3: 'Povolenie zisťovania MQTT',
MQTT_PUBLISH_TEXT_4: 'Predpona tém Discovery',
MQTT_PUBLISH_TEXT_5: 'Typ zistenia',
MQTT_PUBLISH_INTERVALS: 'Intervaly zverejňovania',
MQTT_INT_BOILER: 'Kotly a tepelné čerpadlá',
MQTT_INT_THERMOSTATS: 'Termostaty',
MQTT_INT_SOLAR: 'Solárne moduly',
MQTT_INT_MIXER: 'Zmiešavacie moduley',
MQTT_QUEUE: 'Fronta MQTT',
DEFAULT: 'Predvolené',
MQTT_ENTITY_FORMAT: 'ID formát entity',
MQTT_ENTITY_FORMAT_0: 'Jedna inštancia, dlhý názov (v3.4)',
MQTT_ENTITY_FORMAT_1: 'Jedna inštancia, krátky názov',
MQTT_ENTITY_FORMAT_2: 'Viacero inštancií, krátky názov',
MQTT_CLEAN_SESSION: 'Nastavenie čistej relácie',
MQTT_RETAIN_FLAG: 'Vždy nastaviť príznak Retain',
INACTIVE: 'Neaktívne',
ACTIVE: 'Aktívne',
UNKNOWN: 'Neznáme',
SET_TIME: 'Nastavený čas',
SET_TIME_TEXT: 'Na nastavenie času zadajte miestny dátum a čas nižšie',
LOCAL_TIME: 'Lokálny čas',
UTC_TIME: 'UTC čas',
ENABLE_NTP: 'Povoliť NTP',
NTP_SERVER: 'NTP Server',
TIME_ZONE: 'Časová zóna',
ACCESS_POINT: 'Prístupový bod',
AP_PROVIDE: 'Povoliť prístupový bod',
AP_PROVIDE_TEXT_1: 'vždy',
AP_PROVIDE_TEXT_2: 'keď WiFi je odpojená',
AP_PROVIDE_TEXT_3: 'nikdy',
AP_PREFERRED_CHANNEL: 'Preferovaný kanál',
AP_HIDE_SSID: 'Skryť SSID',
AP_CLIENTS: 'AP klienti',
AP_MAX_CLIENTS: 'Max klientov',
AP_LOCAL_IP: 'Lokálna IP',
NETWORK_SCAN: 'Scan WiFi siete',
IDLE: 'Nečinné',
LOST: 'Stratené',
SCANNING: 'Scanovanie',
SCAN_AGAIN: 'Scanovať znova',
NETWORK_SCANNER: 'Sieťový scanner',
NETWORK_NO_WIFI: 'WiFi siete nenájdené',
NETWORK_BLANK_SSID: 'nechajte prázdne, ak chcete zakázať WiFi a povoliť ETH',
NETWORK_BLANK_BSSID: 'ponechajte prázdne, ak chcete používať iba SSID',
TX_POWER: 'Tx výkon',
HOSTNAME: 'Hostname',
NETWORK_DISABLE_SLEEP: 'Zakázanie režimu spánku WiFi',
NETWORK_LOW_BAND: 'Používanie menšej šírky pásma WiFi',
NETWORK_USE_DNS: 'Povoliť mDNS službu',
NETWORK_ENABLE_CORS: 'Povoliť CORS',
NETWORK_CORS_ORIGIN: 'CORS origin',
NETWORK_ENABLE_IPV6: 'Povoliť podporu IPv6',
NETWORK_FIXED_IP: 'Použiť fixnú IP adresu',
NETWORK_GATEWAY: 'Brána',
NETWORK_SUBNET: 'Maska podsiete',
NETWORK_DNS: 'DNS servery',
ADDRESS_OF: '{0} adries',
ADMIN: 'Admin',
GUEST: 'Hosť',
NEW: 'Nová',
NEW_NAME_OF: 'Nových {0} názvov',
ENTITY: 'entita',
MIN: 'min',
MAX: 'max',
BLOCK_NAVIGATE_1: 'Máte neuložené zmeny',
BLOCK_NAVIGATE_2: 'Ak prejdete na inú stránku, neuložené zmeny sa stratia. Ste si istí, že chcete opustiť túto stránku?',
STAY: 'Zostať',
LEAVE: 'Opustiť',
SCHEDULER: 'Plánovač',
SCHEDULER_HELP_1: 'Automatizujte príkazy pridaním naplánovaných udalostí nižšie. Nastavte jedinečné meno na aktiváciu/deaktiváciu cez API/MQTT.',
SCHEDULER_HELP_2: 'Použite 00:00 na jednorazové spustenie pri štarte',
SCHEDULE: 'Plánovať',
TIME: 'Čas',
TIMER: 'Časovač',
SCHEDULE_UPDATED: 'Plánovanie aktualizované',
SCHEDULE_TIMER_1: 'pri spustení',
SCHEDULE_TIMER_2: 'každú minútu',
SCHEDULE_TIMER_3: 'každú hodinu',
CUSTOM_ENTITIES: 'Vlastné entity',
ENTITIES_HELP_1: 'Získavanie vlastných entít zo zbernice EMS',
ENTITIES_UPDATED: 'Aktualizované entity',
WRITEABLE: 'Zapísateľný',
SHOWING: 'Zobrazenie',
SEARCH: 'Vyhľadať',
CERT: 'Koreňový certifikát TLS (ak chcete vypnúť TLS, nechajte prázdne)',
ENABLE_TLS: 'Povoliť TLS',
ON: 'Zap',
OFF: 'Vyp',
POLARITY: 'Polarita',
ACTIVEHIGH: 'Aktívny Vysoký',
ACTIVELOW: 'Aktívny Nízky',
UNCHANGED: 'Nezmenené',
ALWAYS: 'Vždy'
};
export default sk;

View File

@@ -196,11 +196,10 @@ const sv: Translation = {
EMS_ESP_VER: 'EMS-ESP Version',
PLATFORM: 'Enhet (Plattform / SDK)',
UPTIME: 'Systemets Upptid',
CPU_FREQ: 'CPU-frekvens',
HEAP: 'Heap (Ledigt / Max allokerat)',
PSRAM: 'PSRAM (Storlek / Ledigt)',
FLASH: 'Flashminne (Storlek / Hastighet)',
APPSIZE: 'Applikationer (Använt / Ledigt)',
APPSIZE: 'Applikationer (Partition: Använt / Ledigt)',
FILESYSTEM: 'Filsystem (Använt / Ledigt)',
BUFFER_SIZE: 'Max Bufferstorlek',
COMPACT: 'Komprimera',

View File

@@ -196,11 +196,10 @@ const tr: Translation = {
EMS_ESP_VER: 'EMS-ESP Sürümü',
PLATFORM: 'Cihaz (Platform / SDK)',
UPTIME: 'Sistem Çalışma Süresi',
CPU_FREQ: 'İşlemci frekansı',
HEAP: 'Yığın (Boş / Maksimum Tahsis)',
PSRAM: 'PSRAM (Boyut / Boş)',
FLASH: 'Flash Çipi (Boyut / Hız)',
APPSIZE: 'Uygulama (Kullanılmış / Boş)',
APPSIZE: 'Uygulama (Bölme: Kullanılmış / Boş)',
FILESYSTEM: 'Dosya Sistemi (Kullanılmış / Boş)',
BUFFER_SIZE: 'En fazla bellek boyutu',
COMPACT: 'Sıkışık',

View File

@@ -384,6 +384,7 @@ const SettingsApplication: FC = () => {
<MenuItem value="nl">Nederlands (NL)</MenuItem>
<MenuItem value="no">Norsk (NO)</MenuItem>
<MenuItem value="pl">Polski (PL)</MenuItem>
<MenuItem value="sk">Slovenčina (SK)</MenuItem>
<MenuItem value="sv">Svenska (SV)</MenuItem>
<MenuItem value="tr">Türk (TR)</MenuItem>
</TextField>

View File

@@ -2,9 +2,14 @@ export interface SystemStatus {
emsesp_version: string;
esp_platform: string;
max_alloc_heap: number;
cpu_type: string;
cpu_rev: number;
cpu_cores: number;
cpu_freq_mhz: number;
free_heap: number;
arduino_version: string;
sdk_version: string;
partition: string;
flash_chip_size: number;
flash_chip_speed: number;
app_used: number;

View File

@@ -12,10 +12,10 @@ __metadata:
languageName: node
linkType: hard
"@alova/adapter-xhr@npm:^1.0.1":
version: 1.0.1
resolution: "@alova/adapter-xhr@npm:1.0.1"
checksum: 10fb023fd30408bf47433491679057458c599194040077d30c8427531b6ee4a6549bf468a7132d8ae91e99c8bdcea27dc4706b5b982033ac820f779a5016be7d
"@alova/adapter-xhr@npm:^1.0.2":
version: 1.0.2
resolution: "@alova/adapter-xhr@npm:1.0.2"
checksum: a57d178e89e3b655191bebccbc34d22760813b97b430e16f77b6ad561e3bb4ad8a34948aa2d724f5833d675f21a337ab769a3e5f73878430c3139374c6afb6ea
languageName: node
linkType: hard
@@ -821,10 +821,10 @@ __metadata:
languageName: node
linkType: hard
"@eslint/js@npm:8.55.0":
version: 8.55.0
resolution: "@eslint/js@npm:8.55.0"
checksum: 34b001a95b16501fd64f525b1de3ab0e4c252e5820b74069004934cb13977fc04ba4522a3e8f8074bd6af49da10d3444cd49fa711819f425ad73d6bf46eea82d
"@eslint/js@npm:8.56.0":
version: 8.56.0
resolution: "@eslint/js@npm:8.56.0"
checksum: 97a4b5ccf7e24f4d205a1fb0f21cdcd610348ecf685f6798a48dd41ba443f2c1eedd3050ff5a0b8f30b8cf6501ab512aa9b76e531db15e59c9ebaa41f3162e37
languageName: node
linkType: hard
@@ -957,14 +957,14 @@ __metadata:
languageName: node
linkType: hard
"@mui/base@npm:5.0.0-beta.27":
version: 5.0.0-beta.27
resolution: "@mui/base@npm:5.0.0-beta.27"
"@mui/base@npm:5.0.0-beta.28":
version: 5.0.0-beta.28
resolution: "@mui/base@npm:5.0.0-beta.28"
dependencies:
"@babel/runtime": "npm:^7.23.5"
"@floating-ui/react-dom": "npm:^2.0.4"
"@mui/types": "npm:^7.2.11"
"@mui/utils": "npm:^5.15.0"
"@mui/utils": "npm:^5.15.1"
"@popperjs/core": "npm:^2.11.8"
clsx: "npm:^2.0.0"
prop-types: "npm:^15.8.1"
@@ -975,20 +975,20 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
checksum: 944f2a020cb6b58f5dccde55cdc25ec486b26a1f89ee18d108b555e9e8855834890664e4b67eb6e3d1961c3847cd14ec725dd6a28d7e462a26f933c5ef8472b3
checksum: fb37f4301035bfcd5b6a7280521e3fcccd46ee34f096318c93516c03f3ed9e0bcb0dfbdeeca7611d0ccc42eadef483b7fd9c253cb3a19bbe86d3575144af84ac
languageName: node
linkType: hard
"@mui/core-downloads-tracker@npm:^5.15.0":
version: 5.15.0
resolution: "@mui/core-downloads-tracker@npm:5.15.0"
checksum: a7aadd4071ff715e618b8db647137579ca63cab4bf6e3acfe86a7d461f71605fc7ce44eeea5b1e789faae8546617b1f7d14c72a0c00fa3d59951b6eee42a6c5d
"@mui/core-downloads-tracker@npm:^5.15.1":
version: 5.15.1
resolution: "@mui/core-downloads-tracker@npm:5.15.1"
checksum: a2035c49a8a76298fe9acbf4a79cd50eba3fc82e25d5568e11ad7146bac4b4fdebe72a2d63eb33583ca3345fc3e91d805329a6837b924080317246d84684f726
languageName: node
linkType: hard
"@mui/icons-material@npm:^5.15.0":
version: 5.15.0
resolution: "@mui/icons-material@npm:5.15.0"
"@mui/icons-material@npm:^5.15.1":
version: 5.15.1
resolution: "@mui/icons-material@npm:5.15.1"
dependencies:
"@babel/runtime": "npm:^7.23.5"
peerDependencies:
@@ -998,21 +998,21 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
checksum: 48a1c32a334bafe53723445ce29f73f920150b9421118909fbca37857f635ab802e3f49a247b7bbaf06f0d2b879deed9a9462df4dbd8d3c06cec29638c6a2d12
checksum: b9d15ec65b6b948dcfc79f6aa19cc21ebde5c424f629378c3c2a37cdd2649404ee539cad43bada0618309bb2e9d9f4d734b5a2742900b6775c36f17cf15dcc5e
languageName: node
linkType: hard
"@mui/material@npm:^5.15.0":
version: 5.15.0
resolution: "@mui/material@npm:5.15.0"
"@mui/material@npm:^5.15.1":
version: 5.15.1
resolution: "@mui/material@npm:5.15.1"
dependencies:
"@babel/runtime": "npm:^7.23.5"
"@mui/base": "npm:5.0.0-beta.27"
"@mui/core-downloads-tracker": "npm:^5.15.0"
"@mui/system": "npm:^5.15.0"
"@mui/base": "npm:5.0.0-beta.28"
"@mui/core-downloads-tracker": "npm:^5.15.1"
"@mui/system": "npm:^5.15.1"
"@mui/types": "npm:^7.2.11"
"@mui/utils": "npm:^5.15.0"
"@types/react-transition-group": "npm:^4.4.9"
"@mui/utils": "npm:^5.15.1"
"@types/react-transition-group": "npm:^4.4.10"
clsx: "npm:^2.0.0"
csstype: "npm:^3.1.2"
prop-types: "npm:^15.8.1"
@@ -1031,16 +1031,16 @@ __metadata:
optional: true
"@types/react":
optional: true
checksum: 2ecffcebaa854de521dad6eef7b6d19db15f4cfd17462f6db548db2485bfe2ece8c4347c16a4ba40c621cd1c5c6a823d5936c3af1baf6550883d156d41bbc027
checksum: e40b61e03eb65b8390f88a0f37adcbeebad4d7b6b41e1995334a2946b0fab003818c3b7a1c2f46bed56c3d1fa360fe261d0ec1cab1fcfe322bcb8a26a94929c1
languageName: node
linkType: hard
"@mui/private-theming@npm:^5.15.0":
version: 5.15.0
resolution: "@mui/private-theming@npm:5.15.0"
"@mui/private-theming@npm:^5.15.1":
version: 5.15.1
resolution: "@mui/private-theming@npm:5.15.1"
dependencies:
"@babel/runtime": "npm:^7.23.5"
"@mui/utils": "npm:^5.15.0"
"@mui/utils": "npm:^5.15.1"
prop-types: "npm:^15.8.1"
peerDependencies:
"@types/react": ^17.0.0 || ^18.0.0
@@ -1048,13 +1048,13 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
checksum: f02eee2c460a3d9ea288743dcd2fcb3d1e254c9428b9aae1d7cc37295d6ea530f6641071636922bbf8f36b8ee150330a71d643ca88420b18431d769c3a3cf413
checksum: 4730b3a62ff5e955896ba731579c571c4948716525c3f6b44eb2590f78b7c016538a50390b473b5c2e648d82ff03c6771cc0bc9ff93edfb8bb311e9751b822e4
languageName: node
linkType: hard
"@mui/styled-engine@npm:^5.15.0":
version: 5.15.0
resolution: "@mui/styled-engine@npm:5.15.0"
"@mui/styled-engine@npm:^5.15.1":
version: 5.15.1
resolution: "@mui/styled-engine@npm:5.15.1"
dependencies:
"@babel/runtime": "npm:^7.23.5"
"@emotion/cache": "npm:^11.11.0"
@@ -1069,19 +1069,19 @@ __metadata:
optional: true
"@emotion/styled":
optional: true
checksum: 02de548366cf52461ba253fad81af00e1eeca828537e9647410583316a7585900467daa62258ec7e4f49143f6c7a114efc987a44b574b83d3e158243606eeaa1
checksum: 0e03bb6ccc54587b1fa9cacf68d6d7ac6285f7cd0d6294e2cee9212097e640655894762f0ac9020f69da9cf06f887dbeda8f9a7a217625359a2df82ebf082013
languageName: node
linkType: hard
"@mui/system@npm:^5.15.0":
version: 5.15.0
resolution: "@mui/system@npm:5.15.0"
"@mui/system@npm:^5.15.1":
version: 5.15.1
resolution: "@mui/system@npm:5.15.1"
dependencies:
"@babel/runtime": "npm:^7.23.5"
"@mui/private-theming": "npm:^5.15.0"
"@mui/styled-engine": "npm:^5.15.0"
"@mui/private-theming": "npm:^5.15.1"
"@mui/styled-engine": "npm:^5.15.1"
"@mui/types": "npm:^7.2.11"
"@mui/utils": "npm:^5.15.0"
"@mui/utils": "npm:^5.15.1"
clsx: "npm:^2.0.0"
csstype: "npm:^3.1.2"
prop-types: "npm:^15.8.1"
@@ -1097,7 +1097,7 @@ __metadata:
optional: true
"@types/react":
optional: true
checksum: eeaaf11f5b63e53bec8e8bdc4eff187cea13d2ec0dbb0b2b3d1a392b264cc31f3b5e6cba69835aa8b02da29ec7e2c3522946b2c738321a14cd3e995f04c45312
checksum: 8e2e2cff80218ec5ea13ca5ce7d7b81e31f3e2ab3f0c3149230c8b221724a09635b1794ede9b65b3ec825bd062ede0eecbf839a00ba57c9091ce7799dc196129
languageName: node
linkType: hard
@@ -1113,9 +1113,9 @@ __metadata:
languageName: node
linkType: hard
"@mui/utils@npm:^5.15.0":
version: 5.15.0
resolution: "@mui/utils@npm:5.15.0"
"@mui/utils@npm:^5.15.1":
version: 5.15.1
resolution: "@mui/utils@npm:5.15.1"
dependencies:
"@babel/runtime": "npm:^7.23.5"
"@types/prop-types": "npm:^15.7.11"
@@ -1127,7 +1127,7 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
checksum: 241ce42bc2f18df46f2adbbac640f16a64afd55a7829b10ef944d6648d45223ecad825ee56a44db29f6c387384e3977e30a966ea4425bda667e92989dd218b0a
checksum: 3d583ea55402295f9249f2fa1db652bbdca49df5227f731b067e04718d5704774e81b60b741231e49093eda6d4e80ce4fad315006516cb705acc7b0ac68f9d76
languageName: node
linkType: hard
@@ -1262,10 +1262,10 @@ __metadata:
languageName: node
linkType: hard
"@remix-run/router@npm:1.13.1":
version: 1.13.1
resolution: "@remix-run/router@npm:1.13.1"
checksum: bf1ff266744352e71fc414f983a9f7772c10ec55cf4b978d851026e6c12b39c0084f99e4e45de706b800a71889ef09f652b8e7c43e21800351cc14c5ada8c834
"@remix-run/router@npm:1.14.0":
version: 1.14.0
resolution: "@remix-run/router@npm:1.14.0"
checksum: cc46150f087695ba9da9aa905bcbe1d53d7e3ae4de37645c206b4bcb57a4605ebf3bdc87b9eff299562e7d68ddf80d412ac64cc60ecd2116d4aeb39cf8a0e358
languageName: node
linkType: hard
@@ -1553,12 +1553,12 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:^20.10.4":
version: 20.10.4
resolution: "@types/node@npm:20.10.4"
"@types/node@npm:^20.10.5":
version: 20.10.5
resolution: "@types/node@npm:20.10.5"
dependencies:
undici-types: "npm:~5.26.4"
checksum: c10c1dd13f5c2341ad866777dc32946538a99e1ebd203ae127730814b8e5fa4aedfbcb01cb3e24a5466f1af64bcdfa16e7de6e745ff098fff0942aa779b7fe03
checksum: 4a378428d2c9f692b19801a5a3d20dc4c0ad5d4a3d103350f8b401af439941a9aa5efeadc8eb9db13c66c620318bc7f336abfc8934f82fd32c4a689d85068c6f
languageName: node
linkType: hard
@@ -1583,12 +1583,12 @@ __metadata:
languageName: node
linkType: hard
"@types/react-dom@npm:^18.2.17":
version: 18.2.17
resolution: "@types/react-dom@npm:18.2.17"
"@types/react-dom@npm:^18.2.18":
version: 18.2.18
resolution: "@types/react-dom@npm:18.2.18"
dependencies:
"@types/react": "npm:*"
checksum: fe0dbb3224b48515da8fe25559e3777d756a27c3f22903f0b1b020de8d68bd57eb1f0af62b52ee65d9632637950afed8cbad24d158c4f3d910d083d49bd73fba
checksum: 4ef7725b4cebd4a32e049097ddfdfd855a178e63ead97ab6d3084872e7d6c1acd71aa923488123cd1015f0e0b11489d2b44f674a1df8fe82d7827eabbec6dbf1
languageName: node
linkType: hard
@@ -1613,12 +1613,12 @@ __metadata:
languageName: node
linkType: hard
"@types/react-transition-group@npm:^4.4.9":
version: 4.4.9
resolution: "@types/react-transition-group@npm:4.4.9"
"@types/react-transition-group@npm:^4.4.10":
version: 4.4.10
resolution: "@types/react-transition-group@npm:4.4.10"
dependencies:
"@types/react": "npm:*"
checksum: 74ed0985380544bd1d63d8865a452a859ed7122b35dd2cf919fa7d1f31936345671995d36c89263456f27dbb5940eac8d4607be969e27187102eecff1cc64ba3
checksum: b429f3bd54d9aea6c0395943ce2dda6b76fb458e902365bd91fd99bf72064fb5d59e2b74e78d10f2871908501d350da63e230d81bda2b616c967cab8dc51bd16
languageName: node
linkType: hard
@@ -1633,14 +1633,14 @@ __metadata:
languageName: node
linkType: hard
"@types/react@npm:^18.2.43":
version: 18.2.43
resolution: "@types/react@npm:18.2.43"
"@types/react@npm:^18.2.45":
version: 18.2.45
resolution: "@types/react@npm:18.2.45"
dependencies:
"@types/prop-types": "npm:*"
"@types/scheduler": "npm:*"
csstype: "npm:^3.0.2"
checksum: a9d90a93380bb67623f27eba83e2d05b548109f7eb6fd591f5c4a3716bc257cc7cb078455db7ea4308d5f2ff6b4fe48d9a4a560145d9384069a2b5121bc93937
checksum: bd27fd8a959fa776965997af89cb04e43e7868416850fdff421b5539f389efa35acae3d55915c9f32d7b00fb388550302bf8a7f06010abf9ad431e5bf58cb774
languageName: node
linkType: hard
@@ -1676,15 +1676,15 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^6.14.0":
version: 6.14.0
resolution: "@typescript-eslint/eslint-plugin@npm:6.14.0"
"@typescript-eslint/eslint-plugin@npm:^6.15.0":
version: 6.15.0
resolution: "@typescript-eslint/eslint-plugin@npm:6.15.0"
dependencies:
"@eslint-community/regexpp": "npm:^4.5.1"
"@typescript-eslint/scope-manager": "npm:6.14.0"
"@typescript-eslint/type-utils": "npm:6.14.0"
"@typescript-eslint/utils": "npm:6.14.0"
"@typescript-eslint/visitor-keys": "npm:6.14.0"
"@typescript-eslint/scope-manager": "npm:6.15.0"
"@typescript-eslint/type-utils": "npm:6.15.0"
"@typescript-eslint/utils": "npm:6.15.0"
"@typescript-eslint/visitor-keys": "npm:6.15.0"
debug: "npm:^4.3.4"
graphemer: "npm:^1.4.0"
ignore: "npm:^5.2.4"
@@ -1697,44 +1697,44 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: d420277bed0104713fb4a3c2e0fed32b300919708db3f2e3d13bc83e80a9aec181bfc4e1e6012c65408c318f3ac113926fc77e6667d7657e34fa0d5a2c21ee32
checksum: 9020370c5e89b52b65ed2373c755d4b70f57ec7ebcf02d3e2f323f31ec81717af110d8e5f903b189b71e0a952f042e0fe2b637e77959c3102907efed4ba55512
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^6.14.0":
version: 6.14.0
resolution: "@typescript-eslint/parser@npm:6.14.0"
"@typescript-eslint/parser@npm:^6.15.0":
version: 6.15.0
resolution: "@typescript-eslint/parser@npm:6.15.0"
dependencies:
"@typescript-eslint/scope-manager": "npm:6.14.0"
"@typescript-eslint/types": "npm:6.14.0"
"@typescript-eslint/typescript-estree": "npm:6.14.0"
"@typescript-eslint/visitor-keys": "npm:6.14.0"
"@typescript-eslint/scope-manager": "npm:6.15.0"
"@typescript-eslint/types": "npm:6.15.0"
"@typescript-eslint/typescript-estree": "npm:6.15.0"
"@typescript-eslint/visitor-keys": "npm:6.15.0"
debug: "npm:^4.3.4"
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 34f46aa8aaadb0d0ecb7d791a8436fcf44ec04af33ee9d198bcf6f7ca3927d8caa79d4756e0c4ef0d50979d895df0b8f1a2473fc83104423c96856e9d56047f3
checksum: fdd1f584e5068216c36a01e40750950ef309b36a522f6ecde36931690558a319960a702b4b4a806f335fb28ca99f8a07bb206571141550aaab1f6f40066f6605
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:6.14.0":
version: 6.14.0
resolution: "@typescript-eslint/scope-manager@npm:6.14.0"
"@typescript-eslint/scope-manager@npm:6.15.0":
version: 6.15.0
resolution: "@typescript-eslint/scope-manager@npm:6.15.0"
dependencies:
"@typescript-eslint/types": "npm:6.14.0"
"@typescript-eslint/visitor-keys": "npm:6.14.0"
checksum: fbe945169fe092df5953a54a552a9e8d9dc3dc158a39cd99de7f1843a169c82d3ba59e314b7d0f5b8110dbbe8c37c9e62dc2dda91a31536fe054221d5d8972c3
"@typescript-eslint/types": "npm:6.15.0"
"@typescript-eslint/visitor-keys": "npm:6.15.0"
checksum: 168d783c06a99784362e2eaaa56396b31716ee785779707ef984c2abb3e822c56440473efc6580cb8b84b2da508731ad184a00b3618bc7f3f93d8243804f2fcf
languageName: node
linkType: hard
"@typescript-eslint/type-utils@npm:6.14.0":
version: 6.14.0
resolution: "@typescript-eslint/type-utils@npm:6.14.0"
"@typescript-eslint/type-utils@npm:6.15.0":
version: 6.15.0
resolution: "@typescript-eslint/type-utils@npm:6.15.0"
dependencies:
"@typescript-eslint/typescript-estree": "npm:6.14.0"
"@typescript-eslint/utils": "npm:6.14.0"
"@typescript-eslint/typescript-estree": "npm:6.15.0"
"@typescript-eslint/utils": "npm:6.15.0"
debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.0.1"
peerDependencies:
@@ -1742,23 +1742,23 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 52c2a380d694f629ed2d37ce9decc5d8f6d276b030dcb8ee2d0a21b667d789e0d50c8a4d06fa60a053cbcc162b50c3708260f569ccd765609f17499d5294c19d
checksum: 8dabb355f09f57de8b46d726ad95a57593e5b87427dee5182afecb490624424afec02b69a27018b352dcb5f930eb391cb8cdc12cd60a93231d4f04e63e2f2c0b
languageName: node
linkType: hard
"@typescript-eslint/types@npm:6.14.0":
version: 6.14.0
resolution: "@typescript-eslint/types@npm:6.14.0"
checksum: bcb32d69ac4a570634e37a3f149b7653a85334ac7b1d736961b627647ceff74797c4ac30b1405c508ede9462fad53b0b4442dbdf21877bf91263390c6e426e95
"@typescript-eslint/types@npm:6.15.0":
version: 6.15.0
resolution: "@typescript-eslint/types@npm:6.15.0"
checksum: d55de64d532c9016c922cc36b86ab661d7d64d942057486a0bca7a7db07fade95c3de59bfe364bc76ab538fb979ca2e4e6744c3acf8919a2d61e73cc7f544363
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:6.14.0":
version: 6.14.0
resolution: "@typescript-eslint/typescript-estree@npm:6.14.0"
"@typescript-eslint/typescript-estree@npm:6.15.0":
version: 6.15.0
resolution: "@typescript-eslint/typescript-estree@npm:6.15.0"
dependencies:
"@typescript-eslint/types": "npm:6.14.0"
"@typescript-eslint/visitor-keys": "npm:6.14.0"
"@typescript-eslint/types": "npm:6.15.0"
"@typescript-eslint/visitor-keys": "npm:6.15.0"
debug: "npm:^4.3.4"
globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3"
@@ -1767,34 +1767,34 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 870f00e81de428c0afae3f753c04229170aeec76d62dcded0e22cff1c733fe60a350cf68571c889f87ea7a6008b73f7c62a079e91ab056d79aa2b9803a5b7150
checksum: 920f7f3bfe463a9da943e1a686b7f13ac802a5e33be52f39ac711aa53a1e274dbe173b41bba05581c560fabfc3e1fadcfd81ab53a036afe25fb1a76651fcad7a
languageName: node
linkType: hard
"@typescript-eslint/utils@npm:6.14.0":
version: 6.14.0
resolution: "@typescript-eslint/utils@npm:6.14.0"
"@typescript-eslint/utils@npm:6.15.0":
version: 6.15.0
resolution: "@typescript-eslint/utils@npm:6.15.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
"@types/json-schema": "npm:^7.0.12"
"@types/semver": "npm:^7.5.0"
"@typescript-eslint/scope-manager": "npm:6.14.0"
"@typescript-eslint/types": "npm:6.14.0"
"@typescript-eslint/typescript-estree": "npm:6.14.0"
"@typescript-eslint/scope-manager": "npm:6.15.0"
"@typescript-eslint/types": "npm:6.15.0"
"@typescript-eslint/typescript-estree": "npm:6.15.0"
semver: "npm:^7.5.4"
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
checksum: fec7338edc31d89d5413ec49ce690e05741511ba1ba2a8c59ce14321f5026e73e0584dc9f35645ab4100561bcf8ecef8a08c042388743db53fe73f047132a150
checksum: 7895240933ad28295508f8c4286a8b905550a35eda83a11ecf9511e53078e0af07e75a1872f1bc757f165b41fdc84616ea97c1e2e3bf80cff985935f25596228
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:6.14.0":
version: 6.14.0
resolution: "@typescript-eslint/visitor-keys@npm:6.14.0"
"@typescript-eslint/visitor-keys@npm:6.15.0":
version: 6.15.0
resolution: "@typescript-eslint/visitor-keys@npm:6.15.0"
dependencies:
"@typescript-eslint/types": "npm:6.14.0"
"@typescript-eslint/types": "npm:6.15.0"
eslint-visitor-keys: "npm:^3.4.1"
checksum: 404f87a121b4375b13e59ffc11ac2fe3c8e40025d0ef5cd6738ab7b3648ce1d41378414b1130ee68e0b454d7e6ec1937540799cdaa4ea572e2447b04d737ee44
checksum: 4641a829485f67a5d9d3558aa0d152e5ab57b468cfd9653168ce9a141e1f051730669a024505183b64f7a7e5d8f62533af4ebd4ad7366b551390461e9c45ec18
languageName: node
linkType: hard
@@ -1809,33 +1809,33 @@ __metadata:
version: 0.0.0-use.local
resolution: "EMS-ESP@workspace:."
dependencies:
"@alova/adapter-xhr": "npm:^1.0.1"
"@alova/adapter-xhr": "npm:^1.0.2"
"@babel/core": "npm:^7.23.6"
"@emotion/react": "npm:^11.11.1"
"@emotion/styled": "npm:^11.11.0"
"@mui/icons-material": "npm:^5.15.0"
"@mui/material": "npm:^5.15.0"
"@mui/icons-material": "npm:^5.15.1"
"@mui/material": "npm:^5.15.1"
"@preact/compat": "npm:^17.1.2"
"@preact/preset-vite": "npm:^2.7.0"
"@table-library/react-table-library": "npm:4.1.7"
"@types/imagemin": "npm:^8.0.5"
"@types/lodash-es": "npm:^4.17.12"
"@types/node": "npm:^20.10.4"
"@types/react": "npm:^18.2.43"
"@types/react-dom": "npm:^18.2.17"
"@types/node": "npm:^20.10.5"
"@types/react": "npm:^18.2.45"
"@types/react-dom": "npm:^18.2.18"
"@types/react-router-dom": "npm:^5.3.3"
"@typescript-eslint/eslint-plugin": "npm:^6.14.0"
"@typescript-eslint/parser": "npm:^6.14.0"
alova: "npm:^2.16.0"
"@typescript-eslint/eslint-plugin": "npm:^6.15.0"
"@typescript-eslint/parser": "npm:^6.15.0"
alova: "npm:^2.16.1"
async-validator: "npm:^4.2.5"
concurrently: "npm:^8.2.2"
eslint: "npm:^8.55.0"
eslint: "npm:^8.56.0"
eslint-config-airbnb: "npm:^19.0.4"
eslint-config-airbnb-typescript: "npm:^17.1.0"
eslint-config-prettier: "npm:^9.1.0"
eslint-import-resolver-typescript: "npm:^3.6.1"
eslint-plugin-autofix: "npm:^1.1.0"
eslint-plugin-import: "npm:^2.29.0"
eslint-plugin-import: "npm:^2.29.1"
eslint-plugin-jsx-a11y: "npm:^6.8.0"
eslint-plugin-prettier: "npm:alpha"
eslint-plugin-react: "npm:^7.33.2"
@@ -1850,14 +1850,14 @@ __metadata:
react-dom: "npm:latest"
react-dropzone: "npm:^14.2.3"
react-icons: "npm:^4.12.0"
react-router-dom: "npm:^6.20.1"
react-router-dom: "npm:^6.21.0"
react-toastify: "npm:^9.1.3"
rollup-plugin-visualizer: "npm:^5.11.0"
sockette: "npm:^2.0.6"
terser: "npm:^5.26.0"
typesafe-i18n: "npm:^5.26.2"
typescript: "npm:^5.3.3"
vite: "npm:^5.0.8"
vite: "npm:^5.0.10"
vite-plugin-imagemin: "npm:^0.6.1"
vite-tsconfig-paths: "npm:^4.2.2"
languageName: unknown
@@ -1928,10 +1928,10 @@ __metadata:
languageName: node
linkType: hard
"alova@npm:^2.16.0":
version: 2.16.0
resolution: "alova@npm:2.16.0"
checksum: 476aaf451c6760f46822f0e8bf834c86700ccd6e8f28b28f0381afa43a4d2bc361fa1414fe30e8494e6a5a5a49a6f744b9a59ec7f0ad179f4cf5b985a0a638ed
"alova@npm:^2.16.1":
version: 2.16.1
resolution: "alova@npm:2.16.1"
checksum: 88f0a175ed433606ff5f564151fc92e2d16e04a04f87362cbe76c1f0c33382e49719ce48f081fe03f707c28b78200c50b933155051d9a82be1d4bfcb73f1d0f9
languageName: node
linkType: hard
@@ -3814,9 +3814,9 @@ __metadata:
languageName: node
linkType: hard
"eslint-plugin-import@npm:^2.29.0":
version: 2.29.0
resolution: "eslint-plugin-import@npm:2.29.0"
"eslint-plugin-import@npm:^2.29.1":
version: 2.29.1
resolution: "eslint-plugin-import@npm:2.29.1"
dependencies:
array-includes: "npm:^3.1.7"
array.prototype.findlastindex: "npm:^1.2.3"
@@ -3834,10 +3834,10 @@ __metadata:
object.groupby: "npm:^1.0.1"
object.values: "npm:^1.1.7"
semver: "npm:^6.3.1"
tsconfig-paths: "npm:^3.14.2"
tsconfig-paths: "npm:^3.15.0"
peerDependencies:
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
checksum: d6e8d016f38369892c85b866f762c03dee2b337d4f12031756e30d7490879261d1192a3c2f682fd7c4d2b923465f7a1e3d22cfdad5da1b1391c3bd39ea87af1a
checksum: 5865f05c38552145423c535326ec9a7113ab2305c7614c8b896ff905cfabc859c8805cac21e979c9f6f742afa333e6f62f812eabf891a7e8f5f0b853a32593c1
languageName: node
linkType: hard
@@ -3945,14 +3945,14 @@ __metadata:
languageName: node
linkType: hard
"eslint@npm:^8.55.0":
version: 8.55.0
resolution: "eslint@npm:8.55.0"
"eslint@npm:^8.56.0":
version: 8.56.0
resolution: "eslint@npm:8.56.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.2.0"
"@eslint-community/regexpp": "npm:^4.6.1"
"@eslint/eslintrc": "npm:^2.1.4"
"@eslint/js": "npm:8.55.0"
"@eslint/js": "npm:8.56.0"
"@humanwhocodes/config-array": "npm:^0.11.13"
"@humanwhocodes/module-importer": "npm:^1.0.1"
"@nodelib/fs.walk": "npm:^1.2.8"
@@ -3989,7 +3989,7 @@ __metadata:
text-table: "npm:^0.2.0"
bin:
eslint: bin/eslint.js
checksum: afd016cfbe9e9d667b3f98c14c681a7e518808f6c30856e56cbb02248900eac5bf6dc5e577a7eaec259539486db48ef7d16ef58fb14b1585ba7c84b35490c53c
checksum: ef6193c6e4cef20774b985a5cc2fd4bf6d3c4decd423117cbc4a0196617861745db291217ad3c537bc3a160650cca965bc818f55e1f3e446af1fcb293f9940a5
languageName: node
linkType: hard
@@ -7130,27 +7130,27 @@ __metadata:
languageName: node
linkType: hard
"react-router-dom@npm:^6.20.1":
version: 6.20.1
resolution: "react-router-dom@npm:6.20.1"
"react-router-dom@npm:^6.21.0":
version: 6.21.0
resolution: "react-router-dom@npm:6.21.0"
dependencies:
"@remix-run/router": "npm:1.13.1"
react-router: "npm:6.20.1"
"@remix-run/router": "npm:1.14.0"
react-router: "npm:6.21.0"
peerDependencies:
react: ">=16.8"
react-dom: ">=16.8"
checksum: 27efb05af0025bdcd7ecc85d2df2f53ca90bbf4db1dd4319002714b5be4e23c9434f95932d79f14a42d7c347ca882e9a0bba74a4d6331de8f7fb527c21f3f069
checksum: 7448674817971c8138a96cef05331fb45cb6ef1f71450db9da87e3e0d0586bb55ba85fd3ca741ed7a22a40b6b6e544c11cff9e2fe3fa5957faf7b8ab74a0dcf3
languageName: node
linkType: hard
"react-router@npm:6.20.1":
version: 6.20.1
resolution: "react-router@npm:6.20.1"
"react-router@npm:6.21.0":
version: 6.21.0
resolution: "react-router@npm:6.21.0"
dependencies:
"@remix-run/router": "npm:1.13.1"
"@remix-run/router": "npm:1.14.0"
peerDependencies:
react: ">=16.8"
checksum: 96c25c8ca782dfa5b501540b9a491d8dca67c829a90fda237238a22881c695226fd5bbe14fcb2793bd5877aec2514d932c3293bf1f2463606fb3f2326628d766
checksum: 10c58589d804b823caf3fd46403662769375618ae39ebae99f8df167c43440bb8ebf853548ba2bf96f21027c72c234d4fc37042643c91c9920f1cdfda5e03fab
languageName: node
linkType: hard
@@ -8363,15 +8363,15 @@ __metadata:
languageName: node
linkType: hard
"tsconfig-paths@npm:^3.14.2":
version: 3.14.2
resolution: "tsconfig-paths@npm:3.14.2"
"tsconfig-paths@npm:^3.15.0":
version: 3.15.0
resolution: "tsconfig-paths@npm:3.15.0"
dependencies:
"@types/json5": "npm:^0.0.29"
json5: "npm:^1.0.2"
minimist: "npm:^1.2.6"
strip-bom: "npm:^3.0.0"
checksum: 17f23e98612a60cf23b80dc1d3b7b840879e41fcf603868fc3618a30f061ac7b463ef98cad8c28b68733b9bfe0cc40ffa2bcf29e94cf0d26e4f6addf7ac8527d
checksum: 2041beaedc6c271fc3bedd12e0da0cc553e65d030d4ff26044b771fac5752d0460944c0b5e680f670c2868c95c664a256cec960ae528888db6ded83524e33a14
languageName: node
linkType: hard
@@ -8676,9 +8676,9 @@ __metadata:
languageName: node
linkType: hard
"vite@npm:^5.0.8":
version: 5.0.8
resolution: "vite@npm:5.0.8"
"vite@npm:^5.0.10":
version: 5.0.10
resolution: "vite@npm:5.0.10"
dependencies:
esbuild: "npm:^0.19.3"
fsevents: "npm:~2.3.3"
@@ -8712,7 +8712,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
checksum: ea36e34fa45401d8e29317c3355f4d7081df09b412578bd7b6a26d44bccace9d130625f7f317a3cbc20ad2aadc5881d01d1508e8d9e36060ae44d974f505dd7e
checksum: 5421e9c7f8cf3152eace9a8b528269141635f367e5dc63c5f1fe2712a766d9757f8197733cf3f28be590afdd520130d38de90c955e6dba6edfa6f9056c1e5ea7
languageName: node
linkType: hard

View File

@@ -8,6 +8,10 @@ the LICENSE file.
#pragma once
#ifndef TASMOTA_SDK
#define EMC_CLIENT_SECURE
#endif
#ifndef EMC_TX_TIMEOUT
#define EMC_TX_TIMEOUT 2000
#endif

View File

@@ -10,7 +10,12 @@ the LICENSE file.
#if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
#include "../Config.h"
#if defined(EMC_CLIENT_SECURE)
#include <WiFiClientSecure.h> // includes IPAddress
#else
#include <WiFiClient.h>
#endif
#include "Transport.h"
@@ -26,7 +31,11 @@ class ClientSecureSync : public Transport {
void stop() override;
bool connected() override;
bool disconnected() override;
#if defined(EMC_CLIENT_SECURE)
WiFiClientSecure client;
#else
WiFiClient client;
#endif
};
} // namespace espMqttClientInternals

View File

@@ -78,27 +78,37 @@ espMqttClientSecure::espMqttClientSecure(uint8_t priority, uint8_t core)
}
espMqttClientSecure& espMqttClientSecure::setInsecure() {
#if defined(EMC_CLIENT_SECURE)
_client.client.setInsecure();
#endif
return *this;
}
espMqttClientSecure& espMqttClientSecure::setCACert(const char* rootCA) {
#if defined(EMC_CLIENT_SECURE)
_client.client.setCACert(rootCA);
#endif
return *this;
}
espMqttClientSecure& espMqttClientSecure::setCertificate(const char* clientCa) {
#if defined(EMC_CLIENT_SECURE)
_client.client.setCertificate(clientCa);
#endif
return *this;
}
espMqttClientSecure& espMqttClientSecure::setPrivateKey(const char* privateKey) {
#if defined(EMC_CLIENT_SECURE)
_client.client.setPrivateKey(privateKey);
#endif
return *this;
}
espMqttClientSecure& espMqttClientSecure::setPreSharedKey(const char* pskIdent, const char* psKey) {
#if defined(EMC_CLIENT_SECURE)
_client.client.setPreSharedKey(pskIdent, psKey);
#endif
return *this;
}

View File

@@ -218,8 +218,10 @@ bool MqttSettingsService::configureMqtt() {
void MqttSettings::read(MqttSettings & settings, JsonObject & root) {
#if CONFIG_IDF_TARGET_ESP32S3
#ifndef TASMOTA_SDK
root["enableTLS"] = settings.enableTLS;
root["rootCA"] = settings.rootCA;
#endif
#endif
root["enabled"] = settings.enabled;
root["host"] = settings.host;
@@ -256,8 +258,10 @@ StateUpdateResult MqttSettings::update(JsonObject & root, MqttSettings & setting
bool changed = false;
#if CONFIG_IDF_TARGET_ESP32S3
#ifndef TASMOTA_SDK
newSettings.enableTLS = root["enableTLS"] | false;
newSettings.rootCA = root["rootCA"] | "";
#endif
#endif
newSettings.enabled = root["enabled"] | FACTORY_MQTT_ENABLED;
newSettings.host = root["host"] | FACTORY_MQTT_HOST;

View File

@@ -19,10 +19,15 @@ void SystemStatus::systemStatus(AsyncWebServerRequest * request) {
root["emsesp_version"] = EMSESP_APP_VERSION;
root["esp_platform"] = EMSESP_PLATFORM;
root["cpu_type"] = ESP.getChipModel();
root["cpu_rev"] = ESP.getChipRevision();
root["cpu_cores"] = ESP.getChipCores();
root["cpu_freq_mhz"] = ESP.getCpuFreqMHz();
root["max_alloc_heap"] = emsesp::EMSESP::system_.getMaxAllocMem();
root["free_heap"] = emsesp::EMSESP::system_.getHeapMem();
root["arduino_version"] = ARDUINO_VERSION;
root["sdk_version"] = ESP.getSdkVersion();
root["partition"] = esp_ota_get_running_partition()->label;
root["flash_chip_size"] = ESP.getFlashChipSize() / 1024;
root["flash_chip_speed"] = ESP.getFlashChipSpeed();
root["app_used"] = emsesp::EMSESP::system_.appUsed();
@@ -39,7 +44,7 @@ void SystemStatus::systemStatus(AsyncWebServerRequest * request) {
const esp_partition_t * partition = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, NULL);
if (partition != NULL) { // factory partition found
root["has_loader"] = true;
} else { // check for not empty, smaller OTA partition
} else { // check for not empty, smaller OTA partition
partition = esp_ota_get_next_update_partition(NULL);
if (partition) {
uint64_t buffer;

View File

@@ -51,11 +51,17 @@ extra_scripts =
[espressi32_base_tasmota]
; use Tasmota's libary which removes some libs (like mbedtsl) and increases available heap
; platform = https://github.com/tasmota/platform-espressif32.git ; latest development
; latest release with WiFi_secure.h
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.10.03/platform-espressif32-2023.10.03.zip ; latest stable
; platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.10.02/platform-espressif32.zip
; latest arduino 2.xx release:
; platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.11.01/platform-espressif32.zip
; latest arduino 3.0/IDF 5.1.(alpha 3):
; platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.12.10/platform-espressif32.zip
framework = arduino
board_build.filesystem = littlefs
build_flags = ${common.build_flags}
build_flags =
${common.build_flags}
-DTASMOTA_SDK
build_unflags = ${common.unbuild_flags}
extra_scripts =
pre:scripts/build_interface.py
@@ -83,8 +89,6 @@ extra_scripts = scripts/rename_fw.py
board = esp32dev
board_build.partitions = esp32_partition_4M.csv
board_build.extra_flags = -DBOARD_HAS_PSRAM
build_unflags = ${common.unbuild_flags}
build_flags = ${common.build_flags}
[env:ci_s3]
extends = espressi32_base
@@ -95,7 +99,7 @@ board_upload.flash_size = 16MB
board_build.partitions = esp32_partition_16M.csv
build_unflags = ${common.unbuild_flags}
build_flags =
${common.build_flags}
${espressi32_base.build_flags}
-O2
'-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"'
@@ -105,7 +109,7 @@ board = esp32dev
board_upload.flash_size = 4MB
board_build.partitions = esp32_partition_4M.csv
build_flags =
${common.build_flags}
${espressi32_base_tasmota.build_flags}
-Os
[env:esp32_4Mplus]
@@ -113,7 +117,6 @@ extends = espressi32_base_tasmota
board = esp32dev
board_upload.flash_size = 4MB
board_build.partitions = esp32_asym_partition_4M.csv
build_flags = ${common.build_flags}
[env:esp32_16M]
extends = espressi32_base_tasmota
@@ -121,7 +124,6 @@ board = esp32dev
board_build.extra_flags = -DBOARD_HAS_PSRAM
board_upload.flash_size = 16MB
board_build.partitions = esp32_partition_16M.csv
build_flags = ${common.build_flags}
[env:lolin_c3_mini]
extends = espressi32_base_tasmota
@@ -129,7 +131,7 @@ board = lolin_c3_mini
board_upload.flash_size = 4MB
board_build.partitions = esp32_partition_4M.csv
build_flags =
${common.build_flags}
${espressi32_base_tasmota.build_flags}
'-DEMSESP_DEFAULT_BOARD_PROFILE="C3MINI"'
; lolin C3 mini v1 needs special wifi init.
@@ -140,7 +142,7 @@ board = lolin_c3_mini
board_upload.flash_size = 4MB
board_build.partitions = esp32_partition_4M.csv
build_flags =
${common.build_flags}
${espressi32_base_tasmota.build_flags}
-DBOARD_C3_MINI_V1
'-DEMSESP_DEFAULT_BOARD_PROFILE="C3MINI"'
@@ -150,7 +152,7 @@ board = lolin_s2_mini
board_upload.flash_size = 4MB
board_build.partitions = esp32_partition_4M.csv
build_flags =
${common.build_flags}
${espressi32_base_tasmota.build_flags}
'-DEMSESP_DEFAULT_BOARD_PROFILE="S2MINI"'
[env:lolin_s3]
@@ -162,7 +164,7 @@ board_build.partitions = esp32_partition_16M.csv
board_upload.use_1200bps_touch = false
board_upload.wait_for_upload_port = false
build_flags =
${common.build_flags}
${espressi32_base.build_flags}
-O2
'-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"'

View File

@@ -252,4 +252,16 @@ enum {
#error Target CONFIG_IDF_TARGET is not supported
#endif
#ifndef ARDUINO_VERSION
#ifndef STRINGIZE
#define STRINGIZE(s) #s
#endif
#if TASMOTA_SDK
#define ARDUINO_VERSION_STR(major, minor, patch) "Tasmota Arduino v" STRINGIZE(major) "." STRINGIZE(minor) "." STRINGIZE(patch)
#else
#define ARDUINO_VERSION_STR(major, minor, patch) "ESP32 Arduino v" STRINGIZE(major) "." STRINGIZE(minor) "." STRINGIZE(patch)
#endif
#define ARDUINO_VERSION ARDUINO_VERSION_STR(ESP_ARDUINO_VERSION_MAJOR, ESP_ARDUINO_VERSION_MINOR, ESP_ARDUINO_VERSION_PATCH)
#endif
#endif

View File

@@ -1,4 +1,4 @@
/*
/*
* EMS-ESP - https://github.com/emsesp/EMS-ESP
* Copyright 2020-2023 Paul Derbyshire
*
@@ -35,7 +35,7 @@
//
// if there is no translation, it will default to en
//
// critcal characters: č, ď
// device types, as display in Web and Console
MAKE_WORD_TRANSLATION(boiler_device, "Boiler", "Kessel", "CV ketel", "Värmepanna", "Kocioł", "Varmekjele", "", "Kazan", "Caldaia", "Bojler") // TODO translate
MAKE_WORD_TRANSLATION(thermostat_device, "Thermostat", "Thermostat", "Thermostaat", "Termostat", "Termostat", "Termostat", "", "Termostat", "Termostato", "Termostat") // TODO translate
@@ -166,7 +166,7 @@ MAKE_WORD_TRANSLATION(intern, "intern", "intern", "intern", "intern", "wewnętrz
MAKE_WORD_TRANSLATION(lower, "lower", "niedirger", "lager", "lägre", "mniejszy", "nedre", "inférieur", "daha düşük", "basso", "nízky")
MAKE_WORD_TRANSLATION(error, "error", "Fehler", "error", "Fel", "błąd", "feil", "erreur", "Hata", "errore", "error")
MAKE_WORD_TRANSLATION(na, "n/a", "n/a", "n/a", "n/a", "nd.", "n/a", "n/c", "mevcut değil", "n/a", "n/a")
MAKE_WORD_TRANSLATION(inverted, "inverted", "invertiert", "", "", "", "", "", "", "")
MAKE_WORD_TRANSLATION(inverted, "inverted", "invertiert", "", "", "", "", "", "", "", "")
// boiler
MAKE_WORD_TRANSLATION(time, "time", "Zeit", "tijd", "Tid", "godzina", "tid", "heure", "zaman", "ora", "čas")
@@ -289,7 +289,7 @@ MAKE_WORD_TRANSLATION(fireplace, "fireplace", "Kamin", "haard", "", "kominek", "
MAKE_TRANSLATION(haclimate, "haclimate", "Discovery current room temperature", "Discovery Temperatur", "Discovery huidige kamertemperatuur", "", "termostat w HA", "HA Avlest temp", "", "Güncel osa sıcaklığı", "verifica temperatura ambiente attuale", "Zistiť aktuálnu teplotu v miestnosti") // TODO translate
// Entity translations: tag, mqtt, en, de, nl, sv, pl, no, fr, tr, it, sk
/// Boiler
// Boiler
MAKE_TRANSLATION(forceHeatingOff, "heatingoff", "force heating off", "Heizen abschalten", "", "", "wymuś wyłączenie grzania", "", "", "", "", "vynútiť kúrenie") // TODO translate
MAKE_TRANSLATION(wwtapactivated, "wwtapactivated", "turn on/off", "Durchlauferhitzer aktiv", "zet aan/uit", "på/av", "system przygotowywania", "Varmtvann active", "ecs activée", "aç/kapa", "commuta on/off", "zapnúť/vypnúť")
MAKE_TRANSLATION(reset, "reset", "reset", "Reset", "Reset", "Nollställ", "kasowanie komunikatu", "nullstill", "reset", "Sıfırla", "Reset", "reset")

View File

@@ -64,7 +64,8 @@ const char * const languages[] = {EMSESP_LOCALE_EN,
EMSESP_LOCALE_NO,
EMSESP_LOCALE_FR,
EMSESP_LOCALE_TR,
EMSESP_LOCALE_IT};
EMSESP_LOCALE_IT,
EMSESP_LOCALE_SK};
#endif
static constexpr uint8_t NUM_LANGUAGES = sizeof(languages) / sizeof(const char *);
@@ -1208,13 +1209,16 @@ bool System::command_info(const char * value, const int8_t id, JsonObject & outp
// System
node = output.createNestedObject("System Info");
node["version"] = EMSESP_APP_VERSION;
node["platform"] = EMSESP_PLATFORM;
node["uptime"] = uuid::log::format_timestamp_ms(uuid::get_uptime_ms(), 3);
node["uptime (seconds)"] = uuid::get_uptime_sec();
#ifndef EMSESP_STANDALONE
node["platform"] = ARDUINO_VERSION;
node["sdk"] = ESP.getSdkVersion();
node["free mem"] = getHeapMem();
node["max alloc"] = getMaxAllocMem();
node["used app"] = EMSESP::system_.appUsed(); // kilobytes
node["free app"] = EMSESP::system_.appFree(); // kilobytes
node["partition"] = esp_ota_get_running_partition()->label;
#endif
node["reset reason"] = EMSESP::system_.reset_reason(0) + " / " + EMSESP::system_.reset_reason(1);

View File

@@ -1 +1 @@
#define EMSESP_APP_VERSION "3.6.5-test.4"
#define EMSESP_APP_VERSION "3.6.5-test.6"