fix: use unique client ID for MQTT connection to avoid conflicts

This commit is contained in:
2025-03-23 16:42:52 +01:00
parent c2e3dc1d46
commit 9d7accc746
+11 -5
View File
@@ -553,13 +553,16 @@ void reconnect() {
oledShowTopRow();
// Attempt to connect
if (client.connect(bambu_serialnr, bambu_username, bambu_accesscode)) {
String clientId = String(bambu_serialnr) + "_" + String(random(0, 100));
if (client.connect(clientId.c_str(), bambu_username, bambu_accesscode)){
Serial.println("MQTT re/connected");
client.subscribe(report_topic.c_str());
bambu_connected = true;
oledShowTopRow();
} else {
}
else
{
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
@@ -568,7 +571,8 @@ void reconnect() {
yield();
vTaskDelay(5000 / portTICK_PERIOD_MS);
if (retries > 5) {
if (retries > 5)
{
Serial.println("Disable Bambu MQTT Task after 5 retries");
// vTaskSuspend(BambuMqttTask);
vTaskDelete(BambuMqttTask);
@@ -619,7 +623,8 @@ bool setupMqtt() {
// Verbinden mit dem MQTT-Server
bool connected = true;
if (client.connect(bambu_serialnr, bambu_username, bambu_accesscode))
String clientId = String(bambu_serialnr) + "_" + String(random(0, 100));
if (client.connect(clientId.c_str(), bambu_username, bambu_accesscode))
{
client.setCallback(mqtt_callback);
client.setBufferSize(5120);
@@ -649,7 +654,8 @@ bool setupMqtt() {
oledShowTopRow();
}
if (!connected) return false;
if (!connected)
return false;
}
else
{