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));
}
if (server.hasArg("mqtt_en")) {
mqttCfg.enabled = true;
if (server.hasArg("mqtt_host"))
strlcpy(mqttCfg.host, server.arg("mqtt_host").c_str(), sizeof(mqttCfg.host));
if (server.hasArg("mqtt_port"))
mqttCfg.port = server.arg("mqtt_port").toInt();
if (server.hasArg("mqtt_user"))
strlcpy(mqttCfg.user, server.arg("mqtt_user").c_str(), sizeof(mqttCfg.user));
if (server.hasArg("mqtt_pass") && server.arg("mqtt_pass").length() > 0)
strlcpy(mqttCfg.pass, server.arg("mqtt_pass").c_str(), sizeof(mqttCfg.pass));
if (server.hasArg("mqtt_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);
} else {
mqttCfg.enabled = false;
Serial.println("[HTTP] mqtt disabled");
}
// Persist the connection fields regardless of the enable checkbox so edits
// made while disabling MQTT aren't discarded.
if (server.hasArg("mqtt_host"))
strlcpy(mqttCfg.host, server.arg("mqtt_host").c_str(), sizeof(mqttCfg.host));
if (server.hasArg("mqtt_port"))
mqttCfg.port = server.arg("mqtt_port").toInt();
if (server.hasArg("mqtt_user"))
strlcpy(mqttCfg.user, server.arg("mqtt_user").c_str(), sizeof(mqttCfg.user));
if (server.hasArg("mqtt_pass") && server.arg("mqtt_pass").length() > 0)
strlcpy(mqttCfg.pass, server.arg("mqtt_pass").c_str(), sizeof(mqttCfg.pass));
if (server.hasArg("mqtt_prefix"))
strlcpy(mqttCfg.prefix, server.arg("mqtt_prefix").c_str(), sizeof(mqttCfg.prefix));
mqttCfg.enabled = server.hasArg("mqtt_en");
Serial.printf("[HTTP] mqtt enabled=%d host=%s port=%u user=%s prefix=%s\n",
mqttCfg.enabled, mqttCfg.host, mqttCfg.port, mqttCfg.user, mqttCfg.prefix);
if (server.hasArg("auth_en")) {
if (server.hasArg("auth_pass") && server.arg("auth_pass").length() > 0)