Add missing settings

This commit is contained in:
Jaakko Haakana 2025-07-11 21:03:33 +03:00
parent 5fcbb68dd1
commit ffd3e45a96
5 changed files with 40 additions and 7 deletions

View file

@ -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();

View file

@ -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) {
<label>Enable WiFi AP: </label>
<input type='checkbox' name='WIFIAPENABLED' value='on' style='margin-left: 0;' %WIFIAPENABLED% />
<label>Custom hostname: </label>
<input style='max-width: 250px;' type='text' name='HOSTNAME' value="%HOSTNAME%" />
<label>Enable MQTT: </label>
<input type='checkbox' name='MQTTENABLED' value='on' onchange='toggleMqtt()' style='margin-left: 0;' %MQTTENABLED% />

View file

@ -459,6 +459,8 @@ void init_webserver() {
} else if (p->name() == "SHUNTCOMM") {
auto type = static_cast<comm_interface>(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 += "</style>";
// Compact header
content += "<h2>" + String(ssidAP.c_str()) + "</h2>";
content += "<h2>Battery Emulator</h2>";
// Start content block
content += "<div style='background-color: #303E47; padding: 10px; margin-bottom: 10px; border-radius: 50px'>";

View file

@ -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)) {

View file

@ -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();