diff --git a/Software/src/communication/nvm/comm_nvm.cpp b/Software/src/communication/nvm/comm_nvm.cpp index 18cfb73a..97eddbb3 100644 --- a/Software/src/communication/nvm/comm_nvm.cpp +++ b/Software/src/communication/nvm/comm_nvm.cpp @@ -117,6 +117,8 @@ void init_stored_settings() { mqtt_enabled = settings.getBool("MQTTENABLED", false); ha_autodiscovery_enabled = settings.getBool("HADISC", false); + custom_hostname = settings.getString("HOSTNAME").c_str(); + mqtt_server = settings.getString("MQTTSERVER").c_str(); mqtt_port = settings.getUInt("MQTTPORT", 0); mqtt_user = settings.getString("MQTTUSER").c_str(); diff --git a/Software/src/devboard/webserver/settings_html.cpp b/Software/src/devboard/webserver/settings_html.cpp index b4f742ee..63e23afe 100644 --- a/Software/src/devboard/webserver/settings_html.cpp +++ b/Software/src/devboard/webserver/settings_html.cpp @@ -92,6 +92,10 @@ const char* name_for_button_type(STOP_BUTTON_BEHAVIOR behavior) { String settings_processor(const String& var, BatteryEmulatorSettingsStore& settings) { + if (var == "HOSTNAME") { + return settings.getString("HOSTNAME"); + } + if (var == "BATTERYINTF") { if (battery) { return battery->interface_name(); @@ -131,6 +135,12 @@ String settings_processor(const String& var, BatteryEmulatorSettingsStore& setti } } + if (var == "INVINTF") { + if (inverter) { + return inverter->interface_name(); + } + } + if (var == "SHUNTCLASS") { if (!shunt) { return "hidden"; @@ -264,6 +274,14 @@ String settings_processor(const String& var, BatteryEmulatorSettingsStore& setti return settings.getBool("HADISC") ? "checked" : ""; } + if (var == "MANUAL_BAL_CLASS") { + if (battery && battery->supports_manual_balancing()) { + return ""; + } else { + return "hidden"; + } + } + if (var == "BATTERY_WH_MAX") { return String(datalayer.battery.info.total_capacity_Wh); } @@ -664,6 +682,9 @@ const char* getCANInterfaceName(CAN_Interface interface) { + + + diff --git a/Software/src/devboard/webserver/webserver.cpp b/Software/src/devboard/webserver/webserver.cpp index 33b50596..b4194064 100644 --- a/Software/src/devboard/webserver/webserver.cpp +++ b/Software/src/devboard/webserver/webserver.cpp @@ -459,6 +459,8 @@ void init_webserver() { } else if (p->name() == "SHUNTCOMM") { auto type = static_cast(atoi(p->value().c_str())); settings.saveUInt("SHUNTCOMM", (int)type); + } else if (p->name() == "HOSTNAME") { + settings.saveString("HOSTNAME", p->value().c_str()); } else if (p->name() == "MQTTSERVER") { settings.saveString("MQTTSERVER", p->value().c_str()); } else if (p->name() == "MQTTPORT") { @@ -799,7 +801,7 @@ String processor(const String& var) { content += ""; // Compact header - content += "

" + String(ssidAP.c_str()) + "

"; + content += "

Battery Emulator

"; // Start content block content += "
"; diff --git a/Software/src/devboard/wifi/wifi.cpp b/Software/src/devboard/wifi/wifi.cpp index 9899e8c2..545a6ed3 100644 --- a/Software/src/devboard/wifi/wifi.cpp +++ b/Software/src/devboard/wifi/wifi.cpp @@ -30,6 +30,12 @@ const bool mdns_enabled_default = false; #endif bool mdns_enabled = mdns_enabled_default; +#ifdef CUSTOM_HOSTNAME +std::string custom_hostname = CUSTOM_HOSTNAME; +#else +std::string custom_hostname; +#endif + std::string ssidAP; // Configuration Parameters @@ -60,9 +66,9 @@ void init_WiFi() { DEBUG_PRINTF("init_Wifi enabled=%d, apÄ=%d, ssid=%s, password=%s\n", wifi_enabled, wifiap_enabled, ssid.c_str(), password.c_str()); -#ifdef CUSTOM_HOSTNAME - WiFi.setHostname(CUSTOM_HOSTNAME); // Set custom hostname if defined in USER_SETTINGS.h -#endif + if (!custom_hostname.empty()) { + WiFi.setHostname(custom_hostname.c_str()); + } if (wifiap_enabled) { WiFi.mode(WIFI_AP_STA); // Simultaneous WiFi AP and Router connection @@ -236,9 +242,10 @@ void init_mDNS() { // e.g batteryemulator8C.local where the mac address is 08:F9:E0:D1:06:8C String mac = WiFi.macAddress(); String mdnsHost = "batteryemulator" + mac.substring(mac.length() - 2); -#ifdef CUSTOM_HOSTNAME // If CUSTOM_HOSTNAME is defined, use the same hostname also for mDNS - mdnsHost = CUSTOM_HOSTNAME; -#endif + + if (!custom_hostname.empty()) { + mdnsHost = String(custom_hostname.c_str()); + } // Initialize mDNS .local resolution if (!MDNS.begin(mdnsHost)) { diff --git a/Software/src/devboard/wifi/wifi.h b/Software/src/devboard/wifi/wifi.h index e61a5233..a75ac703 100644 --- a/Software/src/devboard/wifi/wifi.h +++ b/Software/src/devboard/wifi/wifi.h @@ -10,6 +10,7 @@ extern std::string password; extern const uint8_t wifi_channel; extern std::string ssidAP; extern std::string passwordAP; +extern std::string custom_hostname; void init_WiFi(); void wifi_monitor();