fix: use unique client ID for MQTT connection to avoid conflicts
This commit is contained in:
+13
-7
@@ -553,13 +553,16 @@ void reconnect() {
|
|||||||
oledShowTopRow();
|
oledShowTopRow();
|
||||||
|
|
||||||
// Attempt to connect
|
// 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");
|
Serial.println("MQTT re/connected");
|
||||||
|
|
||||||
client.subscribe(report_topic.c_str());
|
client.subscribe(report_topic.c_str());
|
||||||
bambu_connected = true;
|
bambu_connected = true;
|
||||||
oledShowTopRow();
|
oledShowTopRow();
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
Serial.print("failed, rc=");
|
Serial.print("failed, rc=");
|
||||||
Serial.print(client.state());
|
Serial.print(client.state());
|
||||||
Serial.println(" try again in 5 seconds");
|
Serial.println(" try again in 5 seconds");
|
||||||
@@ -568,9 +571,10 @@ void reconnect() {
|
|||||||
|
|
||||||
yield();
|
yield();
|
||||||
vTaskDelay(5000 / portTICK_PERIOD_MS);
|
vTaskDelay(5000 / portTICK_PERIOD_MS);
|
||||||
if (retries > 5) {
|
if (retries > 5)
|
||||||
|
{
|
||||||
Serial.println("Disable Bambu MQTT Task after 5 retries");
|
Serial.println("Disable Bambu MQTT Task after 5 retries");
|
||||||
//vTaskSuspend(BambuMqttTask);
|
// vTaskSuspend(BambuMqttTask);
|
||||||
vTaskDelete(BambuMqttTask);
|
vTaskDelete(BambuMqttTask);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -619,12 +623,13 @@ bool setupMqtt() {
|
|||||||
|
|
||||||
// Verbinden mit dem MQTT-Server
|
// Verbinden mit dem MQTT-Server
|
||||||
bool connected = true;
|
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.setCallback(mqtt_callback);
|
||||||
client.setBufferSize(5120);
|
client.setBufferSize(5120);
|
||||||
client.subscribe(report_topic.c_str());
|
client.subscribe(report_topic.c_str());
|
||||||
//client.subscribe(request_topic.c_str());
|
// client.subscribe(request_topic.c_str());
|
||||||
Serial.println("MQTT-Client initialisiert");
|
Serial.println("MQTT-Client initialisiert");
|
||||||
|
|
||||||
oledShowMessage("Bambu Connected");
|
oledShowMessage("Bambu Connected");
|
||||||
@@ -649,7 +654,8 @@ bool setupMqtt() {
|
|||||||
oledShowTopRow();
|
oledShowTopRow();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!connected) return false;
|
if (!connected)
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user