Clear retained HA discovery for removed meters

This commit is contained in:
2026-06-27 01:34:57 +02:00
parent 5bfe3890f2
commit a09f1dec87
+10
View File
@@ -272,6 +272,16 @@ static void mqttPublishDiscovery() {
bool pubOk = mqttClient.publish(topic, payload, true); bool pubOk = mqttClient.publish(topic, payload, true);
Serial.printf("[MQTT] discovery %s -> %s (ok=%d)\n", topic, payload, pubOk); 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() { static void mqttSubscribe() {