Skip to content

Commit

Permalink
Log storage device (SD / flash) can now be set in the webinterface on…
Browse files Browse the repository at this point in the history
… ESP32
  • Loading branch information
fredlcore committed Feb 27, 2024
1 parent 4b7551e commit ff6a1c1
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 43 deletions.
99 changes: 60 additions & 39 deletions BSB_LAN/BSB_LAN.ino
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
* - ATTENTION: New configuration options in BSB_LAN_config.h - please update your existing configuration files!
* - Support for receiving date and time via NTP instead of taking it from the heater.
* - MQTT broker setting now accepts domain names as well as IP addresses. An optional port can be added after a trailing colon, e.g. broker.my-domain.com:1884. Otherwise defaults to 1883.
* - Switching between log storage device (SD card / internal flash) on the ESP32 can now be done in the web interface.
* - This release has been supported by the following GitHub sponsors: jsimon3
* version 3.2
* - ATTENTION: In BSB_LAN_config.h, new layout of log_parameters, avg_parameters and ipwe_parameters now written in curly brackets and different size (40 instead of 80) and type ("parameter" instead of "float"). Please update your BSB_LAN_config.h accordingly to prevent errors!
Expand Down Expand Up @@ -756,23 +757,17 @@ int8_t max_valve[MAX_CUL_DEVICES] = { -1 };
// char _ipstr[20]; // addr in format xxx.yyy.zzz.aaa
// byte __remoteIP[4] = {0,0,0,0}; // IP address in bin format

uint64_t minimum_SD_size = 0;
#if defined LOGGER || defined WEBSERVER
#if defined(ESP32)
#if defined(ESP32_USE_SD) // Use SD card adapter on ESP32
#include "FS.h"
#include "SD_MMC.h"
#define SD SD_MMC
#define MINIMUM_FREE_SPACE_ON_SD 100000
#else // use internal EEPROM flash memory instead of SD card on ESP32
#include <LittleFS.h>
#define SD LittleFS
// Minimum free space in bytes
#define MINIMUM_FREE_SPACE_ON_SD 10000
#endif // ESP32_USE_SD
FS& SD = SD_MMC;
#else // !ESP32
#define FILE_APPEND FILE_WRITE // FILE_APPEND does not exist on Arduino, FILE_WRITE seems to do the same (create if not existing, start writing from EOF onwards)
//leave at least MINIMUM_FREE_SPACE_ON_SD free blocks on SD
#define MINIMUM_FREE_SPACE_ON_SD 100
//leave at least minimum_SD_size free blocks on SD
minimum_SD_size = 100;
// set MAINTAIN_FREE_CLUSTER_COUNT to 1 in SdFatConfig.h if you want increase speed of free space calculation
// do not forget set it up after SdFat upgrading
#include "src/SdFat/SdFat.h"
Expand Down Expand Up @@ -2339,15 +2334,6 @@ void generateConfigPage(void) {
"ENABLE_ESP32_OTA"
#endif

#ifdef ESP32_USE_SD
#ifdef ANY_MODULE_COMPILED
", "
#else
#define ANY_MODULE_COMPILED
#endif
"ESP32_USE_SD"
#endif

#ifdef IPWE
#ifdef ANY_MODULE_COMPILED
", "
Expand Down Expand Up @@ -2507,7 +2493,7 @@ void generateConfigPage(void) {
uint32_t fs = (uint32_t)(volFree*SD.vol()->sectorsPerCluster()/2048);
printFmtToWebClient(PSTR(": %lu MB<br>\r\n"), fs);
#else
uint64_t fs = (SD.totalBytes() - SD.usedBytes());
uint64_t fs = totalBytes()-usedBytes();
printFmtToWebClient(PSTR(": %llu Bytes<br>\r\n"), fs);
#endif
// printFmtToWebClient(PSTR("Free space: %lu MB<br>free clusters: %lu<BR>freeClusterCount() call time: %lu microseconds<BR><br>\r\n"), fs, volFree, micros() - m);
Expand Down Expand Up @@ -2715,6 +2701,7 @@ bool SaveConfigFromRAMtoEEPROM() {
// https://forum.arduino.cc/index.php?topic=89469.0
// Resume: it possible but can cause unpredicable effects
case CF_MAC:
case CF_NETWORK_TYPE:
case CF_DHCP:
case CF_IPADDRESS:
case CF_MASK:
Expand All @@ -2726,6 +2713,7 @@ bool SaveConfigFromRAMtoEEPROM() {
case CF_WIFI_PASSWORD:
case CF_MDNS_HOSTNAME:
case CF_ESP32_ENERGY_SAVE:
case CF_LOG_DEST:
needReboot = true;
break;
case CF_BMEBUS:
Expand Down Expand Up @@ -2803,7 +2791,13 @@ int returnENUMID4ConfigOption(uint8_t id) {
i=findLine(65527,0,NULL); //return ENUM_PPS_MODE
break;
case CF_LOGMODE:
i=findLine(65526,0,NULL); //return ENUM_PPS_MODE
i=findLine(65526,0,NULL); //return ENUM_LOGMODE
break;
case CF_NETWORK_TYPE:
i=findLine(65525,0,NULL); //return ENUM_NETWORK_TYPE
break;
case CF_LOG_DEST:
i=findLine(65524,0,NULL); //return ENUM_LOG_DEST
break;
default:
i = -1;
Expand Down Expand Up @@ -3091,7 +3085,7 @@ void generateWebConfigPage(bool printOnly) {
} else {
printToWebClient(PSTR("</output>"));
}
printToWebClient(PSTR("</td></td>\r\n"));
printToWebClient(PSTR("</td></tr>\r\n"));
}
printToWebClient(PSTR("</tbody></table><p>"));
if(!printOnly){
Expand Down Expand Up @@ -3249,9 +3243,9 @@ void LogTelegram(byte* msg) {
float dval;
float line = 0;
#if !defined(ESP32)
if (SD.vol()->freeClusterCount() < MINIMUM_FREE_SPACE_ON_SD) return;
if (SD.vol()->freeClusterCount() < minimum_SD_size) return;
#else
if (SD.totalBytes() - SD.usedBytes() < MINIMUM_FREE_SPACE_ON_SD) return;
if (totalBytes()-usedBytes() < minimum_SD_size) return;
#endif

if (bus->getBusType() != BUS_PPS) {
Expand Down Expand Up @@ -4856,9 +4850,9 @@ const char* datalogFileHeader = PSTR("Milliseconds;Date;Parameter;Description;Va
const char *cleanupDatalog(unsigned nDays) {
// keep most recent nDays only in datalog:
// copy back of files to temporary files, remove old files, rename temporary files
unsigned long spaceRequired=MINIMUM_FREE_SPACE_ON_SD, spaceAvailable =
unsigned long spaceRequired=minimum_SD_size, spaceAvailable =
#ifdef ESP32
SD.totalBytes() - SD.usedBytes();
totalBytes()-usedBytes();
#else
SD.vol()->freeClusterCount() * SD.vol()->bytesPerCluster();
#endif
Expand Down Expand Up @@ -4963,6 +4957,22 @@ bool createdatalogFileAndWriteHeader() {
return false;
}

uint64_t usedBytes() {
if (LogDestination == 0) {
return SD_MMC.usedBytes();
} else {
return LittleFS.usedBytes();
}
}

uint64_t totalBytes() {
if (LogDestination == 0) {
return SD_MMC.totalBytes();
} else {
return LittleFS.totalBytes();
}
}

#endif //#ifdef LOGGER

#ifdef MAX_CUL
Expand Down Expand Up @@ -6052,7 +6062,7 @@ void loop() {
freespace = (uint32_t)(freespace*SD.vol()->sectorsPerCluster()/2048);
printFmtToWebClient(PSTR("%d"), freespace);
#else
uint64_t freespace = SD.totalBytes() - SD.usedBytes();
uint64_t freespace = totalBytes()-usedBytes();
printFmtToWebClient(PSTR("%llu"), freespace);
#endif
#else
Expand Down Expand Up @@ -7180,11 +7190,11 @@ next_parameter:
File dataFile;
if (LoggingMode & CF_LOGMODE_SD_CARD) {
#if defined(ESP32)
uint64_t freespace = SD.totalBytes() - SD.usedBytes();
uint64_t freespace = totalBytes()-usedBytes();
#else
uint32_t freespace = SD.vol()->freeClusterCount();
#endif
if (freespace > MINIMUM_FREE_SPACE_ON_SD) {
if (freespace > minimum_SD_size) {
dataFile = SD.open(datalogFileName, FILE_APPEND);
if (!dataFile) {
// if the file isn't open, pop up an error:
Expand Down Expand Up @@ -7806,6 +7816,7 @@ void setup() {
registerConfigVariable(CF_ESP32_ENERGY_SAVE, (byte *)&esp32_save_energy);
#ifdef WEBCONFIG
registerConfigVariable(CF_ROOM_DEVICE, (byte *)&pps_values[PPS_QTP]);
registerConfigVariable(CF_NETWORK_TYPE, (byte *)&network_type);
registerConfigVariable(CF_MAC, (byte *)mac);
registerConfigVariable(CF_DHCP, (byte *)&useDHCP);
registerConfigVariable(CF_IPADDRESS, (byte *)ip_addr);
Expand Down Expand Up @@ -7834,6 +7845,7 @@ void setup() {
registerConfigVariable(CF_MQTT_PASSWORD, (byte *)MQTTPassword);
registerConfigVariable(CF_MQTT_TOPIC, (byte *)MQTTTopicPrefix);
registerConfigVariable(CF_MQTT_DEVICE, (byte *)MQTTDeviceID);
registerConfigVariable(CF_LOG_DEST, (byte *)&LogDestination);
registerConfigVariable(CF_LOGMODE, (byte *)&LoggingMode);
if (default_flag & FL_SW_CTL_RONLY) {
registerConfigVariable(CF_WRITEMODE, (byte *)&programWriteMode);
Expand Down Expand Up @@ -8087,7 +8099,16 @@ void setup() {
}

#if defined LOGGER || defined WEBSERVER
printToDebug(PSTR("Starting SD.."));
#ifdef ESP32
if (LogDestination == 0) {
SD = SD_MMC;
minimum_SD_size = 100000;
} else {
SD = LittleFS;
minimum_SD_size = 10000;
}
#endif
printToDebug(PSTR("Starting SD...\r\n"));
#ifndef ESP32
// disable w5100 while setting up SD
pinMode(10,OUTPUT);
Expand All @@ -8098,16 +8119,16 @@ void setup() {
printToDebug(PSTR("ok\r\n"));
}
#else
#if defined(ESP32_USE_SD)
if(!SD_MMC.begin("", true)){
printToDebug(PSTR("failed\r\n"));
if (LogDestination == 0) {
if(!SD_MMC.begin("", true)){
printToDebug(PSTR("failed\r\n"));
} else {
printToDebug(PSTR("ok\r\n"));
}
// pinMode(TX1, OUTPUT); // temporary workaround until most recent version of SD_MMC.cpp with slot.width = 1 is part of Arduino installation (should be release 1.0.5)
} else {
printToDebug(PSTR("ok\r\n"));
LittleFS.begin(true); // format on fail active
}
// pinMode(TX1, OUTPUT); // temporary workaround until most recent version of SD_MMC.cpp with slot.width = 1 is part of Arduino installation (should be release 1.0.5)
#else
SD.begin(true); // format on fail active
#endif
#endif
#else // no SD card
#ifndef ESP32
Expand Down Expand Up @@ -8283,7 +8304,7 @@ void setup() {
freespace = (uint32_t)(freespace*SD.vol()->sectorsPerCluster()/2048);
printFmtToDebug(PSTR("%d MB free\r\n"), freespace);
#else
uint64_t freespace = SD.totalBytes() - SD.usedBytes();
uint64_t freespace = totalBytes()-usedBytes();
printFmtToDebug(PSTR("%llu Bytes free\r\n"), freespace);
#endif
diff -= (millis() - m); //3 sec - delay
Expand Down
10 changes: 9 additions & 1 deletion BSB_LAN/BSB_LAN_EEPROMconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ typedef enum{
CF_LOGMODE, // Size: 1 byte. Bitwise value. Logging: 0 - disabled, 1 - SD card logging, 2 - send to MQTT, 4 - send to UDP
// Version 11 (ESP32 energy save mode)
CF_ESP32_ENERGY_SAVE,
// Version 12 (MQTT server (changed above), network type, log destination)
CF_LOG_DEST,
CF_NETWORK_TYPE,
//Maximim version can be 254 (0xFE). In other case initConfigTable() will locked in infinite loop
//Maximum options count can be 253 for same reason (or must changing uint8_t type to uint16_t)
CF_LAST_OPTION //Virtual option. Must be last in enum. Only for internal usage.
Expand Down Expand Up @@ -187,6 +190,8 @@ PROGMEM_LATE const configuration_struct config[]={
{CF_DEVICE_FAMILY, 8, CCAT_BUS, CPI_TEXT, CDT_UINT16, OPT_FL_ADVANCED, STR_GF, sizeof(fixed_device_family)},//need reboot
{CF_DEVICE_VARIANT, 8, CCAT_BUS, CPI_TEXT, CDT_UINT16, OPT_FL_ADVANCED, STR_GV, sizeof(fixed_device_variant)},//need reboot
#ifdef WEBCONFIG
// Activate this line once we can switch programmatically between LAN card and WiFi. Only relevant for ESP32
// {CF_NETWORK_TYPE, 12,CCAT_IPV4, CPI_DROPDOWN, CDT_BYTE, OPT_FL_BASIC|OPT_FL_ADVANCED, CF_NETWORK_TYPE_TXT, sizeof(network_type)},//need reboot
{CF_PASSKEY, 2, CCAT_IPV4, CPI_TEXT, CDT_STRING, OPT_FL_ADVANCED, CF_PASSKEY_TXT, sizeof(PASSKEY)},//immediately apply
{CF_BASICAUTH, 2, CCAT_IPV4, CPI_TEXT, CDT_STRING, OPT_FL_ADVANCED, CF_BASICAUTH_TXT, sizeof(USER_PASS)},//immediately apply
{CF_DHCP, 2, CCAT_IPV4, CPI_SWITCH, CDT_BYTE, OPT_FL_BASIC|OPT_FL_ADVANCED, CF_DHCP_TXT, sizeof(useDHCP)}, //need reboot
Expand All @@ -201,6 +206,9 @@ PROGMEM_LATE const configuration_struct config[]={
{CF_WIFI_SSID, 4, CCAT_IPV4, CPI_TEXT, CDT_STRING, OPT_FL_BASIC|OPT_FL_ADVANCED, CF_WIFI_SSID_TXT, sizeof(wifi_ssid)}, //need reboot
{CF_WIFI_PASSWORD, 4, CCAT_IPV4, CPI_TEXT, CDT_STRING, OPT_FL_BASIC|OPT_FL_ADVANCED, CF_WIFI_PASSWORD_TXT, sizeof(wifi_pass)},//need reboot
{CF_MDNS_HOSTNAME, 6, CCAT_IPV4, CPI_TEXT, CDT_STRING, OPT_FL_ADVANCED, CF_MDNS_HOSTNAME_TXT, sizeof(mDNS_hostname)},//need reboot
#endif
#ifdef ESP32
{CF_LOG_DEST, 12,CCAT_LOGGING, CPI_DROPDOWN, CDT_BYTE, OPT_FL_BASIC|OPT_FL_ADVANCED, CF_LOG_DEST_TXT, sizeof(LogDestination)}, //need reboot
#endif
{CF_LOGMODE, 10,CCAT_LOGGING, CPI_CHECKBOXES,CDT_BYTE, OPT_FL_BASIC|OPT_FL_ADVANCED, CF_LOGMODE_TXT, sizeof(LoggingMode)}, //immediately apply
{CF_LOGCURRINTERVAL, 1, CCAT_LOGGING, CPI_TEXT, CDT_UINT32, OPT_FL_BASIC|OPT_FL_ADVANCED, CF_LOGCURRINTERVAL_TXT, sizeof(log_interval)},//immediately apply
Expand All @@ -209,7 +217,7 @@ PROGMEM_LATE const configuration_struct config[]={
{CF_AVERAGESLIST, 1, CCAT_24HAVG, CPI_TEXT, CDT_PROGNRLIST, OPT_FL_BASIC|OPT_FL_ADVANCED, CF_PROGLIST_TXT, sizeof(avg_parameters)},//immediately apply
#ifdef WEBCONFIG
{CF_MQTT, 2, CCAT_MQTT, CPI_DROPDOWN, CDT_BYTE, OPT_FL_ADVANCED, CF_USE_TXT, sizeof(mqtt_mode)},//need handler
{CF_MQTT_SERVER, 11,CCAT_MQTT, CPI_TEXT, CDT_STRING, OPT_FL_ADVANCED, CF_MQTT_SERVER_TXT, sizeof(mqtt_broker_addr)},//need handler
{CF_MQTT_SERVER, 12,CCAT_MQTT, CPI_TEXT, CDT_STRING, OPT_FL_ADVANCED, CF_MQTT_SERVER_TXT, sizeof(mqtt_broker_addr)},//need handler
{CF_MQTT_USERNAME, 2, CCAT_MQTT, CPI_TEXT, CDT_STRING, OPT_FL_ADVANCED, CF_MQTT_USERNAME_TXT, sizeof(MQTTUsername)},//immediately apply
{CF_MQTT_PASSWORD, 2, CCAT_MQTT, CPI_TEXT, CDT_STRING, OPT_FL_ADVANCED, CF_MQTT_PASSWORD_TXT, sizeof(MQTTPassword)},//immediately apply
{CF_MQTT_DEVICE, 2, CCAT_MQTT, CPI_TEXT, CDT_STRING, OPT_FL_ADVANCED, CF_MQTT_DEVICE_TXT, sizeof(MQTTDeviceID)}, //immediately apply
Expand Down
9 changes: 6 additions & 3 deletions BSB_LAN/BSB_LAN_config.h.default
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
/*
Allow to initialize program configuration by reading settings from EEPROM
byte UseEEPROM = 0; // Configuration is read from this config file.
// Configuration can be stored in EEPROM but will not used while UseEEPROM is zero.
// Configuration can be stored in EEPROM but will not be used while UseEEPROM is zero.
// Set zero for fallback startup in case EEPROM configuration is broken.
byte UseEEPROM = 1; // Configuration will be read from EEPROM. This is the default.
*/
Expand Down Expand Up @@ -146,8 +146,9 @@ Does: log bus telegrams to file

#define UDP_LOG_PORT 6502 // fixed here, not configurable via web interface

// Use SD card adapter on ESP32-based boards instead of internal flash-based storage
//#define ESP32_USE_SD
// Setting to determine on ESP32 whether to use SD card adapter (if present) or ESP32's internal flash.
// SD card should always be preferred to protect the ESP32's flash from wearing down.
uint8_t LogDestination = 0; // 0 = SD card, 1 = ESP32's flash memory

// Log "raw" bus telegrams. Data saved in journal.txt on SD-card.
// Telegrams logged upon boot:
Expand Down Expand Up @@ -336,6 +337,8 @@ byte destinationServer[128] = ""; // URL string to periodically send values to
uint16_t destinationPort = 80; // port number for abovementioned server
uint32_t destinationDelay = 84600; // interval in seconds to send values

uint8_t network_type = 0;

#define CONFIG_VERSION 34

/************************************************************************************/
Expand Down
13 changes: 13 additions & 0 deletions BSB_LAN/BSB_LAN_defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ const char CF_MAC_TXT[] PROGMEM = MENU_TEXT_MAC;
const char CF_DHCP_TXT[] PROGMEM = CF_DHCP_TEXT;
const char CF_IPADDRESS_TXT[] PROGMEM = CF_IPADDRESS_TEXT;
const char CF_TRUSTEDIPADDRESS_TXT[] PROGMEM = CF_TRUSTEDIPADDRESS_TEXT;
const char CF_NETWORK_TYPE_TXT[] PROGMEM = CF_NETWORK_TYPE_TEXT;
const char CF_WIFI_SSID_TXT[] PROGMEM = CF_WIFI_SSID_TEXT;
const char CF_WIFI_PASSWORD_TXT[] PROGMEM = CF_WIFI_PASSWORD_TEXT;
const char CF_MASK_TXT[] PROGMEM = CF_MASK_TEXT;
Expand All @@ -250,6 +251,7 @@ const char CF_MQTT_USERNAME_TXT[] PROGMEM = CF_MQTT_USERNAME_TEXT;
const char CF_MQTT_PASSWORD_TXT[] PROGMEM = CF_MQTT_PASSWORD_TEXT;
const char CF_MQTT_TOPIC_TXT[] PROGMEM = CF_MQTT_TOPIC_TEXT;
const char CF_MQTT_DEVICE_TXT[] PROGMEM = CF_MQTT_DEVICE_TEXT;
const char CF_LOG_DEST_TXT[] PROGMEM = CF_LOG_DEST_TEXT;
const char CF_LOGMODE_TXT[] PROGMEM = CF_LOGMODE_TEXT;
const char CF_CHECKUPDATE_TXT[] PROGMEM = CF_CHECKUPDATE_TEXT;
const char CF_MDNS_HOSTNAME_TXT[] PROGMEM = CF_MDNS_HOSTNAME_TEXT;
Expand Down Expand Up @@ -1106,7 +1108,16 @@ const char ENUM_LOGGER_MODE[] PROGMEM_LATEST = {
//#ifdef UDP
"\0\x08\x08 " ENUM_LOGMODE_08_TEXT
//#endif
};

const char ENUM_NETWORK_TYPE[] PROGMEM_LATEST = {
"\x00 " ENUM_NETWORK_TYPE_00_TEXT "\0"
"\x01 " ENUM_NETWORK_TYPE_01_TEXT
};

const char ENUM_LOG_DEST[] PROGMEM_LATEST = {
"\x00 " ENUM_LOG_DEST_00_TEXT "\0"
"\x01 " ENUM_LOG_DEST_01_TEXT
};

// Keep this for legacy parameter lists
Expand Down Expand Up @@ -1334,6 +1345,8 @@ const char ENUM15046[] PROGMEM_LATEST = {
//{CMD_END, VT_UNKNOWN, 65535, "", 0, NULL, DEFAULT_FLAG, DEV_ALL}

//Prognr 65526 - 65534 is a dirty trick for reducing enumerations addresses to the same type
{0xDEADBEEF, VT_ENUM, 65524, STR65535, sizeof(ENUM_LOG_DEST), ENUM_LOG_DEST, DEFAULT_FLAG, DEV_ALL}, //
{0xDEADBEEF, VT_ENUM, 65525, STR65535, sizeof(ENUM_NETWORK_TYPE), ENUM_NETWORK_TYPE, DEFAULT_FLAG, DEV_ALL}, //
{0xDEADBEEF, VT_ENUM, 65526, STR65535, sizeof(ENUM_LOGGER_MODE), ENUM_LOGGER_MODE, DEFAULT_FLAG, DEV_ALL}, //
{0xDEADBEEF, VT_ENUM, 65527, STR65535, sizeof(ENUM_PPS_MODE), ENUM_PPS_MODE, DEFAULT_FLAG, DEV_ALL}, //
{0xDEADBEEF, VT_ENUM, 65528, STR65535, sizeof(ENUM_WRITEMODE), ENUM_WRITEMODE, DEFAULT_FLAG, DEV_ALL}, //
Expand Down
8 changes: 8 additions & 0 deletions BSB_LAN/localization/LANG_DE.h
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,7 @@
#define CF_CALCULATION_TEXT "Berechnung"
#define CF_PROGLIST_TEXT "Parameter"
#define CF_DEVICES_TEXT "Geräte"
#define CF_NETWORK_TYPE_TEXT "Netzwerkgerät"
#define CF_DHCP_TEXT "DHCP verwenden"
#define CF_IPADDRESS_TEXT "Statische IP-Adresse"
#define CF_TRUSTEDIPADDRESS_TEXT "Vertrauenswürdige IP-Adresse"
Expand All @@ -243,6 +244,7 @@
#define CF_MQTT_PASSWORD_TEXT "Passwort"
#define CF_MQTT_TOPIC_TEXT "Topic Präfix"
#define CF_MQTT_DEVICE_TEXT "Geräte ID"
#define CF_LOG_DEST_TEXT "Speicherziel"
#define CF_LOGMODE_TEXT "Log-Modus"
#define CF_CHECKUPDATE_TEXT "Auf Updates überprüfen"
#define CF_RGT1_SENSOR_TEXT "RGT1/PPS Temperatursensor Parameter"
Expand Down Expand Up @@ -2258,6 +2260,12 @@
#define ENUM_LOGMODE_04_TEXT "An MQTT-Broker senden"
#define ENUM_LOGMODE_08_TEXT "Als UDP-Nachrichten senden"

#define ENUM_LOG_DEST_00_TEXT "SD-Karte"
#define ENUM_LOG_DEST_01_TEXT "Interner Flash-Speicher"

#define ENUM_NETWORK_TYPE_00_TEXT "LAN"
#define ENUM_NETWORK_TYPE_01_TEXT "WiFi"

#define ENUM20_01_TEXT "English"
#define ENUM20_02_TEXT "Deutsch"
#define ENUM20_03_TEXT "Francais"
Expand Down
4 changes: 4 additions & 0 deletions BSB_LAN/localization/LANG_EN.h
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,10 @@
#define CF_RGT3_PRES_PIN_TEXT "RU3 presence button: pin"
#define CF_SHOW_UNKNOWN_TEXT "Display unknown parameters"
#define CF_ENERGY_SAVE_TEXT "ESP32 energy saving"
#define CF_LOG_DEST_TEXT "Storage device"

#define ENUM_LOG_DEST_00_TEXT "SD card"
#define ENUM_LOG_DEST_01_TEXT "Internal flash storage"

#define CAT_GENERAL_TEXT "General"
#define CAT_IPV4_TEXT "Network"
Expand Down

0 comments on commit ff6a1c1

Please sign in to comment.