Compare commits

..

4 Commits

4 changed files with 73 additions and 51 deletions
+2
View File
@@ -129,6 +129,7 @@
if (data.status === 'success' || lastReceivedProgress >= 98) { if (data.status === 'success' || lastReceivedProgress >= 98) {
clearTimeout(wsReconnectTimer); clearTimeout(wsReconnectTimer);
setTimeout(() => { setTimeout(() => {
window.location.reload(true);
window.location.href = '/'; window.location.href = '/';
}, 30000); }, 30000);
} }
@@ -164,6 +165,7 @@
status.className = 'status success'; status.className = 'status success';
status.style.display = 'block'; status.style.display = 'block';
setTimeout(() => { setTimeout(() => {
window.location.reload(true);
window.location.href = '/'; window.location.href = '/';
}, 30000); }, 30000);
} }
+11 -5
View File
@@ -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,7 +571,8 @@ 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);
@@ -619,7 +623,8 @@ 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);
@@ -649,7 +654,8 @@ bool setupMqtt() {
oledShowTopRow(); oledShowTopRow();
} }
if (!connected) return false; if (!connected)
return false;
} }
else else
{ {
+4
View File
@@ -98,6 +98,10 @@ void loop() {
// Wenn Bambu auto set Spool aktiv // Wenn Bambu auto set Spool aktiv
if (autoSendToBambu && autoSetToBambuSpoolId > 0) { if (autoSendToBambu && autoSetToBambuSpoolId > 0) {
if (!bambu_connected)
{
bambu_restart();
}
if (intervalElapsed(currentMillis, lastAutoSetBambuAmsTime, autoSetBambuAmsInterval)) if (intervalElapsed(currentMillis, lastAutoSetBambuAmsTime, autoSetBambuAmsInterval))
{ {
if (hasReadRfidTag == 0) if (hasReadRfidTag == 0)
+11 -1
View File
@@ -286,6 +286,16 @@ void setupWebserver(AsyncWebServer &server) {
} }
String url = request->getParam("url")->value(); String url = request->getParam("url")->value();
if (url.indexOf("http://") == -1 && url.indexOf("https://") == -1)
{
url = "http://" + url;
}
// Remove trailing slash if exists
if (url.length() > 0 && url.charAt(url.length() - 1) == '/')
{
url = url.substring(0, url.length() - 1);
}
bool octoEnabled = (request->getParam("octoEnabled")->value() == "true") ? true : false; bool octoEnabled = (request->getParam("octoEnabled")->value() == "true") ? true : false;
String octoUrl = request->getParam("octoUrl")->value(); String octoUrl = request->getParam("octoUrl")->value();
String octoToken = (request->getParam("octoToken")->value() != "") ? request->getParam("octoToken")->value() : ""; String octoToken = (request->getParam("octoToken")->value() != "") ? request->getParam("octoToken")->value() : "";
@@ -300,7 +310,7 @@ void setupWebserver(AsyncWebServer &server) {
request->send(200, "application/json", jsonResponse); request->send(200, "application/json", jsonResponse);
}); });
// Route für das Überprüfen der Spoolman-Instanz // Route für das Überprüfen der Bambu-Instanz
server.on("/api/bambu", HTTP_GET, [](AsyncWebServerRequest *request){ server.on("/api/bambu", HTTP_GET, [](AsyncWebServerRequest *request){
if (!request->hasParam("bambu_ip") || !request->hasParam("bambu_serialnr") || !request->hasParam("bambu_accesscode")) { if (!request->hasParam("bambu_ip") || !request->hasParam("bambu_serialnr") || !request->hasParam("bambu_accesscode")) {
request->send(400, "application/json", "{\"success\": false, \"error\": \"Missing parameter\"}"); request->send(400, "application/json", "{\"success\": false, \"error\": \"Missing parameter\"}");