From b75be0ac06ff93d87714952ea51c94cc8e62c2f9 Mon Sep 17 00:00:00 2001 From: tugsi Date: Sun, 23 Mar 2025 18:53:57 +0100 Subject: [PATCH] fix --- src/bambu.cpp | 71 +++++++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/src/bambu.cpp b/src/bambu.cpp index daa6a7b..0d65a94 100644 --- a/src/bambu.cpp +++ b/src/bambu.cpp @@ -92,7 +92,7 @@ bool loadBambuCredentials() { bambu_serialnr = g_bambu_serialnr.c_str(); report_topic = "device/" + String(bambu_serialnr) + "/report"; - //request_topic = "device/" + String(bambu_serialnr) + "/request"; + request_topic = "device/" + String(bambu_serialnr) + "/request"; return true; } Serial.println("Keine gültigen Bambu-Credentials gefunden."); @@ -214,7 +214,7 @@ bool sendMqttMessage(const String& payload) { // Check payload if (payload.isEmpty()) { Serial.println("Error: Empty payload!"); - return false; + return false; } Serial.println("Attempting to send MQTT message:"); @@ -337,7 +337,6 @@ bool setBambuSpool(String payload) { doc["print"]["cali_idx"] = cali_idx.toInt(); doc["print"]["tray_id"] = trayId < 200 ? trayId : 254; - // Serialize the JSON String output; serializeJson(doc, output); Serial.println("Sending calibration to printer:"); @@ -617,19 +616,19 @@ void reconnect() { // Attempt to connect with clean session and will message if (client.connect(clientId.c_str(), bambu_username, bambu_accesscode, nullptr, 0, true, nullptr)) { - Serial.println("MQTT re/connected"); - + Serial.println("MQTT re/connected"); + // Subscribe with QoS 1 if (client.subscribe(report_topic.c_str(), 1)) { Serial.println("Successfully subscribed to topic with QoS 1: " + report_topic); } else { Serial.println("Failed to subscribe to topic: " + report_topic); } - bambu_connected = true; - oledShowTopRow(); + bambu_connected = true; + oledShowTopRow(); } else { int state = client.state(); - Serial.print("failed, rc="); + Serial.print("failed, rc="); Serial.print(state); Serial.print(" ("); // Print detailed error message @@ -646,18 +645,18 @@ void reconnect() { default: Serial.print("UNKNOWN"); break; } Serial.println(") try again in 5 seconds"); - bambu_connected = false; - oledShowTopRow(); - - yield(); - vTaskDelay(5000 / portTICK_PERIOD_MS); + bambu_connected = false; + oledShowTopRow(); + + yield(); + vTaskDelay(5000 / portTICK_PERIOD_MS); if (retries > 5) { - Serial.println("Disable Bambu MQTT Task after 5 retries"); - vTaskDelete(BambuMqttTask); - break; - } - retries++; + Serial.println("Disable Bambu MQTT Task after 5 retries"); + vTaskDelete(BambuMqttTask); + break; } + retries++; + } } } @@ -672,7 +671,7 @@ void mqtt_loop(void * parameter) { } unsigned long now = millis(); - + if (!client.connected()) { Serial.println("Connection lost, attempting reconnect..."); reconnect(); @@ -726,8 +725,8 @@ bool setupMqtt() { // Verbinden mit dem MQTT-Server bool connected = true; if (client.connect(clientId.c_str(), bambu_username, bambu_accesscode, nullptr, 0, true, nullptr)) - { - client.setCallback(mqtt_callback); + { + client.setCallback(mqtt_callback); client.setBufferSize(16384); // Increased to 16KB to handle larger JSON // Subscribe with QoS 1 @@ -737,13 +736,13 @@ bool setupMqtt() { Serial.println("Failed to subscribe to topic: " + report_topic); } - Serial.println("MQTT-Client initialisiert"); + Serial.println("MQTT-Client initialisiert"); - oledShowMessage("Bambu Connected"); - bambu_connected = true; - oledShowTopRow(); + oledShowMessage("Bambu Connected"); + bambu_connected = true; + oledShowTopRow(); - xTaskCreatePinnedToCore( + xTaskCreatePinnedToCore( mqtt_loop, /* Function to implement the task */ "BambuMqtt", /* Name of the task */ 16384, /* Stack size in words */ @@ -751,18 +750,18 @@ bool setupMqtt() { mqttTaskPrio, /* Priority of the task */ &BambuMqttTask, /* Task handle. */ mqttTaskCore); /* Core where the task should run */ - } - else - { - Serial.println("Fehler: Konnte sich nicht beim MQTT-Server anmelden"); - oledShowMessage("Bambu Connection Failed"); - vTaskDelay(2000 / portTICK_PERIOD_MS); - connected = false; - oledShowTopRow(); - } + } + else + { + Serial.println("Fehler: Konnte sich nicht beim MQTT-Server anmelden"); + oledShowMessage("Bambu Connection Failed"); + vTaskDelay(2000 / portTICK_PERIOD_MS); + connected = false; + oledShowTopRow(); + } if (!connected) return false; - } + } else { Serial.println("Fehler: Keine MQTT-Daten vorhanden");