PROGMEM const char PGMStr_FIRMWARE_NAME[] = FIRMWARE_NAME;
PROGMEM const char PGMStr_FIRMWARE_VERSION[] = FIRMWARE_VERSION;
PROGMEM const char PGMStr_FIRMWARE_URL[] = FIRMWARE_URL;
PROGMEM const char PGMStr_FIRMWARE_COPYRIGHT[] = FIRMWARE_COPYRIGHT;
PROGMEM const char PGMStr_FIRMWARE_COPYRIGHT_URL[] = FIRMWARE_COPYRIGHT_URL;
PROGMEM const char PGMStr_FIRMWARE_SHORTNAME[] = FIRMWARE_SHORTNAME;

PROGMEM const char PGMStr_changedTo[] = "changed to";
PROGMEM const char PGMStr_preset[] = "preset";
PROGMEM const char PGMStr_heatingMode[] = "heatingMode";
PROGMEM const char PGMStr_heatingPause[] = "heatingPause";
PROGMEM const char PGMStr_setTemp[] = "setTemp";
PROGMEM const char PGMStr_currentSetTemp[] = "currSetTemp";
PROGMEM const char PGMStr_setTempLow[] = "setTempLow";
PROGMEM const char PGMStr_setTempLow2[] = "setTempLow2";
PROGMEM const char PGMStr_switchHeating[] = "switch heating";
PROGMEM const char PGMStr_mqttRetainedSave[] = "MQTT retained save";
PROGMEM const char PGMStr_heating[] = "heating";
PROGMEM const char PGMStr_thermostat[] = "THST";
PROGMEM const char PGMStr_WiFi[] = "WiFi";
//PROGMEM const char PGMStr_connectedTo[] = "connected to";
//PROGMEM const char PGMStr_withIP[] = "with IP";
PROGMEM const char PGMStr_MQTT[] = "MQTT";
PROGMEM const char PGMStr_connectedTo[] = "connected to";
PROGMEM const char PGMStr_reconnects[] = "reconnects";
PROGMEM const char PGMStr_connectedFailed[] = "connect FAILED";

PROGMEM const char PGMStr_enabled[] = "enabled";
PROGMEM const char PGMStr_disabled[] = "disabled";



PROGMEM const char compile_date[] = __DATE__ " " __TIME__;

PROGMEM const char PGMStr_confDevWiFi[] = "confDevWiFi";
PROGMEM const char PGMStr_confWeb[] = "confWeb";
PROGMEM const char PGMStr_confMqtt[] = "confMqtt";
PROGMEM const char PGMStr_confAdd[] = "confAdd";
PROGMEM const char PGMStr_confTime[] = "confTime";
PROGMEM const char PGMStr_confLog[] = "confLog";

PROGMEM const char PGMStr_confSens[] = "confSens";
PROGMEM const char PGMStr_confDisplay[] = "confDisplay";

PROGMEM const char PGMStr_confTherm[] = "confTherm";
PROGMEM const char PGMStr_confThermAdv[] = "confThermAdv";


//const char PGMStr_delimiter[] PROGMEM = "--------";
PROGMEM const char PGMStr_MQTTState_DIS[] = "DISABLED";
PROGMEM const char PGMStr_MQTTState_M4[] = "CONNECTION_TIMEOUT";
PROGMEM const char PGMStr_MQTTState_M3[] = "CONNECTION_LOST";
PROGMEM const char PGMStr_MQTTState_M2[] = "CONNECT_FAILED";
PROGMEM const char PGMStr_MQTTState_M1[] = "DISCONNECTED";
PROGMEM const char PGMStr_MQTTState_0[] = "CONNECTED";
PROGMEM const char PGMStr_MQTTState_1[] = "CONNECT_BAD_PROTOCOL";
PROGMEM const char PGMStr_MQTTState_2[] = "CONNECT_BAD_CLIENT_ID";
PROGMEM const char PGMStr_MQTTState_3[] = "CONNECT_UNAVAILABLE";
PROGMEM const char PGMStr_MQTTState_4[] = "CONNECT_BAD_CREDENTIALS";
PROGMEM const char PGMStr_MQTTState_5[] = "CONNECT_UNAUTHORIZED";
PROGMEM const char *const PGMStr_MQTTStates[] =
    {
        PGMStr_MQTTState_M4,
        PGMStr_MQTTState_M3,
        PGMStr_MQTTState_M2,
        PGMStr_MQTTState_M1,
        PGMStr_MQTTState_0,
        PGMStr_MQTTState_1,
        PGMStr_MQTTState_2,
        PGMStr_MQTTState_3,
        PGMStr_MQTTState_4,
        PGMStr_MQTTState_5,
};


PROGMEM const char PGMStr_WEB_DEBUGBUILD[] = "&nbsp;<span style='color:red;font-weight:bold;'>DEBUG BUILD</span>";
PROGMEM const char PGMStr_web_setConf[] = "WEB setConf: '%s' => '%s'";

PROGMEM const char PGMStr_safeConf_configFileWritten[] = "CONF: config file '%s' written.";
PROGMEM const char PGMStr_safeConf_configFileWriteError[] = "CONF: ERROR - failed to open file '%s' for writing.";

PROGMEM const char PGMStr_loadConf_ErrorOpenFile[] = "ERR: Failed to open file '%s'.";
PROGMEM const char PGMStr_loadConf_FileNotExist[] = "CONF: could not restore from file '%s' - does not exist.";
PROGMEM const char PGMStr_loadConf_restoredConf[] = "CONF: restored config from file '%s', size=%d";

PROGMEM const char PGMStr_loadConf_storedSecrets_EEPROM[] = "CONF: stored secrets to EEPROM.";
PROGMEM const char PGMStr_loadConf_errorStoreSecrets_EEPROM[] = "CONF: ERROR storing secrets to EEPROM.";
PROGMEM const char PGMStr_loadConf_restoredSecrets_EEPROM[] = "CONF: restored secrets from EEPROM. %d bytes read.";
PROGMEM const char PGMStr_loadConf_restoredSecrets_fillUp_EEPROM[] = "CONF: 'secrets' size in EEPROM was %d bytes smaller than the data struct.";
PROGMEM const char PGMStr_loadConf_errorRestoreSecrets_EEPROM[] = "CONF: ERROR restoring secrets from EEPROM. %d bytes stored but confSecrets struct has a size of %d.";
PROGMEM const char PGMStr_loadConf_errorRestoreSecretsExceedSize_EEPROM[] = "CONF: ERROR restoring secrets from EEPROM. Stored bytes exceed EEPROM_SIZE.";
PROGMEM const char PGMStr_loadConf_encryptedSecretsLoaded[] = "CONF: encrypted secrets loaded.";

PROGMEM const char PGMStr_conf_secretsEncrypted[] = "CONF: secrets are encrypted.";
PROGMEM const char PGMStr_conf_secretsNotEncrypted[] = "CONF: secrets are NOT encrypted.";
PROGMEM const char PGMStr_conf_encryptingSecrets[] = "CONF: encrypting secrets...";
PROGMEM const char PGMStr_conf_encryptingSecretsDone[] = "CONF: secrets encryption DONE";
PROGMEM const char PGMStr_conf_alreadyEncrypted[] = "CONF: already encrypted";
PROGMEM const char PGMStr_conf_encryptionOff[] = "CONF: switching secrets encryption off...";
PROGMEM const char PGMStr_conf_encryptionOffDone[] = "CONF: secrets encryption is now turned off. all credentials were deleted. please re-enter WiFi credentials before reboot!";
PROGMEM const char PGMStr_conf_pendingConfChanges[] = "CONF: pending config changes. Execute 'saveconf' to save or 'loadconf' to discard.";
PROGMEM const char PGMStr_conf_restartRequired[] = "CONF: config changes require restart. Remember 'saveconf' before!";
PROGMEM const char PGMStr_conf_mqttReconnectRequired[] = "CONF: MQTT config changes require connection reset -> will be done automatically on 'saveconf'.";
PROGMEM const char PGMStr_conf_clearedWifiCreds[] = "CONF: cleared WiFi credentials.";
PROGMEM const char PGMStr_conf_clearedCreds[] = "CONF: cleared credentials.";
PROGMEM const char PGMStr_conf_save_nothingChanged[] = "CONF: nothing changed. Use saveconf /f to force.";
PROGMEM const char PGMStr_conf_saveToFS_done[] = "CONF: saving to FS... DONE";
PROGMEM const char PGMStr_conf_saving[] = "CONF: saving...";
PROGMEM const char PGMStr_conf_loading[] = "CONF: loading configuration...";
PROGMEM const char PGMStr_conf_loading_done[] = "CONF: loading configuration... DONE";
PROGMEM const char PGMStr_conf_deleting[] = "CONF: deleting configuration...";
PROGMEM const char PGMStr_conf_invalidValue[] = "CONF: ERROR - param '%s' - invalid value given";

PROGMEM const char PGMStr_setConf[] = "CONF: '%s' set to '%s'";
PROGMEM const char PGMStr_conf_setConf_unknownParamName[] = "CONF: ERROR - setConf - unknown parameter name '%s'.";

PROGMEM const char PGMStr_conf_defaultsLoaded[] = "CONF: default config loaded.";

PROGMEM const char PGMStr_commands_encrypt[] = "WARNING: Secrets encryption cannot be reverted. All credentials will be deleted,";
PROGMEM const char PGMStr_commands_encrypt2[] = "when the feature is switched off again. Use encrypt /y to proceed.";
PROGMEM const char PGMStr_commands_decrypt[] = "Secrets decryption is not implemented for security reasons.";
PROGMEM const char PGMStr_commands_encryptoff[] = "Use 'encryptoff /y' to disable encryption. WARNING: All credentials will be deleted!";


PROGMEM const char PGMStr_filesystem_formatting[] = "FS: formatting - please wait 30 secs...";
PROGMEM const char PGMStr_filesystem_formatComplete[] = "FS: format complete.";
PROGMEM const char PGMStr_filesystem_formatFailed[] = "FS: ERROR - formatting failed.";

PROGMEM const char PGMStr_filesystem_mounting[] = "FS: mounting...";
PROGMEM const char PGMStr_filesystem_mounting_error[] = "FS: Failed to mount LittleFS.";

PROGMEM const char PGMStr_filesystem_ls[] = "FS: ls";
PROGMEM const char PGMStr_filesystem_ls_info[] = "FS: used: %d, total: %d";

PROGMEM const char PGMStr_filesystem_del[] = "FS: deleted file '%s'";
PROGMEM const char PGMStr_filesystem_del_error[] = "FS: ERROR - could not delete file '%s'";

PROGMEM const char PGMStr_filesystem_ren[] = "FS: renamed file '%s' to '%s'";

PROGMEM const char PGMStr_filesystem_uploadStarted[] = "FS: FileUpload started. Filename: %s";
PROGMEM const char PGMStr_filesystem_uploadFinished[] = "FS: FileUpload finished. total received size: %d";
PROGMEM const char PGMStr_filesystem_uploadFailed[] = "FS: FileUpload FAILED. total received size: %d";

PROGMEM const char PGMStr_filesystem_error_notFound[] = "FS: ERROR - file '%s' not found";


PROGMEM const char PGMStr_console_line_hr[] = "------------------------------";

PROGMEM const char PGMStr_setup_APmode_started[] = "%s: AP-MODE started, SSID: %s, PW: %s";
PROGMEM const char PGMStr_setup_APmode_stopped[] = "%s: AP-MODE stopped";
PROGMEM const char PGMStr_setup_APmode_openNet[] = "%s: AP-MODE configured with SSID: %s, open network";
PROGMEM const char PGMStr_setup_APmode_withPassword[] = "%s: AP-MODE configured with SSID: %s, PW: %s";

PROGMEM const char PGMStr_system_setupComplete[] = "SYS:  setup complete.";


PROGMEM const char PGMStr_ON[] = "ON";
PROGMEM const char PGMStr_OFF[] = "OFF";

