Fix meter lifecycle and MQTT/HA integration bugs #1
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user