From 3163a142a91b164bdf857cbdf4b1ab220db249de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Artur=20Zabro=C5=84ski?= Date: Tue, 19 Dec 2023 08:51:56 +0100 Subject: [PATCH 01/12] fix: Fixed dev section in analog sensor HA discovery --- src/analogsensor.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/analogsensor.cpp b/src/analogsensor.cpp index b94cb2c6d..61f6cca7f 100644 --- a/src/analogsensor.cpp +++ b/src/analogsensor.cpp @@ -116,7 +116,7 @@ void AnalogSensor::reload() { } if (!found) { sensors_.emplace_back(sensor.gpio, sensor.name, sensor.offset, sensor.factor, sensor.uom, sensor.type); - sensors_.back().ha_registered = false; // this will trigger recrate of the HA config + sensors_.back().ha_registered = false; // this will trigger recreate of the HA config if (sensor.type == AnalogType::COUNTER || sensor.type >= AnalogType::DIGITAL_OUT) { sensors_.back().set_value(sensor.offset); } else { @@ -616,9 +616,9 @@ void AnalogSensor::publish_values(const bool force) { } JsonObject dev = config.createNestedObject("dev"); - dev["name"] = name; + dev["name"] = Mqtt::basename() + " Analog"; JsonArray ids = dev.createNestedArray("ids"); - ids.add(Mqtt::basename()); + ids.add(Mqtt::basename() + "-analog"); // add "availability" section Mqtt::add_avty_to_doc(stat_t, config.as(), val_cond); From b4b2531e3328f2a9c45a5de20a3394cb9ba8b5bb Mon Sep 17 00:00:00 2001 From: pswid <78219494+pswid@users.noreply.github.com> Date: Fri, 22 Dec 2023 10:45:37 +0100 Subject: [PATCH 02/12] Polish translation update --- .../framework/network/NetworkSettingsForm.tsx | 2 +- .../src/framework/system/UploadFileForm.tsx | 8 +-- interface/src/i18n/de/index.ts | 1 - interface/src/i18n/fr/index.ts | 1 - interface/src/i18n/it/index.ts | 1 - interface/src/i18n/nl/index.ts | 1 - interface/src/i18n/no/index.ts | 1 - interface/src/i18n/pl/index.ts | 25 +++++----- interface/src/i18n/sk/index.ts | 1 - interface/src/i18n/sv/index.ts | 1 - interface/src/i18n/tr/index.ts | 1 - .../src/project/DashboardDevicesDialog.tsx | 2 +- interface/src/project/Help.tsx | 4 +- interface/src/project/SettingsApplication.tsx | 2 +- .../src/project/SettingsCustomization.tsx | 2 +- .../project/SettingsCustomizationDialog.tsx | 2 +- interface/src/project/SettingsScheduler.tsx | 2 +- .../src/project/SettingsSchedulerDialog.tsx | 2 +- interface/src/utils/useRest.ts | 2 +- src/locale_translations.h | 50 +++++++++---------- 20 files changed, 51 insertions(+), 60 deletions(-) diff --git a/interface/src/framework/network/NetworkSettingsForm.tsx b/interface/src/framework/network/NetworkSettingsForm.tsx index ffd2fd81e..fe4c574a5 100644 --- a/interface/src/framework/network/NetworkSettingsForm.tsx +++ b/interface/src/framework/network/NetworkSettingsForm.tsx @@ -313,7 +313,7 @@ const WiFiSettingsForm: FC = () => { )} {restartNeeded && ( - + diff --git a/interface/src/framework/system/UploadFileForm.tsx b/interface/src/framework/system/UploadFileForm.tsx index 9be4325e8..c33019df3 100644 --- a/interface/src/framework/system/UploadFileForm.tsx +++ b/interface/src/framework/system/UploadFileForm.tsx @@ -136,7 +136,7 @@ const UploadFileForm: FC = () => { {LL.UPLOAD_TEXT()}
- {LL.RESTART_TEXT()}. + {LL.RESTART_TEXT(1)}.
{md5 && ( @@ -148,7 +148,7 @@ const UploadFileForm: FC = () => { {!isUploading && ( <> - {LL.DOWNLOAD(0)} {LL.SUPPORT_INFORMATION()} + {LL.DOWNLOAD(0)} {LL.SUPPORT_INFORMATION(1)} @@ -161,7 +161,7 @@ const UploadFileForm: FC = () => { color="primary" onClick={() => callAPI('system', 'info')} > - {LL.SUPPORT_INFORMATION()} + {LL.SUPPORT_INFORMATION(0)} - {LL.DOWNLOAD(0)} {LL.SETTINGS()} + {LL.DOWNLOAD(0)} {LL.SETTINGS(1)} diff --git a/interface/src/i18n/de/index.ts b/interface/src/i18n/de/index.ts index 1805c638f..8405362e1 100644 --- a/interface/src/i18n/de/index.ts +++ b/interface/src/i18n/de/index.ts @@ -194,7 +194,6 @@ const de: Translation = { RELEASE_IS: 'release ist', // TODO translate RELEASE_NOTES: 'Versionshinweise', EMS_ESP_VER: 'EMS-ESP Version', - PLATFORM: 'Platform (Platform / SDK)', UPTIME: 'System Betriebszeit', HEAP: 'freier RAM Speicher (Gesamt / max. Block)', PSRAM: 'PSRAM (Größe / Frei)', diff --git a/interface/src/i18n/fr/index.ts b/interface/src/i18n/fr/index.ts index 9557d6c05..32a2247fb 100644 --- a/interface/src/i18n/fr/index.ts +++ b/interface/src/i18n/fr/index.ts @@ -194,7 +194,6 @@ const fr: Translation = { RELEASE_IS: 'release est', // TODO translate RELEASE_NOTES: 'notes de version', EMS_ESP_VER: 'Version EMS-ESP', - PLATFORM: 'Appareil (Plateforme / SDK)', UPTIME: 'Durée de fonctionnement du système', HEAP: 'Heap (Libre / Max Allouée)', PSRAM: 'PSRAM (Taille / Libre)', diff --git a/interface/src/i18n/it/index.ts b/interface/src/i18n/it/index.ts index 71c0becf7..89f07a790 100644 --- a/interface/src/i18n/it/index.ts +++ b/interface/src/i18n/it/index.ts @@ -196,7 +196,6 @@ const it: Translation = { RELEASE_IS: 'rilascio é', RELEASE_NOTES: 'note rilascio', EMS_ESP_VER: 'Versione EMS-ESP', - PLATFORM: 'Dispositivo (Piattaforma / SDK)', UPTIME: 'Tempo di attività del sistema', HEAP: 'Heap (Free / Max Alloc)', PSRAM: 'PSRAM (Size / Free)', diff --git a/interface/src/i18n/nl/index.ts b/interface/src/i18n/nl/index.ts index cb2d11b2c..9cdb1e6ab 100644 --- a/interface/src/i18n/nl/index.ts +++ b/interface/src/i18n/nl/index.ts @@ -194,7 +194,6 @@ const nl: Translation = { RELEASE_IS: 'release is', RELEASE_NOTES: 'release notes', EMS_ESP_VER: 'EMS-ESP Versie', - PLATFORM: 'Apparaat (Platform / SDK)', UPTIME: 'Systeem Uptime', HEAP: 'Heap (Free / Max Alloc)', PSRAM: 'PSRAM (Size / Free)', diff --git a/interface/src/i18n/no/index.ts b/interface/src/i18n/no/index.ts index 523aa5f55..bf5a873ca 100644 --- a/interface/src/i18n/no/index.ts +++ b/interface/src/i18n/no/index.ts @@ -194,7 +194,6 @@ const no: Translation = { RELEASE_IS: 'release er', RELEASE_NOTES: 'release notes', EMS_ESP_VER: 'EMS-ESP Version', - PLATFORM: 'Enhet (Platform / SDK)', UPTIME: 'System Oppetid', HEAP: 'Heap (Ledig / Max Allokert)', PSRAM: 'PSRAM (Størrelse / Ledig)', diff --git a/interface/src/i18n/pl/index.ts b/interface/src/i18n/pl/index.ts index 6ebf6499a..0b68a3728 100644 --- a/interface/src/i18n/pl/index.ts +++ b/interface/src/i18n/pl/index.ts @@ -53,7 +53,7 @@ const pl: BaseTranslation = { PROBLEM_LOADING: 'Problem z załadowaniem!', ANALOG_SENSOR: '{{u|u||ustawienia u|ustawień u}}rządzeni{{a podłączonego do EMS-ESP|e||a podłączonego do EMS-ESP|a podłączonego do EMS-ESP}}', ANALOG_SENSORS: 'Urządzenia podłączone do EMS-ESP', - SETTINGS: 'ustawienia', + SETTINGS: 'ustawie{{nia|ń|}}', UPDATED_OF: 'Zaktualizowano {0}.', UPDATE_OF: 'Aktualizacja {0}', REMOVED_OF: 'Usunięto ustawienia {0}.', @@ -126,7 +126,7 @@ const pl: BaseTranslation = { BYPASS_TOKEN: 'Pomiń autoryzację tokenem w wywołaniach API', READONLY: 'Tryb pracy "tylko do odczytu" (blokuje wszystkie komendy zapisu na magistralę EMS)', UNDERCLOCK_CPU: 'Obniż taktowanie CPU', - HEATINGOFF: 'Uruchom boiler z wymuszonym wyłączonym grzaniem', + HEATINGOFF: 'Uruchom kocioł z wymuszonym wyłączonym grzaniem', ENABLE_SHOWER_TIMER: 'Aktywuj minutnik prysznica', ENABLE_SHOWER_ALERT: 'Aktywuj alarm prysznica', TRIGGER_TIME: 'Wyzwalaj po czasie', @@ -146,13 +146,13 @@ const pl: BaseTranslation = { MINUTES: 'minut', HOURS: 'godzin', RESTART: 'Restart', - RESTART_TEXT: 'Aby zastosować wprowadzone zmiany interfejs EMS-ESP musi zostać zrestartowany.', + RESTART_TEXT: 'Aby zastosować wprowadzone zmiany, interfejs EMS-ESP {{musi zostać|zostanie|}} uruchomiony ponowni{{e.|e|}}', RESTART_CONFIRM: 'Na pewno chcesz zrestartować interfejs EMS-ESP?', COMMAND: '{{Komenda|KOMENDA|}}', CUSTOMIZATIONS_RESTART: 'Wszystkie personalizacje zostały usunięte. Restartuję...', CUSTOMIZATIONS_FULL: 'Wybrano za dużo obiektów. Wprowadź zmiany w mniejszych partiach.', CUSTOMIZATIONS_SAVED: 'Personalizacje zostały zapisane.', - CUSTOMIZATIONS_HELP_1: 'Wybierz urządzenie EMS, dostosuj opcje lub kliknij by zmienić nazwę encji.', + CUSTOMIZATIONS_HELP_1: 'Wybierz urządzenie EMS, a następnie dostosuj opcje lub kliknij na nazwie encji by tę nazwę zmienić', CUSTOMIZATIONS_HELP_2: 'oznacz jako ulubioną', CUSTOMIZATIONS_HELP_3: 'zablokuj akcje zapisu', CUSTOMIZATIONS_HELP_4: 'wyklucz z MQTT i API', @@ -164,12 +164,12 @@ const pl: BaseTranslation = { NAME: '{{Nazwa|nazwa|}}', CUSTOMIZATIONS_RESET: 'Na pewno chcesz usunąć wszystkie personalizacje łącznie z ustawieniami dla czujników temperatury 1-Wire® i urządzeń podłączonych do EMS-ESP?', DEVICE_ENTITIES: 'Encje urządzenia', - SUPPORT_INFORMATION: 'Informacje dotyczące wsparcia', + SUPPORT_INFORMATION: '{{I|i|}}nformacj{{e|i|}} o systemie', CLICK_HERE: 'Kliknij tu', - HELP_INFORMATION_1: 'Aby uzyskać instrukcje dotyczące konfiguracji EMS-ESP skorzystaj z wiki w internecie', + HELP_INFORMATION_1: 'Aby uzyskać instrukcje dotyczące konfiguracji EMS-ESP, skorzystaj z wiki w internecie', HELP_INFORMATION_2: 'Aby dołączyć do naszego serwera Discord i komunikować się na żywo ze społecznością', HELP_INFORMATION_3: 'Aby zaproponować nową funkcjonalność lub zgłosić problem', - HELP_INFORMATION_4: 'Zgłaszając problem, nie zapomnij dołączyć informacji o swoim systemie!', + HELP_INFORMATION_4: 'Zgłaszając problem, nie zapomnij pobrać i dołączyć informacji o swoim systemie!', HELP_INFORMATION_5: 'EMS-ESP jest darmowym projektem typu open-source. Aby go wesprzeć, rozważ przyznanie nam gwiazdki na Github!', UPLOAD: 'Wysyłanie', DOWNLOAD: '{{P|p||P}}obier{{anie|z||z}}', @@ -194,20 +194,19 @@ const pl: BaseTranslation = { RELEASE_IS: 'wydanie to', RELEASE_NOTES: 'lista zmian', EMS_ESP_VER: 'Wersja EMS-ESP', - PLATFORM: 'Urządzenie (platforma / SDK)', UPTIME: 'Czas działania systemu', HEAP: 'HEAP (wolne / maksymalny przydział)', PSRAM: 'PSRAM (rozmiar / wolne)', FLASH: 'FLASH (rozmiar / taktowanie)', - APPSIZE: 'Aplikacja (Partition: wykorzystane / wolne)', + APPSIZE: 'Aplikacja (partycja: wykorzystane / wolne)', FILESYSTEM: 'System plików (wykorzystane / wolne)', BUFFER_SIZE: 'Maksymalna pojemność bufora (ilość wpisów)', COMPACT: 'Kompaktowy', ENABLE_OTA: 'Aktywuj aktualizację OTA', DOWNLOAD_CUSTOMIZATION_TEXT: 'Pobierz personalizacje.', DOWNLOAD_SCHEDULE_TEXT: 'Pobierz harmonogram zdarzeń.', - DOWNLOAD_SETTINGS_TEXT: 'Pobierz ustawienia aplikacji. Uważaj jeśli udostępniasz plik z ustawieniami, ponieważ zawiera on hasła oraz inne wrażliwe informacje!', - UPLOAD_TEXT: 'Wyślij firmware (.bin), ustawienia lub personalizacje (.json). Opcjonalnie, wyślij wcześniej plik walidacji (.md5).', + 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!', @@ -319,10 +318,10 @@ const pl: BaseTranslation = { CUSTOM_ENTITIES: '{{N|n|}}iestandardowe{{|j|}} encj{{e|i|}}', ENTITIES_HELP_1: 'Zdefiniuj niestandardowe encje dla magistrali EMS.', ENTITIES_UPDATED: 'Niestandardowe encje zostały uaktualnione.', - WRITEABLE: 'zapisywalna', + WRITEABLE: 'Zapisywalna', SHOWING: 'Wyświetlane', SEARCH: 'Szukaj', - CERT: 'Certyfikat główny TLS (pozostaw puste zby wyłączyć TLS-insecure)', + CERT: 'Certyfikat główny TLS (pozostaw puste dla TLS-insecure)', ENABLE_TLS: 'Włącz wsparcie dla TLS', ON: 'włączony', OFF: 'wyłączony', diff --git a/interface/src/i18n/sk/index.ts b/interface/src/i18n/sk/index.ts index 16af65a66..a7339e3c7 100644 --- a/interface/src/i18n/sk/index.ts +++ b/interface/src/i18n/sk/index.ts @@ -194,7 +194,6 @@ const sk: Translation = { RELEASE_IS: 'vydanie je', RELEASE_NOTES: 'poznámky k vydaniu', EMS_ESP_VER: 'EMS-ESP verzia', - PLATFORM: 'Zariadenie (Platforma / SDK)', UPTIME: 'Beh systému', HEAP: 'Zásobník (voľné / max pridelenie)', PSRAM: 'PSRAM (Veľkosť / Voľné)', diff --git a/interface/src/i18n/sv/index.ts b/interface/src/i18n/sv/index.ts index 4aedff8e5..d0da71165 100644 --- a/interface/src/i18n/sv/index.ts +++ b/interface/src/i18n/sv/index.ts @@ -194,7 +194,6 @@ const sv: Translation = { RELEASE_IS: 'release är', // TODO translate RELEASE_NOTES: 'release-logg', EMS_ESP_VER: 'EMS-ESP Version', - PLATFORM: 'Enhet (Plattform / SDK)', UPTIME: 'Systemets Upptid', HEAP: 'Heap (Ledigt / Max allokerat)', PSRAM: 'PSRAM (Storlek / Ledigt)', diff --git a/interface/src/i18n/tr/index.ts b/interface/src/i18n/tr/index.ts index 4500d547e..67831c170 100644 --- a/interface/src/i18n/tr/index.ts +++ b/interface/src/i18n/tr/index.ts @@ -194,7 +194,6 @@ const tr: Translation = { RELEASE_IS: 'release is', // TODO translate RELEASE_NOTES: 'yayınlanma notları', EMS_ESP_VER: 'EMS-ESP Sürümü', - PLATFORM: 'Cihaz (Platform / SDK)', UPTIME: 'Sistem Çalışma Süresi', HEAP: 'Yığın (Boş / Maksimum Tahsis)', PSRAM: 'PSRAM (Boyut / Boş)', diff --git a/interface/src/project/DashboardDevicesDialog.tsx b/interface/src/project/DashboardDevicesDialog.tsx index aab6fa30d..7fe962371 100644 --- a/interface/src/project/DashboardDevicesDialog.tsx +++ b/interface/src/project/DashboardDevicesDialog.tsx @@ -103,7 +103,7 @@ const DashboardDevicesDialog = ({ return ( - {selectedItem.v === '' && selectedItem.c ? LL.RUN_COMMAND() : writeable ? LL.CHANGE_VALUE() : LL.VALUE(1)} + {selectedItem.v === '' && selectedItem.c ? LL.RUN_COMMAND() : writeable ? LL.CHANGE_VALUE() : LL.VALUE(0)} diff --git a/interface/src/project/Help.tsx b/interface/src/project/Help.tsx index 611695e74..0392de750 100644 --- a/interface/src/project/Help.tsx +++ b/interface/src/project/Help.tsx @@ -39,7 +39,7 @@ const Help: FC = () => { }; return ( - + @@ -90,7 +90,7 @@ const Help: FC = () => { diff --git a/interface/src/project/SettingsCustomization.tsx b/interface/src/project/SettingsCustomization.tsx index 463ec3518..e352d4c1f 100644 --- a/interface/src/project/SettingsCustomization.tsx +++ b/interface/src/project/SettingsCustomization.tsx @@ -514,7 +514,7 @@ const SettingsCustomization: FC = () => { {devices && renderDeviceList()} {deviceEntities && renderDeviceData()} {restartNeeded && ( - + diff --git a/interface/src/project/SettingsCustomizationDialog.tsx b/interface/src/project/SettingsCustomizationDialog.tsx index 1e616218c..e1df49ed7 100644 --- a/interface/src/project/SettingsCustomizationDialog.tsx +++ b/interface/src/project/SettingsCustomizationDialog.tsx @@ -70,7 +70,7 @@ const SettingsCustomizationDialog = ({ open, onClose, onSave, selectedItem }: Se - {LL.ENTITY() + ' ID'}:  + {LL.ID_OF(LL.ENTITY())}:  {editItem.id} diff --git a/interface/src/project/SettingsScheduler.tsx b/interface/src/project/SettingsScheduler.tsx index f8d2d8f72..6dcb83b06 100644 --- a/interface/src/project/SettingsScheduler.tsx +++ b/interface/src/project/SettingsScheduler.tsx @@ -208,7 +208,7 @@ const SettingsScheduler: FC = () => { {LL.SCHEDULE(0)} {LL.TIME(0)} {LL.COMMAND(0)} - {LL.VALUE(0)} + {LL.VALUE(1)} {LL.NAME(0)} diff --git a/interface/src/project/SettingsSchedulerDialog.tsx b/interface/src/project/SettingsSchedulerDialog.tsx index 111625da1..d038f8c40 100644 --- a/interface/src/project/SettingsSchedulerDialog.tsx +++ b/interface/src/project/SettingsSchedulerDialog.tsx @@ -210,7 +210,7 @@ const SettingsSchedulerDialog = ({ /> ({ read, update }: RestRequestOptions2) => { }; onWriteSuccess(() => { - toast.success(LL.UPDATED_OF(LL.SETTINGS())); + toast.success(LL.UPDATED_OF(LL.SETTINGS(0))); setDirtyFlags([]); }); diff --git a/src/locale_translations.h b/src/locale_translations.h index 8fed3e043..41a1b7941 100644 --- a/src/locale_translations.h +++ b/src/locale_translations.h @@ -1,4 +1,4 @@ -/* +/* * EMS-ESP - https://github.com/emsesp/EMS-ESP * Copyright 2020-2023 Paul Derbyshire * @@ -207,8 +207,8 @@ MAKE_WORD_TRANSLATION(boiler_only, "boiler only", "nur Kessel", "uitsluitend cv MAKE_WORD_TRANSLATION(reduced_output, "reduced output", "Reduzierte Leistung", "gereduceerde output", "Reducerad produktion", "zmniejszona wydajność", "redusert ytelse", "sortie réduite", "düşürülmüş çıkış", "riduzione uscita", "znížený výkon") MAKE_WORD_TRANSLATION(switchoff, "switch off hp", "WP ausschalten", "WP uitschakelen", "Värmepump avstängd", "wyłącz pompę ciepła", "slå av varmepumpe", "éteindre la PAC", "ısı pompasını kapat", "spegnimento pompa calore", "vypnúť tep. čerpadlo") MAKE_WORD_TRANSLATION(perm, "perm. reduced", "perm. reduziert", "permanent gereduceerd", "Permanent reducerad", "stale zmniejszona wydajność", "permanent redusert", "réduction permanente", "sürekli azaltılmış", "riduzione permanente", "trvalo znížené") -MAKE_WORD_TRANSLATION(heat_ww, "heating & dhw", "Heizen & Warmwasser", "", "", "", "", "", "", "", "kúrenie a TÚV") -MAKE_WORD_TRANSLATION(cool_defrost, "cooling & defrost", "Kühlen & Abtauen", "", "", "", "", "", "", "", "chladenie a rozmrazovanie") +MAKE_WORD_TRANSLATION(heat_ww, "heating & dhw", "Heizen & Warmwasser", "", "", "ogrzewanie i c.w.u.", "", "", "", "", "kúrenie a TÚV") +MAKE_WORD_TRANSLATION(cool_defrost, "cooling & defrost", "Kühlen & Abtauen", "", "", "chłodzenie i odladzanie", "", "", "", "", "chladenie a rozmrazovanie") // thermostat MAKE_WORD_TRANSLATION(seltemp, "selTemp", "Solltemperatur", "doeltemperatuur", "Börtemperatur", "temperatura zadana", "innstilt temperatur", "consigne température", "ayarlanmış sıcaklık", "temperatura di consegna", "zadaná teplota") @@ -242,7 +242,7 @@ MAKE_WORD_TRANSLATION(constant, "constant", "konstant", "constant", "Konstant", MAKE_WORD_TRANSLATION(simple, "simple", "einfach", "simpel", "enkel", "prosty", "enkel", "simple", "basit", "semplice", "jednoduchý") MAKE_WORD_TRANSLATION(optimized, "optimized", "optimiert", "geoptimaliseerd", "optimerad", "zoptymalizowany", "optimalisert", "optimisé", "optimize", "ottimizzato", "optimalizovaný") MAKE_WORD_TRANSLATION(nofrost, "nofrost", "Frostschutz", "vorstbescherming", "Frostskydd", "ochrona przed zamarzaniem", "frostsikring", "protection gel", "Donma koruması", "protezione gelo", "bez námrazy") -MAKE_WORD_TRANSLATION(defrost, "defrost", "Abtauen", "ontdooien", "avfrostning", "rozmrażać", "tine", "dégivrage", "buz çözücü", "scongelamento", "odmrazenie") +MAKE_WORD_TRANSLATION(defrost, "defrost", "Abtauen", "ontdooien", "avfrostning", "odladzanie", "tine", "dégivrage", "buz çözücü", "scongelamento", "odmrazenie") MAKE_WORD_TRANSLATION(comfort, "comfort", "Komfort", "comfort", "Komfort", "komfort", "komfort", "comfort", "konfor", "comfort", "komfortný") MAKE_WORD_TRANSLATION(night, "night", "Nacht", "nacht", "Natt", "noc", "natt", "nuit", "gece", "notte", "noc") MAKE_WORD_TRANSLATION(day, "day", "Tag", "dag", "Dag", "dzień", "dag", "jour", "gün", "giorno", "deň") @@ -347,7 +347,7 @@ MAKE_TRANSLATION(headertemp, "headertemp", "low loss header", "Hydr. Weiche", "o MAKE_TRANSLATION(heatblock, "heatblock", "heating block", "Wärmezelle", "Aanvoertemp. warmtecel", "", "blok grzewczy", "", "départ corps de chauffe", "Hid.denge kabı sıcaklığı", "mandata scamb. pr.", "vykurovací blok") // TODO translate // heatpump/compress specific -MAKE_TRANSLATION(upTimeTotal, "uptimetotal", "heatpump total uptime", "Wärmpepumpe Gesamtbetriebszeit", "", "", "", "", "", "", "", "celková doba prevádzky tepelného čerpadla") // TODO translate +MAKE_TRANSLATION(upTimeTotal, "uptimetotal", "heatpump total uptime", "Wärmpepumpe Gesamtbetriebszeit", "", "", "łączny czas pracy pompy ciepła", "", "", "", "", "celková doba prevádzky tepelného čerpadla") // TODO translate MAKE_TRANSLATION(upTimeControl, "uptimecontrol", "total operating time heat", "Betriebszeit Heizen gesamt", "Totale bedrijfstijd", "Total tid uppvärmning", "łączny czas generowania ciepła", "total driftstid", "durée totale de fonctionnement chauffage", "ısınma toplam işletme süresi", "Tempo di funzionamento totale riscaldamento", "celkový prevádzkový čas tepla") MAKE_TRANSLATION(upTimeCompHeating, "uptimecompheating", "operating time compressor heating", "Betriebszeit Kompressor heizen", "Bedrijfstijd compressor verwarmingsbedrijf", "Total tid kompressor uppvärmning", "łączny czas ogrzewania (sprężarka)", "totaltid kompressor", "durée de fonctionnement compresseur chauffage", "ısı pompası ısınma işletme süresi", "tempo di funzionamento del compressore riscaldamento", "prevádzková doba vykurovania kompresora") MAKE_TRANSLATION(upTimeCompCooling, "uptimecompcooling", "operating time compressor cooling", "Betriebszeit Kompressor kühlen", "Bedrijfstijd compressor koelbedrijf", "Total tid kompressor kyla", "łączny czas chłodzenia (sprężarka)", "Total tid kompressor kjøling", "durée de fonctionnement compresseur refroidissement", "ısı pompası soğuma işletme süresi", "tempo di funzionamento del compressore raffreddamento", "doba prevádzky chladenia kompresora") @@ -374,7 +374,7 @@ MAKE_TRANSLATION(auxElecHeatNrgConsWW, "auxelecheatnrgconsww", "aux elec. heater MAKE_TRANSLATION(auxElecHeatNrgConsPool, "auxelecheatnrgconspool", "aux elec. heater energy consumption pool", "Energieverbrauch el. Zusatzheizung Pool", "Energieverbruik electrisch verwarmingselement voor zwembadbedrijf", "Energiförbrukning Eltillskott Pool", "energia pobrana przez grzałki na podgrzewanie basenu", "energiforbruk el. tilleggsvarme basseng", "consommation énergie electrique auxiliaire chauffage piscine", "ilave elektrikli ısıtıcı havuz toplam enerji tüketimi", "consumo di energia riscaldamento elettrico ausiliario piscina", "bazén spotreby energie pomocného elektrického ohrievača") MAKE_TRANSLATION(hpCompOn, "hpcompon", "hp compressor", "WP Kompressor", "WP compressor", "VP Kompressor", "sprężarka pompy ciepła", "vp kompressor", "compresseur pompe à chaleur", "hp ısı pompası", "compressore pompa calore", "hp kompresor") -MAKE_TRANSLATION(coolingOn, "coolingon", "cooling", "Kühlen", "koelbedrijf", "Kyla", "chłodzenie", "kjøling", "refroidissement", "hp sıcak kullanım suyu", "", "chladenie") // TODO translate +MAKE_TRANSLATION(coolingOn, "coolingon", "cooling", "Kühlen", "koelbedrijf", "Kyla", "chłodzenie włączone", "kjøling", "refroidissement", "soğutma", "", "chladenie") // TODO translate // MAKE_TRANSLATION(hpHeatingOn, "hpheatingon", "hp heating", "WP Heizen", "WP verwarmingsbedrijf", "VP Uppvärmning", "pompa ciepła, ogrzewanie", "vp oppvarmning", "", "hp ısınıyor", "riscaldamento pompa calore", "vykurovanie hp") // TODO translate // MAKE_TRANSLATION(hpCoolingOn, "hpcoolingon", "hp cooling", "WP Kühlen", "WP koelbedrijf", "VP Kyla", "pompa ciepła, chłodzenie", "vp kjøling", "", "hp soğuyor", "raffreddamento pompa calore", "chladenie hp") // TODO translate // MAKE_TRANSLATION(hpWwOn, "hpwwon", "hp", "WP", "WP", "VP", "pompa ciepła", "vp", "pompe à chaleur", "hp", "pompa calore", "hp") @@ -387,7 +387,7 @@ MAKE_TRANSLATION(hpBrineOut, "hpbrineout", "brine out/condenser", "Sole aus/Kond MAKE_TRANSLATION(hpSwitchValve, "hpswitchvalve", "switch valve", "Schaltventil", "schakelklep", "Växelventil", "zawór przełączający", "skifteventil", "valve de commutation", "ısı pompası aktivitesi", "valvola commutazione pompa di calore", "prepínací ventil") MAKE_TRANSLATION(hpActivity, "hpactivity", "compressor activity", "Kompressor-Betriebsmodus", "Compressoractiviteit", "Kompressoraktivitet", "pompa ciepła, aktywność sprężarki", "kompressoraktivitet", "", "hp ısı pompası", "attività compressore", "činnosť kompresora") // TODO translate -MAKE_TRANSLATION(hpMaxPower, "hpmaxpower", "compressor max power", "max. Kompressorleistung", "", "", "", "", "", "", "", "") // TODO translate +MAKE_TRANSLATION(hpMaxPower, "hpmaxpower", "compressor max power", "max. Kompressorleistung", "", "", "maksymalna wydajność sprężarki", "", "", "", "", "") // TODO translate MAKE_TRANSLATION(hpPower, "hppower", "compressor power output", "Kompressorleistung", "Compressorvermogen", "Kompressoreffekt", "moc wyjściowa sprężarki", "kompressoreffekt", "puissance de sortie compresseur", "ısı pompası güç çıkışı", "potenza uscita compressore", "výkon kompresora") MAKE_TRANSLATION(hpTc0, "hptc0", "heat carrier return (TC0)", "Kältemittel Rücklauf (TC0)", "Koudemiddel retour (TC0)", "Värmebärare Retur (TC0)", "temperatura nośnika ciepła na powrocie (TC0)", "kjølemiddel retur (TC0)", "retour caloporteur (TC0)", "sıcak su dönüşü (TC0)", "ritorno del refrigerante (TC0)", "návrat nosiča tepla (TC0)") MAKE_TRANSLATION(hpTc1, "hptc1", "heat carrier forward (TC1)", "Kältemittel Vorlauf (TC1)", "Koudemiddel aanvoer (TC1)", "Värmebärare Framledning (TC1)", "temperatura nośnika ciepła pierwotna (TC1)", "kjølemiddel tur (TC1)", "avance caloporteur (TC1)", "sıcak su çıkışı (TC1)", "flusso di refrigerante (TC1)", "nosič tepla vpred (TC1)") @@ -440,7 +440,7 @@ MAKE_TRANSLATION(auxHeatMode, "auxheatrmode", "aux heater mode", "Modus Zusatzhe MAKE_TRANSLATION(auxMaxLimit, "auxmaxlimit", "aux heater max limit", "Zusatzheizer max. Grenze", "Bijverwarmer grensinstelling maximaal", "", "dogrzewacz, maksymalny limit", "tillegsvarme maksgrense", "", "ilave ısıtıcı maks limit", "limite massimo riscaldatore addizionale", "maximálny limit pomocného ohrievača") // TODO translate MAKE_TRANSLATION(auxLimitStart, "auxlimitstart", "aux heater limit start", "Zusatzheizer Grenze Start", "Bijverwarmer grens voor start", "", "dogrzewacz, początek ograniczenia", "tillegsvarme startgrense", "", "ilave ısıtıcı limir başlangıcı", "avvio limite massimo riscaldatore addizionale", "spustenie limitu pomocného ohrievača") // TODO translate MAKE_TRANSLATION(manDefrost, "mandefrost", "manual defrost", "Manuelle Enteisung", "Handmatige ontdooicyclus", "", "ręczne odladzanie", "manuell avisning", "", "manuel buz çözme", "sbrinamento manuale", "manuálne odmrazovanie") // TODO translate -MAKE_TRANSLATION(pvCooling, "pvcooling", "Cooling only with PV", "Kühlen nur mit PV", "Koelen alleen met solar PV", "", "chłodzenie tylko z PV", "kjøling med solpanel", "", "sadece PV ile soğutma", "solo raffrescamento con solare", "Chladenie len s FV") // TODO translate +MAKE_TRANSLATION(pvCooling, "pvcooling", "cooling only with PV", "Kühlen nur mit PV", "Koelen alleen met solar PV", "", "chłodzenie tylko z PV", "kjøling med solpanel", "", "sadece PV ile soğutma", "solo raffrescamento con solare", "Chladenie len s FV") // TODO translate MAKE_TRANSLATION(hpCircPumpWw, "hpcircpumpww", "circulation pump available during dhw", "Zirkulation möglich bei WW-Bereitung", "Circulatiepomp WP beschikbaar tijdens ww", "", "pompa cyrkulacji dostępna w trakcie c.w.u.", "sirkulasjonspumpe tilgjengelig under varmtvann", "", "SKS esnasında sirkülasyon pompasu uygun", "pompa di circolazione disponibile durante ACS", "obehové čerpadlo k dispozícii počas TÚV") // TODO translate MAKE_TRANSLATION(vp_cooling, "vpcooling", "valve/pump cooling", "Ventil/Pumpe für Kühlen", "Klep koeling", "", "zawór/pompa chłodzenia", "varmepumpe kjøling", "", "vana/pompa soğuyor", "valvola/pompa raffrescamento", "chladenie ventilu/čerpadla") // TODO translate MAKE_TRANSLATION(VC0valve, "vc0valve", "VC0 valve", "VC0 Ventil", "Klep VC0", "", "zawór VC0", "vc0 ventil", "", "VC0 vana", "valvola VC0", "VC0 ventil") // TODO translate @@ -454,13 +454,13 @@ MAKE_TRANSLATION(elHeatStep3, "elheatstep3", "el. heater step 3", "El. Heizer St MAKE_TRANSLATION(wwAlternatingOper, "wwalternatingop", "alternating operation", "Wechselbetrieb", "Wisselbedrijf ww", "", "praca naprzemienna", "alternativ drift", "", "sıcak kullanım suyu alternatif işletim", "funzionamento alternato", "striedavá prevádzka") // TODO translate MAKE_TRANSLATION(wwAltOpPrioHeat, "wwaltopprioheat", "prioritise heating during dhw", "Heizen bevorzugt vor WW", "Proriteit verwarming boven ww", "", "czas na ogrzewanie w trakcie c.w.u", "prioritert oppvarmning", "", "sıcak kullanım suyu esnasında ısıtmayı öne al", "dare la priorità al riscaldamento durante l'ACS", "Uprednostniť ohrev počas TÚV") // TODO translate MAKE_TRANSLATION(wwAltOpPrioWw, "wwaltopprioww", "prioritise dhw during heating", "WW bevorzugt vor Heizen", "Prioriteit ww boven verwarming", "", "czas na c.w.u w trakcie ogrzewania", "prioritert varmtvann", "", "ısıtma esnasında sıcak kullanım suyunu öne al", "dare priorità all'acqua calda durante il riscaldamento", "uprednostniť TÚV počas ohrevu") // TODO translate -MAKE_TRANSLATION(hpEA0, "hpea0", "condensate reservoir heating (EA0)", "Heizung Kondensatwanne (EA0)", "", "", "", "", "", "", "", "ohrievanie zásobníka kondenzátu (EA0)") // TODO translate -MAKE_TRANSLATION(boost, "boost", "boost mode", "Boost", "", "", "", "", "", "", "", "") // TODO translate -MAKE_TRANSLATION(boosttime, "boosttime", "boost time", "Boost Dauer", "", "", "", "", "", "", "", "") // TODO translate -MAKE_TRANSLATION(hpPumpMode, "hppumpmode", "primary heatpump mode", "Modus Hauptpumpe", "", "", "", "", "", "", "", "") // TODO translate -MAKE_TRANSLATION(instantstart, "instantstart", "instant start", "Sofortstart", "", "", "", "", "", "", "", "") // TODO translate -MAKE_TRANSLATION(heatondelay, "heatondelay", "heat-on delay", "Einschaltverzögerung Heizen", "", "", "", "", "", "", "", "") // TODO translate -MAKE_TRANSLATION(heatoffdelay, "heatoffdelay", "heat-off delay", "Ausschaltverzögerung Heizen", "", "", "", "", "", "", "", "") // TODO translate +MAKE_TRANSLATION(hpEA0, "hpea0", "condensate reservoir heating (EA0)", "Heizung Kondensatwanne (EA0)", "", "", "ogrzewanie zbiornika kondensatu (EA0)", "", "", "", "", "ohrievanie zásobníka kondenzátu (EA0)") // TODO translate +MAKE_TRANSLATION(boost, "boost", "boost mode", "Boost", "", "", "tryb wzmocnienia (boost)", "", "", "", "", "") // TODO translate +MAKE_TRANSLATION(boosttime, "boosttime", "boost time", "Boost Dauer", "", "", "czas trwania wzmocnienia", "", "", "", "", "") // TODO translate +MAKE_TRANSLATION(hpPumpMode, "hppumpmode", "primary heatpump mode", "Modus Hauptpumpe", "", "", "tryb pracy głównej pompy ciepła", "", "", "", "", "") // TODO translate +MAKE_TRANSLATION(instantstart, "instantstart", "instant start", "Sofortstart", "", "", "natychmiastowy start", "", "", "", "", "") // TODO translate +MAKE_TRANSLATION(heatondelay, "heatondelay", "heat-on delay", "Einschaltverzögerung Heizen", "", "", "opóźnienie włączania ogrzewania", "", "", "", "", "") // TODO translate +MAKE_TRANSLATION(heatoffdelay, "heatoffdelay", "heat-off delay", "Ausschaltverzögerung Heizen", "", "", "opóźnienie włączania ogrzewania", "", "", "", "", "") // TODO translate // hybrid heatpump MAKE_TRANSLATION(hybridStrategy, "hybridstrategy", "hybrid control strategy", "Hybrid Strategie", "Hybride strategie", "Hybrid kontrollstrategi", "strategia sterowania hybrydowego", "hybrid kontrollstrategi", "stratégie contrôle hybride", "hibrit kontrol stratejisi", "strategia comtrollo ibrido", "hybridná stratégia riadenia") @@ -475,7 +475,7 @@ MAKE_TRANSLATION(lowNoiseStart, "lownoisestart", "low noise starttime", "Start g MAKE_TRANSLATION(lowNoiseStop, "lownoisestop", "low noise stoptime", "Stopp geräuscharmer Betrieb", "Stop stil bedrijf", "Tyst läge stopptid", "koniec trybu cichego", "stille modus stopptid", "heure arrêt faible bruit", "düşük ses bitiş", "ora di arresto funzionamento silenzioso", "doba zastavenia s nízkou hlučnosťou") MAKE_TRANSLATION(energyPriceGas, "energypricegas", "energy price gas", "Energiepreis Gas", "Energieprijs gas", "Gaspris", "cena energii z gazu", "energipris gass", "prix énergie gaz", "gaz enerjisi fiyatı", "prezzo energia gas", "cena energie plyn") MAKE_TRANSLATION(energyPriceEl, "energypriceel", "energy price electric", "Energiepreis Eletrizität", "energieprijs electriciteit", "Elpris", "cena energii elektrycznej", "strømpris", "prix énergie électrique", "elektrik enerjisi fiyatı", "prezzo energia elettrica", "cena elektrickej energie") -MAKE_TRANSLATION(energyPricePV, "energyfeedpv", "feed in PV", "PV Einspeisevergütung", "PV teruglevertarief", "PV Energi", "zasilanie energią PV", "strømpris PV", "alimentation PV", "giren güneş enerjisi", "energia fotovoltaico", "Výkupná cena FV") +MAKE_TRANSLATION(energyPricePV, "energyfeedpv", "feed in PV", "PV Einspeisevergütung", "PV teruglevertarief", "PV Energi", "cena energii PV", "strømpris PV", "alimentation PV", "giren güneş enerjisi", "energia fotovoltaico", "Výkupná cena FV") MAKE_TRANSLATION(hybridDHW, "hybriddhw", "hybrid DHW", "Hybrid Warmwasser", "Hybride ww", "Hybridläge varmvatten", "hybrydowa c.w.u.", "hybridmodus varmtvann", "ecs hybride", "hibrit SKS", "ACS ibrida", "hybridná TÚV") MAKE_TRANSLATION(airPurgeMode, "airpurgemode", "air purge mode", "Luftspülung", "Luchtzuivering", "Luftreningsläge", "tryb oczyszczania powietrza", "luftsrensningsmodus", "mode purge air", "hava temizleme modu", "modalita spurgo aria", "režim čistenia vzduchu") MAKE_TRANSLATION(heatPumpOutput, "heatpumpoutput", "heatpump output", "WP Leistung", "WP output", "Värmepumpseffekt", "moc wyjściowa pompy ciepła", "varmepumpeeffekt", "sortie pompe à chaleur", "ısı pompası çıkışı", "prestazione pompa calore", "Výkon tepelného čerpadla") @@ -522,19 +522,19 @@ MAKE_TRANSLATION(releaseWait, "releasewait", "boiler release wait time", "Wartez // energy MAKE_TRANSLATION(nrgTotal, "nrgtotal", "total energy", "Energie gesamt", "", "", "całkowita energia", "", "", "", "", "celková energia") // TODO translate -MAKE_TRANSLATION(nrgHeat, "nrgheat", "energy heating", "Energie Heizen", "", "", "energia grzania", "", "", "ısıtma enerjisi", "", "energetické vykurovanie") // TODO translate -MAKE_TRANSLATION(nrgWw, "nrgww", "energy", "Energie", "", "", "energia", "", "", "sıcak kullanım suyu enerjisi", "", "energia") // TODO translate +MAKE_TRANSLATION(nrgHeat, "nrgheat", "energy heating", "Energie Heizen", "", "", "energia na ogrzewanie", "", "", "ısıtma enerjisi", "", "energetické vykurovanie") // TODO translate +MAKE_TRANSLATION(nrgWw, "nrgww", "energy", "Energie", "", "", "energia na c.w.u.", "", "", "sıcak kullanım suyu enerjisi", "", "energia") // TODO translate MAKE_TRANSLATION(nomPower, "nompower", "nominal Power", "Brennerleistung", "", "", "moc nominalna", "", "", "nominal güç", "", "nominálny výkon") // TODO translate MAKE_TRANSLATION(meterTotal, "metertotal", "meter total", "Messung gesamt", "", "", "licznik całkowity", "", "", "", "", "meter celkom") // TODO translate MAKE_TRANSLATION(meterComp, "metercomp", "meter compressor", "Messung Kompressor", "", "", "licznik sprężarki", "", "", "", "", "meter kompresor") // TODO translate -MAKE_TRANSLATION(meterEHeat, "metereheat", "meter e-heater", "Messung E-Heizer", "", "", "licznik e-heater", "", "", "", "", "elektrický ohrievač") // TODO translate -MAKE_TRANSLATION(meterHeat, "meterheat", "meter heating", "Messung Heizen", "", "", "licznik grzania", "", "", "", "", "") // TODO translate +MAKE_TRANSLATION(meterEHeat, "metereheat", "meter e-heater", "Messung E-Heizer", "", "", "licznik dogrzewacza", "", "", "", "", "elektrický ohrievač") // TODO translate +MAKE_TRANSLATION(meterHeat, "meterheat", "meter heating", "Messung Heizen", "", "", "licznik ogrzewania", "", "", "", "", "") // TODO translate // HIU MAKE_TRANSLATION(netFlowTemp, "netflowtemp", "heat network flow temp", "System Vorlauftemperatur", "Netto aanvoertemperatuur", "", "temp. zasilania sieci cieplnej", "", "", "ısıtma şebekesi akış derecesi", "temperatura di mandata della rete di riscaldamento", "teplota prívodu tepelnej siete") // TODO translate // MAKE_TRANSLATION(cwFlowRate, "cwflowrate", "cold water flow rate", "Kaltwasser Durchfluss", "Stroomsnelheid koud water", "", "przepływ zimnej wody", "", "", "soğuk su akış hızı", "portata acqua fredda", "prietok studenej vody") // TODO translate -MAKE_TRANSLATION(keepWarmTemp, "keepwarmtemp", "keep warm temperature", "Warmhaltetemperatur", "Warmhoudtemperatuur", "", "", "temperatura utrzymania ciepłej wody", "", "sıcaklığı koruma derecesi", "mantenere la temperatura calda", "udržať teplú teplotu") // TODO translate -MAKE_TRANSLATION(heatValve, "heatvalve", "heating valve", "Ventil Heizen", "", "", "zawór grzeczy", "", "", "", "", "vykurovací ventil") // TODO translate +MAKE_TRANSLATION(keepWarmTemp, "keepwarmtemp", "keep warm temperature", "Warmhaltetemperatur", "Warmhoudtemperatuur", "", "", "temperatura podtrzymywania ciepła", "", "sıcaklığı koruma derecesi", "mantenere la temperatura calda", "udržať teplú teplotu") // TODO translate +MAKE_TRANSLATION(heatValve, "heatvalve", "heating valve", "Ventil Heizen", "", "", "zawór ogrzewania", "", "", "", "", "vykurovací ventil") // TODO translate MAKE_TRANSLATION(wwValve, "wwvalve", "valve", "Ventil", "", "", "zawór", "", "", "", "", "ventil") // TODO translate // the following are dhw for the boiler and automatically tagged with 'dhw' @@ -642,7 +642,7 @@ MAKE_TRANSLATION(nighttemp, "nighttemp", "night temperature", "Nachttemperatur", MAKE_TRANSLATION(nighttemp2, "nighttemp", "night temperature T1", "Nachttemperatur T1", "Nachttemperatuur T1", "Nattemperatur T1", "temperatura w nocy T1", "nattemperatur T1", "température nuit T1", "gece sıcaklığı T1", "temperatura notturna T1", "nočná teplota T1") MAKE_TRANSLATION(ecotemp, "ecotemp", "eco temperature", "eco Temperatur", "Temperatuur eco", "Eko-temperatur", "temperatura w trybie eko", "øko temperatur", "température éco", "eko sıcaklık", "Temperatura eco", "eko teplota") MAKE_TRANSLATION(manualtemp, "manualtemp", "manual temperature", "manuelle Temperatur", "Temperatuur handmatig", "Temperatur Manuell", "temperatura ustawiona ręcznie", "manuell temperatur", "température manuelle", "manuel sıcaklık", "temperatura manuale", "manuálna teplota") -MAKE_TRANSLATION(tempautotemp, "tempautotemp", "temporary set temperature automode", "temporäre Solltemperatur", "Streeftemperatuur automodus tijdelijk", "Temporär Aktivering av Auto-läge", "zadana temperatura w pomieszczenia w trybie \"auto\" (tymczasowa)", "temporær valgt temp i automodus", "température temporaire mode automatique", "geçici ayarlı sıcaklık otomatik mod", "impostare temporaneamente temperatura automatica", "automatický režim dočasnej nastavenej teploty") +MAKE_TRANSLATION(tempautotemp, "tempautotemp", "temporary set temperature automode", "temporäre Solltemperatur", "Streeftemperatuur automodus tijdelijk", "Temporär Aktivering av Auto-läge", "zadana temperatura w pomieszczeniu w trybie \"auto\" (tymczasowa)", "temporær valgt temp i automodus", "température temporaire mode automatique", "geçici ayarlı sıcaklık otomatik mod", "impostare temporaneamente temperatura automatica", "automatický režim dočasnej nastavenej teploty") MAKE_TRANSLATION(remoteseltemp, "remoteseltemp", "temporary set temperature from remote", "temporäre Solltemperatur Remote", "Temperatuur van afstandsbedieding", "Temperatur från fjärruppkoppling", "zadana zdalnie temperatura a pomieszczeniu (tymczasowa)", "temporær valgt temp fra fjernbetjening", "température temporaire depuis télécommande", "geçici ayarlı sıcaklık uzaktan", "Temperatura temporanea da remoto", "dočasne nastavená teplota z diaľkového ovládania") MAKE_TRANSLATION(comforttemp, "comforttemp", "comfort temperature", "Komforttemperatur", "Comforttemperatuur", "Komforttemperatur", "temperatura w trybie komfort", "komforttemperatur", "température confort", "konfor sıcaklığı", "temperatura comfort", "komfortná teplota") MAKE_TRANSLATION(summertemp, "summertemp", "summer temperature", "Sommertemperatur", "Zomertemperatuur", "Sommartemperatur", "temperatura przełączania lato/zima", "Sommertemperatur", "température été", "yaz sıcaklığı", "temperatura estiva", "letná teplota") @@ -690,13 +690,13 @@ MAKE_TRANSLATION(switchonoptimization, "switchonoptimization", "switch-on optimi MAKE_TRANSLATION(hpmode, "hpmode", "HP Mode", "WP Modus", "Modus warmtepomp", "", "tryb pracy pompy ciepła", "", "", "yüksek güç modu", "Modalità Termopompa", "Režim HP") // TODO translate MAKE_TRANSLATION(dewoffset, "dewoffset", "dew point offset", "Taupunkt Differenz", "Offset dauwpunt", "", "przesunięcie punktu rosy", "", "", "çiğ noktası göreli", "differenza del punto di rugiada", "posun rosného bodu") // TODO translate MAKE_TRANSLATION(roomtempdiff, "roomtempdiff", "room temp difference", "Raumtemperatur Differenz", "Verschiltemperatuur kamertemp", "", "różnica temp. pomieszczenia", "", "", "oda sıcaklığı farkı", "differenza temperatura ambiente", "rozdiel izbovej teploty") // TODO translate -MAKE_TRANSLATION(hpminflowtemp, "hpminflowtemp", "HP min. flow temp.", "WP minimale Vorlauftemperatur", "Minimale aanvoertemperatuur WP", "", "pompa ciepła minimalna temp przepływu", "", "", "yüksek güç minimum akış sıcaklığı", "temperatura minima di mandata", "VT min. teplota prietoku.") // TODO translate +MAKE_TRANSLATION(hpminflowtemp, "hpminflowtemp", "HP min. flow temp.", "WP minimale Vorlauftemperatur", "Minimale aanvoertemperatuur WP", "", "pompa ciepła, min. temperatura przepływu", "", "", "yüksek güç minimum akış sıcaklığı", "temperatura minima di mandata", "VT min. teplota prietoku.") // TODO translate MAKE_TRANSLATION(hpcooling, "cooling", "cooling", "Kühlen", "Koelen", "Kyler", "chłodzenie", "kjøling", "refroidissement", "soğuma", "raffreddamento", "chladenie") // heatpump and RC100H MAKE_TRANSLATION(airHumidity, "airhumidity", "relative air humidity", "relative Luftfeuchte", "Relatieve luchtvochtigheid", "Relativ Luftfuktighet", "wilgotność względna w pomieszczeniu", "luftfuktighet", "humidité relative air", "havadaki bağıl nem", "umidità relativa aria", "relatívna vlhkosť vzduchu") MAKE_TRANSLATION(dewTemperature, "dewtemperature", "dew point temperature", "Taupunkttemperatur", "Dauwpunttemperatuur", "Daggpunkt", "punkt rosy w pomieszczeniu", "duggtemperatur", "température point rosée", "çiğ noktası sıcaklığı", "temperatura del punto di rugiada", "teplota rosného bodu") -MAKE_TRANSLATION(battery, "battery", "battery", "Batterie", "", "", "bateria", "", "", "", "", "batéria") +MAKE_TRANSLATION(battery, "battery", "battery", "Batterie", "", "", "bateria", "", "", "", "", "batéria") // TODO translate // mixer MAKE_TRANSLATION(flowSetTemp, "flowsettemp", "setpoint flow temperature", "Sollwert Vorlauftemperatur", "Streefwaarde aanvoertemperatuur", "Vald flödestemperatur", "zadana temperatura zasilania", "valgt turtemperatur", "consigne température flux", "akış sıcaklığı ayarı", "Setpoint temperatura di mandata", "požadovaná hodnota výstupnej teploty") MAKE_TRANSLATION(flowTempHc, "flowtemphc", "flow temperature (TC1)", "Vorlauftemperatur HK (TC1)", "Aanvoertemperatuut circuit (TC1)", "Flödestemperatur (TC1)", "temperatura zasilania (TC1)", "turtemperatur (TC1)", "température flux (TC1)", "akış sıcaklığı (TC1)", "temperatura di mandata (TC1)", "teplota prívodu (TC1)") From d3ae73e6b2afa226c9959b180aa35262bd92e9ce Mon Sep 17 00:00:00 2001 From: pswid <78219494+pswid@users.noreply.github.com> Date: Fri, 22 Dec 2023 11:15:17 +0100 Subject: [PATCH 03/12] Restored Polish characters in the font file Polish characters disappeared from the re.woff2 file sometime between April and August this year. I assume it was unintentional. --- interface/public/fonts/re.woff2 | Bin 15744 -> 17056 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/interface/public/fonts/re.woff2 b/interface/public/fonts/re.woff2 index 020729ef8d353ff843438008300bedee1f519380..716979a3470e44a963b7594a6bd24b8cf6f63758 100644 GIT binary patch literal 17056 zcmV)6K*+y$Pew8T0RR91079Su5&!@I0GaRr075tb0RR9100000000000000000000 z0000#Mn+Uk92#sJnm8PVcm`kqgj5Jr34=Tl3<`ngEP>5H3xqTP0X7081Bheu#c4$^$zgJkJ zM6p;4WjE1Iz`LOpI;eGMU2fWrVd;i~;!w3%#i+rVr;V`_JKJs)+UCSxQAOzojn2;c zte@&n{I(f?S%gIdm!jck@@jbOv1IHsdiVW5`aU6o2HW1n{_0d`VB5%_TtvAl z7L^Rpyl$BI#JtMq)6-8+)Lu_S%*@n8P0hxpHod8Qqc<5J`cuCTUp~X{)mhRAEZL4T zaY#{i9WUYEBkZ>CuOg_h+Un@_z(f4Q^{;b(yU_$F=5;ArnfeYrFN1qWlgzABO%ggq zVZKGLLc*_4!otYnT0{{iAJbYYDdlpFJAHxMpJd!==1MYY?ZA(iQ>UB^UW(578%{1YeUC9Rqz%!__ zi;`ZCWx8}Os@30F?e5I#w4%I7CLI{|gUXIcqbXmuL;Q)mU79kNTvq|49r5~lL5J{^t5}_D`MA+(ZNHjvB3>c07rJA!|A*D_qt3WK3KswS59YSbRl~UQb z=#q`4<`7q>1PM~x$E&{is``Ypw+Ryw$@gf<=E-#!BH!4_{c0FV77lmYPJ7gv~oV0ge*z)mnM5|I#vV#r7% zArn;qS*#YwYP~?VVF1}<5^~rr$oGDQ!GQt<3>X58fPjFEgn&VE425s7QECoY?Vr$G z56%apwRPZogm0@3BH@5Ef(GyRqfn7PMKB|OISe_d>6v|5xy{@&DF-ZfgSqTKThs4%-ot&ybFFj#&sEs zNwfmL1qsd@kOFMDP-0<3BA8i$A7YXO3a30mohJ%%4+S@$ipej^oEGV-8%%P(4-H@Q zCP*_P`J5zGWc}|dn3y7WCFC24ha@SoainQV%wI%9Qqt+CcW z{`Ft1&l?+Tw8>`M?Xc5;U9mT>?X%y3IGC>-E)M1!Pm|vZuXad5PK8e!u~6gb3Jq9r zUKN^;h2?7zdDjXg?jrMzKDHXDrF1Ri_hnde@6GtHKeZzW2S zBG-BwY_!Q{gU2b7@u~SLAVibx<#yO%rvbYX#fMx}f}DgGUO4uq+$IxZiKUiV-epTg z$N*(OJJUI5Vb|w&D+kGtVT@@1h(HqIXxKPRNVst2#+?^$e*6Up6f9Jj2$7;BNtP-@ zrYzZ1)bbT5QevVk*>dE-_}>?KWK_Q5GgON9mZ4a%5nQ)nH*FuptU!VJ10SXipm2fpi=oC<*~nxrhg*$sr_{mdM)Bc94IIE1&J;o+w&D4P*ttG$n1Y> zXYllQZf)2BU;he|3mTc_&ztZdy+7&M+jS26L1FRi3X}s=ciE?KYKE%^O89nkby+*fb}gH4&{z zh;gPR7Yex&aU+$CEM8>urWrpX{uB!)R|r``X(fyn!YL3zj!5z;NE1)G1e!`BL#pDB zDFK%aQsj_MMHBgCDx^penTn%46XCGvj`HY11U7peWbSk3@)9(sp7EVOW3^W7)>HI? z4Q}JKEy`v)237~jbcl3^$#h%IACrQ)r%>z1reN*`Xzi6+KT^$@TMHqCK}<*mGlLt6 zmF5D*gNTvQoF6d(!~_+1b~a*x2~(JW4>km1WGM-fLW(Q|1$dyy1(7^*XbMz2$76sI zxEi5mrh;8rj6BR@u_`PcTsZAG5&#IShuQ2k0SsjzFkBME3=+A0Sm>cg%&dhFVhACI z*a=|)08-3UNBNu^oF{)w!6Jz$B(Ur!*f`tu9CkefN9VL&Y)GZ<(&Y;BmZ+s$7Yv>G zI)l}-5zQ|AeU-;v$n(k@MX#SG4n{n@5no&AyvDPthofU8b21fOcQ*wAvFm5$v~83X z)2rGtBehSqm4S-e*`$RX>{CKX9TYQIxRV-9L2#H+!_&+Ij?ydrT0u=xzD4)f#n6cwbCQzh! z=~Rj(gFy+moVY^=`A)yt-|Bdc*8V=!9An&yej0NqZ-BG8%z&Zc`T5+tl;(Sw66RRR z_(i23UirNkJDivh+`$vP0SUgi5a(lD2(V%UgAua@F*Jr@iG+I1nkh5pELaNiwk2RF zbYKNc$-f`NV}jCQ9z4bdzh6V}ShSKg;qImhN-&YlQhE`Ukkrb*7iI7tYD50Y3d`UA z^gAO06j7py8m&~gzZ#uU+O!8p42Xd-C^=iBJmTfQNS^m(iZ@JHIVCSaKfWM}!h`$yUjYQk#yVzeeMq7(rnu!ir*x z2_YVeVG#D=76}UO*3<_|jwXDGkbhI>*F4TlCeodbR3$%YAd5ftf6V|sdLMv~9yDw> zY&48EnBHHz_Yi#r!lY@Ax&xB9!#OL^MpsNaq0iYTK001-IVX^8H%`$t7L5l>W?Rgk!(XkDm6+pX~;NPw$r)P5b*4&--@by=iVqY0Ig z*dCAT-G9ML)V9ReTDhw~Qrz=;_00LE&Qz1*YsM>PUGMC7ScWwY!^(3^+NEzse}4kxhvZBfoNTS?-sY&i@i^znC7WzG z>r8r=Oov^Idf&&`Aihajk1>u$#8hi^)?ssEVNH}ibSAMBT&s1^j~-by2Q;QuI@yLj zHRDD3)%R8-2G_dHDQyPD?t#0#1S#>xE5r^FYizFgppn6x7RS=b(wf4_EC3f0WwJ9` zNEf3Krs0q#oR$CeZ}C(8NkRi&yX3s$D}yi?_$8B*h79DSWq00Enw}Y!&LBgpKz2A) z0)_tbL$t6$6cDZ{OaZQ)gazePxYnui_*h5$(8@}_!VdZp`#lI8y{aW1gs71QFaYjT zTl2C2h)Fj>)nu*a?Uz)?ObRq}2OvJmt-n&H6B9Q+QF~i0su>-h75-4^c^Y6DkF{yT zk*u4wJ|`RTYEShOEdlrz***p~_w?iW3K`F-u@Z&bykioUJx^8a<1}#{;-YM~vJ9A` ziKx4Z7x=bQdAh4SpmO?doNh+KE}QnUVWQPM`xA@7*5%bC3}lfVqHq?t&#$aR5GH#l zjP0p1&Fz}GPzA3GP$Ozl+yZgB+*quxvH@6^Ea#oVTSThli>d8PGk=I%*u;;5wtfmu z7H5KlI1Bb>tAsq=XT5d?!yTEPg9!?#ppKfj%a}uk!}-l&Tu^iF3PCklg0*1dsUk(f z2Q4I@ew|NV%QY)=68uT>Mn^(SM(k&&r9s$LO%tcz*Jx6Ly ztvB1-A0#vOQ21v@n?9G`Ub}k5K zG~r=vg!2=Oy0p5t0h030E{%359q~Bj%prHe8@Ir%NT2aRC};2`ut?Vu`I{ww(~xWhJ_3yYh}N>qe1;|?Joron6K253G5d9QXu0*^MS z4HOhJ{RA?v54Id~wV8|ZNI0M__m4{C!d_FY;|~yO*VXvOhFFUB%#b&CiE4p(Ue{6r zQ1ls3>y zR$?dxP{o%5f|EkqI*Y)KHgPm603S+}igNZN?seGfkjqlQfz?fC-Z0G2phAl8V&fh< zy*(e(nnCum#B9M|_Qn8lNGa%14V0ujUxa@SrYBg&e<^K`U8esI#z&C4hK#>#M=j@| z*EE>*W@Ypo=s>TE+(F#30^u@62AE1g-kL=nju#kVbzPt@udQZU^ZaEDNr+KAJKkV)wPmZF59oa%>3HcHWpAY6(j z!7?A5Vr~iZt&o*DV>MC^hTCRq7;kQ=?aiD5s6#}{cle9AU@I$73SxxHOUhahU92ae zRIG22^qk;jSU_DD0d}PKMz5HkMZ^&goUzFFsX;+8yRkTxnjnK;6@H<;hY6Pos{$EM zbW}jmezA`U|V)m9+CSjGXd% z>4Zv7uQyp?csJsZh+a77S+Fc$mZPH9J19SiO+}I5*-)nSXL{@_vAD`T7a}-&w%+#C<3!pP}0NQn77%Ds`|m9=d}$!i`iRn zm{j@0p^;`^9;gu)adBCzbc?oe$g%~SG~6~?V)4y#E&BC< zxi?^kwrl&rgh5Td?>w92<$c&yp_$_E{?YGJp%I7)c#(l74Af|Vc)6odh^%wcGg^x0 zM{|@@ZBlvwa~Y}Qd$&=Sw@7daN{)f=MQKzElALyhS{fdBs#_2Wg}f4mEW3JF7zhY` zo$@BzPY(tG_-dVa>XCcsi~l`GxHT)CNlZ@*JmGkUQXivnA&>6=x4+h-#7>u-RQ>7) zir@Ob{2O-C{zt>!;c27;==v3|Pbj=CpMC)M#|L|B5!}u#duOiyUyuL0Eph4Ne96Al z|MU)|b<@vdg$$QRAd=k@5n+lvju^4PNZ?KH+1&4;LVqe4HWj4t>Q3^wjD1-MVsaEoct}! zT>Kn2W-BGLtBiuEGo+a)Aa_0H6(aXCW1OxbPjT#_e4qE9f{P4ddK zvy^ViUFKc&w{#m*BwH%P%oEFsZy6{G^ji`K6qVeU``HUr&?>Fzf+3b19b2+>Dsg0n&G64%BXQKgQM#M!i zy8ax^+&_Li?VZ>YdM#cS+nqN1e_jdf>|jQd^HOsP2$^YBxy2wtl7{c`a@n#y)4nX? z^32D%OP?3!mYreu9$Rd^?y$O+AEt*}IA-5J_{8#L>hl)&Xg7B zQaEg9=x8oGU_LEN7UU~`q@p*g8i8)}Rftl|8i^nKx3{|fXMZ#rCVl~ks0-8Rz)hQ zSVbyvmS4BwhGCr{)Uej@l2R|elx1AaH?dgFH))bTpaK-9lxGRY=D@uoLL=frgObAC z8KAnu`N6UE<(}@kHbl6&ZTX~5B!3TrBkI1L{&-zrU_`Y=%>i!@BNn~ny?d?^!!lkH zYL|A^Mo;Am?~9Ts!XCJfH_Noldgy;XXPKG!RB z^1U^u4FHqd@7~W$21Qri&e&b z;TPh+-m|DjspsD*RN-puekH)de>5f7)m%jxUOoT2@6DV*Z*6;_NS~REtEn27X`!kC zi$(Y80V>xt13DYP8@s&w4Pwmw@rri~q^-wN7tgj+Qv-m>66(fgyq(T;rhn!nKqYgi z^Pl_;ttKZdLODa|y^v;#3TQdaLOGQG=)x=Utw}XW>8bg1fa>_VCpm$rQ!qEPtL8@7 zrUO$eck3nrDmjVXMNb9C4{fBF;sAY$W9`?QwZ|WK7AI411Z;dU8OTu(ZtNL;J9m9n zb5>sIVC5R*U&Mq~_tr!MRC4Ny@CCZqY~x6OcByaj_=_D?m56PY^ZMLeO zuZuI7ch0f=4y)GG68f$obaL+VsZGwK?@raOl?{b?*oG=1OMs0nZ`($;BF2&R4i=;Q z*^I|l!rt^#ZE1q72>^7Ke|(_J{k19)(-&lnTRK_o@Vm_6H_p8WxZ)+Ol4IzZ`$fl> zNUbHwxwWJ+K+fM0_sw+wet9SF{x;=xbo!lysjL=C1(BK@=}Jiq3%r}?*AUqQ*?dW1 zMdvT1O=V4&HOMYD1B0h6Y=4gul0==7eR+b;h zkA%d?cJqVjldhMIupaV2&izFr`)bEYkN*dJ$ zH5Ut&j<7t`?*;La1Ft3k_Rfj&1b{w}aFHdOPM2esr$YcrdLlp{NGzWMXq{7+gd0c3 z4mz(sNW1c&5-lugX>0Y`4f^!8zJD*^q_j$Fu8`_aX~9liLAy_@Wz$$M0WZ z9cCLVx|cU()3)i*)}LK+FGv^bUlPyZ+Rf$>+cN8q++mXgB&g9}ALW(~et68$)y)w? z%n2>1T%ME}saU$@CHwQujfrt&hAIPKhYy_5$lUqSw<Q8yQ#JnM*0d zdm_^&$6qTkJ`K%X&F!|MzIUi>&n;Wa;e!t)Qs$gluy+`Df!2`7NVi;XSu0iszz$zv zjtnivg1CGHBE>BU5w6eIuQjA0qN`N;T{RMF2p{1Uzm8N>UlQ$pi}58Ilf1e5I=?tu z|AWSvt=Px0juW2=Vvt5Hw)i;0@-w?GHLFhVxBxI_i?JLNicSg6O*|ERpE>vT<)C3D zKSK)x>DL11CRHu&>~B~t2RAud^55M&(hj%Mzq3@#uYE%CHn-9r2BW|EaehJ5_Cjy# zc79&VV-tfzp6>_pQ*)?fE(QR;)y5f*A}q}u%CZl$4pnX7TH&Q&`;w0A>UETt?Ee>+ z=O&Tq9Ef%Re2c*r8PA-3rTAx<&aB?ZZgMK(btcy5)NDpvi7urm4MHmchE_jIvRh$` z`k0xbl*BERy`Xj@+&bDedw-~V_-L$@X_+437Z~MiW)y0~r`zFZk8v(~d7FV| zY;=|kuw9j(Boc=`<45`pg!6$@-Y35LU^ z8=Nw?ND?|`yzZ4+5ZRX5ToR>A9y0dG{1Y2s@=?4GRxUYAMsPf>)OFhdmT=ZsVU(~S zZ%&RoO*OTgtS7#_TO8ln=$QylO^OW7s7T>tjjBmA{(z!puB}irvU4+X@cF@2%l9Me zizyko#pIg!nOQ2Pv@8=xsfeh*GaE=Hk}`9(Sdx;^8#4)qGl{76B>6cwi$O)r#G^M1 zr22$ZC|k%CaEfu0ak8=Dl%Za-UXxx52Xf_6RPk8>robZe8`Hw9sC$gzV614C8_>!+ ze}r1RX`+Eg-D7~TeUxfkQ;d&mLCC7^fWidQqcV~?;B261nj6r3YGL;k>%l!nN=qey zSc~>ExoMLF6}M?ML-}Z?i?_Q9z=UmhVF4zlYBpI0B6f5u2t2^V1&_#LcXY35z_NRF zUA6K56~s+GIaYMmQfo%n2a)vg^{U#A26C~#mxH@kcwSNzCOpr}!vh}pFLNX9B5xCv zr-^p4v%N-&x4Ets(nys-w=FYWVe{!0^Gw&}xjtvu>iit+{(y5u=wy%MEywiujHKYm z=J-y8YHqTLwVF!p>EMoxyzB~Mj*hR8t$X4%=Sxf?${tYbsdzpafLtI)S;1HW-rUz0s`QY1L*R zX9IN$E1dv*m-2J|T2ieL=f%m8(yFkK;>yslVsc0*nf&iUpoOWXmIX}xCd?WEvrxKR z;)EzeP+O=OWf?Use0-mc%8kt1E1eP7gb;xyN`G`xOmAt{pqooLD^igmVPSCV?n06i zcWICV%uGj7{@7F#rhKKwuRbw3uL=`#)5Og{u=Fx1tSuRr)szxWmABS5GBwv$iK+s* z6)9vCH9fc)|Ji+7{Qpr)L32 zUMqfdIk_Jz+(r`x#QMsGi+yP*5__19lZwLipT3+D*@o{cYg`{{r2ED28gMlFQ%9yN zt41c9VKnBH>ey6MJvhK8$^q_$4z%|7iGtgCM}T|`xw*M-wE&@)Q@vw{CQteCMMR?` z0+Lbg3{dUbv&r}B8oJ&FP`ygG668j7?r+2 zq){+QG)gYuYRqt6z5kloKif-7Nn18ifq9LP9CIyc%RPg3{ny;DR-VtfrWTI!v{$w8 z9xZmtvvbAYckl`hb9o{g?y9@H^*$dsw-4%g;91Zz(pgq>*tN6g7#@)r5=w}$8{#E> z?B5gJZLegnXWiu#y8aS)(ejAByK9_Win;Y(Keq;>kD{2@SX_8_6aykez^y_()L2!c zOWV2e!V+28#mla~^Qf3y_`y-(NsamQkd%}AG##^-Qxf^=env(ECQ4yCKmT!wx!(jf z(``^ugZf_WHhwhS+@C%3tiTz(xkpjmcuRisOnOTB!LXArCNf-ic`^LLTN8QtUFZUq zlku&88%>0}$_S2fjx74 z%j3ZQK_?`?*kg5%l5_PSiw+7Wlr~-8zi6rrb}{nU)RU1r-&1&hVOv7wbkC+H9%)bA)&GOOj8M_%=DJEg{ifbnQ$EH ze07q5TJ|HT<6KUrw^1Aku;x`1jlpMLAkJX(19F*KOfmkFTkP-@cDPav6lGsY8N08a z0?cLtYjl#jdd+MgsV8mFArn9q0=7MT==#6po^!wlwN5fj_zaLf$#y6dbuiVz9uR z1Io^vL`H&;qw|6zg8NIVp|2o7G2s2F3UXU%Tg92Le3YtmY`Sw&jJro-Y-eJ^aAE?? zQNhqiNzur_&(K&&*}&wg%JXeRVz$SXJ|Epq(JNG?B=&F&!BZyMTT@Ennud`)l=}rF z)XXE5r5HCH6XdfX#Z}55V&;*-LMj}>0{%YpQu)Fm=5DDhMRAOPK))r4{OciRZa9{5 z2BQ(-x4x}Ex(%6);XbQMoDFQw$Vdi!0uN~4(hXqrMnXLl$Pl8x3u7_WJ zC}Y(N90zQi80rbUssn&;FublwB?^HNIxH07wM*Ll&LvUUQOwX{&{ii(C;_MkfJ1}m zs0gx83h;-->ea^eWnBe?st$lgY^dxa6qI#eba<2)_!x&{>GkD*p%5t^IIR91JM-DOKDQn9>tUfRLlL0{L(I@$D= zT_e+j+3Zm~hYeT38^*<{>~v=P%QNw;|7eKQur{SgQWJpOX?`~dpsWlgG{U7)^|K2SvWq+vL%r{gnCSbCQ(f*k7NJM1^Mlj=ZYaY5 zxu6m4N5*=-^KON5zr>>Nj==YQ$DD?Bj`GsJ<=N7Ahk(BCBs6G8U82mlT>LV>I%yvo z-f!l>31(hFz-JL2^IHfJj)kagUkh~~-x19CJC1hL`D_sa;ED>j?<#O9%mm<32i!So zY`=FHp4P2gChfoLOKeN98~Q$p$AC|ob|587#a@h#I@54=TYjFAYVMevG?`zrFalvQ9E0(Q?P$}t%13Ky~FpUyUcnzFl8r{dG#h775e2AcEvu;P|LSb;e z@+^U*3h=)AwJnwfb%zB(3mR{EsI=n@j|>_>K+pVPkpj)t_Qg($9q{DRM!@Hv)aRi@ z-%HRzi3iur#{+U7M;tQq$&iLmBFZnSz&(RI7@7@5jSFLYM2j2U0|Dh4odNtsSJnnG zhq;&=bLHBwZx2}g1ErY_7~wL#Q{QC%W2EM*yoO1f?{d;#| zxxAVGLA1Y0&!H&&jFXeE)liMO_3u?~HCAc<1T=kQi$pnF?iFOgV44ArpuOn2*lPSV zj%@$^?IAiaQ+w(rX>a$Ne(@BE@5}em9kmWnH|iN8oFfe&&Hy6yvMn<57;l8Pl)YlW zf6}xAdb70W+hg|Dbf!7Yy8rd=fnEQqkMsP-2lXLB4X0pUK7iWy+I|dG6)5b>=k2B| zI*!4o2O#XtBl92*ZvVqWKv@GB#tV1}-gEUEw6l5v&4>3|0ZzgCcK~d>X6>BLjJcB> zRZ(*m9*FQ*M#)KiX}<1xmsC|Lf683WHpqCTye9;)X>jYBKehns3*v?SYyj(ffSqt1ST?0LcK zg?fpB^P^apc5gqk7}BB50f~O#fqRqWRg6t-cM0B)7G;NiaQP@>i|u?Z+`gml%^M55 zHSxTFEQ$eI3avRnQp8wF^aRANhQo=bL0Oi$#Xau*Of~!zznU;L7`ZyUqlt-c$ez%` zYLQ|a3do{dQN+sms8#^1op8*WVO>Mx{fCk4@)g~zJwlr0yW213_PZxlk7ggCk-cbb)VAue)r=SG zLN5!XDn_C0u$6h zlPKp1OxJQ;2jo_i4>+l_cwHb!K&)YC=Ls8krsaUmOSqp@yy)2!%E%k#fIMdFssPP_ zppjI_s2KiOMl67UyjYwm&rab@83?`o5!HBY^&yDcKu+h z7DZC1(rnxymVp`BC~W2?dzn=zDMwi*zyrs@i8GOVoIvtQCh?OEQb7IM!^8-wA|YBo=M0CTqe3WS(iyeG1s^c}E9ZFVjgKO{D}3rU$r>+hDU*V2W;^*TP($Qb7>>mD^+Fj4D+poE zuvzll3UvfM-BB4A`zw3SL?MbKQ=g3B@~cshl*G_#h7l{~uv%^Hkg9aZikXSrX%;e1 zmIh*l##Qq)BYtdk3WN{*j?^S6t1Mfhu~x8m;D{f4%@|139n24-0ajmf*>lN)Xr#?m-<2e#78ZshwuhIf(7E<`SLvR-WPkB@-i=x_5|4|trEM^%{r1o z8WoW=`0Z=w2-`+*eko|e$`oPk-HS<2sc?~7#|zKqgy|N66ai#GWiDZKC9@|J5H-Wu zX-K%i`t}rQ$#Y!z&>S2U|La+6#G#qmzH6m6b(6O5*256V^@Gq-bnIHIzz%7SNl6q5437qk5#f{D02TCKb}DEDT=7hNs2Z z#41CdZyYjjwhw*)gRlz2Gv=sBN`6!O&fY*fuZ{^N5LE%YU?&!nT}uXyit|QZ{ghqJ zVk&wj`!?>%w1fG$NVqfzuB@~OVYrIa&t63%P>DgzW#T1>#5*8>P5MJlNjMmt=2J=` zIH^w)QJ3!J_&o6*Dmb}T6}`mF!PZi>z-Nv^@{ zS^B=xqTDP8F{DGTsf8frUzu=bN?NL=HpnjZfFfYdmC2x)IE_}hwH1e;P&6aCF)yQ< zu(9hG+(E@y7j)>N*3&!5*=1g*JvWQEx$4jk9Tb#!tUT5_gg1pvG7|oj3UZ^24{(8I z)Wu2-(Jh&@jNGEMI1G*h+%@Fpd53#t_#kfX*dEwpur_xQsy_bv)omDL|jLcl|wzo#7Woc$L6(ttPG|&iANtw z;*_NfEG5LscXyJE9Pff_arSTFIR6}G?qI#~mvJP=*;ySDJM%UBn>Z^vd(WhjULFOU z^z*GMJvZLn`gG%BFkZI~uOt>FiGZhty4237v!LzJEu6QXyP%WUn%a1~@_4%WbouZ$ zc)OonKf{#2DMhmsI54MoN64H5Wm;FE6f>NW3mTzG>%sVMdCOky+4Qu0TI0X4yFXB% z^97O4oXf7=5eHZMsI4NKx~-^c3FeHfs#-@QC((-xA0#3IlF?2`zrFvSyj4{$ghkd)!)ABucHZ<`tlv#{*EHPaYu($Ey)2@>u5RyIS7D80G6X>CbaAz=8O;-)aB@;g@tx;c6=-7mKtyFP1X&icy&}sB|#R-F@w;KeGGpqP-&d}5F9nf;_BBpYPum2rY~4NE8K!ryM~aa1ogUJpGyyh}5sPi^ zuESZh3f(m1Z4edeT+hm2Zw#a!+MGTeU2T}k+R~@}j#T(lnFHb->3SDz{NPW9_&N@D zw8<=jhA_{USVLk}S7uq@P;5dnSb=He6mnTgdl*}|4bh}0X^bZ&RHJ+=z?(ql5YkFq zg|=rlxYWbT?SdU8pMuY=zDo3~1RH0VZIIWU!H2EgzJuovZX@&L&m1h1a>G`!FQ)T= zva8&a9D|sxI29FENxqohf(CSiw*wZizPOXsrzn5B&sd9S96E#lNbW5H&;HP#g277I z@q2)@B5n)=C|HhVImN;U9$W6I$UVZZa#%XA_gt>ZsOg#+qRhkqK%wz&hm=y`9>oP| z{j+=EQ{&-rf)1Ap(=L*RwR=hRT+BHBvhP6yCC@~y(+y$71qS9MmvcuRsEDc#x7TvYNF((Hi1 zOQ(~fWJkADX<&d;rg$oHj?hsH9ht{7tEbrjq%bj)tG9T6Z8>035D;T4m2TDtSXAiwJj09 z@h*vS(CTlXkSPMQxwj1<&zSgKvJh(ldc zVYKVGR2oK}28{$@OVI}mpckcuNVCLoCNMw^QJUbsBGaa4+F)?eUXIGU*(!Y32^_R( z5}x6RQSq;c3l3^@0>ZvbLb0eQ);h%v#_gD`w~%xIq&_Y0g~+}%)B15JDDA0XY6X7O zYe*jBhDWcZI#bHYjQyJbY}75D|8cZb%Vsp`fjk;9KXrp{!Ppgiy6s-DjV;YQ#G|aS zHx`#JT?C@b{E|X*xKfX3{ViOun|8R8k^(e(`_zbC_54BndDfUAd&|8Q?ogw4%oS^O zMULE|kMOYi5D%&kaBLo>ID@miGSGRaTM?0^=mtlQiD9d5xGr4V^2YEWxwOoiOt~Ki zNL401UFkOM_u14*u$zX2wn?SRY5O(7nv%egu~;R6grwvcU0{1)vsq6wBx~@;r5x^+ ziCQai%?cg59$~cSH$Qxu{ZbF$bK5MaC5! zHFhftYBE$3T-6!0C~6WdC6U{WfspKN@3s}G?xfWu-o$LF8=w6K-5~pK`?d4m8Dw#L zedl}tT)FuUn}C*yN*QCUQr5hQan^L`?xo1C!}$dFyny1)^U%c| zD&7Wn6wJ=VZP#RA>&R+!U>b7i(B0CAGB+mYg>G^u?S_@W*coI~^*rp7@&0err1Yu( zCzQaE7fbj$zcbhalz3k8ry2MB*Z2BYOTmDD91x&)M4tmNV71(n!S^9#@}!v9vzFmjGzo6s>8Po6?Y5fwlQsfXl~LKf$hkqYsd=oUm{?IGDI#W!CDESR0=ym< z;bI(s7vV`b4L5G@iuhnk^|(@bB-Q{6_J%35Af>0Ew$)%$e_MBII$C|}Hvdo&cDraJ z+Wsn9-p&mZ(6af+y2bOyx~NMR*Pe+VxDoZ8|8|0Ho#)dk>OBEAJs}Y-n~-`Rzdl1% zB+MFfu0;Z~*+q0yjjfz2q`GOSDSB5?Va?=SbrqEb;Wb5R4bfX4_0@4E_ME=@Xvxc} zXT$VvA$Pfv&$|o&OD=B>u6n4>+2_!)@@T$uYnGTDJ*vw9XneLM2x+5CY(v$*>RBH( zwV8X{j}2A9k8jQ1SMnPd+Rj2jQ=(+1R92+1EpT?Q$o$$7`>zRWs;r!dmCF}du#zfH z7QN#87y+n*GyADy4-F`x`TEkxMuMy$J5Qr$c4f^OP7iw5n05n;<&dY z0f5|EjT}SGkQV>|0HFV%2dq%nrSTW94aahYW6gl^-Z~*YV`Y5@t+&O{YtU|++b&T- zv6;25yCgL8Mpix$Hv^zu$Eru)j41Wt&nL=UESsv!Q{iRGitL3yH*;=_a2w6(AocRP z)HDsW%Zb36s-y*}s>NCX3|LKJ0H7Ylz7ptkn>(pT)Dgf+9Ek&Q0aoEqoMBJmCFkVS zG-K$}H&#huO@h4Je0Z_)ZI-2Rz~XX&Kun}S6$8I7Lc>rQ{0s^`e1zloQA3w2rLqFe zvaEt`dsc(y46bHFR?8&L7j}5DZce{@G>?GnN zmPKO|GV9Be6Sm^$H5#s2jVjez5qx>`5$y>H^a9ndr|mY0PC1zxsyOQm6e7+VnV7gPqvO+&W!cKf>5Lk~(gs;rUFDR_^Qi2X#sS~@KTF5FA1BykkdWmAwI?@({BMG{yOMN}E8 zth`#g+6ifu5#AQBe>SpD>MPrE7n429S{3qRB3NegKqw2XzQ$PCIJkKD1cXFPh!+QC z)?w*(>=7I|ax#R3^D_JsdhjGA<7KMDcS(LVsIrh?4-cCkEk>+3atiShBubJjMXEIE zGANhq|0S3smr5QrjeG?P6)9GtR9S$nmL=O5idUu}BB;@(vDkHcVxp4bhynVP!I^O{ zn3iexwa@(}7o2s@c`sDD?4nDy2=>029=PJFYOlP} zB}|Pv4eIHv5UEL{W-Z#ZYS-bVVMZ8kq|rthP$$h8<79a2t=)Ah2K&=roEYkRKl<5q z4?PNA3`goI?%?sO-;254=lR`m*Uc~w!4T4~&!8c*wiz&Is*Vy45&KOTEzuCutNl)N z>=7I|ax#R3GZ(JhxbxsiO2&&fAHMwf3lJzsun?ibgo_Xx~#mdRZBzeO>k4R$&F7O&2p>I zw|4kN1RaTkn9uJU8yCX{P^8!#;)$hgFhrxRvx6l4LH_u5ZecbrUJ)Pf1op}~hoG`E z3kMiMB{h@!HC1JNJ!08Xh-C`}jF=9+Y@y;jMx;*bDRWgK;=ov|`yf}srauT^Qy@gx zFuGVS^~Ko9^3iZ$xuMv@ggIeNf+NshD&d*h@u*_ P_3Hy(1Zpw-1Zn{Qc8ubJ literal 15744 zcmV-`J%7S?Pew8T0RR9106l;J5&!@I0FHD306iK20RR9100000000000000000000 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 y{^U~631l%Viyw0%mK9y;eEd Date: Fri, 22 Dec 2023 12:25:07 +0100 Subject: [PATCH 04/12] fix german translation from #1522 --- src/locale_translations.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locale_translations.h b/src/locale_translations.h index 8fed3e043..a5a325958 100644 --- a/src/locale_translations.h +++ b/src/locale_translations.h @@ -392,10 +392,10 @@ MAKE_TRANSLATION(hpPower, "hppower", "compressor power output", "Kompressorleist MAKE_TRANSLATION(hpTc0, "hptc0", "heat carrier return (TC0)", "Kältemittel Rücklauf (TC0)", "Koudemiddel retour (TC0)", "Värmebärare Retur (TC0)", "temperatura nośnika ciepła na powrocie (TC0)", "kjølemiddel retur (TC0)", "retour caloporteur (TC0)", "sıcak su dönüşü (TC0)", "ritorno del refrigerante (TC0)", "návrat nosiča tepla (TC0)") MAKE_TRANSLATION(hpTc1, "hptc1", "heat carrier forward (TC1)", "Kältemittel Vorlauf (TC1)", "Koudemiddel aanvoer (TC1)", "Värmebärare Framledning (TC1)", "temperatura nośnika ciepła pierwotna (TC1)", "kjølemiddel tur (TC1)", "avance caloporteur (TC1)", "sıcak su çıkışı (TC1)", "flusso di refrigerante (TC1)", "nosič tepla vpred (TC1)") MAKE_TRANSLATION(hpTc3, "hptc3", "condenser temperature (TC3)", "Verflüssigertemperatur (TC3)", "Condensortemperatuur (TC3)", "Kondensortemperatur (TC3)", "temperatura skraplacza/na wyjściu sprężarki (TC3)", "kondensortemperatur (TC3)", "température condensateur (TC3)", "kondenser sıcaklığı (TC3)", "temperatura condensatore (TC3)", "teplota kondenzátora (TC3)") -MAKE_TRANSLATION(hpTr1, "hptr1", "compressor temperature (TR1)", "Kompessortemperatur (TR1)", "Compressor temperatuur (TR1)", "Kompressor temp (TR1)", "temperatura sprężarki (TR1)", "kompressor temperatur (TR1)", "température compresseur (TR1)", "ısı pompası sıcaklığı (TR1)", "temperatura compressore (TR1)", "teplota kompresora (TR1)") +MAKE_TRANSLATION(hpTr1, "hptr1", "compressor temperature (TR1)", "Kompressortemperatur (TR1)", "Compressor temperatuur (TR1)", "Kompressor temp (TR1)", "temperatura sprężarki (TR1)", "kompressor temperatur (TR1)", "température compresseur (TR1)", "ısı pompası sıcaklığı (TR1)", "temperatura compressore (TR1)", "teplota kompresora (TR1)") MAKE_TRANSLATION(hpTr3, "hptr3", "refrigerant temperature liquid side (condenser output) (TR3)", "Kältemittel (flüssig) (TR3)", "Temperatuur koudemiddel vloeibare zijde (TR3)", "Köldmedium temperatur (kondensorutlopp) (TR3)", "temperatura skraplacza ogrzew. (TR3)", "kjølemiddeltemperatur på væskesiden (TR3)", "température réfrigérant côté liquide (sortie condensateur) (TR3)", "ısı pompası çıkışı (TR3)", "temperatura refrigerante lato liquido (uscita condensatore) (TR3)", "teplota chladiva na strane kvapaliny (výstup kondenzátora) (TR3)") MAKE_TRANSLATION(hpTr4, "hptr4", "evaporator inlet temperature (TR4)", "Verdampfer Eingang (TR4)", "Verdamper ingangstemperatuur (TR4)", "Förångare inloppstemp (TR4)", "temperatura na wejściu parownika (TR4)", "innløpstemperatur for fordamperen (TR4)", "température entrée évaporateur (TR4)", "evaporatör giriş sıcaklığı (TR4)", "temperatura di ingresso dell'evaporatore (TR4)", "Vstupná teplota výparníka (TR4)") -MAKE_TRANSLATION(hpTr5, "hptr5", "compressor inlet temperature (TR5)", "Kompessoreingang (TR5)", "Compressor ingangstemperatuur (TR5)", "Kompressor inloppstemp (TR5)", "temperatura na wejściu sprężarki (TR5)", "kompressor innløpstemp (TR5)", "température entrée compresseur (TR5)", "ısı pompası giriş sıcaklığı (TR5)", "temperatura di ingresso del compressore (TR5)", "vstupná teplota kompresora (TR5)") +MAKE_TRANSLATION(hpTr5, "hptr5", "compressor inlet temperature (TR5)", "Kompressoreingang (TR5)", "Compressor ingangstemperatuur (TR5)", "Kompressor inloppstemp (TR5)", "temperatura na wejściu sprężarki (TR5)", "kompressor innløpstemp (TR5)", "température entrée compresseur (TR5)", "ısı pompası giriş sıcaklığı (TR5)", "temperatura di ingresso del compressore (TR5)", "vstupná teplota kompresora (TR5)") MAKE_TRANSLATION(hpTr6, "hptr6", "compressor outlet temperature (TR6)", "Kompressorausgang (TR6)", "Compressor uitgangstemperatuur (TR6)", "Kompressor utloppstemp (TR6)", "temperatura na wyjściu sprężarki (TR6)", "kompressor utløpstemp (TR6)", "température sortie compresseur (TR6)", "ısı pompası çıkış sıcaklığı (TR6)", "temperatura di uscita del compressore (TR6)", "výstupná teplota kompresora (TR6)") MAKE_TRANSLATION(hpTr7, "hptr7", "refrigerant temperature gas side (condenser input) (TR7)", "Kältemittel (gasförmig) (TR7)", "Temperatuur koudemiddel gasvormig (TR7)", "Köldmedium temperatur gassida (kondensorinlopp) (TR7)", "temperatura czynnika chłodniczego po stronie gazu (wejście skraplacza) (TR7)", "kjølemedium temperatur gassida (kondensatorinløp) (TR7)", "température réfrigérant côté gaz (sortie condensateur) (TR7)", "kondenser giriş sıcaklığı (TR7)", "temperatura refrigerante lato gas (ingresso condensatore) (TR7)", "teplota chladiva na strane plynu (vstup kondenzátora) (TR7)") MAKE_TRANSLATION(hpTl2, "hptl2", "air inlet temperature (TL2)", "Außenluft-Einlasstemperatur (TL2)", "Temperatuur luchtinlaat (TL2)", "Luftintagstemperatur (TL2)", "temperatura wlotu powietrza (TL2)", "luftinntakstemperatur (TL2)", "température entrée air (TL2)", "hava giriş sıcaklığı (TL2)", "temperatura ingresso aria (TL2)", "teplota prívodu vzduchu (TL2)") From 606a7e6eec55fab682fb9e1ae383ca1d218a1a12 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Fri, 22 Dec 2023 12:27:39 +0100 Subject: [PATCH 05/12] add Sieger ES79, #1521 --- src/device_library.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/device_library.h b/src/device_library.h index a955cf52e..82c61e0a6 100644 --- a/src/device_library.h +++ b/src/device_library.h @@ -107,6 +107,7 @@ { 66, DeviceType::THERMOSTAT, "ES72/RC20", DeviceFlags::EMS_DEVICE_FLAG_RC20_N}, // 0x17 or remote { 76, DeviceType::THERMOSTAT, "ES73", DeviceFlags::EMS_DEVICE_FLAG_RC30_N}, // 0x10 {113, DeviceType::THERMOSTAT, "ES72/RC20", DeviceFlags::EMS_DEVICE_FLAG_RC20_N}, // 0x17 +{159, DeviceType::THERMOSTAT, "ES79", DeviceFlags::EMS_DEVICE_FLAG_RC35}, // 0x10 // Thermostat - Junkers - 0x10 {105, DeviceType::THERMOSTAT, "FW100", DeviceFlags::EMS_DEVICE_FLAG_JUNKERS}, From 7d15a8010d3c22ff3ab5bfbe7583870d015b1275 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Fri, 22 Dec 2023 12:32:10 +0100 Subject: [PATCH 06/12] update pkg --- interface/package.json | 10 +- interface/yarn.lock | 232 ++++++++++++++++++++--------------------- 2 files changed, 121 insertions(+), 121 deletions(-) diff --git a/interface/package.json b/interface/package.json index cabd085b3..e0e5ae247 100644 --- a/interface/package.json +++ b/interface/package.json @@ -24,8 +24,8 @@ "@babel/core": "^7.23.6", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.15.0", - "@mui/material": "^5.15.0", + "@mui/icons-material": "^5.15.1", + "@mui/material": "^5.15.1", "@table-library/react-table-library": "4.1.7", "@types/imagemin": "^8.0.5", "@types/lodash-es": "^4.17.12", @@ -43,7 +43,7 @@ "react-dom": "latest", "react-dropzone": "^14.2.3", "react-icons": "^4.12.0", - "react-router-dom": "^6.21.0", + "react-router-dom": "^6.21.1", "react-toastify": "^9.1.3", "sockette": "^2.0.6", "typesafe-i18n": "^5.26.2", @@ -52,8 +52,8 @@ "devDependencies": { "@preact/compat": "^17.1.2", "@preact/preset-vite": "^2.7.0", - "@typescript-eslint/eslint-plugin": "^6.14.0", - "@typescript-eslint/parser": "^6.14.0", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", "concurrently": "^8.2.2", "eslint": "^8.56.0", "eslint-config-airbnb": "^19.0.4", diff --git a/interface/yarn.lock b/interface/yarn.lock index df6f8e816..0e3cf1294 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -957,14 +957,14 @@ __metadata: languageName: node linkType: hard -"@mui/base@npm:5.0.0-beta.27": - version: 5.0.0-beta.27 - resolution: "@mui/base@npm:5.0.0-beta.27" +"@mui/base@npm:5.0.0-beta.28": + version: 5.0.0-beta.28 + resolution: "@mui/base@npm:5.0.0-beta.28" dependencies: "@babel/runtime": "npm:^7.23.5" "@floating-ui/react-dom": "npm:^2.0.4" "@mui/types": "npm:^7.2.11" - "@mui/utils": "npm:^5.15.0" + "@mui/utils": "npm:^5.15.1" "@popperjs/core": "npm:^2.11.8" clsx: "npm:^2.0.0" prop-types: "npm:^15.8.1" @@ -975,20 +975,20 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 944f2a020cb6b58f5dccde55cdc25ec486b26a1f89ee18d108b555e9e8855834890664e4b67eb6e3d1961c3847cd14ec725dd6a28d7e462a26f933c5ef8472b3 + checksum: fb37f4301035bfcd5b6a7280521e3fcccd46ee34f096318c93516c03f3ed9e0bcb0dfbdeeca7611d0ccc42eadef483b7fd9c253cb3a19bbe86d3575144af84ac languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^5.15.0": - version: 5.15.0 - resolution: "@mui/core-downloads-tracker@npm:5.15.0" - checksum: a7aadd4071ff715e618b8db647137579ca63cab4bf6e3acfe86a7d461f71605fc7ce44eeea5b1e789faae8546617b1f7d14c72a0c00fa3d59951b6eee42a6c5d +"@mui/core-downloads-tracker@npm:^5.15.1": + version: 5.15.1 + resolution: "@mui/core-downloads-tracker@npm:5.15.1" + checksum: a2035c49a8a76298fe9acbf4a79cd50eba3fc82e25d5568e11ad7146bac4b4fdebe72a2d63eb33583ca3345fc3e91d805329a6837b924080317246d84684f726 languageName: node linkType: hard -"@mui/icons-material@npm:^5.15.0": - version: 5.15.0 - resolution: "@mui/icons-material@npm:5.15.0" +"@mui/icons-material@npm:^5.15.1": + version: 5.15.1 + resolution: "@mui/icons-material@npm:5.15.1" dependencies: "@babel/runtime": "npm:^7.23.5" peerDependencies: @@ -998,21 +998,21 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 48a1c32a334bafe53723445ce29f73f920150b9421118909fbca37857f635ab802e3f49a247b7bbaf06f0d2b879deed9a9462df4dbd8d3c06cec29638c6a2d12 + checksum: b9d15ec65b6b948dcfc79f6aa19cc21ebde5c424f629378c3c2a37cdd2649404ee539cad43bada0618309bb2e9d9f4d734b5a2742900b6775c36f17cf15dcc5e languageName: node linkType: hard -"@mui/material@npm:^5.15.0": - version: 5.15.0 - resolution: "@mui/material@npm:5.15.0" +"@mui/material@npm:^5.15.1": + version: 5.15.1 + resolution: "@mui/material@npm:5.15.1" dependencies: "@babel/runtime": "npm:^7.23.5" - "@mui/base": "npm:5.0.0-beta.27" - "@mui/core-downloads-tracker": "npm:^5.15.0" - "@mui/system": "npm:^5.15.0" + "@mui/base": "npm:5.0.0-beta.28" + "@mui/core-downloads-tracker": "npm:^5.15.1" + "@mui/system": "npm:^5.15.1" "@mui/types": "npm:^7.2.11" - "@mui/utils": "npm:^5.15.0" - "@types/react-transition-group": "npm:^4.4.9" + "@mui/utils": "npm:^5.15.1" + "@types/react-transition-group": "npm:^4.4.10" clsx: "npm:^2.0.0" csstype: "npm:^3.1.2" prop-types: "npm:^15.8.1" @@ -1031,16 +1031,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: 2ecffcebaa854de521dad6eef7b6d19db15f4cfd17462f6db548db2485bfe2ece8c4347c16a4ba40c621cd1c5c6a823d5936c3af1baf6550883d156d41bbc027 + checksum: e40b61e03eb65b8390f88a0f37adcbeebad4d7b6b41e1995334a2946b0fab003818c3b7a1c2f46bed56c3d1fa360fe261d0ec1cab1fcfe322bcb8a26a94929c1 languageName: node linkType: hard -"@mui/private-theming@npm:^5.15.0": - version: 5.15.0 - resolution: "@mui/private-theming@npm:5.15.0" +"@mui/private-theming@npm:^5.15.1": + version: 5.15.1 + resolution: "@mui/private-theming@npm:5.15.1" dependencies: "@babel/runtime": "npm:^7.23.5" - "@mui/utils": "npm:^5.15.0" + "@mui/utils": "npm:^5.15.1" prop-types: "npm:^15.8.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 @@ -1048,13 +1048,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: f02eee2c460a3d9ea288743dcd2fcb3d1e254c9428b9aae1d7cc37295d6ea530f6641071636922bbf8f36b8ee150330a71d643ca88420b18431d769c3a3cf413 + checksum: 4730b3a62ff5e955896ba731579c571c4948716525c3f6b44eb2590f78b7c016538a50390b473b5c2e648d82ff03c6771cc0bc9ff93edfb8bb311e9751b822e4 languageName: node linkType: hard -"@mui/styled-engine@npm:^5.15.0": - version: 5.15.0 - resolution: "@mui/styled-engine@npm:5.15.0" +"@mui/styled-engine@npm:^5.15.1": + version: 5.15.1 + resolution: "@mui/styled-engine@npm:5.15.1" dependencies: "@babel/runtime": "npm:^7.23.5" "@emotion/cache": "npm:^11.11.0" @@ -1069,19 +1069,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: 02de548366cf52461ba253fad81af00e1eeca828537e9647410583316a7585900467daa62258ec7e4f49143f6c7a114efc987a44b574b83d3e158243606eeaa1 + checksum: 0e03bb6ccc54587b1fa9cacf68d6d7ac6285f7cd0d6294e2cee9212097e640655894762f0ac9020f69da9cf06f887dbeda8f9a7a217625359a2df82ebf082013 languageName: node linkType: hard -"@mui/system@npm:^5.15.0": - version: 5.15.0 - resolution: "@mui/system@npm:5.15.0" +"@mui/system@npm:^5.15.1": + version: 5.15.1 + resolution: "@mui/system@npm:5.15.1" dependencies: "@babel/runtime": "npm:^7.23.5" - "@mui/private-theming": "npm:^5.15.0" - "@mui/styled-engine": "npm:^5.15.0" + "@mui/private-theming": "npm:^5.15.1" + "@mui/styled-engine": "npm:^5.15.1" "@mui/types": "npm:^7.2.11" - "@mui/utils": "npm:^5.15.0" + "@mui/utils": "npm:^5.15.1" clsx: "npm:^2.0.0" csstype: "npm:^3.1.2" prop-types: "npm:^15.8.1" @@ -1097,7 +1097,7 @@ __metadata: optional: true "@types/react": optional: true - checksum: eeaaf11f5b63e53bec8e8bdc4eff187cea13d2ec0dbb0b2b3d1a392b264cc31f3b5e6cba69835aa8b02da29ec7e2c3522946b2c738321a14cd3e995f04c45312 + checksum: 8e2e2cff80218ec5ea13ca5ce7d7b81e31f3e2ab3f0c3149230c8b221724a09635b1794ede9b65b3ec825bd062ede0eecbf839a00ba57c9091ce7799dc196129 languageName: node linkType: hard @@ -1113,9 +1113,9 @@ __metadata: languageName: node linkType: hard -"@mui/utils@npm:^5.15.0": - version: 5.15.0 - resolution: "@mui/utils@npm:5.15.0" +"@mui/utils@npm:^5.15.1": + version: 5.15.1 + resolution: "@mui/utils@npm:5.15.1" dependencies: "@babel/runtime": "npm:^7.23.5" "@types/prop-types": "npm:^15.7.11" @@ -1127,7 +1127,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 241ce42bc2f18df46f2adbbac640f16a64afd55a7829b10ef944d6648d45223ecad825ee56a44db29f6c387384e3977e30a966ea4425bda667e92989dd218b0a + checksum: 3d583ea55402295f9249f2fa1db652bbdca49df5227f731b067e04718d5704774e81b60b741231e49093eda6d4e80ce4fad315006516cb705acc7b0ac68f9d76 languageName: node linkType: hard @@ -1262,10 +1262,10 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.14.0": - version: 1.14.0 - resolution: "@remix-run/router@npm:1.14.0" - checksum: cc46150f087695ba9da9aa905bcbe1d53d7e3ae4de37645c206b4bcb57a4605ebf3bdc87b9eff299562e7d68ddf80d412ac64cc60ecd2116d4aeb39cf8a0e358 +"@remix-run/router@npm:1.14.1": + version: 1.14.1 + resolution: "@remix-run/router@npm:1.14.1" + checksum: caed61639006444a66ca832f1e500bac2fcf02695183e967ff1452d3172f888f2bb40591b239c85f9003b9628383cfd4c8ef55cde800d14276905c7031c9f0b9 languageName: node linkType: hard @@ -1613,12 +1613,12 @@ __metadata: languageName: node linkType: hard -"@types/react-transition-group@npm:^4.4.9": - version: 4.4.9 - resolution: "@types/react-transition-group@npm:4.4.9" +"@types/react-transition-group@npm:^4.4.10": + version: 4.4.10 + resolution: "@types/react-transition-group@npm:4.4.10" dependencies: "@types/react": "npm:*" - checksum: 74ed0985380544bd1d63d8865a452a859ed7122b35dd2cf919fa7d1f31936345671995d36c89263456f27dbb5940eac8d4607be969e27187102eecff1cc64ba3 + checksum: b429f3bd54d9aea6c0395943ce2dda6b76fb458e902365bd91fd99bf72064fb5d59e2b74e78d10f2871908501d350da63e230d81bda2b616c967cab8dc51bd16 languageName: node linkType: hard @@ -1676,15 +1676,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.14.0" +"@typescript-eslint/eslint-plugin@npm:^6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.15.0" dependencies: "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:6.14.0" - "@typescript-eslint/type-utils": "npm:6.14.0" - "@typescript-eslint/utils": "npm:6.14.0" - "@typescript-eslint/visitor-keys": "npm:6.14.0" + "@typescript-eslint/scope-manager": "npm:6.15.0" + "@typescript-eslint/type-utils": "npm:6.15.0" + "@typescript-eslint/utils": "npm:6.15.0" + "@typescript-eslint/visitor-keys": "npm:6.15.0" debug: "npm:^4.3.4" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.4" @@ -1697,44 +1697,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: d420277bed0104713fb4a3c2e0fed32b300919708db3f2e3d13bc83e80a9aec181bfc4e1e6012c65408c318f3ac113926fc77e6667d7657e34fa0d5a2c21ee32 + checksum: 9020370c5e89b52b65ed2373c755d4b70f57ec7ebcf02d3e2f323f31ec81717af110d8e5f903b189b71e0a952f042e0fe2b637e77959c3102907efed4ba55512 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/parser@npm:6.14.0" +"@typescript-eslint/parser@npm:^6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/parser@npm:6.15.0" dependencies: - "@typescript-eslint/scope-manager": "npm:6.14.0" - "@typescript-eslint/types": "npm:6.14.0" - "@typescript-eslint/typescript-estree": "npm:6.14.0" - "@typescript-eslint/visitor-keys": "npm:6.14.0" + "@typescript-eslint/scope-manager": "npm:6.15.0" + "@typescript-eslint/types": "npm:6.15.0" + "@typescript-eslint/typescript-estree": "npm:6.15.0" + "@typescript-eslint/visitor-keys": "npm:6.15.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 34f46aa8aaadb0d0ecb7d791a8436fcf44ec04af33ee9d198bcf6f7ca3927d8caa79d4756e0c4ef0d50979d895df0b8f1a2473fc83104423c96856e9d56047f3 + checksum: fdd1f584e5068216c36a01e40750950ef309b36a522f6ecde36931690558a319960a702b4b4a806f335fb28ca99f8a07bb206571141550aaab1f6f40066f6605 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/scope-manager@npm:6.14.0" +"@typescript-eslint/scope-manager@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/scope-manager@npm:6.15.0" dependencies: - "@typescript-eslint/types": "npm:6.14.0" - "@typescript-eslint/visitor-keys": "npm:6.14.0" - checksum: fbe945169fe092df5953a54a552a9e8d9dc3dc158a39cd99de7f1843a169c82d3ba59e314b7d0f5b8110dbbe8c37c9e62dc2dda91a31536fe054221d5d8972c3 + "@typescript-eslint/types": "npm:6.15.0" + "@typescript-eslint/visitor-keys": "npm:6.15.0" + checksum: 168d783c06a99784362e2eaaa56396b31716ee785779707ef984c2abb3e822c56440473efc6580cb8b84b2da508731ad184a00b3618bc7f3f93d8243804f2fcf languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/type-utils@npm:6.14.0" +"@typescript-eslint/type-utils@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/type-utils@npm:6.15.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:6.14.0" - "@typescript-eslint/utils": "npm:6.14.0" + "@typescript-eslint/typescript-estree": "npm:6.15.0" + "@typescript-eslint/utils": "npm:6.15.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.0.1" peerDependencies: @@ -1742,23 +1742,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 52c2a380d694f629ed2d37ce9decc5d8f6d276b030dcb8ee2d0a21b667d789e0d50c8a4d06fa60a053cbcc162b50c3708260f569ccd765609f17499d5294c19d + checksum: 8dabb355f09f57de8b46d726ad95a57593e5b87427dee5182afecb490624424afec02b69a27018b352dcb5f930eb391cb8cdc12cd60a93231d4f04e63e2f2c0b languageName: node linkType: hard -"@typescript-eslint/types@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/types@npm:6.14.0" - checksum: bcb32d69ac4a570634e37a3f149b7653a85334ac7b1d736961b627647ceff74797c4ac30b1405c508ede9462fad53b0b4442dbdf21877bf91263390c6e426e95 +"@typescript-eslint/types@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/types@npm:6.15.0" + checksum: d55de64d532c9016c922cc36b86ab661d7d64d942057486a0bca7a7db07fade95c3de59bfe364bc76ab538fb979ca2e4e6744c3acf8919a2d61e73cc7f544363 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.14.0" +"@typescript-eslint/typescript-estree@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.15.0" dependencies: - "@typescript-eslint/types": "npm:6.14.0" - "@typescript-eslint/visitor-keys": "npm:6.14.0" + "@typescript-eslint/types": "npm:6.15.0" + "@typescript-eslint/visitor-keys": "npm:6.15.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -1767,34 +1767,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 870f00e81de428c0afae3f753c04229170aeec76d62dcded0e22cff1c733fe60a350cf68571c889f87ea7a6008b73f7c62a079e91ab056d79aa2b9803a5b7150 + checksum: 920f7f3bfe463a9da943e1a686b7f13ac802a5e33be52f39ac711aa53a1e274dbe173b41bba05581c560fabfc3e1fadcfd81ab53a036afe25fb1a76651fcad7a languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/utils@npm:6.14.0" +"@typescript-eslint/utils@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/utils@npm:6.15.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" "@types/json-schema": "npm:^7.0.12" "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:6.14.0" - "@typescript-eslint/types": "npm:6.14.0" - "@typescript-eslint/typescript-estree": "npm:6.14.0" + "@typescript-eslint/scope-manager": "npm:6.15.0" + "@typescript-eslint/types": "npm:6.15.0" + "@typescript-eslint/typescript-estree": "npm:6.15.0" semver: "npm:^7.5.4" peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: fec7338edc31d89d5413ec49ce690e05741511ba1ba2a8c59ce14321f5026e73e0584dc9f35645ab4100561bcf8ecef8a08c042388743db53fe73f047132a150 + checksum: 7895240933ad28295508f8c4286a8b905550a35eda83a11ecf9511e53078e0af07e75a1872f1bc757f165b41fdc84616ea97c1e2e3bf80cff985935f25596228 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.14.0": - version: 6.14.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.14.0" +"@typescript-eslint/visitor-keys@npm:6.15.0": + version: 6.15.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.15.0" dependencies: - "@typescript-eslint/types": "npm:6.14.0" + "@typescript-eslint/types": "npm:6.15.0" eslint-visitor-keys: "npm:^3.4.1" - checksum: 404f87a121b4375b13e59ffc11ac2fe3c8e40025d0ef5cd6738ab7b3648ce1d41378414b1130ee68e0b454d7e6ec1937540799cdaa4ea572e2447b04d737ee44 + checksum: 4641a829485f67a5d9d3558aa0d152e5ab57b468cfd9653168ce9a141e1f051730669a024505183b64f7a7e5d8f62533af4ebd4ad7366b551390461e9c45ec18 languageName: node linkType: hard @@ -1813,8 +1813,8 @@ __metadata: "@babel/core": "npm:^7.23.6" "@emotion/react": "npm:^11.11.1" "@emotion/styled": "npm:^11.11.0" - "@mui/icons-material": "npm:^5.15.0" - "@mui/material": "npm:^5.15.0" + "@mui/icons-material": "npm:^5.15.1" + "@mui/material": "npm:^5.15.1" "@preact/compat": "npm:^17.1.2" "@preact/preset-vite": "npm:^2.7.0" "@table-library/react-table-library": "npm:4.1.7" @@ -1824,8 +1824,8 @@ __metadata: "@types/react": "npm:^18.2.45" "@types/react-dom": "npm:^18.2.18" "@types/react-router-dom": "npm:^5.3.3" - "@typescript-eslint/eslint-plugin": "npm:^6.14.0" - "@typescript-eslint/parser": "npm:^6.14.0" + "@typescript-eslint/eslint-plugin": "npm:^6.15.0" + "@typescript-eslint/parser": "npm:^6.15.0" alova: "npm:^2.16.1" async-validator: "npm:^4.2.5" concurrently: "npm:^8.2.2" @@ -1850,7 +1850,7 @@ __metadata: react-dom: "npm:latest" react-dropzone: "npm:^14.2.3" react-icons: "npm:^4.12.0" - react-router-dom: "npm:^6.21.0" + react-router-dom: "npm:^6.21.1" react-toastify: "npm:^9.1.3" rollup-plugin-visualizer: "npm:^5.11.0" sockette: "npm:^2.0.6" @@ -7130,27 +7130,27 @@ __metadata: languageName: node linkType: hard -"react-router-dom@npm:^6.21.0": - version: 6.21.0 - resolution: "react-router-dom@npm:6.21.0" +"react-router-dom@npm:^6.21.1": + version: 6.21.1 + resolution: "react-router-dom@npm:6.21.1" dependencies: - "@remix-run/router": "npm:1.14.0" - react-router: "npm:6.21.0" + "@remix-run/router": "npm:1.14.1" + react-router: "npm:6.21.1" peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: 7448674817971c8138a96cef05331fb45cb6ef1f71450db9da87e3e0d0586bb55ba85fd3ca741ed7a22a40b6b6e544c11cff9e2fe3fa5957faf7b8ab74a0dcf3 + checksum: 2d75bd889828fa5516ad076b44506656d826c365645e7079138cd0ef899db28a1b212f708a6c6e3b543ae11b96b2031f01201cc2fe1733dd4d9c5cbdd4d734ef languageName: node linkType: hard -"react-router@npm:6.21.0": - version: 6.21.0 - resolution: "react-router@npm:6.21.0" +"react-router@npm:6.21.1": + version: 6.21.1 + resolution: "react-router@npm:6.21.1" dependencies: - "@remix-run/router": "npm:1.14.0" + "@remix-run/router": "npm:1.14.1" peerDependencies: react: ">=16.8" - checksum: 10c58589d804b823caf3fd46403662769375618ae39ebae99f8df167c43440bb8ebf853548ba2bf96f21027c72c234d4fc37042643c91c9920f1cdfda5e03fab + checksum: 1220cc75e0c915a26dde9dbb6509a8f0b0163d96e5ad591af91d9bb5a92a18401718f8d872a03d1cb366e7a6216c165a5cadd12375adf97943f37d7f5c487a90 languageName: node linkType: hard From 41260a43702153fdd90675226a5cb7c6554dea37 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Fri, 22 Dec 2023 14:46:23 +0100 Subject: [PATCH 07/12] fix nompower warning --- src/system.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/system.cpp b/src/system.cpp index 187b4e32b..552b4ad86 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -254,7 +254,9 @@ bool System::command_watch(const char * value, const int8_t id) { } void System::store_nvs_values() { - Command::call(EMSdevice::DeviceType::BOILER, "nompower", "-1"); // trigger a write + if (Command::find_command(EMSdevice::DeviceType::BOILER, 0, "nompower") != nullptr) { + Command::call(EMSdevice::DeviceType::BOILER, "nompower", "-1"); // trigger a write + } EMSESP::analogsensor_.store_counters(); EMSESP::nvs_.end(); } From ac950e0e9291eddf26d04a1f3f8bfae19616a8c1 Mon Sep 17 00:00:00 2001 From: Proddy Date: Thu, 28 Dec 2023 13:39:14 +0100 Subject: [PATCH 08/12] fix from dev2 for https://github.com/emsesp/EMS-ESP32/pull/1525 --- src/mqtt.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mqtt.cpp b/src/mqtt.cpp index ff2f42351..3b0745405 100644 --- a/src/mqtt.cpp +++ b/src/mqtt.cpp @@ -1194,12 +1194,16 @@ bool Mqtt::publish_ha_climate_config(const uint8_t tag, const bool has_roomtemp, snprintf(mode_str_tpl, sizeof(mode_str_tpl), - "{%%if %s%%}off{%%elif %s=='manual'%%}heat{%%elif %s=='day'%%}heat{%%elif %s=='night'%%}off{%%elif %s=='off'%%}off{%%else%%}auto{%%endif%%}", + "{%%if %s%%}off{%%elif %s=='%s'%%}heat{%%elif %s=='%s'%%}heat{%%elif %s=='%s'%%}off{%%elif %s=='%s'%%}off{%%else%%}auto{%%endif%%}", hc_mode_cond, hc_mode_s, + Helpers::translated_word(FL_(manual)), hc_mode_s, + Helpers::translated_word(FL_(day)), hc_mode_s, - hc_mode_s); + Helpers::translated_word(FL_(night)), + hc_mode_s, + Helpers::translated_word(FL_(off))); snprintf(name_s, sizeof(name_s), "Hc%d", hc_num); From 7c80364bcf8a180bb075f0c1ea67bf75dfcf8e57 Mon Sep 17 00:00:00 2001 From: Proddy Date: Thu, 28 Dec 2023 13:39:28 +0100 Subject: [PATCH 09/12] package update --- interface/package.json | 14 +-- interface/yarn.lock | 270 ++++++++++++++++++++++------------------- mock-api/package.json | 2 +- mock-api/yarn.lock | 10 +- 4 files changed, 155 insertions(+), 141 deletions(-) diff --git a/interface/package.json b/interface/package.json index e0e5ae247..5489c4e60 100644 --- a/interface/package.json +++ b/interface/package.json @@ -22,10 +22,10 @@ "dependencies": { "@alova/adapter-xhr": "^1.0.2", "@babel/core": "^7.23.6", - "@emotion/react": "^11.11.1", + "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.15.1", - "@mui/material": "^5.15.1", + "@mui/icons-material": "^5.15.2", + "@mui/material": "^5.15.2", "@table-library/react-table-library": "4.1.7", "@types/imagemin": "^8.0.5", "@types/lodash-es": "^4.17.12", @@ -33,7 +33,7 @@ "@types/react": "^18.2.45", "@types/react-dom": "^18.2.18", "@types/react-router-dom": "^5.3.3", - "alova": "^2.16.1", + "alova": "^2.16.2", "async-validator": "^4.2.5", "history": "^5.3.0", "jwt-decode": "^4.0.0", @@ -52,8 +52,8 @@ "devDependencies": { "@preact/compat": "^17.1.2", "@preact/preset-vite": "^2.7.0", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", + "@typescript-eslint/eslint-plugin": "^6.16.0", + "@typescript-eslint/parser": "^6.16.0", "concurrently": "^8.2.2", "eslint": "^8.56.0", "eslint-config-airbnb": "^19.0.4", @@ -68,7 +68,7 @@ "eslint-plugin-react-hooks": "^4.6.0", "preact": "^10.19.3", "prettier": "^3.1.1", - "rollup-plugin-visualizer": "^5.11.0", + "rollup-plugin-visualizer": "^5.12.0", "terser": "^5.26.0", "vite": "^5.0.10", "vite-plugin-imagemin": "^0.6.1", diff --git a/interface/yarn.lock b/interface/yarn.lock index 0e3cf1294..2164fce85 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -401,7 +401,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.23.5": +"@babel/runtime@npm:^7.23.6": version: 7.23.6 resolution: "@babel/runtime@npm:7.23.6" dependencies: @@ -534,14 +534,14 @@ __metadata: languageName: node linkType: hard -"@emotion/react@npm:^11.11.1": - version: 11.11.1 - resolution: "@emotion/react@npm:11.11.1" +"@emotion/react@npm:^11.11.3": + version: 11.11.3 + resolution: "@emotion/react@npm:11.11.3" dependencies: "@babel/runtime": "npm:^7.18.3" "@emotion/babel-plugin": "npm:^11.11.0" "@emotion/cache": "npm:^11.11.0" - "@emotion/serialize": "npm:^1.1.2" + "@emotion/serialize": "npm:^1.1.3" "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.1" "@emotion/utils": "npm:^1.2.1" "@emotion/weak-memoize": "npm:^0.3.1" @@ -551,7 +551,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: dfc140718d0a8051a74e51c379226d9de6b19f6a5dd595fb282ef72f4413695a2d012ba919f1e9eeff761c6659e6f7398da8e0e36eb7997a4fdf54cef88644ae + checksum: f7b98557b7d5236296dda48c2fc8a6cde4af7399758496e9f710f85a80c7d66fee1830966caabd7b237601bfdaca4e1add8c681d1ae4cc3d497fe88958d541c4 languageName: node linkType: hard @@ -568,6 +568,19 @@ __metadata: languageName: node linkType: hard +"@emotion/serialize@npm:^1.1.3": + version: 1.1.3 + resolution: "@emotion/serialize@npm:1.1.3" + dependencies: + "@emotion/hash": "npm:^0.9.1" + "@emotion/memoize": "npm:^0.8.1" + "@emotion/unitless": "npm:^0.8.1" + "@emotion/utils": "npm:^1.2.1" + csstype: "npm:^3.0.2" + checksum: 48d88923663273ae70359bc1a1f30454136716cbe0ddd9664be08e257ce56acedab911f125b627627358e37c9f450bbac3ea09b534ef42f9f67325d47b1e2a7b + languageName: node + linkType: hard + "@emotion/sheet@npm:^1.2.2": version: 1.2.2 resolution: "@emotion/sheet@npm:1.2.2" @@ -957,14 +970,14 @@ __metadata: languageName: node linkType: hard -"@mui/base@npm:5.0.0-beta.28": - version: 5.0.0-beta.28 - resolution: "@mui/base@npm:5.0.0-beta.28" +"@mui/base@npm:5.0.0-beta.29": + version: 5.0.0-beta.29 + resolution: "@mui/base@npm:5.0.0-beta.29" dependencies: - "@babel/runtime": "npm:^7.23.5" + "@babel/runtime": "npm:^7.23.6" "@floating-ui/react-dom": "npm:^2.0.4" "@mui/types": "npm:^7.2.11" - "@mui/utils": "npm:^5.15.1" + "@mui/utils": "npm:^5.15.2" "@popperjs/core": "npm:^2.11.8" clsx: "npm:^2.0.0" prop-types: "npm:^15.8.1" @@ -975,22 +988,22 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: fb37f4301035bfcd5b6a7280521e3fcccd46ee34f096318c93516c03f3ed9e0bcb0dfbdeeca7611d0ccc42eadef483b7fd9c253cb3a19bbe86d3575144af84ac + checksum: a651464968af6ebb775c24d2b9badc735b1d595e526ff7f8181186e6eed0735b14af8324db22a8744039ad79ce6dbb7c62920bb92a57959a66cf8e72d68af9aa languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^5.15.1": - version: 5.15.1 - resolution: "@mui/core-downloads-tracker@npm:5.15.1" - checksum: a2035c49a8a76298fe9acbf4a79cd50eba3fc82e25d5568e11ad7146bac4b4fdebe72a2d63eb33583ca3345fc3e91d805329a6837b924080317246d84684f726 +"@mui/core-downloads-tracker@npm:^5.15.2": + version: 5.15.2 + resolution: "@mui/core-downloads-tracker@npm:5.15.2" + checksum: 8c88ac73a1d87c8ce565f6295dcd084c643580848e8f59159402e9db89975263da06305a0e605d3744479e917c2d297319496534bca9df8338e203162f1e7c33 languageName: node linkType: hard -"@mui/icons-material@npm:^5.15.1": - version: 5.15.1 - resolution: "@mui/icons-material@npm:5.15.1" +"@mui/icons-material@npm:^5.15.2": + version: 5.15.2 + resolution: "@mui/icons-material@npm:5.15.2" dependencies: - "@babel/runtime": "npm:^7.23.5" + "@babel/runtime": "npm:^7.23.6" peerDependencies: "@mui/material": ^5.0.0 "@types/react": ^17.0.0 || ^18.0.0 @@ -998,20 +1011,20 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: b9d15ec65b6b948dcfc79f6aa19cc21ebde5c424f629378c3c2a37cdd2649404ee539cad43bada0618309bb2e9d9f4d734b5a2742900b6775c36f17cf15dcc5e + checksum: 6dad9fa436889ab89217d428f38b1f7868eb5db0b8aa2b16086f6e81666763767a29db8897e76d078919df7349a149c6e16da1aea1b3ae48ca0b7ee1e0d9d458 languageName: node linkType: hard -"@mui/material@npm:^5.15.1": - version: 5.15.1 - resolution: "@mui/material@npm:5.15.1" +"@mui/material@npm:^5.15.2": + version: 5.15.2 + resolution: "@mui/material@npm:5.15.2" dependencies: - "@babel/runtime": "npm:^7.23.5" - "@mui/base": "npm:5.0.0-beta.28" - "@mui/core-downloads-tracker": "npm:^5.15.1" - "@mui/system": "npm:^5.15.1" + "@babel/runtime": "npm:^7.23.6" + "@mui/base": "npm:5.0.0-beta.29" + "@mui/core-downloads-tracker": "npm:^5.15.2" + "@mui/system": "npm:^5.15.2" "@mui/types": "npm:^7.2.11" - "@mui/utils": "npm:^5.15.1" + "@mui/utils": "npm:^5.15.2" "@types/react-transition-group": "npm:^4.4.10" clsx: "npm:^2.0.0" csstype: "npm:^3.1.2" @@ -1031,16 +1044,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: e40b61e03eb65b8390f88a0f37adcbeebad4d7b6b41e1995334a2946b0fab003818c3b7a1c2f46bed56c3d1fa360fe261d0ec1cab1fcfe322bcb8a26a94929c1 + checksum: 1ce902070022c40009e01208e95d0d61205ffdbcf4fadd16e6337acdfccfb1c66004525ffe277691c7f3fbdfcebb998f1544c054a31164d580cb040e8a7d2d80 languageName: node linkType: hard -"@mui/private-theming@npm:^5.15.1": - version: 5.15.1 - resolution: "@mui/private-theming@npm:5.15.1" +"@mui/private-theming@npm:^5.15.2": + version: 5.15.2 + resolution: "@mui/private-theming@npm:5.15.2" dependencies: - "@babel/runtime": "npm:^7.23.5" - "@mui/utils": "npm:^5.15.1" + "@babel/runtime": "npm:^7.23.6" + "@mui/utils": "npm:^5.15.2" prop-types: "npm:^15.8.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 @@ -1048,15 +1061,15 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 4730b3a62ff5e955896ba731579c571c4948716525c3f6b44eb2590f78b7c016538a50390b473b5c2e648d82ff03c6771cc0bc9ff93edfb8bb311e9751b822e4 + checksum: 2b1665044fd77286068100bd5c67ba3a31320084b442788e1c0224359b6e8e3213505676fa1db451c970b2e432811b12cbcf2f882c9063d37497dbfcfcd8811e languageName: node linkType: hard -"@mui/styled-engine@npm:^5.15.1": - version: 5.15.1 - resolution: "@mui/styled-engine@npm:5.15.1" +"@mui/styled-engine@npm:^5.15.2": + version: 5.15.2 + resolution: "@mui/styled-engine@npm:5.15.2" dependencies: - "@babel/runtime": "npm:^7.23.5" + "@babel/runtime": "npm:^7.23.6" "@emotion/cache": "npm:^11.11.0" csstype: "npm:^3.1.2" prop-types: "npm:^15.8.1" @@ -1069,19 +1082,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: 0e03bb6ccc54587b1fa9cacf68d6d7ac6285f7cd0d6294e2cee9212097e640655894762f0ac9020f69da9cf06f887dbeda8f9a7a217625359a2df82ebf082013 + checksum: c004a37f4343139896059a706e96175a0f8975cc8807bcea96c099a68a94cf24d7869e685b06511389c9a6e4412acac5ef07614659983a7782f203012b78315b languageName: node linkType: hard -"@mui/system@npm:^5.15.1": - version: 5.15.1 - resolution: "@mui/system@npm:5.15.1" +"@mui/system@npm:^5.15.2": + version: 5.15.2 + resolution: "@mui/system@npm:5.15.2" dependencies: - "@babel/runtime": "npm:^7.23.5" - "@mui/private-theming": "npm:^5.15.1" - "@mui/styled-engine": "npm:^5.15.1" + "@babel/runtime": "npm:^7.23.6" + "@mui/private-theming": "npm:^5.15.2" + "@mui/styled-engine": "npm:^5.15.2" "@mui/types": "npm:^7.2.11" - "@mui/utils": "npm:^5.15.1" + "@mui/utils": "npm:^5.15.2" clsx: "npm:^2.0.0" csstype: "npm:^3.1.2" prop-types: "npm:^15.8.1" @@ -1097,7 +1110,7 @@ __metadata: optional: true "@types/react": optional: true - checksum: 8e2e2cff80218ec5ea13ca5ce7d7b81e31f3e2ab3f0c3149230c8b221724a09635b1794ede9b65b3ec825bd062ede0eecbf839a00ba57c9091ce7799dc196129 + checksum: 05335cc7856750a930e5eef4eaf3e935c1d6dd78add48e86d1d976736adea71c5f37f3c329fd0a8f5fd9d11e40775ab5a62192dc056d240cb365416ad4db5568 languageName: node linkType: hard @@ -1113,11 +1126,11 @@ __metadata: languageName: node linkType: hard -"@mui/utils@npm:^5.15.1": - version: 5.15.1 - resolution: "@mui/utils@npm:5.15.1" +"@mui/utils@npm:^5.15.2": + version: 5.15.2 + resolution: "@mui/utils@npm:5.15.2" dependencies: - "@babel/runtime": "npm:^7.23.5" + "@babel/runtime": "npm:^7.23.6" "@types/prop-types": "npm:^15.7.11" prop-types: "npm:^15.8.1" react-is: "npm:^18.2.0" @@ -1127,7 +1140,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 3d583ea55402295f9249f2fa1db652bbdca49df5227f731b067e04718d5704774e81b60b741231e49093eda6d4e80ce4fad315006516cb705acc7b0ac68f9d76 + checksum: 9ede26d8e2b456a5ecf088d4e2d6903613be57eae97fcd30a9f31ff2c35a0e4329c728bd20c94c6f3468038935c3101a040c2cfb7dd6ff7a490811af0675d90a languageName: node linkType: hard @@ -1676,15 +1689,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.15.0" +"@typescript-eslint/eslint-plugin@npm:^6.16.0": + version: 6.16.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.16.0" dependencies: "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:6.15.0" - "@typescript-eslint/type-utils": "npm:6.15.0" - "@typescript-eslint/utils": "npm:6.15.0" - "@typescript-eslint/visitor-keys": "npm:6.15.0" + "@typescript-eslint/scope-manager": "npm:6.16.0" + "@typescript-eslint/type-utils": "npm:6.16.0" + "@typescript-eslint/utils": "npm:6.16.0" + "@typescript-eslint/visitor-keys": "npm:6.16.0" debug: "npm:^4.3.4" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.4" @@ -1697,44 +1710,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 9020370c5e89b52b65ed2373c755d4b70f57ec7ebcf02d3e2f323f31ec81717af110d8e5f903b189b71e0a952f042e0fe2b637e77959c3102907efed4ba55512 + checksum: 4bedce948ac3c20492a59813ee5d4f1f2306310857864dfaac2736f6c38e18785002c36844fd64c9fbdf3059fc390b29412be105fd7a118177f1eeeb1eb533f7 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/parser@npm:6.15.0" +"@typescript-eslint/parser@npm:^6.16.0": + version: 6.16.0 + resolution: "@typescript-eslint/parser@npm:6.16.0" dependencies: - "@typescript-eslint/scope-manager": "npm:6.15.0" - "@typescript-eslint/types": "npm:6.15.0" - "@typescript-eslint/typescript-estree": "npm:6.15.0" - "@typescript-eslint/visitor-keys": "npm:6.15.0" + "@typescript-eslint/scope-manager": "npm:6.16.0" + "@typescript-eslint/types": "npm:6.16.0" + "@typescript-eslint/typescript-estree": "npm:6.16.0" + "@typescript-eslint/visitor-keys": "npm:6.16.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: fdd1f584e5068216c36a01e40750950ef309b36a522f6ecde36931690558a319960a702b4b4a806f335fb28ca99f8a07bb206571141550aaab1f6f40066f6605 + checksum: 3d941ce345dc2ce29957e2110957662873d514b094b8939923c3281d858c11cd1f9058db862644afe14f68d087770f39a0a1f9e523a2013ed5d2fdf3421b34d0 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/scope-manager@npm:6.15.0" +"@typescript-eslint/scope-manager@npm:6.16.0": + version: 6.16.0 + resolution: "@typescript-eslint/scope-manager@npm:6.16.0" dependencies: - "@typescript-eslint/types": "npm:6.15.0" - "@typescript-eslint/visitor-keys": "npm:6.15.0" - checksum: 168d783c06a99784362e2eaaa56396b31716ee785779707ef984c2abb3e822c56440473efc6580cb8b84b2da508731ad184a00b3618bc7f3f93d8243804f2fcf + "@typescript-eslint/types": "npm:6.16.0" + "@typescript-eslint/visitor-keys": "npm:6.16.0" + checksum: 3360aae4b85f5c31d20ad48d771cc09a6f8f6b1811b00d94f06e55b5a09c610ac75631b1c4edecb3bec682d41351b87e7d14d42bee84aa032064d0e13463035b languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/type-utils@npm:6.15.0" +"@typescript-eslint/type-utils@npm:6.16.0": + version: 6.16.0 + resolution: "@typescript-eslint/type-utils@npm:6.16.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:6.15.0" - "@typescript-eslint/utils": "npm:6.15.0" + "@typescript-eslint/typescript-estree": "npm:6.16.0" + "@typescript-eslint/utils": "npm:6.16.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.0.1" peerDependencies: @@ -1742,59 +1755,60 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 8dabb355f09f57de8b46d726ad95a57593e5b87427dee5182afecb490624424afec02b69a27018b352dcb5f930eb391cb8cdc12cd60a93231d4f04e63e2f2c0b + checksum: 5964b87a87252bed278a248eb568902babd7c34defd3af8c3df371926d96aec716f33f1dc14bde170e93f73ed1b0af6e591e647853d0f33f378e2c7b3b73fc5b languageName: node linkType: hard -"@typescript-eslint/types@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/types@npm:6.15.0" - checksum: d55de64d532c9016c922cc36b86ab661d7d64d942057486a0bca7a7db07fade95c3de59bfe364bc76ab538fb979ca2e4e6744c3acf8919a2d61e73cc7f544363 +"@typescript-eslint/types@npm:6.16.0": + version: 6.16.0 + resolution: "@typescript-eslint/types@npm:6.16.0" + checksum: 236ca318c2440c95068e5d4d147e2bfed62447775e18695e21c8ca04a341a74d01c37ed2b417629b7bf2fb91ad4fd5e2a6570215d16fc24dd1507ce6973b4e22 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.15.0" +"@typescript-eslint/typescript-estree@npm:6.16.0": + version: 6.16.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.16.0" dependencies: - "@typescript-eslint/types": "npm:6.15.0" - "@typescript-eslint/visitor-keys": "npm:6.15.0" + "@typescript-eslint/types": "npm:6.16.0" + "@typescript-eslint/visitor-keys": "npm:6.16.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" + minimatch: "npm:9.0.3" semver: "npm:^7.5.4" ts-api-utils: "npm:^1.0.1" peerDependenciesMeta: typescript: optional: true - checksum: 920f7f3bfe463a9da943e1a686b7f13ac802a5e33be52f39ac711aa53a1e274dbe173b41bba05581c560fabfc3e1fadcfd81ab53a036afe25fb1a76651fcad7a + checksum: 8e1ef03ecabaf3791b11240a51217836dbb74850e458258db77ac5eab5508cd9c63fb671924993d1e7654718c0c857c3550d51ecba0845fe489d143bb858e1b1 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/utils@npm:6.15.0" +"@typescript-eslint/utils@npm:6.16.0": + version: 6.16.0 + resolution: "@typescript-eslint/utils@npm:6.16.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" "@types/json-schema": "npm:^7.0.12" "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:6.15.0" - "@typescript-eslint/types": "npm:6.15.0" - "@typescript-eslint/typescript-estree": "npm:6.15.0" + "@typescript-eslint/scope-manager": "npm:6.16.0" + "@typescript-eslint/types": "npm:6.16.0" + "@typescript-eslint/typescript-estree": "npm:6.16.0" semver: "npm:^7.5.4" peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 7895240933ad28295508f8c4286a8b905550a35eda83a11ecf9511e53078e0af07e75a1872f1bc757f165b41fdc84616ea97c1e2e3bf80cff985935f25596228 + checksum: 84dd02f7c8e47fae699cc222da5cbea08b28c6e1cc7827860430bc86c2a17ee3f86e198a4356902b95930f85785aa662266ea9c476f69bf80c6a5f648e55f9f4 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.15.0": - version: 6.15.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.15.0" +"@typescript-eslint/visitor-keys@npm:6.16.0": + version: 6.16.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.16.0" dependencies: - "@typescript-eslint/types": "npm:6.15.0" + "@typescript-eslint/types": "npm:6.16.0" eslint-visitor-keys: "npm:^3.4.1" - checksum: 4641a829485f67a5d9d3558aa0d152e5ab57b468cfd9653168ce9a141e1f051730669a024505183b64f7a7e5d8f62533af4ebd4ad7366b551390461e9c45ec18 + checksum: 19e559f14ea0092585a374b8c5f1aca9b6b271fc23909d9857de9cf71a1e1d3abc0afd237e9c02d7a5fbdfe8e3be7853cf9fedf40a6f16bac3495cb7f4e67982 languageName: node linkType: hard @@ -1811,10 +1825,10 @@ __metadata: dependencies: "@alova/adapter-xhr": "npm:^1.0.2" "@babel/core": "npm:^7.23.6" - "@emotion/react": "npm:^11.11.1" + "@emotion/react": "npm:^11.11.3" "@emotion/styled": "npm:^11.11.0" - "@mui/icons-material": "npm:^5.15.1" - "@mui/material": "npm:^5.15.1" + "@mui/icons-material": "npm:^5.15.2" + "@mui/material": "npm:^5.15.2" "@preact/compat": "npm:^17.1.2" "@preact/preset-vite": "npm:^2.7.0" "@table-library/react-table-library": "npm:4.1.7" @@ -1824,9 +1838,9 @@ __metadata: "@types/react": "npm:^18.2.45" "@types/react-dom": "npm:^18.2.18" "@types/react-router-dom": "npm:^5.3.3" - "@typescript-eslint/eslint-plugin": "npm:^6.15.0" - "@typescript-eslint/parser": "npm:^6.15.0" - alova: "npm:^2.16.1" + "@typescript-eslint/eslint-plugin": "npm:^6.16.0" + "@typescript-eslint/parser": "npm:^6.16.0" + alova: "npm:^2.16.2" async-validator: "npm:^4.2.5" concurrently: "npm:^8.2.2" eslint: "npm:^8.56.0" @@ -1852,7 +1866,7 @@ __metadata: react-icons: "npm:^4.12.0" react-router-dom: "npm:^6.21.1" react-toastify: "npm:^9.1.3" - rollup-plugin-visualizer: "npm:^5.11.0" + rollup-plugin-visualizer: "npm:^5.12.0" sockette: "npm:^2.0.6" terser: "npm:^5.26.0" typesafe-i18n: "npm:^5.26.2" @@ -1928,10 +1942,10 @@ __metadata: languageName: node linkType: hard -"alova@npm:^2.16.1": - version: 2.16.1 - resolution: "alova@npm:2.16.1" - checksum: 88f0a175ed433606ff5f564151fc92e2d16e04a04f87362cbe76c1f0c33382e49719ce48f081fe03f707c28b78200c50b933155051d9a82be1d4bfcb73f1d0f9 +"alova@npm:^2.16.2": + version: 2.16.2 + resolution: "alova@npm:2.16.2" + checksum: 06fafddf380d4d8e8e5dd172ebcaa0bc229c76c11b2675cfb2c0ab884a36d4818159267adb14ec7a3cbe681464793085b0386d7741e6a6a732c764b14c8783a8 languageName: node linkType: hard @@ -6164,6 +6178,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:9.0.3, minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 + languageName: node + linkType: hard + "minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -6173,15 +6196,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.1": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 - languageName: node - linkType: hard - "minimist@npm:^1.1.3, minimist@npm:^1.2.0, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" @@ -7436,9 +7450,9 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-visualizer@npm:^5.11.0": - version: 5.11.0 - resolution: "rollup-plugin-visualizer@npm:5.11.0" +"rollup-plugin-visualizer@npm:^5.12.0": + version: 5.12.0 + resolution: "rollup-plugin-visualizer@npm:5.12.0" dependencies: open: "npm:^8.4.0" picomatch: "npm:^2.3.1" @@ -7451,7 +7465,7 @@ __metadata: optional: true bin: rollup-plugin-visualizer: dist/bin/cli.js - checksum: 947238aa22706a47a4d3e8ce616855f0e5cb969ed9f61b9a268eaede0a86f461ecb38e27b4e6bf00f4b5e3f63677667f65e0d4af89a659a5160f74add1f192bb + checksum: 47358feb672291d6edcfd94197577c192a84c24cb644119425dae8241fb6f5a52556efd0c501f38b276c07534642a80c0885ef681babb474e83c7b5a3b475b84 languageName: node linkType: hard diff --git a/mock-api/package.json b/mock-api/package.json index 89545aa8c..d74eb41bd 100644 --- a/mock-api/package.json +++ b/mock-api/package.json @@ -11,7 +11,7 @@ "dependencies": { "@msgpack/msgpack": "^2.8.0", "busboy": "^1.6.0", - "itty-router": "^4.0.23" + "itty-router": "^4.0.25" }, "packageManager": "yarn@4.0.2", "devDependencies": { diff --git a/mock-api/yarn.lock b/mock-api/yarn.lock index ef925865d..559bd51b0 100644 --- a/mock-api/yarn.lock +++ b/mock-api/yarn.lock @@ -129,7 +129,7 @@ __metadata: "@msgpack/msgpack": "npm:^2.8.0" "@types/multer": "npm:^1.4.11" busboy: "npm:^1.6.0" - itty-router: "npm:^4.0.23" + itty-router: "npm:^4.0.25" languageName: unknown linkType: soft @@ -142,10 +142,10 @@ __metadata: languageName: node linkType: hard -"itty-router@npm:^4.0.23": - version: 4.0.23 - resolution: "itty-router@npm:4.0.23" - checksum: b412f80f7d3bf78293144a43c47053c9873c98565e58aa188a66306cc6018ad3801fa157b0d694e9e1719cbc0424fcd89951f1916699eff6606f30b0645afa3e +"itty-router@npm:^4.0.25": + version: 4.0.25 + resolution: "itty-router@npm:4.0.25" + checksum: befa18a3cda3ab5fcbd21bcdeb87fd5c115e9538c0f5372170a7a73fb36906e373ea1be677d6b9c3cf1864c0f957caf37376e1f2b9e19fc275340fb0cbcbcb18 languageName: node linkType: hard From 8bffa6b304b9ce9e92f62ddd4d51c2a67f53d727 Mon Sep 17 00:00:00 2001 From: Proddy Date: Thu, 28 Dec 2023 13:40:45 +0100 Subject: [PATCH 10/12] bump version --- src/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/version.h b/src/version.h index 9c1552b79..2ccdaa2ab 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.6.5-dev.6" +#define EMSESP_APP_VERSION "3.6.5-dev.7" From fa1a372468691546eff424de762a30b1fa358db3 Mon Sep 17 00:00:00 2001 From: Proddy Date: Thu, 28 Dec 2023 14:19:54 +0100 Subject: [PATCH 11/12] https://github.com/emsesp/EMS-ESP32/pull/1517 --- src/shower.cpp | 12 ++++++------ src/temperaturesensor.cpp | 4 ++-- src/web/WebCustomEntityService.cpp | 4 ++-- src/web/WebSchedulerService.cpp | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/shower.cpp b/src/shower.cpp index f83813cb1..3da18df2d 100644 --- a/src/shower.cpp +++ b/src/shower.cpp @@ -211,9 +211,9 @@ void Shower::set_shower_state(bool state, bool force) { } JsonObject dev = doc.createNestedObject("dev"); - dev["name"] = "EMS-ESP"; + dev["name"] = "EMS-ESP Shower"; JsonArray ids = dev.createNestedArray("ids"); - ids.add(Mqtt::basename()); + ids.add(Mqtt::basename() + "-shower"); Mqtt::add_avty_to_doc(stat_t, doc.as()); // add "availability" section @@ -241,9 +241,9 @@ void Shower::set_shower_state(bool state, bool force) { // doc["ent_cat"] = "diagnostic"; JsonObject dev2 = doc.createNestedObject("dev"); - dev2["name"] = "EMS-ESP"; + dev2["name"] = "EMS-ESP Shower"; JsonArray ids2 = dev2.createNestedArray("ids"); - ids2.add(Mqtt::basename()); + ids2.add(Mqtt::basename() + "-shower"); Mqtt::add_avty_to_doc(stat_t, doc.as(), "value_json.duration is defined"); // add "availability" section @@ -268,9 +268,9 @@ void Shower::set_shower_state(bool state, bool force) { // doc["ent_cat"] = "diagnostic"; JsonObject dev3 = doc.createNestedObject("dev"); - dev3["name"] = "EMS-ESP"; + dev3["name"] = "EMS-ESP Shower"; JsonArray ids3 = dev3.createNestedArray("ids"); - ids3.add(Mqtt::basename()); + ids3.add(Mqtt::basename() + "-shower"); Mqtt::add_avty_to_doc(stat_t, doc.as(), "value_json.timestamp is defined"); // add "availability" section diff --git a/src/temperaturesensor.cpp b/src/temperaturesensor.cpp index 3f91c463c..31c50599b 100644 --- a/src/temperaturesensor.cpp +++ b/src/temperaturesensor.cpp @@ -544,9 +544,9 @@ void TemperatureSensor::publish_values(const bool force) { config["name"] = name; JsonObject dev = config.createNestedObject("dev"); - dev["name"] = Mqtt::basename(); + dev["name"] = Mqtt::basename() + " Temperature"; JsonArray ids = dev.createNestedArray("ids"); - ids.add(Mqtt::basename()); + ids.add(Mqtt::basename() + "-temperature"); // add "availability" section Mqtt::add_avty_to_doc(stat_t, config.as(), val_cond); diff --git a/src/web/WebCustomEntityService.cpp b/src/web/WebCustomEntityService.cpp index f8b18ff80..5400fcf6a 100644 --- a/src/web/WebCustomEntityService.cpp +++ b/src/web/WebCustomEntityService.cpp @@ -427,9 +427,9 @@ void WebCustomEntityService::publish(const bool force) { } } JsonObject dev = config.createNestedObject("dev"); - dev["name"] = Mqtt::basename(); + dev["name"] = Mqtt::basename() + " Custom"; JsonArray ids = dev.createNestedArray("ids"); - ids.add(Mqtt::basename()); + ids.add(Mqtt::basename() + "-custom"); // add "availability" section Mqtt::add_avty_to_doc(stat_t, config.as(), val_cond); diff --git a/src/web/WebSchedulerService.cpp b/src/web/WebSchedulerService.cpp index 91321c996..bb2b91c52 100644 --- a/src/web/WebSchedulerService.cpp +++ b/src/web/WebSchedulerService.cpp @@ -288,9 +288,9 @@ void WebSchedulerService::publish(const bool force) { } JsonObject dev = config.createNestedObject("dev"); - dev["name"] = Mqtt::basename(); + dev["name"] = Mqtt::basename() + " Scheduler"; JsonArray ids = dev.createNestedArray("ids"); - ids.add(Mqtt::basename()); + ids.add(Mqtt::basename() + "-scheduler"); // add "availability" section Mqtt::add_avty_to_doc(stat_t, config.as(), val_cond); From 3a92d69c7750e9d2eec0632458cf0a33c3f0d51e Mon Sep 17 00:00:00 2001 From: Proddy Date: Thu, 28 Dec 2023 14:20:06 +0100 Subject: [PATCH 12/12] minor changes from https branch --- interface/src/project/DashboardDevices.tsx | 56 +++++++++++----------- interface/src/project/Help.tsx | 2 +- lib/framework/FSPersistence.h | 5 +- src/devices/thermostat.cpp | 2 +- src/emsdevice.cpp | 2 +- src/emsesp.cpp | 6 +-- src/emsesp.h | 12 ++--- src/main.cpp | 6 ++- src/system.cpp | 33 +++++++------ 9 files changed, 68 insertions(+), 56 deletions(-) diff --git a/interface/src/project/DashboardDevices.tsx b/interface/src/project/DashboardDevices.tsx index 693ca740e..abbb07b18 100644 --- a/interface/src/project/DashboardDevices.tsx +++ b/interface/src/project/DashboardDevices.tsx @@ -420,33 +420,35 @@ const DashboardDevices: FC = () => { )} - - {(tableList: any) => ( - <> -
- - - {LL.DESCRIPTION()} - {LL.TYPE(0)} - -
- - {tableList.map((device: Device) => ( - - - - - - {device.n} -   ({device.e}) - - {device.tn} - - ))} - - - )} -
+ {coreData.connected && ( + + {(tableList: any) => ( + <> +
+ + + {LL.DESCRIPTION()} + {LL.TYPE(0)} + +
+ + {tableList.map((device: Device) => ( + + + + + + {device.n} +   ({device.e}) + + {device.tn} + + ))} + + + )} +
+ )} ); diff --git a/interface/src/project/Help.tsx b/interface/src/project/Help.tsx index 0392de750..52cf0e14c 100644 --- a/interface/src/project/Help.tsx +++ b/interface/src/project/Help.tsx @@ -111,7 +111,7 @@ const Help: FC = () => { {'github.com/emsesp/EMS-ESP32'}
- + @proddy @MichaelDvP
diff --git a/lib/framework/FSPersistence.h b/lib/framework/FSPersistence.h index 41819fc83..434ab78ee 100644 --- a/lib/framework/FSPersistence.h +++ b/lib/framework/FSPersistence.h @@ -68,7 +68,10 @@ class FSPersistence { return false; } - // serialize the data to the file +// serialize the data to the file +#ifdef EMSESP_DEBUG + Serial.println("Writing settings to " + String(_filePath)); +#endif serializeJson(jsonDocument, settingsFile); settingsFile.close(); return true; diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index 30602656a..d6ff921a6 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -4226,7 +4226,7 @@ void Thermostat::register_device_values() { #if defined(EMSESP_STANDALONE_DUMP) // if we're just dumping out values, create a single dummy hc - register_device_values_hc(std::make_shared(1, this->model())); // hc=1 + register_device_values_hc(std::make_shared(1, this->model())); // hc=1 #endif } diff --git a/src/emsdevice.cpp b/src/emsdevice.cpp index c9c6bc6a5..f62fa278b 100644 --- a/src/emsdevice.cpp +++ b/src/emsdevice.cpp @@ -1755,7 +1755,7 @@ void EMSdevice::mqtt_ha_entity_config_create() { } #ifndef EMSESP_STANDALONE // always create minimum one config - if (ESP.getMaxAllocHeap() < (6 * 1024) || (!emsesp::EMSESP::system_.PSram() && ESP.getFreeHeap() < (65 * 1024))) { + if (ESP.getMaxAllocHeap() < (6 * 1024) || (!EMSESP::system_.PSram() && ESP.getFreeHeap() < (65 * 1024))) { break; } #endif diff --git a/src/emsesp.cpp b/src/emsesp.cpp index 86b67b178..6836a751a 100644 --- a/src/emsesp.cpp +++ b/src/emsesp.cpp @@ -1153,7 +1153,7 @@ bool EMSESP::add_device(const uint8_t device_id, const uint8_t product_id, const emsdevices.back()->unique_id(++unique_id_count_); // sort devices based on type - std::sort(emsdevices.begin(), emsdevices.end(), [](const std::unique_ptr & a, const std::unique_ptr & b) { + std::sort(emsdevices.begin(), emsdevices.end(), [](const std::unique_ptr & a, const std::unique_ptr & b) { return a->device_type() < b->device_type(); }); @@ -1394,7 +1394,7 @@ void EMSESP::scheduled_fetch_values() { EMSESP::EMSESP() #ifndef EMSESP_STANDALONE : telnet_([this](Stream & stream, const IPAddress & addr, uint16_t port) -> std::shared_ptr { - return std::make_shared(*this, stream, addr, port); + return std::make_shared(*this, stream, addr, port); }) #endif { @@ -1421,7 +1421,7 @@ void EMSESP::start() { // start the file system #ifndef EMSESP_STANDALONE if (!LittleFS.begin(true)) { - Serial.println("LittleFS Mount Failed. EMS-ESP stopped."); + Serial.println("LittleFS Mount Failed. Using default settings."); return; } #endif diff --git a/src/emsesp.h b/src/emsesp.h index e5d074460..be5ec0e2b 100644 --- a/src/emsesp.h +++ b/src/emsesp.h @@ -1,7 +1,7 @@ /* * EMS-ESP - https://github.com/emsesp/EMS-ESP * Copyright 2020-2023 Paul Derbyshire - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or @@ -83,11 +83,11 @@ namespace emsesp { -using DeviceValueUOM = emsesp::DeviceValue::DeviceValueUOM; -using DeviceValueType = emsesp::DeviceValue::DeviceValueType; -using DeviceValueState = emsesp::DeviceValue::DeviceValueState; -using DeviceValueTAG = emsesp::DeviceValue::DeviceValueTAG; -using DeviceValueNumOp = emsesp::DeviceValue::DeviceValueNumOp; +using DeviceValueUOM = DeviceValue::DeviceValueUOM; +using DeviceValueType = DeviceValue::DeviceValueType; +using DeviceValueState = DeviceValue::DeviceValueState; +using DeviceValueTAG = DeviceValue::DeviceValueTAG; +using DeviceValueNumOp = DeviceValue::DeviceValueNumOp; // forward declarations for compiler class EMSESPShell; diff --git a/src/main.cpp b/src/main.cpp index 0906f965a..15acb568d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,7 +1,7 @@ /* * EMS-ESP - https://github.com/emsesp/EMS-ESP * Copyright 2020-2023 Paul Derbyshire - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or @@ -18,7 +18,9 @@ #include "emsesp.h" -static emsesp::EMSESP application; +using namespace emsesp; + +static EMSESP application; // the main application void setup() { application.start(); diff --git a/src/system.cpp b/src/system.cpp index 552b4ad86..8323c775f 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -1111,7 +1111,7 @@ bool System::check_upgrade(bool factory_settings) { #if defined(EMSESP_DEBUG) if (!missing_version) { - LOG_INFO("Current version from settings is %d.%d.%d-%s", + LOG_INFO("Checking version (settings has %d.%d.%d-%s)...", settings_version.major(), settings_version.minor(), settings_version.patch(), @@ -1119,26 +1119,20 @@ bool System::check_upgrade(bool factory_settings) { } #endif - // always save the new version to the settings - EMSESP::webSettingsService.update( - [&](WebSettings & settings) { - settings.version = EMSESP_APP_VERSION; - return StateUpdateResult::CHANGED; - }, - "local"); - if (factory_settings) { return false; // fresh install, do nothing } version::Semver200_version this_version(EMSESP_APP_VERSION); + bool save_version = true; + // compare versions - bool reboot_required = false; if (this_version > settings_version) { + // need upgrade LOG_NOTICE("Upgrading to version %d.%d.%d-%s", this_version.major(), this_version.minor(), this_version.patch(), this_version.prerelease().c_str()); - // if we're coming from 3.4.4 or 3.5.0b14 then we need to apply new settings + // if we're coming from 3.4.4 or 3.5.0b14 which had no version stored then we need to apply new settings if (missing_version) { LOG_DEBUG("Setting MQTT Entity ID format to v3.4 format"); EMSESP::esp8266React.getMqttSettingsService()->update( @@ -1148,15 +1142,26 @@ bool System::check_upgrade(bool factory_settings) { }, "local"); } - } else if (this_version < settings_version) { + // need downgrade LOG_NOTICE("Downgrading to version %d.%d.%d-%s", this_version.major(), this_version.minor(), this_version.patch(), this_version.prerelease().c_str()); } else { // same version, do nothing - return false; + save_version = false; } - return reboot_required; + // if we did a change, set the new version and reboot + if (save_version) { + EMSESP::webSettingsService.update( + [&](WebSettings & settings) { + settings.version = EMSESP_APP_VERSION; + return StateUpdateResult::CHANGED; + }, + "local"); + return true; // need reboot + } + + return false; } // list commands