From e5bdbcbb1c4075b5ae55471fead45a07f5b3a1ca Mon Sep 17 00:00:00 2001 From: Philipp Arndt <2f.mail@gmx.de> Date: Thu, 10 Aug 2023 17:37:04 +0200 Subject: [PATCH] feat: maintain MQTT status topic --- MQTT.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/MQTT.cpp b/MQTT.cpp index 778af84..9642fa7 100644 --- a/MQTT.cpp +++ b/MQTT.cpp @@ -160,6 +160,8 @@ bool MQTTClass::connect() { snprintf(this->clientId, sizeof(this->clientId), "client-%08x%08x", (uint32_t)((mac >> 32) & 0xFFFFFFFF), (uint32_t)(mac & 0xFFFFFFFF)); if(strlen(settings.MQTT.protocol) > 0 && strlen(settings.MQTT.hostname) > 0) { mqttClient.setServer(settings.MQTT.hostname, settings.MQTT.port); + string statusTopic = settings.MQTT.rootTopic + "/status"; + mqttClient.setWill(statusTopic, "offline", true, 1); if(mqttClient.connect(this->clientId, settings.MQTT.username, settings.MQTT.password)) { Serial.print("Successfully connected MQTT client "); Serial.println(this->clientId); @@ -173,6 +175,7 @@ bool MQTTClass::connect() { this->subscribe("groups/+/direction/set"); mqttClient.setCallback(MQTTClass::receive); this->lastConnect = millis(); + this->publish(statusTopic, "online", true) return true; } else {