diff --git a/interface/src/components/upload/DragNdrop.tsx b/interface/src/components/upload/DragNdrop.tsx new file mode 100644 index 000000000..e19bfd9ef --- /dev/null +++ b/interface/src/components/upload/DragNdrop.tsx @@ -0,0 +1,104 @@ +import { type ChangeEvent, useRef, useState } from 'react'; +import { AiOutlineCloudUpload } from 'react-icons/ai'; +import { MdClear } from 'react-icons/md'; + +import UploadIcon from '@mui/icons-material/Upload'; +import { Button } from '@mui/material'; + +import { useI18nContext } from 'i18n/i18n-react'; + +import './drag-drop.css'; + +const DragNdrop = ({ onFileSelected, width, height }) => { + const [file, setFile] = useState(); + const inputRef = useRef(null); + const { LL } = useI18nContext(); + + const handleFileChange = (e: ChangeEvent) => { + if (!e.target.files) { + return; + } + setFile(e.target.files[0]); + }; + + const handleDrop = (event) => { + event.preventDefault(); + const droppedFiles = event.dataTransfer.files; + if (droppedFiles.length > 0) { + setFile(droppedFiles[0]); + } + }; + + const handleRemoveFile = (event) => { + event.stopPropagation(); + setFile(undefined); + }; + + const handleUploadClick = (event) => { + event.stopPropagation(); + onFileSelected(file); + }; + + const handleBrowseClick = () => { + inputRef.current?.click(); + }; + + return ( +
+
event.preventDefault()} + onClick={handleBrowseClick} + > + <> +
+ +
+

Drag and drop a file here or click to select one

+
+
+ + + + + {file && ( + <> +
+
+
+

{file.name}

+
+
+ handleRemoveFile(e)} + /> +
+
+
+ + + + )} +
+
+ ); +}; + +export default DragNdrop; diff --git a/interface/src/components/upload/SingleUpload.tsx b/interface/src/components/upload/SingleUpload.tsx index bd3713ad7..258ce3a9d 100644 --- a/interface/src/components/upload/SingleUpload.tsx +++ b/interface/src/components/upload/SingleUpload.tsx @@ -1,19 +1,26 @@ -import { ChangeEvent, useRef, useState } from 'react'; +import { useEffect, useState } from 'react'; import { toast } from 'react-toastify'; import CancelIcon from '@mui/icons-material/Cancel'; -import UploadIcon from '@mui/icons-material/Upload'; +import PowerSettingsNewIcon from '@mui/icons-material/PowerSettingsNew'; import { Box, Button, LinearProgress, Typography } from '@mui/material'; import * as SystemApi from 'api/system'; import { useRequest } from 'alova/client'; import RestartMonitor from 'app/status/RestartMonitor'; +import MessageBox from 'components/MessageBox'; import { useI18nContext } from 'i18n/i18n-react'; +import DragNdrop from './DragNdrop'; + const SingleUpload = () => { const [md5, setMd5] = useState(); - const [restarting, setRestarting] = useState(); + const [restarting, setRestarting] = useState(false); + const [restartNeeded, setRestartNeeded] = useState(false); + + const [file, setFile] = useState(); + const { LL } = useI18nContext(); const { loading: isUploading, @@ -28,55 +35,40 @@ const SingleUpload = () => { toast.success(LL.UPLOAD() + ' MD5 ' + LL.SUCCESSFUL()); setFile(undefined); } else { - setRestarting(true); + setRestartNeeded(true); + // setRestarting(true); } }); - const [file, setFile] = useState(); - const inputRef = useRef(null); + const { send: restartCommand } = useRequest(SystemApi.restart(), { + immediate: false + }); - const { LL } = useI18nContext(); - - const handleUploadClick = () => { - inputRef.current?.click(); - }; - - const handleFileChange = async (e: ChangeEvent) => { - if (!e.target.files) { - return; - } - - setFile(e.target.files[0]); - - await sendUpload(e.target.files[0]).catch((error: Error) => { - if (error.message === 'The user aborted a request') { - toast.warning(LL.UPLOAD() + ' ' + LL.ABORTED()); - } else if (error.message === 'Network Error') { - toast.warning('Invalid file extension or incompatible bin file'); - } else { - toast.error(error.message); - } + const restart = async () => { + await restartCommand().catch((error: Error) => { + toast.error(error.message); }); + setRestarting(true); }; + useEffect(async () => { + if (file) { + console.log('going to upload file ', file.name); + await sendUpload(file).catch((error: Error) => { + if (error.message === 'The user aborted a request') { + toast.warning(LL.UPLOAD() + ' ' + LL.ABORTED()); + } else if (error.message === 'Network Error') { + toast.warning('Invalid file extension or incompatible bin file'); + } else { + toast.error(error.message); + } + }); + } + }, [file]); + return ( <> - - - + {isUploading && ( <> @@ -111,6 +103,19 @@ const SingleUpload = () => { )} + {restartNeeded && ( + + + + )} + {restarting && } ); diff --git a/interface/src/components/upload/drag-drop.css b/interface/src/components/upload/drag-drop.css new file mode 100644 index 000000000..acf7dfdaf --- /dev/null +++ b/interface/src/components/upload/drag-drop.css @@ -0,0 +1,83 @@ +.drag-drop { + /* background: #fff; */ + border: 1px solid var(--border-color); + border-radius: 8px; +} + +.document-uploader { + border: 2px dashed #4282fe; + /* background-color: #f4fbff; */ + padding: 10px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + position: relative; + border-radius: 8px; + cursor: pointer; + + &.active { + border-color: #6dc24b; + } + + .upload-info { + display: flex; + align-items: center; + margin-bottom: 1rem; + + svg { + font-size: 36px; + margin-right: 1rem; + } + + div { + p { + margin: 0; + font-size: 14px; + } + } + } + + .file-list { + display: flex; + flex-direction: column; + gap: 0.5rem; + width: 100%; + } + + .file-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.5rem; + border: 1px solid var(--border-color); + border-radius: 8px; + + .file-info { + display: flex; + flex-direction: column; + gap: 0.25rem; + flex: 1; + + p { + margin: 0; + font-size: 14px; + color: #6dc24b; + } + } + + .file-actions { + cursor: pointer; + + &:hover { + svg { + color: #d44; + } + } + } + } + + input[type='file'] { + display: none; + } +} diff --git a/interface/src/i18n/de/index.ts b/interface/src/i18n/de/index.ts index 5a9d56469..2c090a4af 100644 --- a/interface/src/i18n/de/index.ts +++ b/interface/src/i18n/de/index.ts @@ -194,7 +194,6 @@ const de: Translation = { DOWNLOAD_SCHEDULE_TEXT: 'Herunterladen geplanter Befehle', DOWNLOAD_SETTINGS_TEXT: 'Herunterladen der Anwendungseinstellungen. Vorsicht beim Teilen der Einstellungen, da sie Passwörter und andere sensitive Einstellungen enthalten', UPLOAD_TEXT: 'Hochladen von neuer Firmware (.bin), Geräte- oder Entitätseinstellungen (.json), zur optionalen Validitätsprüfung zuerst die (.md5) Datei hochladen', - UPLOADING: 'Hochladen', UPLOAD_DROP_TEXT: 'Klicken Sie hier, oder ziehen eine Datei hierher', ERROR: 'Unerwarteter Fehler, bitter versuchen Sie es erneut', TIME_SET: 'Zeit gesetzt', diff --git a/interface/src/i18n/en/index.ts b/interface/src/i18n/en/index.ts index 8fa77ef12..fafcf2b24 100644 --- a/interface/src/i18n/en/index.ts +++ b/interface/src/i18n/en/index.ts @@ -194,7 +194,6 @@ const en: Translation = { DOWNLOAD_SCHEDULE_TEXT: 'Download Scheduler Events', DOWNLOAD_SETTINGS_TEXT: 'Download the application settings. Be careful when sharing your settings as this file contains passwords and other sensitive system information', UPLOAD_TEXT: 'Upload a new firmware (.bin) file, settings or customizations (.json) file below, for optional validation upload (.md5) first', - UPLOADING: 'Uploading', UPLOAD_DROP_TEXT: 'Drop file or click here', ERROR: 'Unexpected Error, please try again', TIME_SET: 'Time set', diff --git a/interface/src/i18n/fr/index.ts b/interface/src/i18n/fr/index.ts index 9e348b904..78b2fb3ab 100644 --- a/interface/src/i18n/fr/index.ts +++ b/interface/src/i18n/fr/index.ts @@ -194,7 +194,6 @@ const fr: Translation = { DOWNLOAD_SCHEDULE_TEXT: 'Download Scheduler Events', // TODO translate DOWNLOAD_SETTINGS_TEXT: "Téléchargez les paramètres de l'application. Soyez prudent lorsque vous partagez vos paramètres car ce fichier contient des mots de passe et d'autres informations système sensibles.", UPLOAD_TEXT: "Téléchargez un nouveau fichier de firmware (.bin), un fichier de paramètres ou de personnalisations (.json) ci-dessous, pour une validation optionnelle téléchargez d'abord un fichier (.md5)", - UPLOADING: 'Téléchargement', UPLOAD_DROP_TEXT: 'Déposer le fichier ou cliquer ici', ERROR: 'Erreur inattendue, veuillez réessayer', TIME_SET: 'Time set', diff --git a/interface/src/i18n/it/index.ts b/interface/src/i18n/it/index.ts index aa4480f29..487c2c0ab 100644 --- a/interface/src/i18n/it/index.ts +++ b/interface/src/i18n/it/index.ts @@ -194,7 +194,6 @@ const it: Translation = { DOWNLOAD_SCHEDULE_TEXT: 'Download Scheduler Events', DOWNLOAD_SETTINGS_TEXT: 'Scarica le impostazioni dell applicazione. Fai attenzione quando condividi le tue impostazioni poiché questo file contiene password e altre informazioni di sistema riservate', UPLOAD_TEXT: 'Carica un nuovo file firmware (.bin) , file delle impostazioni o delle personalizzazioni (.json) di seguito, per un opzione di convalida scaricare dapprima un file "*.MD5" ', - UPLOADING: 'Caricamento', UPLOAD_DROP_TEXT: 'Trascina il file o clicca qui', ERROR: 'Errore Inaspettato, prego tenta ancora', TIME_SET: 'Imposta Ora', diff --git a/interface/src/i18n/nl/index.ts b/interface/src/i18n/nl/index.ts index dd0c85d2a..073ecdc25 100644 --- a/interface/src/i18n/nl/index.ts +++ b/interface/src/i18n/nl/index.ts @@ -194,7 +194,6 @@ const nl: Translation = { DOWNLOAD_SCHEDULE_TEXT: 'Download Scheduler Events', DOWNLOAD_SETTINGS_TEXT: 'Download de applicatie settings. Wees voorzichting met het delen van dit bestand want het bevat o.a. de wachtwoorden in plain text', UPLOAD_TEXT: 'Upload een nieuwe firmware (.bin) file, instellingen of custom instellingen (.json) bestand hieronder', - UPLOADING: 'Uploading', UPLOAD_DROP_TEXT: 'Sleep bestand hierheen of klik hier', ERROR: 'Onverwachte fout, probeer opnieuw', TIME_SET: 'Tijd ingesteld', diff --git a/interface/src/i18n/no/index.ts b/interface/src/i18n/no/index.ts index e5da9a714..df70af4e7 100644 --- a/interface/src/i18n/no/index.ts +++ b/interface/src/i18n/no/index.ts @@ -194,7 +194,6 @@ const no: Translation = { DOWNLOAD_SCHEDULE_TEXT: 'Last ned planlagte oppgaver', DOWNLOAD_SETTINGS_TEXT: 'Last ned applikasjonskonfigurasjon. Vær varsom med å dele fila da den inneholder passord og annen sensitiv system informasjon', UPLOAD_TEXT: 'Last opp en ny firmware (.bin) fil, innstillinger eller tilpassninger (.json) fil nedenfor', - UPLOADING: 'Opplasting', UPLOAD_DROP_TEXT: 'Slipp fil eller klikk her', ERROR: 'Ukjent feil, prøv igjen', TIME_SET: 'Still in tid', diff --git a/interface/src/i18n/pl/index.ts b/interface/src/i18n/pl/index.ts index f63a093d8..6d9e99d92 100644 --- a/interface/src/i18n/pl/index.ts +++ b/interface/src/i18n/pl/index.ts @@ -194,7 +194,6 @@ const pl: BaseTranslation = { DOWNLOAD_SCHEDULE_TEXT: 'Pobierz harmonogram zdarzeń.', DOWNLOAD_SETTINGS_TEXT: 'Pobierz ustawienia aplikacji. Uwaga! Plik z ustawieniami zawiera hasła oraz inne wrażliwe informacje systemowe! Nie udostepniaj go pochopnie!', UPLOAD_TEXT: 'Wyślij firmware (.bin), ustawienia lub personalizacje (.json). Opcjonalnie, wyślij wcześniej plik walidacji z sumą kontrolną (.md5).', - UPLOADING: 'Wysłano', UPLOAD_DROP_TEXT: 'Przeciągnij tutaj plik lub kliknij', ERROR: 'Nieoczekiwany błąd, spróbuj ponownie!', TIME_SET: 'Zegar został ustawiony.', diff --git a/interface/src/i18n/sk/index.ts b/interface/src/i18n/sk/index.ts index 53ae6522a..28676f4a2 100644 --- a/interface/src/i18n/sk/index.ts +++ b/interface/src/i18n/sk/index.ts @@ -194,7 +194,6 @@ const sk: Translation = { 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: 'Potiahnúť a pripnúť súbor alebo kliknúť sem', ERROR: 'Neočakávaná chyba, prosím skúste to znova', TIME_SET: 'Nastavený čas', diff --git a/interface/src/i18n/sv/index.ts b/interface/src/i18n/sv/index.ts index dcc51c9f8..192267fa9 100644 --- a/interface/src/i18n/sv/index.ts +++ b/interface/src/i18n/sv/index.ts @@ -194,7 +194,6 @@ const sv: Translation = { DOWNLOAD_SCHEDULE_TEXT: 'Download Scheduler Events', // TODO translate DOWNLOAD_SETTINGS_TEXT: 'Ladda ner applikationsinställningar. Var försiktig om du delar dina iställlningar då de innehåller lösenord och annan känslig systeminformation', UPLOAD_TEXT: 'Ladda upp ett nytt firmware (.bin), inställningar eller anpassningar (.json) nedan', - UPLOADING: 'Laddar upp', UPLOAD_DROP_TEXT: 'Släpp fil eller klicka här', ERROR: 'Okänt Fel, var god försök igen', TIME_SET: 'Ställ in tid', diff --git a/interface/src/i18n/tr/index.ts b/interface/src/i18n/tr/index.ts index bfe20c3d9..2d279ec31 100644 --- a/interface/src/i18n/tr/index.ts +++ b/interface/src/i18n/tr/index.ts @@ -194,7 +194,6 @@ const tr: Translation = { DOWNLOAD_SCHEDULE_TEXT: 'Download Scheduler Events', // TODO translate DOWNLOAD_SETTINGS_TEXT: 'Uygulama ayarlarını indir. Bu dosya hassas sistem bilgileri ve şifrelerinizi içerdiğinden ayarlarınızı paylaşırken dikkatli olun', UPLOAD_TEXT: 'Yeni bir bellenim(.bin) dosyası yükleyin, ayarlar ve özelleştirmeler(.json) dosyası aşağıda, sçenekli denetim yüklemesi(.md5) için önce', - UPLOADING: 'Yüklüyor', UPLOAD_DROP_TEXT: 'Buraya tıklayın yada dosyayı sürükleyip bırakın', ERROR: 'Beklenemedik hata, lütfen tekrar deneyin.', TIME_SET: 'Zaman ayarı', diff --git a/mock-api/mockServer.js b/mock-api/mockServer.js index 94958b3ed..b75a49bf6 100644 --- a/mock-api/mockServer.js +++ b/mock-api/mockServer.js @@ -1,127 +1,123 @@ -import formidable from "formidable"; +import formidable from 'formidable'; function pad(number) { - var r = String(number); - if (r.length === 1) { - r = '0' + r; - } - return r; + var r = String(number); + if (r.length === 1) { + r = '0' + r; + } + return r; } // e.g. 2024-03-29 07:02:37.856 Date.prototype.toISOString = function () { - return ( - this.getUTCFullYear() + - '-' + - pad(this.getUTCMonth() + 1) + - '-' + - pad(this.getUTCDate()) + - ' ' + - pad(this.getUTCHours()) + - ':' + - pad(this.getUTCMinutes()) + - ':' + - pad(this.getUTCSeconds()) + - '.' + - String((this.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5) - ); + return ( + this.getUTCFullYear() + + '-' + + pad(this.getUTCMonth() + 1) + + '-' + + pad(this.getUTCDate()) + + ' ' + + pad(this.getUTCHours()) + + ':' + + pad(this.getUTCMinutes()) + + ':' + + pad(this.getUTCSeconds()) + + '.' + + String((this.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5) + ); }; export default () => { - return { - name: "vite:mockserver", - configureServer: async (server) => { + return { + name: 'vite:mockserver', + configureServer: async (server) => { + server.middlewares.use(async (req, res, next) => { + // catch any file uploads + if (req.url.startsWith('/rest/uploadFile')) { + let progress = 0; + const file_size = req.headers['content-length']; - server.middlewares.use(async (req, res, next) => { + req.on('data', async (chunk) => { + progress += chunk.length; + const percentage = (progress / file_size) * 100; + console.log(`Progress: ${Math.round(percentage)}%`); + // await new Promise((resolve) => setTimeout(() => resolve(), 3000)); // slow it down + }); - // catch any file uploads - if (req.url.startsWith("/rest/uploadFile")) { - - let progress = 0; - const file_size = req.headers['content-length']; - - req.on('data', async (chunk) => { - progress += chunk.length; - const percentage = (progress / file_size) * 100; - console.log(`Progress: ${Math.round(percentage)}%`); - // await new Promise((resolve) => setTimeout(() => resolve(), 3000)); // slow it down - }); - - const form = formidable({}); - let fields; - let files; - try { - [fields, files] = await form.parse(req); - } catch (err) { - console.error(err); - res.writeHead(err.httpCode || 400, { - "Content-Type": "text/plain", - }); - res.end(String(err)); - return; - } - - // only process when we have a file - if (Object.keys(files).length > 0) { - - const uploaded_file = files.file[0]; - const file_name = uploaded_file.originalFilename; - const file_extension = file_name.substring(file_name.lastIndexOf('.') + 1); - - console.log("Filename: " + file_name); - console.log("Extension: " + file_extension); - console.log("File size: " + file_size); - - if (file_extension === 'bin' || file_extension === 'json') { - console.log("File uploaded successfully!"); - } else if (file_extension === 'md5') { - console.log("MD5 hash generated successfully!"); - res.end( - JSON.stringify({ - md5: 'ef4304fc4d9025a58dcf25d71c882d2c', - }), - ); - } else { - res.statusCode = 400; - console.log("Invalid file extension!"); - } - } - - res.end(); - } - - // SSE Eventsource - else if (req.url.startsWith("/es/log")) { - - res.writeHead(200, { - Connection: 'keep-alive', - 'Cache-Control': 'no-cache', - 'Content-Type': 'text/event-stream' - }); - - let count = 0; - const interval = setInterval(() => { - const data = { - t: new Date().toISOString(), - l: (3 + (count % 6)), - i: count, - n: 'system', - m: 'message #' + count++ - }; - res.write(`data: ${JSON.stringify(data)}\n\n`); - }, 1000); - - // if client closes connection - res.on('close', () => { - console.log('Closing ES connection'); - clearInterval(interval); - res.end(); - }); - - } else { - next(); // move on to the next middleware function in chain - } + const form = formidable({}); + let fields; + let files; + try { + [fields, files] = await form.parse(req); + } catch (err) { + console.error(err); + res.writeHead(err.httpCode || 400, { + 'Content-Type': 'text/plain' }); - }, - }; + res.end(String(err)); + return; + } + + // only process when we have a file + if (Object.keys(files).length > 0) { + const uploaded_file = files.file[0]; + const file_name = uploaded_file.originalFilename; + const file_extension = file_name.substring( + file_name.lastIndexOf('.') + 1 + ); + + console.log('Filename: ' + file_name); + console.log('Extension: ' + file_extension); + console.log('File size: ' + file_size); + + if (file_extension === 'bin' || file_extension === 'json') { + console.log('File uploaded successfully!'); + } else if (file_extension === 'md5') { + console.log('MD5 hash generated successfully!'); + res.end( + JSON.stringify({ + md5: 'ef4304fc4d9025a58dcf25d71c882d2c' + }) + ); + } else { + res.statusCode = 400; + console.log('Invalid file extension!'); + } + } + + res.end(); + } + + // SSE Eventsource + else if (req.url.startsWith('/es/log')) { + res.writeHead(200, { + Connection: 'keep-alive', + 'Cache-Control': 'no-cache', + 'Content-Type': 'text/event-stream' + }); + + let count = 0; + const interval = setInterval(() => { + const data = { + t: new Date().toISOString(), + l: 3 + (count % 6), + i: count, + n: 'system', + m: 'message #' + count++ + }; + res.write(`data: ${JSON.stringify(data)}\n\n`); + }, 1000); + + // if client closes connection + res.on('close', () => { + console.log('Closing ES connection'); + clearInterval(interval); + res.end(); + }); + } else { + next(); // move on to the next middleware function in chain + } + }); + } + }; }; diff --git a/mock-api/package.json b/mock-api/package.json index aa17722f3..3a347032f 100644 --- a/mock-api/package.json +++ b/mock-api/package.json @@ -5,11 +5,17 @@ "author": "proddy", "license": "MIT", "scripts": { - "mock-rest": "bun --watch rest_server.ts" + "mock-rest": "bun --watch rest_server.ts", + "format": "prettier -l -w '**/*.{ts,tsx,js,css,json,md}'" }, "dependencies": { "@msgpack/msgpack": "^2.8.0", - "itty-router": "^5.0.17" + "@trivago/prettier-plugin-sort-imports": "^4.3.0", + "eslint": "^9.9.0", + "eslint-config-prettier": "^9.1.0", + "formidable": "^3.5.1", + "itty-router": "^5.0.17", + "prettier": "^3.3.3" }, "packageManager": "yarn@4.4.0" } diff --git a/mock-api/rest_server.ts b/mock-api/rest_server.ts index 81cc309e5..8a90e7320 100644 --- a/mock-api/rest_server.ts +++ b/mock-api/rest_server.ts @@ -1,17 +1,17 @@ -import { AutoRouter, error, status, type ResponseHandler } from 'itty-router'; import { Encoder } from '@msgpack/msgpack'; +import { AutoRouter, type ResponseHandler, error, status } from 'itty-router'; const encoder = new Encoder(); -const logger: ResponseHandler = (response, request) => { +const logger: ResponseHandler = (response, request) => { console.log( response.status, request.url, request.method, 'at', - new Date().toLocaleString(), - ) -} + new Date().toLocaleString() + ); +}; const router = AutoRouter({ port: 3080, @@ -54,7 +54,9 @@ function updateMask(entity: any, de: any, dd: any) { // find in dd, either looking for fullname or custom name // console.log('looking for ' + fullname + ' in ' + dd.data); - const dd_objIndex = dd.data.findIndex((obj: any) => obj.id.slice(2) === fullname); + const dd_objIndex = dd.data.findIndex( + (obj: any) => obj.id.slice(2) === fullname + ); if (dd_objIndex !== -1) { let changed = new Boolean(false); @@ -67,7 +69,13 @@ function updateMask(entity: any, de: any, dd: any) { // see if the custom name has changed const old_custom_name = dd.data[dd_objIndex].cn; - console.log('comparing names, old (' + old_custom_name + ') with new (' + new_custom_name + ')'); + console.log( + 'comparing names, old (' + + old_custom_name + + ') with new (' + + new_custom_name + + ')' + ); if (old_custom_name !== new_custom_name) { changed = true; new_fullname = new_custom_name; @@ -100,7 +108,8 @@ function updateMask(entity: any, de: any, dd: any) { if (new_max) { de[de_objIndex].ma = new_max; } - dd.data[dd_objIndex].id = current_mask.toString(16).padStart(2, '0') + new_fullname; + dd.data[dd_objIndex].id = + current_mask.toString(16).padStart(2, '0') + new_fullname; dd.data[dd_objIndex].cn = new_fullname; } } @@ -448,10 +457,13 @@ const EMSESP_DEVICEENTITIES_ENDPOINT2 = REST_ENDPOINT_ROOT + 'deviceEntities/:id const EMSESP_BOARDPROFILE_ENDPOINT = REST_ENDPOINT_ROOT + 'boardProfile'; const EMSESP_WRITE_DEVICEVALUE_ENDPOINT = REST_ENDPOINT_ROOT + 'writeDeviceValue'; const EMSESP_WRITE_DEVICENAME_ENDPOINT = REST_ENDPOINT_ROOT + 'writeDeviceName'; -const EMSESP_WRITE_TEMPSENSOR_ENDPOINT = REST_ENDPOINT_ROOT + 'writeTemperatureSensor'; +const EMSESP_WRITE_TEMPSENSOR_ENDPOINT = + REST_ENDPOINT_ROOT + 'writeTemperatureSensor'; const EMSESP_WRITE_ANALOGSENSOR_ENDPOINT = REST_ENDPOINT_ROOT + 'writeAnalogSensor'; -const EMSESP_CUSTOMIZATION_ENTITIES_ENDPOINT = REST_ENDPOINT_ROOT + 'customizationEntities'; -const EMSESP_RESET_CUSTOMIZATIONS_ENDPOINT = REST_ENDPOINT_ROOT + 'resetCustomizations'; +const EMSESP_CUSTOMIZATION_ENTITIES_ENDPOINT = + REST_ENDPOINT_ROOT + 'customizationEntities'; +const EMSESP_RESET_CUSTOMIZATIONS_ENDPOINT = + REST_ENDPOINT_ROOT + 'resetCustomizations'; const EMSESP_SCHEDULE_ENDPOINT = REST_ENDPOINT_ROOT + 'schedule'; const EMSESP_CUSTOMENTITIES_ENDPOINT = REST_ENDPOINT_ROOT + 'customEntities'; const EMSESP_MODULES_ENDPOINT = REST_ENDPOINT_ROOT + 'modules'; @@ -617,53 +629,53 @@ const emsesp_allvalues = { }; let settings = { - "locale": "en", - "tx_mode": 1, - "ems_bus_id": 11, - "syslog_enabled": false, - "syslog_level": 3, - "trace_raw": false, - "syslog_mark_interval": 0, - "syslog_host": "192.168.1.8", - "syslog_port": 514, - "boiler_heatingoff": false, - "remote_timeout": 24, - "remote_timeout_en": false, - "shower_timer": true, - "shower_alert": false, - "shower_alert_coldshot": 10, - "shower_alert_trigger": 7, - "shower_min_duration": 180, - "rx_gpio": 4, - "tx_gpio": 5, - "dallas_gpio": 14, - "dallas_parasite": false, - "led_gpio": 2, - "hide_led": true, - "low_clock": false, - "telnet_enabled": true, - "notoken_api": false, - "readonly_mode": false, - "analog_enabled": true, - "pbutton_gpio": 34, - "solar_maxflow": 30, - "board_profile": "E32V2", - "fahrenheit": false, - "bool_format": 1, - "bool_dashboard": 1, - "enum_format": 1, - "weblog_level": 6, - "weblog_buffer": 50, - "weblog_compact": true, - "phy_type": 1, - "eth_power": 15, - "eth_phy_addr": 0, - "eth_clock_mode": 1, - "platform": "ESP32R", - "modbus_enabled": false, - "modbus_port": 502, - "modbus_max_clients": 10, - "modbus_timeout": 10000 + locale: 'en', + tx_mode: 1, + ems_bus_id: 11, + syslog_enabled: false, + syslog_level: 3, + trace_raw: false, + syslog_mark_interval: 0, + syslog_host: '192.168.1.8', + syslog_port: 514, + boiler_heatingoff: false, + remote_timeout: 24, + remote_timeout_en: false, + shower_timer: true, + shower_alert: false, + shower_alert_coldshot: 10, + shower_alert_trigger: 7, + shower_min_duration: 180, + rx_gpio: 4, + tx_gpio: 5, + dallas_gpio: 14, + dallas_parasite: false, + led_gpio: 2, + hide_led: true, + low_clock: false, + telnet_enabled: true, + notoken_api: false, + readonly_mode: false, + analog_enabled: true, + pbutton_gpio: 34, + solar_maxflow: 30, + board_profile: 'E32V2', + fahrenheit: false, + bool_format: 1, + bool_dashboard: 1, + enum_format: 1, + weblog_level: 6, + weblog_buffer: 50, + weblog_compact: true, + phy_type: 1, + eth_power: 15, + eth_phy_addr: 0, + eth_clock_mode: 1, + platform: 'ESP32R', + modbus_enabled: false, + modbus_port: 502, + modbus_max_clients: 10, + modbus_timeout: 10000 }; const emsesp_devices = { @@ -730,7 +742,7 @@ const emsesp_devices = { t: 6, tn: 'Thermostat', url: 'thermostat' - }, + } ] }; @@ -817,37 +829,37 @@ const emsesp_coredata = { e: 22 }, { - "id": 8, - "tn": "Boiler/HP", - "t": 5, - "b": "", - "n": "Bosch Compress 7000i AW Heat Pump", - "d": 8, - "p": 172, - "v": "01.20", - "e": 152 + id: 8, + tn: 'Boiler/HP', + t: 5, + b: '', + n: 'Bosch Compress 7000i AW Heat Pump', + d: 8, + p: 172, + v: '01.20', + e: 152 }, { - "id": 9, - "tn": "Thermostat", - "t": 6, - "b": "", - "n": "RC100H", - "d": 56, - "p": 200, - "v": "40.07", - "e": 4 + id: 9, + tn: 'Thermostat', + t: 6, + b: '', + n: 'RC100H', + d: 56, + p: 200, + v: '40.07', + e: 4 }, { - "id": 10, - "tn": "Thermostat", - "t": 6, - "b": "", - "n": "RC310", - "d": 16, - "p": 158, - "v": "73.03", - "e": 63 + id: 10, + tn: 'Thermostat', + t: 6, + b: '', + n: 'RC310', + d: 16, + p: 158, + v: '73.03', + e: 63 } ] }; @@ -1249,7 +1261,19 @@ const emsesp_devicedata_1 = { u: 0, id: '00hc2 program', c: 'hc2/program', - l: ['own 1', 'family', 'morning', 'evening', 'am', 'pm', 'midday', 'singles', 'seniors', 'new', 'own 2'] + l: [ + 'own 1', + 'family', + 'morning', + 'evening', + 'am', + 'pm', + 'midday', + 'singles', + 'seniors', + 'new', + 'own 2' + ] }, { v: 0, @@ -1530,7 +1554,15 @@ const emsesp_devicedata_3 = { u: 0, id: '00boiler pump characteristic', c: 'pumpcharacter', - l: ['proportional', 'pressure1', 'pressure2', 'pressure3', 'pressure4', 'pressure5', 'pressure6'] + l: [ + 'proportional', + 'pressure1', + 'pressure2', + 'pressure3', + 'pressure4', + 'pressure5', + 'pressure6' + ] }, { v: 6, @@ -1770,7 +1802,16 @@ const emsesp_devicedata_3 = { u: 0, id: '00dhw circulation pump mode', c: 'dhw/circmode', - l: ['off', '1x3min', '2x3min', '3x3min', '4x3min', '5x3min', '6x3min', 'continuous'] + l: [ + 'off', + '1x3min', + '2x3min', + '3x3min', + '4x3min', + '5x3min', + '6x3min', + 'continuous' + ] }, { v: 'off', @@ -2097,7 +2138,13 @@ const emsesp_devicedata_7 = { { v: 'off', u: 0, id: '00fan' }, { v: 'off', u: 0, id: '00ignition' }, { v: 'off', u: 0, id: '00oil preheating' }, - { v: 'on', u: 0, id: '00heating activated', c: 'heatingactivated', l: ['off', 'on'] }, + { + v: 'on', + u: 0, + id: '00heating activated', + c: 'heatingactivated', + l: ['off', 'on'] + }, { v: 80, u: 1, id: '00heating temperature', c: 'heatingtemp' }, { v: 70, u: 3, id: '00burner pump max power', c: 'pumpmodmax' }, { v: 30, u: 3, id: '00burner pump min power', c: 'pumpmodmin' }, @@ -2118,17 +2165,47 @@ const emsesp_devicedata_7 = { { v: '0H', u: 0, id: '00service code' }, { v: 203, u: 0, id: '00service code number' }, { v: 'H00', u: 0, id: '00maintenance message' }, - { v: 'manual', u: 0, id: '00maintenance scheduled', c: 'maintenance', l: ['off', 'time', 'date', 'manual'] }, + { + v: 'manual', + u: 0, + id: '00maintenance scheduled', + c: 'maintenance', + l: ['off', 'time', 'date', 'manual'] + }, { v: 6000, u: 7, id: '00time to next maintenance', c: 'maintenancetime' }, - { v: '01.01.2012', u: 0, id: '00next maintenance date', c: 'maintenancedate', h: 'dd.mm.yyyy' }, - { v: 'on', u: 0, id: '00dhw turn on/off', c: 'dhw/tapactivated', l: ['off', 'on'] }, + { + v: '01.01.2012', + u: 0, + id: '00next maintenance date', + c: 'maintenancedate', + h: 'dd.mm.yyyy' + }, + { + v: 'on', + u: 0, + id: '00dhw turn on/off', + c: 'dhw/tapactivated', + l: ['off', 'on'] + }, { v: 62, u: 1, id: '00dhw set temperature' }, { v: 60, u: 1, id: '00dhw selected temperature', c: 'dhw/seltemp' }, { v: 'flow', u: 0, id: '00dhw type' }, - { v: 'hot', u: 0, id: '00dhw comfort', c: 'dhw/comfort', l: ['hot', 'eco', 'intelligent'] }, + { + v: 'hot', + u: 0, + id: '00dhw comfort', + c: 'dhw/comfort', + l: ['hot', 'eco', 'intelligent'] + }, { v: 40, u: 2, id: '00dhw flow temperature offset', c: 'dhw/flowtempoffset' }, { v: 100, u: 3, id: '00dhw max power', c: 'dhw/maxpower' }, - { v: 'off', u: 0, id: '00dhw circulation pump available', c: 'dhw/circpump', l: ['off', 'on'] }, + { + v: 'off', + u: 0, + id: '00dhw circulation pump available', + c: 'dhw/circpump', + l: ['off', 'on'] + }, { v: '3-way valve', u: 0, id: '00dhw charging type' }, { v: -5, u: 2, id: '00dhw hysteresis on temperature', c: 'dhw/hyston' }, { v: 0, u: 2, id: '00dhw hysteresis off temperature', c: 'dhw/hystoff' }, @@ -2138,15 +2215,42 @@ const emsesp_devicedata_7 = { u: 0, id: '00dhw circulation pump mode', c: 'dhw/circmode', - l: ['off', '1x3min', '2x3min', '3x3min', '4x3min', '5x3min', '6x3min', 'continuous'] + l: [ + 'off', + '1x3min', + '2x3min', + '3x3min', + '4x3min', + '5x3min', + '6x3min', + 'continuous' + ] + }, + { + v: 'off', + u: 0, + id: '00dhw circulation active', + c: 'dhw/circ', + l: ['off', 'on'] }, - { v: 'off', u: 0, id: '00dhw circulation active', c: 'dhw/circ', l: ['off', 'on'] }, { v: 47.3, u: 1, id: '00dhw current intern temperature' }, { v: 0, u: 4, id: '00dhw current tap water flow' }, { v: 47.3, u: 1, id: '00dhw storage intern temperature' }, { v: 'on', u: 0, id: '00dhw activated', c: 'dhw/activated', l: ['off', 'on'] }, - { v: 'off', u: 0, id: '00dhw one time charging', c: 'dhw/onetime', l: ['off', 'on'] }, - { v: 'off', u: 0, id: '00dhw disinfecting', c: 'dhw/disinfecting', l: ['off', 'on'] }, + { + v: 'off', + u: 0, + id: '00dhw one time charging', + c: 'dhw/onetime', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00dhw disinfecting', + c: 'dhw/disinfecting', + l: ['off', 'on'] + }, { v: 'off', u: 0, id: '00dhw charging' }, { v: 'off', u: 0, id: '00dhw recharging' }, { v: 'on', u: 0, id: '00dhw temperature ok' }, @@ -2159,1685 +2263,1496 @@ const emsesp_devicedata_7 = { }; const emsesp_devicedata_8 = { - "data": [ + data: [ { - "v": "", - "u": 0, - "id": "00reset", - "c": "reset", - "l": [ - "-", - "maintenance", - "error", - "history", - "message" + v: '', + u: 0, + id: '00reset', + c: 'reset', + l: ['-', 'maintenance', 'error', 'history', 'message'] + }, + { + v: 'off', + u: 0, + id: '00force heating off', + c: 'heatingoff', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00heating active' + }, + { + v: 'off', + u: 0, + id: '00tapwater active' + }, + { + v: 19, + u: 1, + id: '00selected flow temperature', + c: 'selflowtemp', + m: 0, + x: 90, + s: '1' + }, + { + v: 0, + u: 3, + id: '00heating pump modulation' + }, + { + v: 30.299999237060547, + u: 1, + id: '00outside temperature' + }, + { + v: 18.700000762939453, + u: 1, + id: '00current flow temperature' + }, + { + v: 21.399999618530273, + u: 1, + id: '00return temperature' + }, + { + v: 18.700000762939453, + u: 1, + id: '00low loss header' + }, + { + v: 'on', + u: 0, + id: '00heating activated', + c: 'heatingactivated', + l: ['off', 'on'] + }, + { + v: 85, + u: 1, + id: '00heating temperature', + c: 'heatingtemp', + m: 0, + x: 90, + s: '1' + }, + { + v: 'on', + u: 0, + id: '00heating pump' + }, + { + v: 44, + u: 3, + id: '00burner selected max power', + c: 'selburnpow', + m: 0, + x: 254, + s: '1' + }, + { + v: 45, + u: 3, + id: '00burner current power' + }, + { + v: 0, + u: 0, + id: '00burner starts' + }, + { + v: 0, + u: 8, + id: '00total burner operating time' + }, + { + v: 0, + u: 8, + id: '00burner stage 2 operating time' + }, + { + v: 0, + u: 8, + id: '00total heat operating time' + }, + { + v: 0, + u: 0, + id: '00burner starts heating' + }, + { + v: 764598, + u: 8, + id: '00total UBA operating time' + }, + { + v: 'A01(5453) 01.06.2023 09:23 - 01.06.2023 09:31', + u: 0, + id: '00last error code' + }, + { + v: ' 0H', + u: 0, + id: '00service code' + }, + { + v: 203, + u: 0, + id: '00service code number' + }, + { + v: 'off', + u: 0, + id: '00emergency operation', + c: 'emergencyops', + l: ['off', 'on'] + }, + { + v: 0, + u: 1, + id: '00emergency temperature', + c: 'emergencytemp', + m: 0, + x: 70, + s: '1' + }, + { + v: 763575, + u: 8, + id: '00heatpump total uptime' + }, + { + v: 309983, + u: 8, + id: '00total operating time heat' + }, + { + v: 203673, + u: 8, + id: '00operating time compressor heating' + }, + { + v: 29682, + u: 8, + id: '00operating time compressor cooling' + }, + { + v: 76627, + u: 8, + id: '00dhw operating time compressor' + }, + { + v: 0, + u: 8, + id: '00operating time compressor pool' + }, + { + v: 2054, + u: 0, + id: '00total compressor control starts' + }, + { + v: 1287, + u: 0, + id: '00heating control starts' + }, + { + v: 160, + u: 0, + id: '00cooling control starts' + }, + { + v: 607, + u: 0, + id: '00dhw control starts2' + }, + { + v: 0, + u: 0, + id: '00pool control starts' + }, + { + v: 5368, + u: 5, + id: '00total energy consumption' + }, + { + v: 5336, + u: 5, + id: '00total energy consumption compressor' + }, + { + v: 2977, + u: 5, + id: '00energy consumption compressor heating' + }, + { + v: 2047, + u: 5, + id: '00dhw energy consumption compressor' + }, + { + v: 295, + u: 5, + id: '00energy consumption compressor cooling' + }, + { + v: 0, + u: 5, + id: '00energy consumption compressor pool' + }, + { + v: 32, + u: 5, + id: '00total aux elec. heater energy consumption' + }, + { + v: 0, + u: 5, + id: '00aux elec. heater energy consumption heating' + }, + { + v: 32, + u: 5, + id: '00dhw aux elec. heater energy consumption' + }, + { + v: 0, + u: 5, + id: '00aux elec. heater energy consumption pool' + }, + { + v: 19052, + u: 5, + id: '00total energy supplied' + }, + { + v: 11053, + u: 5, + id: '00total energy supplied heating' + }, + { + v: 5978, + u: 5, + id: '00dhw total energy warm supplied' + }, + { + v: 2019, + u: 5, + id: '00total energy supplied cooling' + }, + { + v: 0, + u: 5, + id: '00total energy supplied pool' + }, + { + v: 4.5, + u: 11, + id: '00compressor power output' + }, + { + v: 100, + u: 3, + id: '00compressor max power', + c: 'hpmaxpower', + m: 0, + x: 100, + s: '1' + }, + { + v: 'off', + u: 0, + id: '00hp compressor' + }, + { + v: 'cooling', + u: 0, + id: '00compressor activity' + }, + { + v: 0, + u: 3, + id: '00brine pump speed' + }, + { + v: 'off', + u: 0, + id: '00switch valve' + }, + { + v: 45, + u: 3, + id: '00compressor speed' + }, + { + v: 33, + u: 3, + id: '00circulation pump speed' + }, + { + v: 0, + u: 1, + id: '00brine in/evaporator' + }, + { + v: 0, + u: 1, + id: '00brine out/condenser' + }, + { + v: 21.399999618530273, + u: 1, + id: '00heat carrier return (TC0)' + }, + { + v: 17.5, + u: 1, + id: '00heat carrier forward (TC1)' + }, + { + v: 18, + u: 1, + id: '00condenser temperature (TC3)' + }, + { + v: 51.599998474121094, + u: 1, + id: '00compressor temperature (TR1)' + }, + { + v: 14.600000381469727, + u: 1, + id: '00refrigerant temperature liquid side (condenser output) (TR3)' + }, + { + v: 37, + u: 1, + id: '00evaporator inlet temperature (TR4)' + }, + { + v: 20.200000762939453, + u: 1, + id: '00compressor inlet temperature (TR5)' + }, + { + v: 54.599998474121094, + u: 1, + id: '00compressor outlet temperature (TR6)' + }, + { + v: 29.600000381469727, + u: 1, + id: '00air inlet temperature (TL2)' + }, + { + v: 13.899999618530273, + u: 1, + id: '00low pressure side temperature (PL1)' + }, + { + v: 37.79999923706055, + u: 1, + id: '00high pressure side temperature (PH1)' + }, + { + v: 25.600000381469727, + u: 1, + id: '00drain pan temp (TA4)' + }, + { + v: 58.5, + u: 1, + id: '00reservoir temp (TW1)' + }, + { + v: 28, + u: 1, + id: '00pool set temperature', + c: 'poolsettemp', + m: 0, + x: 127, + s: '0.5' + }, + { + v: 'cooling & defrost', + u: 0, + id: '004-way valve (VR4)' + }, + { + v: 'off', + u: 0, + id: '00input 1 state' + }, + { + v: '000000000000000', + u: 0, + id: '00input 1 options', + c: 'hpin1opt', + h: '[]' + }, + { + v: 'off', + u: 0, + id: '00input 2 state' + }, + { + v: '000000000000000', + u: 0, + id: '00input 2 options', + c: 'hpin2opt', + h: '[]' + }, + { + v: 'off', + u: 0, + id: '00input 3 state' + }, + { + v: '000000000000000', + u: 0, + id: '00input 3 options', + c: 'hpin3opt', + h: '[]' + }, + { + v: 'off', + u: 0, + id: '00input 4 state' + }, + { + v: '000000000000', + u: 0, + id: '00input 4 options', + c: 'hpin4opt', + h: '[]' + }, + { + v: '6 kW', + u: 0, + id: '00heat limit compressor', + c: 'maxheatcomp', + l: ['0 kW', '2 kW', '3 kW', '4 kW', '6 kW', '9 kW'] + }, + { + v: '9 kW', + u: 0, + id: '00heat limit heating', + c: 'maxheatheat', + l: ['0 kW', '2 kW', '3 kW', '4 kW', '6 kW', '9 kW'] + }, + { + v: '9 kW', + u: 0, + id: '00dhw heat limit', + c: 'dhw/maxheat', + l: ['0 kW', '2 kW', '3 kW', '4 kW', '6 kW', '9 kW'] + }, + { + v: 'on', + u: 0, + id: '00manual defrost', + c: 'mandefrost', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00cooling only with PV', + c: 'pvcooling', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00aux heater only', + c: 'auxheateronly', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00disable aux heater', + c: 'auxheateroff', + l: ['off', 'on'] + }, + { + v: 0, + u: 3, + id: '00aux heater status' + }, + { + v: 500, + u: 21, + id: '00aux heater on delay', + c: 'auxheaterdelay', + m: 10, + x: 1000, + s: '10' + }, + { + v: 0, + u: 22, + id: '00aux heater max limit', + c: 'auxmaxlimit', + m: 0, + x: 10, + s: '0.1' + }, + { + v: 0.10000000149011612, + u: 22, + id: '00aux heater limit start', + c: 'auxlimitstart', + m: 0, + x: 10, + s: '0.1' + }, + { + v: 'eco', + u: 0, + id: '00aux heater mode', + c: 'auxheatrmode', + l: ['eco', 'comfort'] + }, + { + v: 0, + u: 21, + id: '00on/off hyst heat', + c: 'hphystheat', + m: 0, + x: 1500, + s: '5' + }, + { + v: 0, + u: 21, + id: '00on/off hyst cool', + c: 'hphystcool', + m: 0, + x: 1500, + s: '5' + }, + { + v: 1125, + u: 21, + id: '00on/off hyst pool', + c: 'hphystpool', + m: 50, + x: 1500, + s: '5' + }, + { + v: 'auto', + u: 0, + id: '00silent mode', + c: 'silentmode', + l: ['off', 'auto', 'on'] + }, + { + v: 1320, + u: 8, + id: '00silent mode from', + c: 'silentfrom', + m: 0, + x: 3810, + s: '15' + }, + { + v: 360, + u: 8, + id: '00silent mode to', + c: 'silentto', + m: 0, + x: 3810, + s: '15' + }, + { + v: -10, + u: 1, + id: '00min outside temp for silent mode', + c: 'mintempsilent', + m: -126, + x: 126, + s: '1' + }, + { + v: -5, + u: 1, + id: '00outside temp parallel mode', + c: 'tempparmode', + m: -126, + x: 126, + s: '1' + }, + { + v: 0, + u: 3, + id: '00aux heater mixing valve' + }, + { + v: 7, + u: 22, + id: '00temp diff TC3/TC0 heat', + c: 'tempdiffheat', + m: 2, + x: 10, + s: '0.1' + }, + { + v: 3, + u: 22, + id: '00temp diff TC3/TC0 cool', + c: 'tempdiffcool', + m: 2, + x: 10, + s: '0.1' + }, + { + v: 'off', + u: 0, + id: '00valve/pump cooling', + c: 'vpcooling', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00heating cable', + c: 'heatcable', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00VC0 valve', + c: 'vc0valve', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00primary heatpump', + c: 'primepump', + l: ['off', 'on'] + }, + { + v: 0, + u: 3, + id: '00primary heatpump modulation', + c: 'primepumpmod', + m: 0, + x: 100, + s: '1' + }, + { + v: 'off', + u: 0, + id: '003-way valve', + c: 'hp3way', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00el. heater step 1', + c: 'elheatstep1', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00el. heater step 2', + c: 'elheatstep2', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00el. heater step 3', + c: 'elheatstep3', + l: ['off', 'on'] + }, + { + v: 'off', + u: 0, + id: '00condensate reservoir heating (EA0)' + }, + { + v: 'auto', + u: 0, + id: '00primary heatpump mode', + c: 'hppumpmode', + l: ['auto', 'continuous'] + }, + { + v: '', + u: 0, + id: '00shutdown', + c: 'shutdown', + l: ['off', 'on'] + }, + { + v: 'on', + u: 0, + id: '00dhw alternating operation', + c: 'dhw/alternatingop', + l: ['off', 'on'] + }, + { + v: 35, + u: 8, + id: '00dhw prioritise heating during dhw', + c: 'dhw/altopprioheat', + m: 20, + x: 120, + s: '1' + }, + { + v: 45, + u: 8, + id: '00dhw prioritise dhw during heating', + c: 'dhw/altopprio', + m: 30, + x: 120, + s: '1' + }, + { + v: 57, + u: 1, + id: '00dhw comfort switch off', + c: 'dhw/comfoff', + m: 15, + x: 65, + s: '1' + }, + { + v: 54, + u: 1, + id: '00dhw eco switch off', + c: 'dhw/ecooff', + m: 15, + x: 65, + s: '1' + }, + { + v: 50, + u: 1, + id: '00dhw eco+ switch off', + c: 'dhw/ecoplusoff', + m: 48, + x: 63, + s: '1' + }, + { + v: 'off', + u: 0, + id: '00dhw circulation pump available during dhw', + c: 'dhw/hpcircpump', + l: ['off', 'on'] + }, + { + v: 54, + u: 1, + id: '00dhw set temperature' + }, + { + v: 45, + u: 1, + id: '00dhw selected temperature', + c: 'dhw/seltemp', + m: 0, + x: 254, + s: '1' + }, + { + v: 42, + u: 1, + id: '00dhw selected lower temperature', + c: 'dhw/seltemplow', + m: 0, + x: 254, + s: '1' + }, + { + v: 65, + u: 1, + id: '00dhw single charge temperature', + c: 'dhw/seltempsingle', + m: 0, + x: 254, + s: '1' + }, + { + v: 'high comfort', + u: 0, + id: '00dhw comfort mode', + c: 'dhw/comfort1', + l: ['high comfort', 'eco'] + }, + { + v: 25, + u: 2, + id: '00dhw flow temperature offset', + c: 'dhw/flowtempoffset', + m: 0, + x: 100, + s: '1' + }, + { + v: 56, + u: 1, + id: '00dhw maximum temperature', + c: 'dhw/maxtemp', + m: 0, + x: 80, + s: '1' + }, + { + v: 'on', + u: 0, + id: '00dhw circulation pump available', + c: 'dhw/circpump', + l: ['off', 'on'] + }, + { + v: -2, + u: 2, + id: '00dhw hysteresis on temperature', + c: 'dhw/hyston', + m: -126, + x: 126, + s: '1' + }, + { + v: 0, + u: 2, + id: '00dhw hysteresis off temperature', + c: 'dhw/hystoff', + m: -126, + x: 126, + s: '1' + }, + { + v: 65, + u: 1, + id: '00dhw disinfection temperature', + c: 'dhw/disinfectiontemp', + m: 60, + x: 80, + s: '1' + }, + { + v: '3x3min', + u: 0, + id: '00dhw circulation pump mode', + c: 'dhw/circmode', + l: [ + 'off', + '1x3min', + '2x3min', + '3x3min', + '4x3min', + '5x3min', + '6x3min', + 'continuous' ] }, { - "v": "off", - "u": 0, - "id": "00force heating off", - "c": "heatingoff", - "l": [ - "off", - "on" - ] + v: 'off', + u: 0, + id: '00dhw circulation active', + c: 'dhw/circ', + l: ['off', 'on'] }, { - "v": "off", - "u": 0, - "id": "00heating active" + v: 58.70000076293945, + u: 1, + id: '00dhw current intern temperature' }, { - "v": "off", - "u": 0, - "id": "00tapwater active" + v: 58.5, + u: 1, + id: '00dhw current extern temperature' }, { - "v": 19, - "u": 1, - "id": "00selected flow temperature", - "c": "selflowtemp", - "m": 0, - "x": 90, - "s": "1" + v: 0, + u: 4, + id: '00dhw current tap water flow' }, { - "v": 0, - "u": 3, - "id": "00heating pump modulation" + v: 'on', + u: 0, + id: '00dhw activated', + c: 'dhw/activated', + l: ['off', 'on'] }, { - "v": 30.299999237060547, - "u": 1, - "id": "00outside temperature" + v: 'off', + u: 0, + id: '00dhw one time charging', + c: 'dhw/onetime', + l: ['off', 'on'] }, { - "v": 18.700000762939453, - "u": 1, - "id": "00current flow temperature" + v: 'off', + u: 0, + id: '00dhw disinfecting', + c: 'dhw/disinfecting', + l: ['off', 'on'] }, { - "v": 21.399999618530273, - "u": 1, - "id": "00return temperature" + v: 'off', + u: 0, + id: '00dhw charging' }, { - "v": 18.700000762939453, - "u": 1, - "id": "00low loss header" + v: 'off', + u: 0, + id: '00dhw recharging' }, { - "v": "on", - "u": 0, - "id": "00heating activated", - "c": "heatingactivated", - "l": [ - "off", - "on" - ] + v: 'off', + u: 0, + id: '00dhw temperature ok' }, { - "v": 85, - "u": 1, - "id": "00heating temperature", - "c": "heatingtemp", - "m": 0, - "x": 90, - "s": "1" + v: 'off', + u: 0, + id: '00dhw 3-way valve active' }, { - "v": "on", - "u": 0, - "id": "00heating pump" + v: 0, + u: 0, + id: '00dhw starts' }, { - "v": 44, - "u": 3, - "id": "00burner selected max power", - "c": "selburnpow", - "m": 0, - "x": 254, - "s": "1" - }, - { - "v": 45, - "u": 3, - "id": "00burner current power" - }, - { - "v": 0, - "u": 0, - "id": "00burner starts" - }, - { - "v": 0, - "u": 8, - "id": "00total burner operating time" - }, - { - "v": 0, - "u": 8, - "id": "00burner stage 2 operating time" - }, - { - "v": 0, - "u": 8, - "id": "00total heat operating time" - }, - { - "v": 0, - "u": 0, - "id": "00burner starts heating" - }, - { - "v": 764598, - "u": 8, - "id": "00total UBA operating time" - }, - { - "v": "A01(5453) 01.06.2023 09:23 - 01.06.2023 09:31", - "u": 0, - "id": "00last error code" - }, - { - "v": " 0H", - "u": 0, - "id": "00service code" - }, - { - "v": 203, - "u": 0, - "id": "00service code number" - }, - { - "v": "off", - "u": 0, - "id": "00emergency operation", - "c": "emergencyops", - "l": [ - "off", - "on" - ] - }, - { - "v": 0, - "u": 1, - "id": "00emergency temperature", - "c": "emergencytemp", - "m": 0, - "x": 70, - "s": "1" - }, - { - "v": 763575, - "u": 8, - "id": "00heatpump total uptime" - }, - { - "v": 309983, - "u": 8, - "id": "00total operating time heat" - }, - { - "v": 203673, - "u": 8, - "id": "00operating time compressor heating" - }, - { - "v": 29682, - "u": 8, - "id": "00operating time compressor cooling" - }, - { - "v": 76627, - "u": 8, - "id": "00dhw operating time compressor" - }, - { - "v": 0, - "u": 8, - "id": "00operating time compressor pool" - }, - { - "v": 2054, - "u": 0, - "id": "00total compressor control starts" - }, - { - "v": 1287, - "u": 0, - "id": "00heating control starts" - }, - { - "v": 160, - "u": 0, - "id": "00cooling control starts" - }, - { - "v": 607, - "u": 0, - "id": "00dhw control starts2" - }, - { - "v": 0, - "u": 0, - "id": "00pool control starts" - }, - { - "v": 5368, - "u": 5, - "id": "00total energy consumption" - }, - { - "v": 5336, - "u": 5, - "id": "00total energy consumption compressor" - }, - { - "v": 2977, - "u": 5, - "id": "00energy consumption compressor heating" - }, - { - "v": 2047, - "u": 5, - "id": "00dhw energy consumption compressor" - }, - { - "v": 295, - "u": 5, - "id": "00energy consumption compressor cooling" - }, - { - "v": 0, - "u": 5, - "id": "00energy consumption compressor pool" - }, - { - "v": 32, - "u": 5, - "id": "00total aux elec. heater energy consumption" - }, - { - "v": 0, - "u": 5, - "id": "00aux elec. heater energy consumption heating" - }, - { - "v": 32, - "u": 5, - "id": "00dhw aux elec. heater energy consumption" - }, - { - "v": 0, - "u": 5, - "id": "00aux elec. heater energy consumption pool" - }, - { - "v": 19052, - "u": 5, - "id": "00total energy supplied" - }, - { - "v": 11053, - "u": 5, - "id": "00total energy supplied heating" - }, - { - "v": 5978, - "u": 5, - "id": "00dhw total energy warm supplied" - }, - { - "v": 2019, - "u": 5, - "id": "00total energy supplied cooling" - }, - { - "v": 0, - "u": 5, - "id": "00total energy supplied pool" - }, - { - "v": 4.5, - "u": 11, - "id": "00compressor power output" - }, - { - "v": 100, - "u": 3, - "id": "00compressor max power", - "c": "hpmaxpower", - "m": 0, - "x": 100, - "s": "1" - }, - { - "v": "off", - "u": 0, - "id": "00hp compressor" - }, - { - "v": "cooling", - "u": 0, - "id": "00compressor activity" - }, - { - "v": 0, - "u": 3, - "id": "00brine pump speed" - }, - { - "v": "off", - "u": 0, - "id": "00switch valve" - }, - { - "v": 45, - "u": 3, - "id": "00compressor speed" - }, - { - "v": 33, - "u": 3, - "id": "00circulation pump speed" - }, - { - "v": 0, - "u": 1, - "id": "00brine in/evaporator" - }, - { - "v": 0, - "u": 1, - "id": "00brine out/condenser" - }, - { - "v": 21.399999618530273, - "u": 1, - "id": "00heat carrier return (TC0)" - }, - { - "v": 17.5, - "u": 1, - "id": "00heat carrier forward (TC1)" - }, - { - "v": 18, - "u": 1, - "id": "00condenser temperature (TC3)" - }, - { - "v": 51.599998474121094, - "u": 1, - "id": "00compressor temperature (TR1)" - }, - { - "v": 14.600000381469727, - "u": 1, - "id": "00refrigerant temperature liquid side (condenser output) (TR3)" - }, - { - "v": 37, - "u": 1, - "id": "00evaporator inlet temperature (TR4)" - }, - { - "v": 20.200000762939453, - "u": 1, - "id": "00compressor inlet temperature (TR5)" - }, - { - "v": 54.599998474121094, - "u": 1, - "id": "00compressor outlet temperature (TR6)" - }, - { - "v": 29.600000381469727, - "u": 1, - "id": "00air inlet temperature (TL2)" - }, - { - "v": 13.899999618530273, - "u": 1, - "id": "00low pressure side temperature (PL1)" - }, - { - "v": 37.79999923706055, - "u": 1, - "id": "00high pressure side temperature (PH1)" - }, - { - "v": 25.600000381469727, - "u": 1, - "id": "00drain pan temp (TA4)" - }, - { - "v": 58.5, - "u": 1, - "id": "00reservoir temp (TW1)" - }, - { - "v": 28, - "u": 1, - "id": "00pool set temperature", - "c": "poolsettemp", - "m": 0, - "x": 127, - "s": "0.5" - }, - { - "v": "cooling & defrost", - "u": 0, - "id": "004-way valve (VR4)" - }, - { - "v": "off", - "u": 0, - "id": "00input 1 state" - }, - { - "v": "000000000000000", - "u": 0, - "id": "00input 1 options", - "c": "hpin1opt", - "h": "[]" - }, - { - "v": "off", - "u": 0, - "id": "00input 2 state" - }, - { - "v": "000000000000000", - "u": 0, - "id": "00input 2 options", - "c": "hpin2opt", - "h": "[]" - }, - { - "v": "off", - "u": 0, - "id": "00input 3 state" - }, - { - "v": "000000000000000", - "u": 0, - "id": "00input 3 options", - "c": "hpin3opt", - "h": "[]" - }, - { - "v": "off", - "u": 0, - "id": "00input 4 state" - }, - { - "v": "000000000000", - "u": 0, - "id": "00input 4 options", - "c": "hpin4opt", - "h": "[]" - }, - { - "v": "6 kW", - "u": 0, - "id": "00heat limit compressor", - "c": "maxheatcomp", - "l": [ - "0 kW", - "2 kW", - "3 kW", - "4 kW", - "6 kW", - "9 kW" - ] - }, - { - "v": "9 kW", - "u": 0, - "id": "00heat limit heating", - "c": "maxheatheat", - "l": [ - "0 kW", - "2 kW", - "3 kW", - "4 kW", - "6 kW", - "9 kW" - ] - }, - { - "v": "9 kW", - "u": 0, - "id": "00dhw heat limit", - "c": "dhw/maxheat", - "l": [ - "0 kW", - "2 kW", - "3 kW", - "4 kW", - "6 kW", - "9 kW" - ] - }, - { - "v": "on", - "u": 0, - "id": "00manual defrost", - "c": "mandefrost", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00cooling only with PV", - "c": "pvcooling", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00aux heater only", - "c": "auxheateronly", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00disable aux heater", - "c": "auxheateroff", - "l": [ - "off", - "on" - ] - }, - { - "v": 0, - "u": 3, - "id": "00aux heater status" - }, - { - "v": 500, - "u": 21, - "id": "00aux heater on delay", - "c": "auxheaterdelay", - "m": 10, - "x": 1000, - "s": "10" - }, - { - "v": 0, - "u": 22, - "id": "00aux heater max limit", - "c": "auxmaxlimit", - "m": 0, - "x": 10, - "s": "0.1" - }, - { - "v": 0.10000000149011612, - "u": 22, - "id": "00aux heater limit start", - "c": "auxlimitstart", - "m": 0, - "x": 10, - "s": "0.1" - }, - { - "v": "eco", - "u": 0, - "id": "00aux heater mode", - "c": "auxheatrmode", - "l": [ - "eco", - "comfort" - ] - }, - { - "v": 0, - "u": 21, - "id": "00on/off hyst heat", - "c": "hphystheat", - "m": 0, - "x": 1500, - "s": "5" - }, - { - "v": 0, - "u": 21, - "id": "00on/off hyst cool", - "c": "hphystcool", - "m": 0, - "x": 1500, - "s": "5" - }, - { - "v": 1125, - "u": 21, - "id": "00on/off hyst pool", - "c": "hphystpool", - "m": 50, - "x": 1500, - "s": "5" - }, - { - "v": "auto", - "u": 0, - "id": "00silent mode", - "c": "silentmode", - "l": [ - "off", - "auto", - "on" - ] - }, - { - "v": 1320, - "u": 8, - "id": "00silent mode from", - "c": "silentfrom", - "m": 0, - "x": 3810, - "s": "15" - }, - { - "v": 360, - "u": 8, - "id": "00silent mode to", - "c": "silentto", - "m": 0, - "x": 3810, - "s": "15" - }, - { - "v": -10, - "u": 1, - "id": "00min outside temp for silent mode", - "c": "mintempsilent", - "m": -126, - "x": 126, - "s": "1" - }, - { - "v": -5, - "u": 1, - "id": "00outside temp parallel mode", - "c": "tempparmode", - "m": -126, - "x": 126, - "s": "1" - }, - { - "v": 0, - "u": 3, - "id": "00aux heater mixing valve" - }, - { - "v": 7, - "u": 22, - "id": "00temp diff TC3/TC0 heat", - "c": "tempdiffheat", - "m": 2, - "x": 10, - "s": "0.1" - }, - { - "v": 3, - "u": 22, - "id": "00temp diff TC3/TC0 cool", - "c": "tempdiffcool", - "m": 2, - "x": 10, - "s": "0.1" - }, - { - "v": "off", - "u": 0, - "id": "00valve/pump cooling", - "c": "vpcooling", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00heating cable", - "c": "heatcable", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00VC0 valve", - "c": "vc0valve", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00primary heatpump", - "c": "primepump", - "l": [ - "off", - "on" - ] - }, - { - "v": 0, - "u": 3, - "id": "00primary heatpump modulation", - "c": "primepumpmod", - "m": 0, - "x": 100, - "s": "1" - }, - { - "v": "off", - "u": 0, - "id": "003-way valve", - "c": "hp3way", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00el. heater step 1", - "c": "elheatstep1", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00el. heater step 2", - "c": "elheatstep2", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00el. heater step 3", - "c": "elheatstep3", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00condensate reservoir heating (EA0)" - }, - { - "v": "auto", - "u": 0, - "id": "00primary heatpump mode", - "c": "hppumpmode", - "l": [ - "auto", - "continuous" - ] - }, - { - "v": "", - "u": 0, - "id": "00shutdown", - "c": "shutdown", - "l": [ - "off", - "on" - ] - }, - { - "v": "on", - "u": 0, - "id": "00dhw alternating operation", - "c": "dhw/alternatingop", - "l": [ - "off", - "on" - ] - }, - { - "v": 35, - "u": 8, - "id": "00dhw prioritise heating during dhw", - "c": "dhw/altopprioheat", - "m": 20, - "x": 120, - "s": "1" - }, - { - "v": 45, - "u": 8, - "id": "00dhw prioritise dhw during heating", - "c": "dhw/altopprio", - "m": 30, - "x": 120, - "s": "1" - }, - { - "v": 57, - "u": 1, - "id": "00dhw comfort switch off", - "c": "dhw/comfoff", - "m": 15, - "x": 65, - "s": "1" - }, - { - "v": 54, - "u": 1, - "id": "00dhw eco switch off", - "c": "dhw/ecooff", - "m": 15, - "x": 65, - "s": "1" - }, - { - "v": 50, - "u": 1, - "id": "00dhw eco+ switch off", - "c": "dhw/ecoplusoff", - "m": 48, - "x": 63, - "s": "1" - }, - { - "v": "off", - "u": 0, - "id": "00dhw circulation pump available during dhw", - "c": "dhw/hpcircpump", - "l": [ - "off", - "on" - ] - }, - { - "v": 54, - "u": 1, - "id": "00dhw set temperature" - }, - { - "v": 45, - "u": 1, - "id": "00dhw selected temperature", - "c": "dhw/seltemp", - "m": 0, - "x": 254, - "s": "1" - }, - { - "v": 42, - "u": 1, - "id": "00dhw selected lower temperature", - "c": "dhw/seltemplow", - "m": 0, - "x": 254, - "s": "1" - }, - { - "v": 65, - "u": 1, - "id": "00dhw single charge temperature", - "c": "dhw/seltempsingle", - "m": 0, - "x": 254, - "s": "1" - }, - { - "v": "high comfort", - "u": 0, - "id": "00dhw comfort mode", - "c": "dhw/comfort1", - "l": [ - "high comfort", - "eco" - ] - }, - { - "v": 25, - "u": 2, - "id": "00dhw flow temperature offset", - "c": "dhw/flowtempoffset", - "m": 0, - "x": 100, - "s": "1" - }, - { - "v": 56, - "u": 1, - "id": "00dhw maximum temperature", - "c": "dhw/maxtemp", - "m": 0, - "x": 80, - "s": "1" - }, - { - "v": "on", - "u": 0, - "id": "00dhw circulation pump available", - "c": "dhw/circpump", - "l": [ - "off", - "on" - ] - }, - { - "v": -2, - "u": 2, - "id": "00dhw hysteresis on temperature", - "c": "dhw/hyston", - "m": -126, - "x": 126, - "s": "1" - }, - { - "v": 0, - "u": 2, - "id": "00dhw hysteresis off temperature", - "c": "dhw/hystoff", - "m": -126, - "x": 126, - "s": "1" - }, - { - "v": 65, - "u": 1, - "id": "00dhw disinfection temperature", - "c": "dhw/disinfectiontemp", - "m": 60, - "x": 80, - "s": "1" - }, - { - "v": "3x3min", - "u": 0, - "id": "00dhw circulation pump mode", - "c": "dhw/circmode", - "l": [ - "off", - "1x3min", - "2x3min", - "3x3min", - "4x3min", - "5x3min", - "6x3min", - "continuous" - ] - }, - { - "v": "off", - "u": 0, - "id": "00dhw circulation active", - "c": "dhw/circ", - "l": [ - "off", - "on" - ] - }, - { - "v": 58.70000076293945, - "u": 1, - "id": "00dhw current intern temperature" - }, - { - "v": 58.5, - "u": 1, - "id": "00dhw current extern temperature" - }, - { - "v": 0, - "u": 4, - "id": "00dhw current tap water flow" - }, - { - "v": "on", - "u": 0, - "id": "00dhw activated", - "c": "dhw/activated", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00dhw one time charging", - "c": "dhw/onetime", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00dhw disinfecting", - "c": "dhw/disinfecting", - "l": [ - "off", - "on" - ] - }, - { - "v": "off", - "u": 0, - "id": "00dhw charging" - }, - { - "v": "off", - "u": 0, - "id": "00dhw recharging" - }, - { - "v": "off", - "u": 0, - "id": "00dhw temperature ok" - }, - { - "v": "off", - "u": 0, - "id": "00dhw 3-way valve active" - }, - { - "v": 0, - "u": 0, - "id": "00dhw starts" - }, - { - "v": 0, - "u": 8, - "id": "00dhw active time" + v: 0, + u: 8, + id: '00dhw active time' } ] - }; const emsesp_devicedata_9 = { - "data": [ + data: [ { - "v": 24, - "u": 1, - "id": "00hc1 room temperature from remote" + v: 24, + u: 1, + id: '00hc1 room temperature from remote' }, { - "v": 14, - "u": 1, - "id": "00hc1 dew point temperature" + v: 14, + u: 1, + id: '00hc1 dew point temperature' }, { - "v": 46, - "u": 3, - "id": "00hc1 relative air humidity" + v: 46, + u: 3, + id: '00hc1 relative air humidity' }, { - "v": 0, - "u": 2, - "id": "00hc1 internal temperature offset", - "c": "hc1/intoffset", - "m": -12, - "x": 12, - "s": "0.1" + v: 0, + u: 2, + id: '00hc1 internal temperature offset', + c: 'hc1/intoffset', + m: -12, + x: 12, + s: '0.1' } ] }; const emsesp_devicedata_10 = { - "data": [ + data: [ { - "v": "26.06.2024 14:49", - "u": 0, - "id": "00date/time", - "c": "datetime", - "h": "NTP | dd.mm.yyyy-hh:mm:ss-day(0-6)-dst(0/1)" + v: '26.06.2024 14:49', + u: 0, + id: '00date/time', + c: 'datetime', + h: 'NTP | dd.mm.yyyy-hh:mm:ss-day(0-6)-dst(0/1)' }, { - "v": 0, - "u": 2, - "id": "00internal temperature offset", - "c": "intoffset", - "m": -12, - "x": 12, - "s": "0.1" + v: 0, + u: 2, + id: '00internal temperature offset', + c: 'intoffset', + m: -12, + x: 12, + s: '0.1' }, { - "v": "off", - "u": 0, - "id": "00floor drying" + v: 'off', + u: 0, + id: '00floor drying' }, { - "v": 30.299999237060547, - "u": 1, - "id": "00damped outdoor temperature" + v: 30.299999237060547, + u: 1, + id: '00damped outdoor temperature' }, { - "v": 0, - "u": 1, - "id": "00floor drying temperature" + v: 0, + u: 1, + id: '00floor drying temperature' }, { - "v": "heavy", - "u": 0, - "id": "00building type", - "c": "building", - "l": [ - "light", - "medium", - "heavy" + v: 'heavy', + u: 0, + id: '00building type', + c: 'building', + l: ['light', 'medium', 'heavy'] + }, + { + v: -12, + u: 1, + id: '00minimal external temperature', + c: 'minexttemp', + m: -126, + x: 126, + s: '1' + }, + { + v: 'off', + u: 0, + id: '00damping outdoor temperature', + c: 'damping', + l: ['off', 'on'] + }, + { + v: 3.299999952316284, + u: 0, + id: '00energy cost ratio', + c: 'energycostratio', + m: 0, + x: 20, + s: '0.1' + }, + { + v: 'off', + u: 0, + id: '00enable raise dhw', + c: 'pvenabledhw', + l: ['off', 'on'] + }, + { + v: 3, + u: 22, + id: '00raise heating with PV', + c: 'pvraiseheat', + m: 0, + x: 5, + s: '1' + }, + { + v: 0, + u: 22, + id: '00lower cooling with PV', + c: 'pvlowercool', + m: -5, + x: 0, + s: '1' + }, + { + v: 21, + u: 1, + id: '00hc1 selected room temperature', + c: 'hc1/seltemp', + m: 0, + x: 30, + s: '0.5' + }, + { + v: 24, + u: 1, + id: '00hc1 current room temperature' + }, + { + v: 'roomTemp', + u: 0, + id: '00hc1 mqtt discovery current room temperature' + }, + { + v: 'manual', + u: 0, + id: '00hc1 mode', + c: 'hc1/mode', + l: ['manual', 'auto'] + }, + { + v: 'comfort', + u: 0, + id: '00hc1 mode type' + }, + { + v: 15, + u: 1, + id: '00hc1 eco temperature', + c: 'hc1/ecotemp', + m: 0, + x: 127, + s: '0.5' + }, + { + v: 22.5, + u: 1, + id: '00hc1 manual temperature', + c: 'hc1/manualtemp', + m: 0, + x: 127, + s: '0.5' + }, + { + v: 19, + u: 1, + id: '00hc1 comfort temperature', + c: 'hc1/comforttemp', + m: 0, + x: 127, + s: '0.5' + }, + { + v: 11, + u: 1, + id: '00hc1 summer temperature', + c: 'hc1/summertemp', + m: 10, + x: 30, + s: '1' + }, + { + v: 35, + u: 1, + id: '00hc1 design temperature', + c: 'hc1/designtemp', + m: 0, + x: 254, + s: '1' + }, + { + v: 0, + u: 2, + id: '00hc1 offset temperature', + c: 'hc1/offsettemp', + m: -126, + x: 126, + s: '1' + }, + { + v: 22, + u: 1, + id: '00hc1 min flow temperature', + c: 'hc1/minflowtemp', + m: 0, + x: 254, + s: '1' + }, + { + v: 60, + u: 1, + id: '00hc1 max flow temperature', + c: 'hc1/maxflowtemp', + m: 0, + x: 254, + s: '1' + }, + { + v: 0, + u: 2, + id: '00hc1 room influence', + c: 'hc1/roominfluence', + m: 0, + x: 254, + s: '1' + }, + { + v: 4, + u: 0, + id: '00hc1 room influence factor', + c: 'hc1/roominflfactor', + m: 0, + x: 25, + s: '0.1' + }, + { + v: 0, + u: 2, + id: '00hc1 current room influence' + }, + { + v: 'outdoor', + u: 0, + id: '00hc1 nofrost mode', + c: 'hc1/nofrostmode', + l: ['room', 'outdoor', 'room outdoor'] + }, + { + v: 2, + u: 1, + id: '00hc1 nofrost temperature', + c: 'hc1/nofrosttemp', + m: -126, + x: 126, + s: '1' + }, + { + v: 19, + u: 1, + id: '00hc1 target flow temperature' + }, + { + v: 'floor', + u: 0, + id: '00hc1 heating type', + c: 'hc1/heatingtype', + l: ['off', 'radiator', 'convector', 'floor'] + }, + { + v: 'auto', + u: 0, + id: '00hc1 heatpump operating mode', + c: 'hc1/hpoperatingmode', + l: ['off', 'auto', 'heating', 'cooling'] + }, + { + v: 'cooling', + u: 0, + id: '00hc1 heatpump operating state' + }, + { + v: 'weather compensated', + u: 0, + id: '00hc1 control mode', + c: 'hc1/controlmode', + l: [ + 'weather compensated', + 'outside basepoint', + 'n/a', + 'room', + 'power', + 'constant' ] }, { - "v": -12, - "u": 1, - "id": "00minimal external temperature", - "c": "minexttemp", - "m": -126, - "x": 126, - "s": "1" + v: 'prog 1', + u: 0, + id: '00hc1 program', + c: 'hc1/program', + l: ['prog 1', 'prog 2'] }, { - "v": "off", - "u": 0, - "id": "00damping outdoor temperature", - "c": "damping", - "l": [ - "off", - "on" - ] + v: -1, + u: 1, + id: '00hc1 temporary set temperature automode', + c: 'hc1/tempautotemp', + m: -1, + x: 30, + s: '0.5' }, { - "v": 3.299999952316284, - "u": 0, - "id": "00energy cost ratio", - "c": "energycostratio", - "m": 0, - "x": 20, - "s": "0.1" + v: 21, + u: 1, + id: '00hc1 temporary set temperature from remote' }, { - "v": "off", - "u": 0, - "id": "00enable raise dhw", - "c": "pvenabledhw", - "l": [ - "off", - "on" - ] + v: 0, + u: 3, + id: '00hc1 fast heatup', + c: 'hc1/fastheatup', + m: 0, + x: 100, + s: '1' }, { - "v": 3, - "u": 22, - "id": "00raise heating with PV", - "c": "pvraiseheat", - "m": 0, - "x": 5, - "s": "1" + v: 'off', + u: 0, + id: '00hc1 switch-on optimization', + c: 'hc1/switchonoptimization', + l: ['off', 'on'] }, { - "v": 0, - "u": 22, - "id": "00lower cooling with PV", - "c": "pvlowercool", - "m": -5, - "x": 0, - "s": "1" + v: 'reduce', + u: 0, + id: '00hc1 reduce mode', + c: 'hc1/reducemode', + l: ['outdoor', 'room', 'reduce'] }, { - "v": 21, - "u": 1, - "id": "00hc1 selected room temperature", - "c": "hc1/seltemp", - "m": 0, - "x": 30, - "s": "0.5" + v: -31, + u: 1, + id: '00hc1 no reduce below temperature', + c: 'hc1/noreducetemp', + m: -126, + x: 126, + s: '1' }, { - "v": 24, - "u": 1, - "id": "00hc1 current room temperature" + v: 5, + u: 1, + id: '00hc1 off/reduce switch temperature', + c: 'hc1/reducetemp', + m: -126, + x: 126, + s: '1' }, { - "v": "roomTemp", - "u": 0, - "id": "00hc1 mqtt discovery current room temperature" + v: 'off', + u: 0, + id: '00hc1 dhw priority', + c: 'hc1/dhwprio', + l: ['off', 'on'] }, { - "v": "manual", - "u": 0, - "id": "00hc1 mode", - "c": "hc1/mode", - "l": [ - "manual", - "auto" - ] + v: 'on', + u: 0, + id: '00hc1 cooling' }, { - "v": "comfort", - "u": 0, - "id": "00hc1 mode type" + v: 'heating&cooling', + u: 0, + id: '00hc1 HP Mode', + c: 'hc1/hpmode', + l: ['heating', 'cooling', 'heating&cooling'] }, { - "v": 15, - "u": 1, - "id": "00hc1 eco temperature", - "c": "hc1/ecotemp", - "m": 0, - "x": 127, - "s": "0.5" + v: 5, + u: 22, + id: '00hc1 dew point offset', + c: 'hc1/dewoffset', + m: 2, + x: 10, + s: '1' }, { - "v": 22.5, - "u": 1, - "id": "00hc1 manual temperature", - "c": "hc1/manualtemp", - "m": 0, - "x": 127, - "s": "0.5" + v: 1, + u: 22, + id: '00hc1 room temp difference', + c: 'hc1/roomtempdiff', + m: 0, + x: 254, + s: '1' }, { - "v": 19, - "u": 1, - "id": "00hc1 comfort temperature", - "c": "hc1/comforttemp", - "m": 0, - "x": 127, - "s": "0.5" + v: 11, + u: 1, + id: '00hc1 HP min. flow temp.', + c: 'hc1/hpminflowtemp', + m: 0, + x: 254, + s: '1' }, { - "v": 11, - "u": 1, - "id": "00hc1 summer temperature", - "c": "hc1/summertemp", - "m": 10, - "x": 30, - "s": "1" + v: 'RC100H', + u: 0, + id: '00hc1 control device', + c: 'hc1/control', + l: ['RC310', 'RC200', 'RC100', 'RC100H', 'TC100'] }, { - "v": 35, - "u": 1, - "id": "00hc1 design temperature", - "c": "hc1/designtemp", - "m": 0, - "x": 254, - "s": "1" + v: 1, + u: 7, + id: '00hc1 heat-on delay', + c: 'hc1/heatondelay', + m: 1, + x: 48, + s: '1' }, { - "v": 0, - "u": 2, - "id": "00hc1 offset temperature", - "c": "hc1/offsettemp", - "m": -126, - "x": 126, - "s": "1" + v: 1, + u: 7, + id: '00hc1 heat-off delay', + c: 'hc1/heatoffdelay', + m: 1, + x: 48, + s: '1' }, { - "v": 22, - "u": 1, - "id": "00hc1 min flow temperature", - "c": "hc1/minflowtemp", - "m": 0, - "x": 254, - "s": "1" + v: 1, + u: 22, + id: '00hc1 instant start', + c: 'hc1/instantstart', + m: 1, + x: 10, + s: '1' }, { - "v": 60, - "u": 1, - "id": "00hc1 max flow temperature", - "c": "hc1/maxflowtemp", - "m": 0, - "x": 254, - "s": "1" + v: 'normal', + u: 0, + id: '00dhw mode', + c: 'dhw/mode', + l: ['off', 'normal', 'comfort', 'auto', 'own prog'] }, { - "v": 0, - "u": 2, - "id": "00hc1 room influence", - "c": "hc1/roominfluence", - "m": 0, - "x": 254, - "s": "1" + v: 'on', + u: 0, + id: '00dhw circulation pump mode', + c: 'dhw/circmode', + l: ['off', 'on', 'auto', 'own prog'] }, { - "v": 4, - "u": 0, - "id": "00hc1 room influence factor", - "c": "hc1/roominflfactor", - "m": 0, - "x": 25, - "s": "0.1" + v: 15, + u: 8, + id: '00dhw charge duration', + c: 'dhw/chargeduration', + m: 0, + x: 3810, + s: '15' }, { - "v": 0, - "u": 2, - "id": "00hc1 current room influence" + v: 'off', + u: 0, + id: '00dhw charge', + c: 'dhw/charge', + l: ['off', 'on'] }, { - "v": "outdoor", - "u": 0, - "id": "00hc1 nofrost mode", - "c": "hc1/nofrostmode", - "l": [ - "room", - "outdoor", - "room outdoor" - ] + v: 0, + u: 1, + id: '00dhw extra' }, { - "v": 2, - "u": 1, - "id": "00hc1 nofrost temperature", - "c": "hc1/nofrosttemp", - "m": -126, - "x": 126, - "s": "1" + v: 'off', + u: 0, + id: '00dhw disinfecting', + c: 'dhw/disinfecting', + l: ['off', 'on'] }, { - "v": 19, - "u": 1, - "id": "00hc1 target flow temperature" + v: 'tu', + u: 0, + id: '00dhw disinfection day', + c: 'dhw/disinfectday', + l: ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su', 'all'] }, { - "v": "floor", - "u": 0, - "id": "00hc1 heating type", - "c": "hc1/heatingtype", - "l": [ - "off", - "radiator", - "convector", - "floor" - ] + v: 120, + u: 8, + id: '00dhw disinfection time', + c: 'dhw/disinfecttime', + m: 0, + x: 1431, + s: '15' }, { - "v": "auto", - "u": 0, - "id": "00hc1 heatpump operating mode", - "c": "hc1/hpoperatingmode", - "l": [ - "off", - "auto", - "heating", - "cooling" - ] + v: 'off', + u: 0, + id: '00dhw daily heating', + c: 'dhw/dailyheating', + l: ['off', 'on'] }, { - "v": "cooling", - "u": 0, - "id": "00hc1 heatpump operating state" - }, - { - "v": "weather compensated", - "u": 0, - "id": "00hc1 control mode", - "c": "hc1/controlmode", - "l": [ - "weather compensated", - "outside basepoint", - "n/a", - "room", - "power", - "constant" - ] - }, - { - "v": "prog 1", - "u": 0, - "id": "00hc1 program", - "c": "hc1/program", - "l": [ - "prog 1", - "prog 2" - ] - }, - { - "v": -1, - "u": 1, - "id": "00hc1 temporary set temperature automode", - "c": "hc1/tempautotemp", - "m": -1, - "x": 30, - "s": "0.5" - }, - { - "v": 21, - "u": 1, - "id": "00hc1 temporary set temperature from remote" - }, - { - "v": 0, - "u": 3, - "id": "00hc1 fast heatup", - "c": "hc1/fastheatup", - "m": 0, - "x": 100, - "s": "1" - }, - { - "v": "off", - "u": 0, - "id": "00hc1 switch-on optimization", - "c": "hc1/switchonoptimization", - "l": [ - "off", - "on" - ] - }, - { - "v": "reduce", - "u": 0, - "id": "00hc1 reduce mode", - "c": "hc1/reducemode", - "l": [ - "outdoor", - "room", - "reduce" - ] - }, - { - "v": -31, - "u": 1, - "id": "00hc1 no reduce below temperature", - "c": "hc1/noreducetemp", - "m": -126, - "x": 126, - "s": "1" - }, - { - "v": 5, - "u": 1, - "id": "00hc1 off/reduce switch temperature", - "c": "hc1/reducetemp", - "m": -126, - "x": 126, - "s": "1" - }, - { - "v": "off", - "u": 0, - "id": "00hc1 dhw priority", - "c": "hc1/dhwprio", - "l": [ - "off", - "on" - ] - }, - { - "v": "on", - "u": 0, - "id": "00hc1 cooling" - }, - { - "v": "heating&cooling", - "u": 0, - "id": "00hc1 HP Mode", - "c": "hc1/hpmode", - "l": [ - "heating", - "cooling", - "heating&cooling" - ] - }, - { - "v": 5, - "u": 22, - "id": "00hc1 dew point offset", - "c": "hc1/dewoffset", - "m": 2, - "x": 10, - "s": "1" - }, - { - "v": 1, - "u": 22, - "id": "00hc1 room temp difference", - "c": "hc1/roomtempdiff", - "m": 0, - "x": 254, - "s": "1" - }, - { - "v": 11, - "u": 1, - "id": "00hc1 HP min. flow temp.", - "c": "hc1/hpminflowtemp", - "m": 0, - "x": 254, - "s": "1" - }, - { - "v": "RC100H", - "u": 0, - "id": "00hc1 control device", - "c": "hc1/control", - "l": [ - "RC310", - "RC200", - "RC100", - "RC100H", - "TC100" - ] - }, - { - "v": 1, - "u": 7, - "id": "00hc1 heat-on delay", - "c": "hc1/heatondelay", - "m": 1, - "x": 48, - "s": "1" - }, - { - "v": 1, - "u": 7, - "id": "00hc1 heat-off delay", - "c": "hc1/heatoffdelay", - "m": 1, - "x": 48, - "s": "1" - }, - { - "v": 1, - "u": 22, - "id": "00hc1 instant start", - "c": "hc1/instantstart", - "m": 1, - "x": 10, - "s": "1" - }, - { - "v": "normal", - "u": 0, - "id": "00dhw mode", - "c": "dhw/mode", - "l": [ - "off", - "normal", - "comfort", - "auto", - "own prog" - ] - }, - { - "v": "on", - "u": 0, - "id": "00dhw circulation pump mode", - "c": "dhw/circmode", - "l": [ - "off", - "on", - "auto", - "own prog" - ] - }, - { - "v": 15, - "u": 8, - "id": "00dhw charge duration", - "c": "dhw/chargeduration", - "m": 0, - "x": 3810, - "s": "15" - }, - { - "v": "off", - "u": 0, - "id": "00dhw charge", - "c": "dhw/charge", - "l": [ - "off", - "on" - ] - }, - { - "v": 0, - "u": 1, - "id": "00dhw extra" - }, - { - "v": "off", - "u": 0, - "id": "00dhw disinfecting", - "c": "dhw/disinfecting", - "l": [ - "off", - "on" - ] - }, - { - "v": "tu", - "u": 0, - "id": "00dhw disinfection day", - "c": "dhw/disinfectday", - "l": [ - "mo", - "tu", - "we", - "th", - "fr", - "sa", - "su", - "all" - ] - }, - { - "v": 120, - "u": 8, - "id": "00dhw disinfection time", - "c": "dhw/disinfecttime", - "m": 0, - "x": 1431, - "s": "15" - }, - { - "v": "off", - "u": 0, - "id": "00dhw daily heating", - "c": "dhw/dailyheating", - "l": [ - "off", - "on" - ] - }, - { - "v": 120, - "u": 8, - "id": "00dhw daily heating time", - "c": "dhw/dailyheattime", - "m": 0, - "x": 1431, - "s": "15" + v: 120, + u: 8, + id: '00dhw daily heating time', + c: 'dhw/dailyheattime', + m: 0, + x: 1431, + s: '15' } ] -} +}; const emsesp_devicedata_99 = { data: [ @@ -3964,7 +3879,7 @@ let emsesp_schedule = { flags: 132, time: '', cmd: 'system/message', - value: '\"hello world\"', + value: '"hello world"', name: 'immediate' } ] @@ -3973,35 +3888,36 @@ let emsesp_schedule = { // MODULES let emsesp_modules = { // 'modules': [] - "modules": [ + modules: [ { id: 1, - "key": "ModuleTest1", - "name": "Module Test 1", - "author": "proddy", - "version": "1.0.0", - "enabled": true, - "status": 1, - "message": "Running", - "license": "1234567890" + key: 'ModuleTest1', + name: 'Module Test 1', + author: 'proddy', + version: '1.0.0', + enabled: true, + status: 1, + message: 'Running', + license: '1234567890' }, { id: 2, - "key": "ModuleTest2", - "name": "Module Test 2", - "author": "proddy", - "version": "1.0.0", - "enabled": true, - "status": 2, - "message": "Running", - "license": "ABCDEFGHIJKL" - + key: 'ModuleTest2', + name: 'Module Test 2', + author: 'proddy', + version: '1.0.0', + enabled: true, + status: 2, + message: 'Running', + license: 'ABCDEFGHIJKL' } ] -} +}; // CUSTOMIZATION -const emsesp_deviceentities_1 = [{ v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false }]; +const emsesp_deviceentities_1 = [ + { v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false } +]; const emsesp_deviceentities_2 = [ { @@ -4044,7 +3960,9 @@ const emsesp_deviceentities_2 = [ } ]; -const emsesp_deviceentities_3 = [{ v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false }]; +const emsesp_deviceentities_3 = [ + { v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false } +]; const emsesp_deviceentities_4 = [ { @@ -4069,9 +3987,13 @@ const emsesp_deviceentities_4 = [ w: true } ]; -const emsesp_deviceentities_5 = [{ v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false }]; +const emsesp_deviceentities_5 = [ + { v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false } +]; -const emsesp_deviceentities_6 = [{ v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false }]; +const emsesp_deviceentities_6 = [ + { v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false } +]; const emsesp_deviceentities_7 = [ { u: 0, n: '!reset', id: 'reset', m: 8, w: false }, @@ -4112,13 +4034,25 @@ const emsesp_deviceentities_7 = [ { v: 553437, n: 'total burner operating time', id: 'burnworkmin', m: 0, w: false }, { v: 451286, n: 'total heat operating time', id: 'heatworkmin', m: 0, w: false }, { v: 4672175, n: 'total UBA operating time', id: 'ubauptime', m: 0, w: false }, - { v: '1C(210) 06.06.2020 12:07 (0 min)', n: 'last error code', id: 'lastcode', m: 0, w: false }, + { + v: '1C(210) 06.06.2020 12:07 (0 min)', + n: 'last error code', + id: 'lastcode', + m: 0, + w: false + }, { v: '0H', n: 'service code', id: 'servicecode', m: 0, w: false }, { v: 203, n: 'service code number', id: 'servicecodenumber', m: 0, w: false }, { v: 'H00', n: 'maintenance message', id: 'maintenancemessage', m: 0, w: false }, { v: 'manual', n: 'maintenance scheduled', id: 'maintenance', m: 0, w: false }, { v: 6000, n: 'time to next maintenance', id: 'maintenancetime', m: 0, w: false }, - { v: '01.01.2012', n: 'next maintenance date', id: 'maintenancedate', m: 0, w: false }, + { + v: '01.01.2012', + n: 'next maintenance date', + id: 'maintenancedate', + m: 0, + w: false + }, { v: true, n: 'dhw turn on/off', id: 'dhw/tapactivated', m: 0, w: false }, { v: 62, n: 'dhw set temperature', id: 'dhw/settemp', m: 0, w: false }, { v: 60, n: 'dhw selected temperature', id: 'dhw/seltemp', m: 0, w: true }, @@ -4127,19 +4061,49 @@ const emsesp_deviceentities_7 = [ { n: 'dhw single charge temperature', id: 'dhw/seltempsingle', m: 2 }, { v: 'flow', n: 'dhw type', id: 'dhw/type', m: 0, w: false }, { v: 'hot', n: 'dhw comfort', id: 'dhw/comfort', m: 0, w: false }, - { v: 40, n: 'dhw flow temperature offset', id: 'dhw/flowtempoffset', m: 0, w: false }, + { + v: 40, + n: 'dhw flow temperature offset', + id: 'dhw/flowtempoffset', + m: 0, + w: false + }, { v: 100, n: 'dhw max power', id: 'dhw/maxpower', m: 0, w: false }, - { v: false, n: 'dhw circulation pump available', id: 'dhw/circpump', m: 0, w: false }, + { + v: false, + n: 'dhw circulation pump available', + id: 'dhw/circpump', + m: 0, + w: false + }, { v: '3-way valve', n: 'dhw charging type', id: 'dhw/chargetype', m: 0, w: false }, { v: -5, n: 'dhw hysteresis on temperature', id: 'dhw/hyston', m: 0, w: false }, { v: 0, n: 'dhw hysteresis off temperature', id: 'dhw/hystoff', m: 0, w: false }, - { v: 70, n: 'dhw disinfection temperature', id: 'dhw/disinfectiontemp', m: 0, w: false }, + { + v: 70, + n: 'dhw disinfection temperature', + id: 'dhw/disinfectiontemp', + m: 0, + w: false + }, { v: 'off', n: 'dhw circulation pump mode', id: 'dhw/circmode', m: 0, w: false }, { v: false, n: 'dhw circulation active', id: 'dhw/circ', m: 0, w: false }, - { v: 46.4, n: 'dhw current intern temperature', id: 'dhw/curtemp', m: 0, w: false }, + { + v: 46.4, + n: 'dhw current intern temperature', + id: 'dhw/curtemp', + m: 0, + w: false + }, { n: 'dhw current extern temperature', id: 'dhw/curtemp2', m: 2 }, { v: 0, n: 'dhw current tap water flow', id: 'dhw/curflow', m: 0, w: false }, - { v: 46.3, n: 'dhw storage intern temperature', id: 'dhw/storagetemp1', m: 0, w: false }, + { + v: 46.3, + n: 'dhw storage intern temperature', + id: 'dhw/storagetemp1', + m: 0, + w: false + }, { n: 'dhw storage extern temperature', id: 'dhw/storagetemp2', m: 2 }, { v: true, n: 'dhw activated', id: 'dhw/activated', m: 0, w: false }, { v: false, n: 'dhw one time charging', id: 'dhw/onetime', m: 0, w: false }, @@ -4156,13 +4120,21 @@ const emsesp_deviceentities_7 = [ { v: 102151, n: 'dhw active time', id: 'dhw/workm', m: 0, w: false } ]; -const emsesp_deviceentities_8 = [{ v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false }]; +const emsesp_deviceentities_8 = [ + { v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false } +]; -const emsesp_deviceentities_9 = [{ v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false }]; +const emsesp_deviceentities_9 = [ + { v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false } +]; -const emsesp_deviceentities_10 = [{ v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false }]; +const emsesp_deviceentities_10 = [ + { v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false } +]; -const emsesp_deviceentities_none = [{ v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false }]; +const emsesp_deviceentities_none = [ + { v: 'dummy value', n: 'dummy name', id: 'dummy', m: 0, w: false } +]; // END DATA @@ -4353,10 +4325,11 @@ router sorted_devices.push(emsesp_coredata_custom); return { connected: true, devices: sorted_devices }; }) - .get(EMSESP_SENSOR_DATA_ENDPOINT, () => { + .get(EMSESP_SENSOR_DATA_ENDPOINT, () => { // random change the zolder temperature 0-100 emsesp_sensordata.ts[2].t = Math.floor(Math.random() * 100); - return emsesp_sensordata }) + return emsesp_sensordata; + }) .get(EMSESP_DEVICES_ENDPOINT, () => { // sort by type const sorted_devices = emsesp_devices.devices.sort((a, b) => a.t - b.t); @@ -4365,11 +4338,15 @@ router .get(EMSESP_DEVICEDATA_ENDPOINT1, (request) => request.query.id ? deviceData(Number(request.query.id)) : status(404) ) - .get(EMSESP_DEVICEDATA_ENDPOINT2, ({ params }) => (params.id ? deviceData(Number(params.id)) : status(404))) + .get(EMSESP_DEVICEDATA_ENDPOINT2, ({ params }) => + params.id ? deviceData(Number(params.id)) : status(404) + ) .get(EMSESP_DEVICEENTITIES_ENDPOINT1, (request) => request.query.id ? deviceEntities(Number(request.query.id)) : status(404) ) - .get(EMSESP_DEVICEENTITIES_ENDPOINT2, ({ params }) => (params.id ? deviceEntities(Number(params.id)) : status(404))) + .get(EMSESP_DEVICEENTITIES_ENDPOINT2, ({ params }) => + params.id ? deviceEntities(Number(params.id)) : status(404) + ) // Customizations .post(EMSESP_CUSTOMIZATION_ENTITIES_ENDPOINT, async (request: any) => { @@ -4407,7 +4384,7 @@ router .post(EMSESP_WRITE_DEVICENAME_ENDPOINT, async (request: any) => { const content = await request.json(); const id = content.id; - console.log("Renaming device ID " + id + " to " + content.name); + console.log('Renaming device ID ' + id + ' to ' + content.name); return status(200); }) @@ -4426,7 +4403,9 @@ router let modules = content.modules; for (let i = 0; i < modules.length; i++) { const key = modules[i].key; - const objIndex = emsesp_modules.modules.findIndex((obj: any) => obj.key === key); + const objIndex = emsesp_modules.modules.findIndex( + (obj: any) => obj.key === key + ); if (objIndex !== -1) { emsesp_modules.modules[objIndex].enabled = modules[i].enabled; emsesp_modules.modules[objIndex].license = modules[i].license; diff --git a/mock-api/yarn.lock b/mock-api/yarn.lock index a0b1cfb57..67874dbc2 100644 --- a/mock-api/yarn.lock +++ b/mock-api/yarn.lock @@ -5,6 +5,279 @@ __metadata: version: 8 cacheKey: 10c0 +"@babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/code-frame@npm:7.24.7" + dependencies: + "@babel/highlight": "npm:^7.24.7" + picocolors: "npm:^1.0.0" + checksum: 10c0/ab0af539473a9f5aeaac7047e377cb4f4edd255a81d84a76058595f8540784cc3fbe8acf73f1e073981104562490aabfb23008cd66dc677a456a4ed5390fdde6 + languageName: node + linkType: hard + +"@babel/generator@npm:7.17.7": + version: 7.17.7 + resolution: "@babel/generator@npm:7.17.7" + dependencies: + "@babel/types": "npm:^7.17.0" + jsesc: "npm:^2.5.1" + source-map: "npm:^0.5.0" + checksum: 10c0/8088453c4418e0ee6528506fbd5847bbdfd56327a0025ca9496a259261e162c594ffd08be0d63e74c32feced795616772f38acc5f5e493a86a45fd439fd9feb0 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.23.0": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" + dependencies: + "@babel/types": "npm:^7.25.0" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10c0/d0e2dfcdc8bdbb5dded34b705ceebf2e0bc1b06795a1530e64fb6a3ccf313c189db7f60c1616effae48114e1a25adc75855bc4496f3779a396b3377bae718ce7 + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.22.20": + version: 7.24.7 + resolution: "@babel/helper-environment-visitor@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10c0/36ece78882b5960e2d26abf13cf15ff5689bf7c325b10a2895a74a499e712de0d305f8d78bb382dd3c05cfba7e47ec98fe28aab5674243e0625cd38438dd0b2d + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.23.0": + version: 7.24.7 + resolution: "@babel/helper-function-name@npm:7.24.7" + dependencies: + "@babel/template": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/e5e41e6cf86bd0f8bf272cbb6e7c5ee0f3e9660414174435a46653efba4f2479ce03ce04abff2aa2ef9359cf057c79c06cb7b134a565ad9c0e8a50dcdc3b43c4 + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.24.7 + resolution: "@babel/helper-hoist-variables@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10c0/19ee37563bbd1219f9d98991ad0e9abef77803ee5945fd85aa7aa62a67c69efca9a801696a1b58dda27f211e878b3327789e6fd2a6f6c725ccefe36774b5ce95 + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.24.7 + resolution: "@babel/helper-split-export-declaration@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10c0/0254577d7086bf09b01bbde98f731d4fcf4b7c3fa9634fdb87929801307c1f6202a1352e3faa5492450fa8da4420542d44de604daf540704ff349594a78184f6 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-string-parser@npm:7.24.8" + checksum: 10c0/6361f72076c17fabf305e252bf6d580106429014b3ab3c1f5c4eb3e6d465536ea6b670cc0e9a637a77a9ad40454d3e41361a2909e70e305116a23d68ce094c08 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.16.7, @babel/helper-validator-identifier@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-identifier@npm:7.24.7" + checksum: 10c0/87ad608694c9477814093ed5b5c080c2e06d44cb1924ae8320474a74415241223cc2a725eea2640dd783ff1e3390e5f95eede978bc540e870053152e58f1d651 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/highlight@npm:7.24.7" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.24.7" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10c0/674334c571d2bb9d1c89bdd87566383f59231e16bcdcf5bb7835babdf03c9ae585ca0887a7b25bdf78f303984af028df52831c7989fecebb5101cc132da9393a + languageName: node + linkType: hard + +"@babel/parser@npm:^7.20.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.25.0": + version: 7.25.3 + resolution: "@babel/parser@npm:7.25.3" + dependencies: + "@babel/types": "npm:^7.25.2" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/874b01349aedb805d6694f867a752fdc7469778fad76aca4548d2cc6ce96087c3ba5fb917a6f8d05d2d1a74aae309b5f50f1a4dba035f5a2c9fcfe6e106d2c4e + languageName: node + linkType: hard + +"@babel/template@npm:^7.24.7": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/parser": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10c0/4e31afd873215744c016e02b04f43b9fa23205d6d0766fb2e93eb4091c60c1b88897936adb895fb04e3c23de98dfdcbe31bc98daaa1a4e0133f78bb948e1209b + languageName: node + linkType: hard + +"@babel/traverse@npm:7.23.2": + version: 7.23.2 + resolution: "@babel/traverse@npm:7.23.2" + dependencies: + "@babel/code-frame": "npm:^7.22.13" + "@babel/generator": "npm:^7.23.0" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/parser": "npm:^7.23.0" + "@babel/types": "npm:^7.23.0" + debug: "npm:^4.1.0" + globals: "npm:^11.1.0" + checksum: 10c0/d096c7c4bab9262a2f658298a3c630ae4a15a10755bb257ae91d5ab3e3b2877438934859c8d34018b7727379fe6b26c4fa2efc81cf4c462a7fe00caf79fa02ff + languageName: node + linkType: hard + +"@babel/types@npm:7.17.0": + version: 7.17.0 + resolution: "@babel/types@npm:7.17.0" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.16.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/ad09224272b40fedb00b262677d12b6838f5b5df5c47d67059ba1181bd4805439993393a8de32459dae137b536d60ebfcaf39ae84d8b3873f1e81cc75f5aeae8 + languageName: node + linkType: hard + +"@babel/types@npm:^7.17.0, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/types@npm:7.25.2" + dependencies: + "@babel/helper-string-parser": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/e489435856be239f8cc1120c90a197e4c2865385121908e5edb7223cfdff3768cba18f489adfe0c26955d9e7bbb1fb10625bc2517505908ceb0af848989bd864 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: "npm:^3.3.0" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 10c0/7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.11.0": + version: 4.11.0 + resolution: "@eslint-community/regexpp@npm:4.11.0" + checksum: 10c0/0f6328869b2741e2794da4ad80beac55cba7de2d3b44f796a60955b0586212ec75e6b0253291fd4aad2100ad471d1480d8895f2b54f1605439ba4c875e05e523 + languageName: node + linkType: hard + +"@eslint/config-array@npm:^0.17.1": + version: 0.17.1 + resolution: "@eslint/config-array@npm:0.17.1" + dependencies: + "@eslint/object-schema": "npm:^2.1.4" + debug: "npm:^4.3.1" + minimatch: "npm:^3.1.2" + checksum: 10c0/b986a0a96f2b42467578968ce3d4ae3b9284e587f8490f2dcdc44ff1b8d30580c62b221da6e58d07b09e156c3050e2dc38267f9370521d9cafc099c4e30154ef + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.1.0": + version: 3.1.0 + resolution: "@eslint/eslintrc@npm:3.1.0" + dependencies: + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^10.0.1" + globals: "npm:^14.0.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" + checksum: 10c0/5b7332ed781edcfc98caa8dedbbb843abfb9bda2e86538529c843473f580e40c69eb894410eddc6702f487e9ee8f8cfa8df83213d43a8fdb549f23ce06699167 + languageName: node + linkType: hard + +"@eslint/js@npm:9.9.0": + version: 9.9.0 + resolution: "@eslint/js@npm:9.9.0" + checksum: 10c0/6ec9f1f0d576132444d6a5c66a8a08b0be9444e3ebb563fa6a6bebcf5299df3da7e454dc04c0fa601bb811197f00764b3a04430d8458cdb8e3a4677993d23f30 + languageName: node + linkType: hard + +"@eslint/object-schema@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/object-schema@npm:2.1.4" + checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 + languageName: node + linkType: hard + +"@humanwhocodes/retry@npm:^0.3.0": + version: 0.3.0 + resolution: "@humanwhocodes/retry@npm:0.3.0" + checksum: 10c0/7111ec4e098b1a428459b4e3be5a5d2a13b02905f805a2468f4fa628d072f0de2da26a27d04f65ea2846f73ba51f4204661709f05bfccff645e3cedef8781bb6 + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + dependencies: + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4 + languageName: node + linkType: hard + "@msgpack/msgpack@npm:^2.8.0": version: 2.8.0 resolution: "@msgpack/msgpack@npm:2.8.0" @@ -12,6 +285,562 @@ __metadata: languageName: node linkType: hard +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": "npm:2.0.5" + run-parallel: "npm:^1.1.9" + checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": "npm:2.1.5" + fastq: "npm:^1.6.0" + checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 + languageName: node + linkType: hard + +"@trivago/prettier-plugin-sort-imports@npm:^4.3.0": + version: 4.3.0 + resolution: "@trivago/prettier-plugin-sort-imports@npm:4.3.0" + dependencies: + "@babel/generator": "npm:7.17.7" + "@babel/parser": "npm:^7.20.5" + "@babel/traverse": "npm:7.23.2" + "@babel/types": "npm:7.17.0" + javascript-natural-sort: "npm:0.7.1" + lodash: "npm:^4.17.21" + peerDependencies: + "@vue/compiler-sfc": 3.x + prettier: 2.x - 3.x + peerDependenciesMeta: + "@vue/compiler-sfc": + optional: true + checksum: 10c0/42270fb9c89e54a3f8b6ac8c43e6d0e03350e2857e902cdad4de22c78ef1864da600525595311bc7e94e51c16c7dd3882c2e048a162fdab59761ffa893756aa2 + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1 + languageName: node + linkType: hard + +"acorn@npm:^8.12.0": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" + bin: + acorn: bin/acorn + checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386 + languageName: node + linkType: hard + +"ajv@npm:^6.12.4": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.0" + checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b + languageName: node + linkType: hard + +"ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e + languageName: node + linkType: hard + +"asap@npm:^2.0.0": + version: 2.0.6 + resolution: "asap@npm:2.0.6" + checksum: 10c0/c6d5e39fe1f15e4b87677460bd66b66050cd14c772269cee6688824c1410a08ab20254bb6784f9afb75af9144a9f9a7692d49547f4d19d715aeb7c0318f3136d + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 + languageName: node + linkType: hard + +"chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: "npm:1.1.3" + checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.2": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + languageName: node + linkType: hard + +"debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2": + version: 4.3.6 + resolution: "debug@npm:4.3.6" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/3293416bff072389c101697d4611c402a6bacd1900ac20c0492f61a9cdd6b3b29750fc7f5e299f8058469ef60ff8fb79b86395a30374fbd2490113c1c7112285 + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c + languageName: node + linkType: hard + +"dezalgo@npm:^1.0.4": + version: 1.0.4 + resolution: "dezalgo@npm:1.0.4" + dependencies: + asap: "npm:^2.0.0" + wrappy: "npm:1" + checksum: 10c0/8a870ed42eade9a397e6141fe5c025148a59ed52f1f28b1db5de216b4d57f0af7a257070c3af7ce3d5508c1ce9dd5009028a76f4b2cc9370dc56551d2355fad8 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 + languageName: node + linkType: hard + +"eslint-config-prettier@npm:^9.1.0": + version: 9.1.0 + resolution: "eslint-config-prettier@npm:9.1.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 10c0/6d332694b36bc9ac6fdb18d3ca2f6ac42afa2ad61f0493e89226950a7091e38981b66bac2b47ba39d15b73fff2cd32c78b850a9cf9eed9ca9a96bfb2f3a2f10d + languageName: node + linkType: hard + +"eslint-scope@npm:^8.0.2": + version: 8.0.2 + resolution: "eslint-scope@npm:8.0.2" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^5.2.0" + checksum: 10c0/477f820647c8755229da913025b4567347fd1f0bf7cbdf3a256efff26a7e2e130433df052bd9e3d014025423dc00489bea47eb341002b15553673379c1a7dc36 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^4.0.0": + version: 4.0.0 + resolution: "eslint-visitor-keys@npm:4.0.0" + checksum: 10c0/76619f42cf162705a1515a6868e6fc7567e185c7063a05621a8ac4c3b850d022661262c21d9f1fc1d144ecf0d5d64d70a3f43c15c3fc969a61ace0fb25698cf5 + languageName: node + linkType: hard + +"eslint@npm:^9.9.0": + version: 9.9.0 + resolution: "eslint@npm:9.9.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@eslint-community/regexpp": "npm:^4.11.0" + "@eslint/config-array": "npm:^0.17.1" + "@eslint/eslintrc": "npm:^3.1.0" + "@eslint/js": "npm:9.9.0" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@humanwhocodes/retry": "npm:^0.3.0" + "@nodelib/fs.walk": "npm:^1.2.8" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.2" + debug: "npm:^4.3.2" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^8.0.2" + eslint-visitor-keys: "npm:^4.0.0" + espree: "npm:^10.1.0" + esquery: "npm:^1.5.0" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^8.0.0" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + is-path-inside: "npm:^3.0.3" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + levn: "npm:^0.4.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + strip-ansi: "npm:^6.0.1" + text-table: "npm:^0.2.0" + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true + bin: + eslint: bin/eslint.js + checksum: 10c0/3a22f68c99d75dcbafe6e2fef18d2b5bbcc960c2437f48a414ccf9ca214254733a18e6b79d07bbd374a2369a648413e421aabd07b11be3de5a44d5a4b9997877 + languageName: node + linkType: hard + +"espree@npm:^10.0.1, espree@npm:^10.1.0": + version: 10.1.0 + resolution: "espree@npm:10.1.0" + dependencies: + acorn: "npm:^8.12.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^4.0.0" + checksum: 10c0/52e6feaa77a31a6038f0c0e3fce93010a4625701925b0715cd54a2ae190b3275053a0717db698697b32653788ac04845e489d6773b508d6c2e8752f3c57470a0 + languageName: node + linkType: hard + +"esquery@npm:^1.5.0": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" + dependencies: + estraverse: "npm:^5.1.0" + checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: "npm:^5.2.0" + checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.17.1 + resolution: "fastq@npm:1.17.1" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34 + languageName: node + linkType: hard + +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" + dependencies: + flat-cache: "npm:^4.0.0" + checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: "npm:^6.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a + languageName: node + linkType: hard + +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" + dependencies: + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.4" + checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc + languageName: node + linkType: hard + +"flatted@npm:^3.2.9": + version: 3.3.1 + resolution: "flatted@npm:3.3.1" + checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf + languageName: node + linkType: hard + +"formidable@npm:^3.5.1": + version: 3.5.1 + resolution: "formidable@npm:3.5.1" + dependencies: + dezalgo: "npm:^1.0.4" + hexoid: "npm:^1.0.0" + once: "npm:^1.4.0" + checksum: 10c0/c02fa1a027876dd9fc5abde16e9c537bec41bc652b362d0b3fd26daaae0615b9a472129c29b328a130d11f543f676acd1b13e6f28f3adc1b088cdaea9fb9e054 + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: "npm:^4.0.3" + checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 + languageName: node + linkType: hard + +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + languageName: node + linkType: hard + +"hexoid@npm:^1.0.0": + version: 1.0.0 + resolution: "hexoid@npm:1.0.0" + checksum: 10c0/9c45e8ba676b9eb88455631ebceec4c829a8374a583410dc735472ab9808bf11339fcd074633c3fa30e420901b894d8a92ffd5e2e21eddd41149546e05a91f69 + languageName: node + linkType: hard + +"ignore@npm:^5.2.0": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 + languageName: node + linkType: hard + +"import-fresh@npm:^3.2.1": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: "npm:^1.0.0" + resolve-from: "npm:^4.0.0" + checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.3": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + "itty-router@npm:^5.0.17": version: 5.0.17 resolution: "itty-router@npm:5.0.17" @@ -19,11 +848,381 @@ __metadata: languageName: node linkType: hard +"javascript-natural-sort@npm:0.7.1": + version: 0.7.1 + resolution: "javascript-natural-sort@npm:0.7.1" + checksum: 10c0/340f8ffc5d30fb516e06dc540e8fa9e0b93c865cf49d791fed3eac3bdc5fc71f0066fc81d44ec1433edc87caecaf9f13eec4a1fce8c5beafc709a71eaedae6fe + languageName: node + linkType: hard + +"js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f + languageName: node + linkType: hard + +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 + languageName: node + linkType: hard + +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 + languageName: node + linkType: hard + +"keyv@npm:^4.5.4": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: "npm:3.0.1" + checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: "npm:^1.2.1" + type-check: "npm:~0.4.0" + checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: "npm:^5.0.0" + checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 + languageName: node + linkType: hard + +"lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + languageName: node + linkType: hard + +"minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + languageName: node + linkType: hard + "mock-api@workspace:.": version: 0.0.0-use.local resolution: "mock-api@workspace:." dependencies: "@msgpack/msgpack": "npm:^2.8.0" + "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" + eslint: "npm:^9.9.0" + eslint-config-prettier: "npm:^9.1.0" + formidable: "npm:^3.5.1" itty-router: "npm:^5.0.17" + prettier: "npm:^3.3.3" languageName: unknown linkType: soft + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 + languageName: node + linkType: hard + +"once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"optionator@npm:^0.9.3": + version: 0.9.4 + resolution: "optionator@npm:0.9.4" + dependencies: + deep-is: "npm:^0.1.3" + fast-levenshtein: "npm:^2.0.6" + levn: "npm:^0.4.1" + prelude-ls: "npm:^1.2.1" + type-check: "npm:^0.4.0" + word-wrap: "npm:^1.2.5" + checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: "npm:^0.1.0" + checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: "npm:^3.0.2" + checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: "npm:^3.0.0" + checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: 10c0/c63cdad2bf812ef0d66c8db29583802355d4ca67b9285d846f390cc15c2f6ccb94e8cb7eb6a6e97fc5990a6d3ad4ae42d86c84d3146e667c739a4234ed50d400 + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd + languageName: node + linkType: hard + +"prettier@npm:^3.3.3": + version: 3.3.3 + resolution: "prettier@npm:3.3.3" + bin: + prettier: bin/prettier.cjs + checksum: 10c0/b85828b08e7505716324e4245549b9205c0cacb25342a030ba8885aba2039a115dbcf75a0b7ca3b37bc9d101ee61fab8113fc69ca3359f2a226f1ecc07ad2e26 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: "npm:^1.2.2" + checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"source-map@npm:^0.5.0": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599 + languageName: node + linkType: hard + +"strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: "npm:^3.0.0" + checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + languageName: node + linkType: hard + +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: "npm:^1.2.1" + checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: "npm:^2.1.0" + checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f + languageName: node + linkType: hard