From a09f1dec878ec44a433047fa61117e75984743fe Mon Sep 17 00:00:00 2001 From: "Adrian A. Baumann" Date: Sat, 27 Jun 2026 01:34:57 +0200 Subject: [PATCH] Clear retained HA discovery for removed meters --- src/main.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 5a8700b..f71d842 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -272,6 +272,16 @@ static void mqttPublishDiscovery() { bool pubOk = mqttClient.publish(topic, payload, true); Serial.printf("[MQTT] discovery %s -> %s (ok=%d)\n", topic, payload, pubOk); } + + // Clear retained discovery for slots no longer in use (meters removed) so + // Home Assistant drops the stale entities instead of keeping them forever. + for (int i = meterCount; i < MAX_METERS; i++) { + String objId = String(devId) + "_meter_" + String(i) + "_current"; + char topic[128]; + snprintf(topic, sizeof(topic), "homeassistant/number/%s/config", objId.c_str()); + mqttClient.publish(topic, "", true); + Serial.printf("[MQTT] discovery clear %s\n", topic); + } } static void mqttSubscribe() {