diff --git a/src/main.cpp b/src/main.cpp index e81b731..ead50bd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -206,14 +206,19 @@ static bool mqttConnect() { snprintf(clientId, sizeof(clientId), "m1730-%02x%02x%02x", mac[3], mac[4], mac[5]); } + char statusTopic[128]; + snprintf(statusTopic, sizeof(statusTopic), "%s/status", mqttCfg.prefix); + mqttClient.setServer(mqttCfg.host, mqttCfg.port); mqttClient.setCallback(mqttCallback); Serial.printf("[MQTT] connecting to %s:%d as %s\n", mqttCfg.host, mqttCfg.port, clientId); - bool ok = mqttClient.connect(clientId, mqttCfg.user, mqttCfg.pass); + bool ok = mqttClient.connect(clientId, mqttCfg.user, mqttCfg.pass, + statusTopic, 0, true, "online: false"); if (ok) { Serial.printf("[MQTT] connected to %s:%d\n", mqttCfg.host, mqttCfg.port); + mqttClient.publish(statusTopic, "online: true", true); mqttSubscribe(); } else { Serial.printf("[MQTT] failed rc=%d\n", mqttClient.state()); @@ -444,8 +449,7 @@ static void handleConfig() { if (mqttClient.connected()) mqttClient.disconnect(); mqttReconnectAt = 0; - server.sendHeader("Location", "/"); - server.send(303); + handleRoot(); } static void handleSet() {