mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
Merge branch 'emsesp:dev' into dev
This commit is contained in:
@@ -291,7 +291,7 @@ const CustomEntitiesDialog = ({
|
|||||||
fullWidth
|
fullWidth
|
||||||
margin="normal"
|
margin="normal"
|
||||||
type="number"
|
type="number"
|
||||||
inputProps={{ min: '1', max: '27', step: '1' }}
|
inputProps={{ min: '1', max: String(256 - editItem.offset), step: '1' }}
|
||||||
/>
|
/>
|
||||||
</Grid>
|
</Grid>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ const Settings: FC = () => {
|
|||||||
icon={ViewModuleIcon}
|
icon={ViewModuleIcon}
|
||||||
bgcolor="#efc34b"
|
bgcolor="#efc34b"
|
||||||
label="Modules"
|
label="Modules"
|
||||||
text="Activate or deactivate external modules"
|
text={LL.MODULES_1()}
|
||||||
to="modules"
|
to="modules"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ const de: Translation = {
|
|||||||
TX_ISSUES: 'Tx-Probleme - versuchen Sie einen anderen Tx-Modus',
|
TX_ISSUES: 'Tx-Probleme - versuchen Sie einen anderen Tx-Modus',
|
||||||
DISCONNECTED: 'Getrennt',
|
DISCONNECTED: 'Getrennt',
|
||||||
EMS_SCAN: 'Möchten Sie wirklich eine vollständige Gerätesuche des EMS-Busses starten?',
|
EMS_SCAN: 'Möchten Sie wirklich eine vollständige Gerätesuche des EMS-Busses starten?',
|
||||||
DATA_TRAFFIC: 'Data Traffic', // TODO Translate
|
DATA_TRAFFIC: 'Datenverkehr',
|
||||||
EMS_DEVICE: 'EMS Gerät',
|
EMS_DEVICE: 'EMS Gerät',
|
||||||
SUCCESS: 'ERFOLG',
|
SUCCESS: 'ERFOLG',
|
||||||
FAIL: 'FEHLER',
|
FAIL: 'FEHLER',
|
||||||
@@ -91,7 +91,7 @@ const de: Translation = {
|
|||||||
NUM_SECONDS: '{num} Sekunde{{n}}',
|
NUM_SECONDS: '{num} Sekunde{{n}}',
|
||||||
NUM_HOURS: '{num} Stunde{{n}}',
|
NUM_HOURS: '{num} Stunde{{n}}',
|
||||||
NUM_MINUTES: '{num} Minute{{n}}',
|
NUM_MINUTES: '{num} Minute{{n}}',
|
||||||
APPLICATION: 'Anwendungseinstellungen',
|
APPLICATION: 'Anwendung',
|
||||||
CUSTOMIZATIONS: 'Anpassungen',
|
CUSTOMIZATIONS: 'Anpassungen',
|
||||||
APPLICATION_RESTARTING: 'EMS-ESP startet neu',
|
APPLICATION_RESTARTING: 'EMS-ESP startet neu',
|
||||||
INTERFACE_BOARD_PROFILE: 'Interface Platinenprofil',
|
INTERFACE_BOARD_PROFILE: 'Interface Platinenprofil',
|
||||||
@@ -132,7 +132,7 @@ const de: Translation = {
|
|||||||
LOGGING: 'Protokollierung',
|
LOGGING: 'Protokollierung',
|
||||||
LOG_HEX: 'EMS-Telegramme hexadezimal protokollieren',
|
LOG_HEX: 'EMS-Telegramme hexadezimal protokollieren',
|
||||||
ENABLE_SYSLOG: 'Syslog aktivieren',
|
ENABLE_SYSLOG: 'Syslog aktivieren',
|
||||||
LOG_LEVEL: 'Log Level',
|
LOG_LEVEL: 'Protokollebene',
|
||||||
MARK_INTERVAL: 'Intervallmarke',
|
MARK_INTERVAL: 'Intervallmarke',
|
||||||
SECONDS: 'Sekunden',
|
SECONDS: 'Sekunden',
|
||||||
MINUTES: 'Minuten',
|
MINUTES: 'Minuten',
|
||||||
@@ -145,13 +145,13 @@ const de: Translation = {
|
|||||||
CUSTOMIZATIONS_FULL: 'Ausgewählte Entitäten haben das Limit überschritten. Bitte stapelweise speichern',
|
CUSTOMIZATIONS_FULL: 'Ausgewählte Entitäten haben das Limit überschritten. Bitte stapelweise speichern',
|
||||||
CUSTOMIZATIONS_SAVED: 'Anpassungen gespeichert',
|
CUSTOMIZATIONS_SAVED: 'Anpassungen gespeichert',
|
||||||
CUSTOMIZATIONS_HELP_1: 'Wählen Sie ein Gerät aus und passen Sie die Entitäten mithilfe der Optionen an',
|
CUSTOMIZATIONS_HELP_1: 'Wählen Sie ein Gerät aus und passen Sie die Entitäten mithilfe der Optionen an',
|
||||||
CUSTOMIZATIONS_HELP_2: 'als Favorit markieren',
|
CUSTOMIZATIONS_HELP_2: 'Als Favorit markieren',
|
||||||
CUSTOMIZATIONS_HELP_3: 'Schreibaktion deaktivieren',
|
CUSTOMIZATIONS_HELP_3: 'Schreibaktion deaktivieren',
|
||||||
CUSTOMIZATIONS_HELP_4: 'von MQTT und API ausschließen',
|
CUSTOMIZATIONS_HELP_4: 'von MQTT und API ausschließen',
|
||||||
CUSTOMIZATIONS_HELP_5: 'Aus dem Kontrollzentrum ausblenden',
|
CUSTOMIZATIONS_HELP_5: 'Aus dem Kontrollzentrum ausblenden',
|
||||||
CUSTOMIZATIONS_HELP_6: 'Aus dem Speicher löschen',
|
CUSTOMIZATIONS_HELP_6: 'Aus dem Speicher löschen',
|
||||||
SELECT_DEVICE: 'Wählen Sie ein Gerät aus',
|
SELECT_DEVICE: 'Wählen Sie ein Gerät aus',
|
||||||
SET_ALL: 'setzen Sie alle',
|
SET_ALL: 'Setzen Sie alle',
|
||||||
OPTIONS: 'Optionen',
|
OPTIONS: 'Optionen',
|
||||||
NAME: 'Name',
|
NAME: 'Name',
|
||||||
CUSTOMIZATIONS_RESET: 'Möchten Sie wirklich alle Anpassungen entfernen, einschließlich der benutzerdefinierten Einstellungen der Temperatur- und Analogsensoren?',
|
CUSTOMIZATIONS_RESET: 'Möchten Sie wirklich alle Anpassungen entfernen, einschließlich der benutzerdefinierten Einstellungen der Temperatur- und Analogsensoren?',
|
||||||
@@ -167,7 +167,7 @@ const de: Translation = {
|
|||||||
FAILED: 'gescheitert',
|
FAILED: 'gescheitert',
|
||||||
SUCCESSFUL: 'erfolgreich',
|
SUCCESSFUL: 'erfolgreich',
|
||||||
SYSTEM: 'System',
|
SYSTEM: 'System',
|
||||||
LOG_OF: '{0} Log',
|
LOG_OF: '{0}protokoll',
|
||||||
STATUS_OF: '{0} Status',
|
STATUS_OF: '{0} Status',
|
||||||
UPLOAD_DOWNLOAD: 'Hoch-/Herunterladen',
|
UPLOAD_DOWNLOAD: 'Hoch-/Herunterladen',
|
||||||
VERSION_ON: 'Sie verwenden derzeit',
|
VERSION_ON: 'Sie verwenden derzeit',
|
||||||
@@ -199,7 +199,7 @@ const de: Translation = {
|
|||||||
ERROR: 'Unerwarteter Fehler, bitter versuchen Sie es erneut',
|
ERROR: 'Unerwarteter Fehler, bitter versuchen Sie es erneut',
|
||||||
TIME_SET: 'Zeit gesetzt',
|
TIME_SET: 'Zeit gesetzt',
|
||||||
MANAGE_USERS: 'Nutzerverwaltung',
|
MANAGE_USERS: 'Nutzerverwaltung',
|
||||||
IS_ADMIN: 'ist Admin',
|
IS_ADMIN: 'Ist Admin',
|
||||||
USER_WARNING: 'Sie müssen mindestens einen Admin-Nutzer konfigurieren',
|
USER_WARNING: 'Sie müssen mindestens einen Admin-Nutzer konfigurieren',
|
||||||
ADD: 'Hinzufügen',
|
ADD: 'Hinzufügen',
|
||||||
ACCESS_TOKEN_FOR: 'Zugangs-Token für',
|
ACCESS_TOKEN_FOR: 'Zugangs-Token für',
|
||||||
@@ -317,19 +317,20 @@ const de: Translation = {
|
|||||||
ACTIVELOW: 'Aktiv Negativ',
|
ACTIVELOW: 'Aktiv Negativ',
|
||||||
UNCHANGED: 'Unverändert',
|
UNCHANGED: 'Unverändert',
|
||||||
ALWAYS: 'Immer',
|
ALWAYS: 'Immer',
|
||||||
ACTIVITY: 'Activity', // TODO translate
|
ACTIVITY: 'Aktivität',
|
||||||
CONFIGURE: 'Configure {0}', // TODO translate
|
CONFIGURE: 'Konfiguriere {0}',
|
||||||
SYSTEM_MEMORY: 'System Memory', // TODO translate
|
SYSTEM_MEMORY: 'Systemspeicher',
|
||||||
APPLICATION_SETTINGS_1: 'Modify EMS-ESP Application Settings', // TODO translate
|
APPLICATION_SETTINGS_1: 'Ändern Sie die EMS-ESP-Anwendungseinstellungen',
|
||||||
SECURITY_1: 'Add or remove users', // TODO translate
|
SECURITY_1: 'Benutzer hinzufügen oder entfernen',
|
||||||
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
UPLOAD_DOWNLOAD_1: 'Einstellungen und Firmware hochladen/herunterladen',
|
||||||
MODULES: 'Module', // TODO translate
|
MODULES: 'Module',
|
||||||
MODULES_UPDATED: 'Modules updated', // TODO translate
|
MODULES_1: 'Externe Module aktivieren oder deaktivieren',
|
||||||
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
MODULES_UPDATED: 'Module aktualisiert',
|
||||||
MODULES_NONE: 'No external modules detected', // TODO translate
|
MODULES_DESCRIPTION: 'Klicken Sie auf das Modul, um EMS-ESP-Bibliotheksmodule zu aktivieren oder zu deaktivieren',
|
||||||
RENAME: 'Rename', // TODO translate
|
MODULES_NONE: 'Keine externen Module erkannt',
|
||||||
|
RENAME: 'Umbenennen',
|
||||||
ENABLE_MODBUS: 'Modbus aktivieren',
|
ENABLE_MODBUS: 'Modbus aktivieren',
|
||||||
VIEW_LOG: 'View log to diagnose issues' // TODO translate
|
VIEW_LOG: 'Sehen Sie sich das Protokoll an, um Probleme zu diagnostizieren'
|
||||||
};
|
};
|
||||||
|
|
||||||
export default de;
|
export default de;
|
||||||
|
|||||||
@@ -324,6 +324,7 @@ const en: Translation = {
|
|||||||
SECURITY_1: 'Add or remove users',
|
SECURITY_1: 'Add or remove users',
|
||||||
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware',
|
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware',
|
||||||
MODULES: 'Modules',
|
MODULES: 'Modules',
|
||||||
|
MODULES_1: 'Activate or deactivate external modules',
|
||||||
MODULES_UPDATED: 'Modules updated',
|
MODULES_UPDATED: 'Modules updated',
|
||||||
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules',
|
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules',
|
||||||
MODULES_NONE: 'No external modules detected',
|
MODULES_NONE: 'No external modules detected',
|
||||||
|
|||||||
@@ -324,6 +324,7 @@ const fr: Translation = {
|
|||||||
SECURITY_1: 'Add or remove users', // TODO translate
|
SECURITY_1: 'Add or remove users', // TODO translate
|
||||||
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
||||||
MODULES: 'Module', // TODO translate
|
MODULES: 'Module', // TODO translate
|
||||||
|
MODULES_1: 'Activer ou désactiver les modules externes', // TODO translate
|
||||||
MODULES_UPDATED: 'Modules updated', // TODO translate
|
MODULES_UPDATED: 'Modules updated', // TODO translate
|
||||||
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
||||||
MODULES_NONE: 'No external modules detected', // TODO translate
|
MODULES_NONE: 'No external modules detected', // TODO translate
|
||||||
|
|||||||
@@ -324,6 +324,7 @@ const it: Translation = {
|
|||||||
SECURITY_1: 'Add or remove users', // TODO translate
|
SECURITY_1: 'Add or remove users', // TODO translate
|
||||||
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
||||||
MODULES: 'Module', // TODO translate
|
MODULES: 'Module', // TODO translate
|
||||||
|
MODULES_1: 'Attiva o disattiva i moduli esterni', // TODO translate
|
||||||
MODULES_UPDATED: 'Modules updated', // TODO translate
|
MODULES_UPDATED: 'Modules updated', // TODO translate
|
||||||
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
||||||
MODULES_NONE: 'No external modules detected', // TODO translate
|
MODULES_NONE: 'No external modules detected', // TODO translate
|
||||||
|
|||||||
@@ -324,6 +324,7 @@ const nl: Translation = {
|
|||||||
SECURITY_1: 'Gebruikers toevoegen of verwijderen',
|
SECURITY_1: 'Gebruikers toevoegen of verwijderen',
|
||||||
UPLOAD_DOWNLOAD_1: 'Upload-/downloadinstellingen en firmware',
|
UPLOAD_DOWNLOAD_1: 'Upload-/downloadinstellingen en firmware',
|
||||||
MODULES: 'Module',
|
MODULES: 'Module',
|
||||||
|
MODULES_1: 'Externe modules activeren of deactiveren', // TODO translate
|
||||||
MODULES_UPDATED: 'Modules geüpdatet',
|
MODULES_UPDATED: 'Modules geüpdatet',
|
||||||
MODULES_DESCRIPTION: 'Klik op de module om EMS-ESP library modules te activeren of te deactiveren',
|
MODULES_DESCRIPTION: 'Klik op de module om EMS-ESP library modules te activeren of te deactiveren',
|
||||||
MODULES_NONE: 'Geen externe modules gedetecteerd',
|
MODULES_NONE: 'Geen externe modules gedetecteerd',
|
||||||
|
|||||||
@@ -324,6 +324,7 @@ const no: Translation = {
|
|||||||
SECURITY_1: 'Add or remove users', // TODO translate
|
SECURITY_1: 'Add or remove users', // TODO translate
|
||||||
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
||||||
MODULES: 'Module', // TODO translate
|
MODULES: 'Module', // TODO translate
|
||||||
|
MODULES_1: 'Aktiver eller deaktiver eksterne moduler', // TODO translate
|
||||||
MODULES_UPDATED: 'Modules updated', // TODO translate
|
MODULES_UPDATED: 'Modules updated', // TODO translate
|
||||||
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
||||||
MODULES_NONE: 'No external modules detected', // TODO translate
|
MODULES_NONE: 'No external modules detected', // TODO translate
|
||||||
|
|||||||
@@ -324,6 +324,7 @@ const pl: BaseTranslation = {
|
|||||||
SECURITY_1: 'Dodawanie i usuwanie użytkowników',
|
SECURITY_1: 'Dodawanie i usuwanie użytkowników',
|
||||||
UPLOAD_DOWNLOAD_1: 'Wysyłanie/pobieranie ustawień i firmware',
|
UPLOAD_DOWNLOAD_1: 'Wysyłanie/pobieranie ustawień i firmware',
|
||||||
MODULES: 'Module', // TODO translate
|
MODULES: 'Module', // TODO translate
|
||||||
|
MODULES_1: 'Aktywuj lub dezaktywuj moduły zewnętrzne', // TODO translate
|
||||||
MODULES_UPDATED: 'Modules updated', // TODO translate
|
MODULES_UPDATED: 'Modules updated', // TODO translate
|
||||||
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
||||||
MODULES_NONE: 'No external modules detected', // TODO translate
|
MODULES_NONE: 'No external modules detected', // TODO translate
|
||||||
|
|||||||
@@ -324,6 +324,7 @@ const sk: Translation = {
|
|||||||
SECURITY_1: 'Add or remove users', // TODO translate
|
SECURITY_1: 'Add or remove users', // TODO translate
|
||||||
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
||||||
MODULES: 'Module', // TODO translate
|
MODULES: 'Module', // TODO translate
|
||||||
|
MODULES_1: 'Aktivujte alebo deaktivujte externé moduly', // TODO translate
|
||||||
MODULES_UPDATED: 'Modules updated', // TODO translate
|
MODULES_UPDATED: 'Modules updated', // TODO translate
|
||||||
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
||||||
MODULES_NONE: 'No external modules detected', // TODO translate
|
MODULES_NONE: 'No external modules detected', // TODO translate
|
||||||
|
|||||||
@@ -324,6 +324,7 @@ const sv: Translation = {
|
|||||||
SECURITY_1: 'Add or remove users', // TODO translate
|
SECURITY_1: 'Add or remove users', // TODO translate
|
||||||
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
||||||
MODULES: 'Module', // TODO translate
|
MODULES: 'Module', // TODO translate
|
||||||
|
MODULES_1: 'Aktivera eller avaktivera externa moduler', // TODO translate
|
||||||
MODULES_UPDATED: 'Modules updated', // TODO translate
|
MODULES_UPDATED: 'Modules updated', // TODO translate
|
||||||
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
||||||
MODULES_NONE: 'No external modules detected', // TODO translate
|
MODULES_NONE: 'No external modules detected', // TODO translate
|
||||||
|
|||||||
@@ -324,6 +324,7 @@ const tr: Translation = {
|
|||||||
SECURITY_1: 'Add or remove users', // TODO translate
|
SECURITY_1: 'Add or remove users', // TODO translate
|
||||||
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
UPLOAD_DOWNLOAD_1: 'Upload/Download Settings and Firmware', // TODO translate
|
||||||
MODULES: 'Module', // TODO translate
|
MODULES: 'Module', // TODO translate
|
||||||
|
MODULES_1: 'Harici modülleri etkinleştirin veya devre dışı bırakın', // TODO translate
|
||||||
MODULES_UPDATED: 'Modules updated', // TODO translate
|
MODULES_UPDATED: 'Modules updated', // TODO translate
|
||||||
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
MODULES_DESCRIPTION: 'Click on the Module to activate or de-activate EMS-ESP library modules', // TODO translate
|
||||||
MODULES_NONE: 'No external modules detected', // TODO translate
|
MODULES_NONE: 'No external modules detected', // TODO translate
|
||||||
|
|||||||
@@ -1106,8 +1106,8 @@ void Thermostat::process_RC300Set(std::shared_ptr<const Telegram> telegram) {
|
|||||||
has_enumupdate(telegram, hc->reducemode, 5, 1); // 1-outdoor temp threshold, 2-room temp threshold, 3-reduced mode
|
has_enumupdate(telegram, hc->reducemode, 5, 1); // 1-outdoor temp threshold, 2-room temp threshold, 3-reduced mode
|
||||||
has_update(telegram, hc->reducetemp, 9);
|
has_update(telegram, hc->reducetemp, 9);
|
||||||
has_update(telegram, hc->noreducetemp, 12);
|
has_update(telegram, hc->noreducetemp, 12);
|
||||||
has_enumupdate(telegram, hc->switchProgMode, 13, 1); // 1-level, 2-absolute
|
|
||||||
has_update(telegram, hc->remoteseltemp, 17); // see https://github.com/emsesp/EMS-ESP32/issues/590
|
has_update(telegram, hc->remoteseltemp, 17); // see https://github.com/emsesp/EMS-ESP32/issues/590
|
||||||
|
has_enumupdate(telegram, hc->switchProgMode, 19, 1); // 1-level, 2-absolute
|
||||||
has_update(telegram, hc->boost, 23);
|
has_update(telegram, hc->boost, 23);
|
||||||
has_update(telegram, hc->boosttime, 24);
|
has_update(telegram, hc->boosttime, 24);
|
||||||
has_update(telegram, hc->cooling, 28);
|
has_update(telegram, hc->cooling, 28);
|
||||||
@@ -2290,7 +2290,7 @@ bool Thermostat::set_switchProgMode(const char * value, const int8_t id) {
|
|||||||
if (!Helpers::value2enum(value, set, FL_(enum_switchProgMode))) {
|
if (!Helpers::value2enum(value, set, FL_(enum_switchProgMode))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
write_command(set_typeids[hc->hc()], 13, set + 1, set_typeids[hc->hc()]);
|
write_command(set_typeids[hc->hc()], 19, set + 1, set_typeids[hc->hc()]);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4526,7 +4526,7 @@ void Thermostat::register_device_values_hc(std::shared_ptr<Thermostat::HeatingCi
|
|||||||
register_device_value(tag, &hc->coolondelay, DeviceValueType::UINT8, FL_(coolondelay), DeviceValueUOM::HOURS, MAKE_CF_CB(set_coolondelay), 1, 48);
|
register_device_value(tag, &hc->coolondelay, DeviceValueType::UINT8, FL_(coolondelay), DeviceValueUOM::HOURS, MAKE_CF_CB(set_coolondelay), 1, 48);
|
||||||
register_device_value(tag, &hc->cooloffdelay, DeviceValueType::UINT8, FL_(cooloffdelay), DeviceValueUOM::HOURS, MAKE_CF_CB(set_cooloffdelay), 1, 48);
|
register_device_value(tag, &hc->cooloffdelay, DeviceValueType::UINT8, FL_(cooloffdelay), DeviceValueUOM::HOURS, MAKE_CF_CB(set_cooloffdelay), 1, 48);
|
||||||
register_device_value(
|
register_device_value(
|
||||||
tag, &hc->switchProgMode, DeviceValueType::ENUM, FL_(enum_switchProgMode), FL_(control), DeviceValueUOM::NONE, MAKE_CF_CB(set_switchProgMode));
|
tag, &hc->switchProgMode, DeviceValueType::ENUM, FL_(enum_switchProgMode), FL_(switchProgMode), DeviceValueUOM::NONE, MAKE_CF_CB(set_switchProgMode));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_CRF:
|
case EMSdevice::EMS_DEVICE_FLAG_CRF:
|
||||||
|
|||||||
@@ -360,7 +360,7 @@ MAKE_TRANSLATION(maintenanceTime, "maintenancetime", "time to next maintenance",
|
|||||||
MAKE_TRANSLATION(emergencyOps, "emergencyops", "emergency operation", "Notoperation", "Noodoperatie", "Nöddrift", "praca w trybie awaryjnym", "nøddrift", "opération d'urgence", "acil durum çalışması", "operazione di emergenza", "núdzová prevádzka")
|
MAKE_TRANSLATION(emergencyOps, "emergencyops", "emergency operation", "Notoperation", "Noodoperatie", "Nöddrift", "praca w trybie awaryjnym", "nøddrift", "opération d'urgence", "acil durum çalışması", "operazione di emergenza", "núdzová prevádzka")
|
||||||
MAKE_TRANSLATION(emergencyTemp, "emergencytemp", "emergency temperature", "Nottemperatur", "Noodtemperatuur", "Nöddrift temperatur", "temperatura w trybie awaryjnym", "nødtemperatur", "température d'urgence", "acil durum sıcaklığı", "temperatura di emergenza", "núdzová teplota")
|
MAKE_TRANSLATION(emergencyTemp, "emergencytemp", "emergency temperature", "Nottemperatur", "Noodtemperatuur", "Nöddrift temperatur", "temperatura w trybie awaryjnym", "nødtemperatur", "température d'urgence", "acil durum sıcaklığı", "temperatura di emergenza", "núdzová teplota")
|
||||||
MAKE_TRANSLATION(pumpMode, "pumpmode", "boiler pump mode", "Kesselpumpen Modus", "Ketelpomp modus", "", "tryb pracy pompy kotła", "pumpemodus", "", "pompa modu", "modalità pompa caldaia", "režim kotlového čerpadla") // TODO translate
|
MAKE_TRANSLATION(pumpMode, "pumpmode", "boiler pump mode", "Kesselpumpen Modus", "Ketelpomp modus", "", "tryb pracy pompy kotła", "pumpemodus", "", "pompa modu", "modalità pompa caldaia", "režim kotlového čerpadla") // TODO translate
|
||||||
MAKE_TRANSLATION(pumpCharacter, "pumpcharacter", "boiler pump characteristic", "boiler pump characteristic", "boiler pump characteristic", "boiler pump characteristic", "boiler pump characteristic", "boiler pump characteristic", "boiler pump characteristic", "boiler pump characteristic", "boiler pump characteristic", "boiler pump characteristic") // TODO translate
|
MAKE_TRANSLATION(pumpCharacter, "pumpcharacter", "boiler pump characteristic", "Charakteristik der Kesselpumpe", "karakteristiek ketelpomp", "pannpumpsegenskaper", "charakterystyka pompy kotłowej", "kjelepumpekarakteristikk", "caractéristique de la pompe de la chaudière", "gazan nasosy", "caratteristica della pompa della caldaia", "charakteristika kotlového čerpadla") // TODO translate
|
||||||
MAKE_TRANSLATION(headertemp, "headertemp", "low loss header", "Hydr. Weiche", "open verdeler", "", "sprzęgło hydrauliczne", "", "bouteille de déc. hydr.", "isı bloğu gidiş suyu sıc.", "comp. idr.", "nízkostratová hlavica") // TODO translate
|
MAKE_TRANSLATION(headertemp, "headertemp", "low loss header", "Hydr. Weiche", "open verdeler", "", "sprzęgło hydrauliczne", "", "bouteille de déc. hydr.", "isı bloğu gidiş suyu sıc.", "comp. idr.", "nízkostratová hlavica") // TODO translate
|
||||||
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
|
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
|
||||||
|
|
||||||
@@ -738,6 +738,7 @@ MAKE_TRANSLATION(hpcooling, "cooling", "cooling", "Kühlen", "Koelen", "Kyler",
|
|||||||
MAKE_TRANSLATION(coolstart, "coolstart", "cooling starttemp", "Kühlbetrieb ab") // TODO translate
|
MAKE_TRANSLATION(coolstart, "coolstart", "cooling starttemp", "Kühlbetrieb ab") // TODO translate
|
||||||
MAKE_TRANSLATION(coolondelay, "coolondelay", "cooling on delay", "Einschaltverzögerung Kühlen") // TODO translate
|
MAKE_TRANSLATION(coolondelay, "coolondelay", "cooling on delay", "Einschaltverzögerung Kühlen") // TODO translate
|
||||||
MAKE_TRANSLATION(cooloffdelay, "cooloffdelay", "cooling off delay", "Ausschaltverzögerung Kühlen") // TODO translate
|
MAKE_TRANSLATION(cooloffdelay, "cooloffdelay", "cooling off delay", "Ausschaltverzögerung Kühlen") // TODO translate
|
||||||
|
MAKE_TRANSLATION(switchProgMode, "switchprogmode", "switch program mode", "Schaltprogram Modus") // TODO translate
|
||||||
|
|
||||||
// heatpump and RC100H
|
// 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(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")
|
||||||
|
|||||||
@@ -68,6 +68,11 @@ void WebCustomEntity::read(WebCustomEntity & webEntity, JsonObject root) {
|
|||||||
StateUpdateResult WebCustomEntity::update(JsonObject root, WebCustomEntity & webCustomEntity) {
|
StateUpdateResult WebCustomEntity::update(JsonObject root, WebCustomEntity & webCustomEntity) {
|
||||||
// reset everything to start fresh
|
// reset everything to start fresh
|
||||||
Command::erase_device_commands(EMSdevice::DeviceType::CUSTOM);
|
Command::erase_device_commands(EMSdevice::DeviceType::CUSTOM);
|
||||||
|
for (CustomEntityItem & entityItem : webCustomEntity.customEntityItems) {
|
||||||
|
if (entityItem.raw) {
|
||||||
|
delete[] entityItem.raw;
|
||||||
|
}
|
||||||
|
}
|
||||||
webCustomEntity.customEntityItems.clear();
|
webCustomEntity.customEntityItems.clear();
|
||||||
EMSESP::webCustomEntityService.ha_reset();
|
EMSESP::webCustomEntityService.ha_reset();
|
||||||
|
|
||||||
@@ -92,8 +97,10 @@ StateUpdateResult WebCustomEntity::update(JsonObject root, WebCustomEntity & web
|
|||||||
entityItem.value_type = DeviceValueType::STRING;
|
entityItem.value_type = DeviceValueType::STRING;
|
||||||
entityItem.writeable = true;
|
entityItem.writeable = true;
|
||||||
}
|
}
|
||||||
|
entityItem.raw = nullptr;
|
||||||
if (entityItem.value_type == DeviceValueType::BOOL) {
|
if (entityItem.value_type == DeviceValueType::STRING) {
|
||||||
|
entityItem.raw = new uint8_t[(int)entityItem.factor + 1];
|
||||||
|
} else if (entityItem.value_type == DeviceValueType::BOOL) {
|
||||||
entityItem.value = EMS_VALUE_DEFAULT_BOOL;
|
entityItem.value = EMS_VALUE_DEFAULT_BOOL;
|
||||||
} else if (entityItem.value_type == DeviceValueType::INT8) {
|
} else if (entityItem.value_type == DeviceValueType::INT8) {
|
||||||
entityItem.value = EMS_VALUE_DEFAULT_INT8;
|
entityItem.value = EMS_VALUE_DEFAULT_INT8;
|
||||||
@@ -136,19 +143,26 @@ bool WebCustomEntityService::command_setvalue(const char * value, const int8_t i
|
|||||||
if (entityItem.ram == 1) {
|
if (entityItem.ram == 1) {
|
||||||
entityItem.data = value;
|
entityItem.data = value;
|
||||||
} else if (entityItem.value_type == DeviceValueType::STRING) {
|
} else if (entityItem.value_type == DeviceValueType::STRING) {
|
||||||
char telegram[84];
|
auto telegram = strdup(value);
|
||||||
strlcpy(telegram, value, sizeof(telegram));
|
uint8_t * data = new uint8_t[(strlen(telegram)) / 3 + 1];
|
||||||
uint8_t data[EMS_MAX_TELEGRAM_LENGTH];
|
uint8_t count = 0;
|
||||||
uint8_t count = 0;
|
char * p = strtok(telegram, " ,"); // delimiter
|
||||||
char * p = strtok(telegram, " ,"); // delimiter
|
|
||||||
while (p != nullptr) {
|
while (p != nullptr) {
|
||||||
data[count++] = (uint8_t)strtol(p, 0, 16);
|
data[count++] = (uint8_t)strtol(p, 0, 16);
|
||||||
p = strtok(nullptr, " ,");
|
p = strtok(nullptr, " ,");
|
||||||
}
|
}
|
||||||
if (count == 0) {
|
free(telegram);
|
||||||
return false;
|
uint8_t offset = entityItem.offset;
|
||||||
|
uint8_t * dat = data;
|
||||||
|
while (count > 0) {
|
||||||
|
uint8_t len = std::min((int)count, 25);
|
||||||
|
EMSESP::send_write_request(entityItem.type_id, entityItem.device_id, offset, dat, len, 0);
|
||||||
|
offset += len;
|
||||||
|
count -= len;
|
||||||
|
dat += len;
|
||||||
}
|
}
|
||||||
EMSESP::send_write_request(entityItem.type_id, entityItem.device_id, entityItem.offset, data, count, 0);
|
delete[] data;
|
||||||
|
return true;
|
||||||
} else if (entityItem.value_type == DeviceValueType::BOOL) {
|
} else if (entityItem.value_type == DeviceValueType::BOOL) {
|
||||||
bool v;
|
bool v;
|
||||||
if (!Helpers::value2bool(value, v)) {
|
if (!Helpers::value2bool(value, v)) {
|
||||||
@@ -558,18 +572,23 @@ bool WebCustomEntityService::get_value(std::shared_ptr<const Telegram> telegram)
|
|||||||
const uint8_t len[] = {1, 1, 1, 2, 2, 3, 3, 4};
|
const uint8_t len[] = {1, 1, 1, 2, 2, 3, 3, 4};
|
||||||
for (auto & entity : *customEntityItems_) {
|
for (auto & entity : *customEntityItems_) {
|
||||||
if (entity.value_type == DeviceValueType::STRING && telegram->type_id == entity.type_id && telegram->src == entity.device_id
|
if (entity.value_type == DeviceValueType::STRING && telegram->type_id == entity.type_id && telegram->src == entity.device_id
|
||||||
&& telegram->offset <= entity.offset && (telegram->offset + telegram->message_length) >= (entity.offset + (uint8_t)entity.factor)) {
|
&& telegram->offset >= entity.offset) {
|
||||||
auto data = Helpers::data_to_hex(telegram->message_data, (uint8_t)entity.factor);
|
auto length = std::min((int)telegram->offset - entity.offset + telegram->message_length, (int)entity.factor);
|
||||||
if (entity.data != data) {
|
auto rest = std::min((int)entity.factor - telegram->offset + entity.offset, (int)telegram->message_length);
|
||||||
entity.data = data;
|
if (rest > 0) {
|
||||||
if (Mqtt::publish_single()) {
|
memcpy(&entity.raw[telegram->offset - entity.offset], telegram->message_data, rest);
|
||||||
publish_single(entity);
|
auto data = Helpers::data_to_hex(entity.raw, (uint8_t)length);
|
||||||
} else if (EMSESP::mqtt_.get_publish_onchange(0)) {
|
if (entity.data != data) {
|
||||||
has_change = true;
|
entity.data = data;
|
||||||
|
if (Mqtt::publish_single()) {
|
||||||
|
publish_single(entity);
|
||||||
|
} else if (EMSESP::mqtt_.get_publish_onchange(0)) {
|
||||||
|
has_change = true;
|
||||||
|
}
|
||||||
|
char cmd[COMMAND_MAX_LENGTH];
|
||||||
|
snprintf(cmd, sizeof(cmd), "%s/%s", F_(custom), entity.name.c_str());
|
||||||
|
EMSESP::webSchedulerService.onChange(cmd);
|
||||||
}
|
}
|
||||||
char cmd[COMMAND_MAX_LENGTH];
|
|
||||||
snprintf(cmd, sizeof(cmd), "%s/%s", F_(custom), entity.name.c_str());
|
|
||||||
EMSESP::webSchedulerService.onChange(cmd);
|
|
||||||
}
|
}
|
||||||
} else if (entity.value_type != DeviceValueType::STRING && telegram->type_id == entity.type_id && telegram->src == entity.device_id
|
} else if (entity.value_type != DeviceValueType::STRING && telegram->type_id == entity.type_id && telegram->src == entity.device_id
|
||||||
&& telegram->offset <= entity.offset && (telegram->offset + telegram->message_length) >= (entity.offset + len[entity.value_type])) {
|
&& telegram->offset <= entity.offset && (telegram->offset + telegram->message_length) >= (entity.offset + len[entity.value_type])) {
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ class CustomEntityItem {
|
|||||||
uint32_t value;
|
uint32_t value;
|
||||||
std::string data;
|
std::string data;
|
||||||
uint8_t ram;
|
uint8_t ram;
|
||||||
|
uint8_t * raw;
|
||||||
};
|
};
|
||||||
|
|
||||||
class WebCustomEntity {
|
class WebCustomEntity {
|
||||||
|
|||||||
Reference in New Issue
Block a user