Fix meter lifecycle and MQTT/HA integration bugs #1

Merged
adebaumann merged 8 commits from fix-attach-meters-detach into main 2026-06-26 23:53:16 +00:00
Showing only changes of commit 96998fb9e2 - Show all commits
+16 -18
View File
@@ -557,24 +557,22 @@ static void handleConfig() {
val.toCharArray(hostname, sizeof(hostname)); val.toCharArray(hostname, sizeof(hostname));
} }
if (server.hasArg("mqtt_en")) { // Persist the connection fields regardless of the enable checkbox so edits
mqttCfg.enabled = true; // made while disabling MQTT aren't discarded.
if (server.hasArg("mqtt_host")) if (server.hasArg("mqtt_host"))
strlcpy(mqttCfg.host, server.arg("mqtt_host").c_str(), sizeof(mqttCfg.host)); strlcpy(mqttCfg.host, server.arg("mqtt_host").c_str(), sizeof(mqttCfg.host));
if (server.hasArg("mqtt_port")) if (server.hasArg("mqtt_port"))
mqttCfg.port = server.arg("mqtt_port").toInt(); mqttCfg.port = server.arg("mqtt_port").toInt();
if (server.hasArg("mqtt_user")) if (server.hasArg("mqtt_user"))
strlcpy(mqttCfg.user, server.arg("mqtt_user").c_str(), sizeof(mqttCfg.user)); strlcpy(mqttCfg.user, server.arg("mqtt_user").c_str(), sizeof(mqttCfg.user));
if (server.hasArg("mqtt_pass") && server.arg("mqtt_pass").length() > 0) if (server.hasArg("mqtt_pass") && server.arg("mqtt_pass").length() > 0)
strlcpy(mqttCfg.pass, server.arg("mqtt_pass").c_str(), sizeof(mqttCfg.pass)); strlcpy(mqttCfg.pass, server.arg("mqtt_pass").c_str(), sizeof(mqttCfg.pass));
if (server.hasArg("mqtt_prefix")) if (server.hasArg("mqtt_prefix"))
strlcpy(mqttCfg.prefix, server.arg("mqtt_prefix").c_str(), sizeof(mqttCfg.prefix)); strlcpy(mqttCfg.prefix, server.arg("mqtt_prefix").c_str(), sizeof(mqttCfg.prefix));
Serial.printf("[HTTP] mqtt enabled host=%s port=%u user=%s prefix=%s\n",
mqttCfg.host, mqttCfg.port, mqttCfg.user, mqttCfg.prefix); mqttCfg.enabled = server.hasArg("mqtt_en");
} else { Serial.printf("[HTTP] mqtt enabled=%d host=%s port=%u user=%s prefix=%s\n",
mqttCfg.enabled = false; mqttCfg.enabled, mqttCfg.host, mqttCfg.port, mqttCfg.user, mqttCfg.prefix);
Serial.println("[HTTP] mqtt disabled");
}
if (server.hasArg("auth_en")) { if (server.hasArg("auth_en")) {
if (server.hasArg("auth_pass") && server.arg("auth_pass").length() > 0) if (server.hasArg("auth_pass") && server.arg("auth_pass").length() > 0)