diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..89cc49c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+.pio
+.vscode/.browse.c_cpp.db*
+.vscode/c_cpp_properties.json
+.vscode/launch.json
+.vscode/ipch
diff --git a/html/spoolman.html b/html/spoolman.html
index 912948d..49abe55 100644
--- a/html/spoolman.html
+++ b/html/spoolman.html
@@ -146,20 +146,20 @@
-
Set URL/IP to your Spoolman-Instanz
-
-
If you want to enable sending Spool to Spoolman Octoprint Plugin:
+
Set URL/IP to your Spoolman instance
+
+
If you want to enable sending the spool to the Spoolman Octoprint plugin:
Send to Octo-Plugin
-
+
@@ -169,16 +169,16 @@
Bambu Lab Printer Credentials
-
+
-
+
-
+
If activated, FilaMan will automatically update the next filled tray with the last scanned and weighed spool.
diff --git a/src/api.cpp b/src/api.cpp
index a100239..12a96d8 100644
--- a/src/api.cpp
+++ b/src/api.cpp
@@ -2,6 +2,7 @@
#include
#include
#include "commonFS.h"
+#include
volatile spoolmanApiStateType spoolmanApiState = API_INIT;
//bool spoolman_connected = false;
@@ -565,42 +566,36 @@ bool checkSpoolmanInstance(const String& url) {
return false;
}
-bool saveSpoolmanUrl(const String& url, bool octoOn, const String& octoWh, const String& octoTk) {
- if (!checkSpoolmanInstance(url)) return false;
+bool saveSpoolmanUrl(const String& url, bool octoOn, const String& octo_url, const String& octoTk) {
+ Preferences preferences;
+ preferences.begin(NVS_NAMESPACE_API, false); // false = readwrite
+ preferences.putString(NVS_KEY_SPOOLMAN_URL, url);
+ preferences.putBool(NVS_KEY_OCTOPRINT_ENABLED, octoOn);
+ preferences.putString(NVS_KEY_OCTOPRINT_URL, octo_url);
+ preferences.putString(NVS_KEY_OCTOPRINT_TOKEN, octoTk);
+ preferences.end();
- JsonDocument doc;
- doc["url"] = url;
- doc["octoEnabled"] = octoOn;
- doc["octoUrl"] = octoWh;
- doc["octoToken"] = octoTk;
- Serial.print("Speichere Spoolman Data in Datei: ");
- Serial.println(doc.as());
- if (!saveJsonValue("/spoolman_url.json", doc)) {
- Serial.println("Fehler beim Speichern der Spoolman-URL.");
- return false;
- }
+ //TBD: This could be handled nicer in the future
spoolmanUrl = url;
octoEnabled = octoOn;
- octoUrl = octoWh;
+ octoUrl = octo_url;
octoToken = octoTk;
return true;
}
String loadSpoolmanUrl() {
- JsonDocument doc;
- if (loadJsonValue("/spoolman_url.json", doc) && doc["url"].is()) {
- octoEnabled = (doc["octoEnabled"].is()) ? doc["octoEnabled"].as() : false;
- if (octoEnabled && doc["octoToken"].is() && doc["octoUrl"].is())
- {
- octoUrl = doc["octoUrl"].as();
- octoToken = doc["octoToken"].as();
- }
-
- return doc["url"].as();
+ Preferences preferences;
+ preferences.begin(NVS_NAMESPACE_API, true);
+ String spoolmanUrl = preferences.getString(NVS_KEY_SPOOLMAN_URL, "");
+ octoEnabled = preferences.getBool(NVS_KEY_OCTOPRINT_ENABLED, false);
+ if(octoEnabled)
+ {
+ octoUrl = preferences.getString(NVS_KEY_OCTOPRINT_URL, "");
+ octoToken = preferences.getString(NVS_KEY_OCTOPRINT_TOKEN, "");
}
- Serial.println("Keine gültige Spoolman-URL gefunden.");
- return "";
+ preferences.end();
+ return spoolmanUrl;
}
bool initSpoolman() {
diff --git a/src/bambu.cpp b/src/bambu.cpp
index 0225dae..c738ec8 100644
--- a/src/bambu.cpp
+++ b/src/bambu.cpp
@@ -10,6 +10,7 @@
#include "esp_task_wdt.h"
#include "config.h"
#include "display.h"
+#include
WiFiClient espClient;
SSLClient sslClient(&espClient);
@@ -17,22 +18,13 @@ PubSubClient client(sslClient);
TaskHandle_t BambuMqttTask;
-String topic = "";
-//String request_topic = "";
-const char* bambu_username = "bblp";
-const char* bambu_ip = nullptr;
-const char* bambu_accesscode = nullptr;
-const char* bambu_serialnr = nullptr;
-
-String g_bambu_ip = "";
-String g_bambu_accesscode = "";
-String g_bambu_serialnr = "";
bool bambuDisabled = false;
bool bambu_connected = false;
-bool autoSendToBambu = false;
int autoSetToBambuSpoolId = 0;
+BambuCredentials bambuCredentials;
+
// Globale Variablen für AMS-Daten
int ams_count = 0;
String amsJsonData; // Speichert das fertige JSON für WebSocket-Clients
@@ -43,18 +35,22 @@ bool removeBambuCredentials() {
vTaskDelete(BambuMqttTask);
}
- if (!removeJsonValue("/bambu_credentials.json")) {
- Serial.println("Fehler beim Löschen der Bambu-Credentials.");
- return false;
- }
+ Preferences preferences;
+ preferences.begin(NVS_NAMESPACE_BAMBU, false); // false = readwrite
+ preferences.remove(NVS_KEY_BAMBU_IP);
+ preferences.remove(NVS_KEY_BAMBU_SERIAL);
+ preferences.remove(NVS_KEY_BAMBU_ACCESSCODE);
+ preferences.remove(NVS_KEY_BAMBU_AUTOSEND_ENABLE);
+ preferences.remove(NVS_KEY_BAMBU_AUTOSEND_TIME);
+ preferences.end();
+
// Löschen der globalen Variablen
- g_bambu_ip = "";
- g_bambu_accesscode = "";
- g_bambu_serialnr = "";
- bambu_ip = nullptr;
- bambu_accesscode = nullptr;
- bambu_serialnr = nullptr;
- autoSendToBambu = false;
+ bambuCredentials.ip = "";
+ bambuCredentials.serial = "";
+ bambuCredentials.accesscode = "";
+ bambuCredentials.autosend_enable = false;
+ bambuCredentials.autosend_time = BAMBU_DEFAULT_AUTOSEND_TIME;
+
autoSetToBambuSpoolId = 0;
ams_count = 0;
amsJsonData = "";
@@ -68,25 +64,21 @@ bool saveBambuCredentials(const String& ip, const String& serialnr, const String
if (BambuMqttTask) {
vTaskDelete(BambuMqttTask);
}
-
- JsonDocument doc;
- doc["bambu_ip"] = ip;
- doc["bambu_accesscode"] = accesscode;
- doc["bambu_serialnr"] = serialnr;
- doc["autoSendToBambu"] = autoSend;
- doc["autoSendTime"] = (autoSendTime != "") ? autoSendTime.toInt() : autoSetBambuAmsCounter;
- if (!saveJsonValue("/bambu_credentials.json", doc)) {
- Serial.println("Fehler beim Speichern der Bambu-Credentials.");
- return false;
- }
+ bambuCredentials.ip = ip.c_str();
+ bambuCredentials.serial = serialnr.c_str();
+ bambuCredentials.accesscode = accesscode.c_str();
+ bambuCredentials.autosend_enable = autoSend;
+ bambuCredentials.autosend_time = autoSendTime.toInt();
- // Dynamische Speicherallokation für die globalen Pointer
- bambu_ip = ip.c_str();
- bambu_accesscode = accesscode.c_str();
- bambu_serialnr = serialnr.c_str();
- autoSendToBambu = autoSend;
- autoSetBambuAmsCounter = autoSendTime.toInt();
+ Preferences preferences;
+ preferences.begin(NVS_NAMESPACE_BAMBU, false); // false = readwrite
+ preferences.putString(NVS_KEY_BAMBU_IP, bambuCredentials.ip);
+ preferences.putString(NVS_KEY_BAMBU_SERIAL, bambuCredentials.serial);
+ preferences.putString(NVS_KEY_BAMBU_ACCESSCODE, bambuCredentials.accesscode);
+ preferences.putBool(NVS_KEY_BAMBU_AUTOSEND_ENABLE, bambuCredentials.autosend_enable);
+ preferences.putInt(NVS_KEY_BAMBU_AUTOSEND_TIME, bambuCredentials.autosend_time);
+ preferences.end();
vTaskDelay(100 / portTICK_PERIOD_MS);
if (!setupMqtt()) return false;
@@ -95,35 +87,36 @@ bool saveBambuCredentials(const String& ip, const String& serialnr, const String
}
bool loadBambuCredentials() {
- JsonDocument doc;
- if (loadJsonValue("/bambu_credentials.json", doc) && doc["bambu_ip"].is()) {
- // Temporäre Strings für die Werte
- String ip = doc["bambu_ip"].as();
- String code = doc["bambu_accesscode"].as();
- String serial = doc["bambu_serialnr"].as();
+ Preferences preferences;
+ preferences.begin(NVS_NAMESPACE_BAMBU, true);
+ String ip = preferences.getString(NVS_KEY_BAMBU_IP, "");
+ String serial = preferences.getString(NVS_KEY_BAMBU_SERIAL, "");
+ String code = preferences.getString(NVS_KEY_BAMBU_ACCESSCODE, "");
+ bool autosendEnable = preferences.getBool(NVS_KEY_BAMBU_AUTOSEND_ENABLE, false);
+ int autosendTime = preferences.getInt(NVS_KEY_BAMBU_AUTOSEND_TIME, BAMBU_DEFAULT_AUTOSEND_TIME);
+ preferences.end();
- g_bambu_ip = ip;
- g_bambu_accesscode = code;
- g_bambu_serialnr = serial;
+ if(ip != ""){
+ bambuCredentials.ip = ip.c_str();
+ bambuCredentials.serial = serial.c_str();
+ bambuCredentials.accesscode = code.c_str();
+ bambuCredentials.autosend_enable = autosendEnable;
+ bambuCredentials.autosend_time = autosendTime;
- if (doc["autoSendToBambu"].is()) autoSendToBambu = doc["autoSendToBambu"].as();
- if (doc["autoSendTime"].is()) autoSetBambuAmsCounter = doc["autoSendTime"].as();
+ Serial.println("credentials loaded loadCredentials!");
+ Serial.println(bambuCredentials.ip);
+ Serial.println(bambuCredentials.serial);
+ Serial.println(bambuCredentials.accesscode);
+ Serial.println(String(bambuCredentials.autosend_enable));
+ Serial.println(String(bambuCredentials.autosend_time));
- ip.trim();
- code.trim();
- serial.trim();
-
- // Dynamische Speicherallokation für die globalen Pointer
- bambu_ip = g_bambu_ip.c_str();
- bambu_accesscode = g_bambu_accesscode.c_str();
- bambu_serialnr = g_bambu_serialnr.c_str();
-
- topic = "device/" + String(bambu_serialnr);
- //request_topic = "device/" + String(bambu_serialnr) + "/request";
return true;
}
- Serial.println("Keine gültigen Bambu-Credentials gefunden.");
- return false;
+ else
+ {
+ Serial.println("Keine gültigen Bambu-Credentials gefunden.");
+ return false;
+ }
}
struct FilamentResult {
@@ -226,7 +219,7 @@ FilamentResult findFilamentIdx(String brand, String type) {
bool sendMqttMessage(const String& payload) {
Serial.println("Sending MQTT message");
Serial.println(payload);
- if (client.publish((String(topic) + "/request").c_str(), payload.c_str()))
+ if (client.publish(("device/"+bambuCredentials.serial+"/request").c_str(), payload.c_str()))
{
return true;
}
@@ -499,7 +492,7 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) {
trayObj["cali_idx"].as() != ams_data[storedIndex].trays[j].cali_idx) {
hasChanges = true;
- if (autoSendToBambu && autoSetToBambuSpoolId > 0 && hasChanges)
+ if (bambuCredentials.autosend_enable && autoSetToBambuSpoolId > 0 && hasChanges)
{
autoSetSpool(autoSetToBambuSpoolId, ams_data[storedIndex].trays[j].id);
}
@@ -523,7 +516,7 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) {
(vtTray["tray_type"].as() != "" && vtTray["cali_idx"].as() != ams_data[i].trays[0].cali_idx)) {
hasChanges = true;
- if (autoSendToBambu && autoSetToBambuSpoolId > 0 && hasChanges)
+ if (bambuCredentials.autosend_enable && autoSetToBambuSpoolId > 0 && hasChanges)
{
autoSetSpool(autoSetToBambuSpoolId, 254);
}
@@ -580,11 +573,11 @@ void reconnect() {
oledShowTopRow();
// Attempt to connect
- String clientId = String(bambu_serialnr) + "_" + String(random(0, 100));
- if (client.connect(clientId.c_str(), bambu_username, bambu_accesscode)) {
+ String clientId = bambuCredentials.serial + "_" + String(random(0, 100));
+ if (client.connect(clientId.c_str(), BAMBU_USERNAME, bambuCredentials.accesscode.c_str())) {
Serial.println("MQTT re/connected");
- client.subscribe((String(topic) + "/report").c_str());
+ client.subscribe(("device/"+bambuCredentials.serial+"/report").c_str());
bambu_connected = true;
oledShowTopRow();
} else {
@@ -630,28 +623,23 @@ void mqtt_loop(void * parameter) {
bool setupMqtt() {
// Wenn Bambu Daten vorhanden
- bool success = loadBambuCredentials();
+ //bool success = loadBambuCredentials();
- if (!success) {
- bambuDisabled = true;
- return false;
- }
-
- if (success && bambu_ip != "" && bambu_accesscode != "" && bambu_serialnr != "")
+ if (bambuCredentials.ip != "" && bambuCredentials.accesscode != "" && bambuCredentials.serial != "")
{
bambuDisabled = false;
sslClient.setCACert(root_ca);
sslClient.setInsecure();
- client.setServer(bambu_ip, 8883);
+ client.setServer(bambuCredentials.ip.c_str(), 8883);
// Verbinden mit dem MQTT-Server
bool connected = true;
- String clientId = String(bambu_serialnr) + "_" + String(random(0, 100));
- if (client.connect(clientId.c_str(), bambu_username, bambu_accesscode))
+ String clientId = String(bambuCredentials.serial) + "_" + String(random(0, 100));
+ if (client.connect(bambuCredentials.ip.c_str(), BAMBU_USERNAME, bambuCredentials.accesscode.c_str()))
{
client.setCallback(mqtt_callback);
client.setBufferSize(15488);
- client.subscribe((String(topic) + "/report").c_str());
+ client.subscribe(("device/"+bambuCredentials.serial+"/report").c_str());
Serial.println("MQTT-Client initialisiert");
oledShowMessage("Bambu Connected");
diff --git a/src/bambu.h b/src/bambu.h
index aef6c3b..bf8836e 100644
--- a/src/bambu.h
+++ b/src/bambu.h
@@ -16,6 +16,14 @@ struct TrayData {
String cali_idx;
};
+struct BambuCredentials {
+ String ip;
+ String serial;
+ String accesscode;
+ bool autosend_enable;
+ int autosend_time;
+};
+
#define MAX_AMS 17 // 16 normale AMS + 1 externe Spule
extern String amsJsonData; // Für die vorbereiteten JSON-Daten
@@ -28,9 +36,10 @@ extern bool bambu_connected;
extern int ams_count;
extern AMSData ams_data[MAX_AMS];
-extern bool autoSendToBambu;
+//extern bool autoSendToBambu;
extern int autoSetToBambuSpoolId;
extern bool bambuDisabled;
+extern BambuCredentials bambuCredentials;
bool removeBambuCredentials();
bool loadBambuCredentials();
diff --git a/src/config.cpp b/src/config.cpp
index dd601c6..644177e 100644
--- a/src/config.cpp
+++ b/src/config.cpp
@@ -46,8 +46,6 @@ const uint8_t webserverPort = 80;
const char* apiUrl = "/api/v1";
// ***** API
-// ***** Bambu Auto Set Spool
-uint8_t autoSetBambuAmsCounter = 60;
// ***** Bambu Auto Set Spool
// ***** Task Prios
diff --git a/src/config.h b/src/config.h
index dd6cb20..ecccd51 100644
--- a/src/config.h
+++ b/src/config.h
@@ -3,6 +3,29 @@
#include
+#define BAMBU_DEFAULT_AUTOSEND_TIME 60
+
+
+#define NVS_NAMESPACE_API "api"
+#define NVS_KEY_SPOOLMAN_URL "spoolmanUrl"
+#define NVS_KEY_OCTOPRINT_ENABLED "octoEnabled"
+#define NVS_KEY_OCTOPRINT_URL "octoUrl"
+#define NVS_KEY_OCTOPRINT_TOKEN "octoToken"
+
+#define NVS_NAMESPACE_BAMBU "bambu"
+#define NVS_KEY_BAMBU_IP "bambuIp"
+#define NVS_KEY_BAMBU_ACCESSCODE "bambuCode"
+#define NVS_KEY_BAMBU_SERIAL "bambuSerial"
+#define NVS_KEY_BAMBU_AUTOSEND_ENABLE "autosendEnable"
+#define NVS_KEY_BAMBU_AUTOSEND_TIME "autosendTime"
+
+#define NVS_NAMESPACE_SCALE "scale"
+#define NVS_KEY_CALIBRATION "cal_value"
+#define NVS_KEY_AUTOTARE "auto_tare"
+
+#define BAMBU_USERNAME "bblp"
+
+
extern const uint8_t PN532_IRQ;
extern const uint8_t PN532_RESET;
@@ -25,7 +48,7 @@ extern const uint8_t OLED_DATA_END;
extern const char* apiUrl;
extern const uint8_t webserverPort;
-extern uint8_t autoSetBambuAmsCounter;
+
extern const unsigned char wifi_on[];
extern const unsigned char wifi_off[];
diff --git a/src/main.cpp b/src/main.cpp
index 01763d4..76de6f4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -119,7 +119,7 @@ void loop() {
}
// Wenn Bambu auto set Spool aktiv
- if (autoSendToBambu && autoSetToBambuSpoolId > 0)
+ if (bambuCredentials.autosend_enable && autoSetToBambuSpoolId > 0)
{
if (!bambuDisabled && !bambu_connected)
{
@@ -131,10 +131,10 @@ void loop() {
if (nfcReaderState == NFC_IDLE)
{
lastAutoSetBambuAmsTime = currentMillis;
- oledShowMessage("Auto Set " + String(autoSetBambuAmsCounter - autoAmsCounter) + "s");
+ oledShowMessage("Auto Set " + String(bambuCredentials.autosend_time - autoAmsCounter) + "s");
autoAmsCounter++;
- if (autoAmsCounter >= autoSetBambuAmsCounter)
+ if (autoAmsCounter >= bambuCredentials.autosend_time)
{
autoSetToBambuSpoolId = 0;
autoAmsCounter = 0;
@@ -162,7 +162,7 @@ void loop() {
// Ausgabe der Waage auf Display
if(pauseMainTask == 0)
{
- if (mainTaskWasPaused || (weight != lastWeight && nfcReaderState == NFC_IDLE && (!autoSendToBambu || autoSetToBambuSpoolId == 0)))
+ if (mainTaskWasPaused || (weight != lastWeight && nfcReaderState == NFC_IDLE && (!bambuCredentials.autosend_enable || autoSetToBambuSpoolId == 0)))
{
(weight < 2) ? ((weight < -2) ? oledShowMessage("!! -0") : oledShowWeight(0)) : oledShowWeight(weight);
}
diff --git a/src/nfc.cpp b/src/nfc.cpp
index ea10267..83bfe7c 100644
--- a/src/nfc.cpp
+++ b/src/nfc.cpp
@@ -7,6 +7,7 @@
#include "api.h"
#include "esp_task_wdt.h"
#include "scale.h"
+#include "bambu.h"
//Adafruit_PN532 nfc(PN532_SCK, PN532_MISO, PN532_MOSI, PN532_SS);
Adafruit_PN532 nfc(PN532_IRQ, PN532_RESET);
@@ -447,7 +448,7 @@ void scanRfidTask(void * parameter) {
//uidString = "";
nfcJsonData = "";
Serial.println("Tag entfernt");
- if (!autoSendToBambu) oledShowWeight(weight);
+ if (!bambuCredentials.autosend_enable) oledShowWeight(weight);
}
// aktualisieren der Website wenn sich der Status ändert
diff --git a/src/scale.cpp b/src/scale.cpp
index 83edeeb..8172d9f 100644
--- a/src/scale.cpp
+++ b/src/scale.cpp
@@ -18,11 +18,6 @@ uint8_t scale_tare_counter = 0;
bool scaleTareRequest = false;
uint8_t pauseMainTask = 0;
uint8_t scaleCalibrated = 1;
-
-Preferences preferences;
-const char* NVS_NAMESPACE = "scale";
-const char* NVS_KEY_CALIBRATION = "cal_value";
-const char* NVS_KEY_AUTOTARE = "auto_tare";
bool autoTare = true;
// ##### Funktionen für Waage #####
@@ -32,7 +27,8 @@ uint8_t setAutoTare(bool autoTareValue) {
autoTare = autoTareValue;
// Speichern mit NVS
- preferences.begin(NVS_NAMESPACE, false); // false = readwrite
+ Preferences preferences;
+ preferences.begin(NVS_NAMESPACE_SCALE, false); // false = readwrite
preferences.putBool(NVS_KEY_AUTOTARE, autoTare);
preferences.end();
@@ -90,7 +86,8 @@ void start_scale(bool touchSensorConnected) {
float calibrationValue;
// NVS lesen
- preferences.begin(NVS_NAMESPACE, true); // true = readonly
+ Preferences preferences;
+ preferences.begin(NVS_NAMESPACE_SCALE, true); // true = readonly
calibrationValue = preferences.getFloat(NVS_KEY_CALIBRATION, defaultScaleCalibrationValue);
// auto Tare
@@ -197,12 +194,13 @@ uint8_t calibrate_scale() {
Serial.println(newCalibrationValue);
// Speichern mit NVS
- preferences.begin(NVS_NAMESPACE, false); // false = readwrite
+ Preferences preferences;
+ preferences.begin(NVS_NAMESPACE_SCALE, false); // false = readwrite
preferences.putFloat(NVS_KEY_CALIBRATION, newCalibrationValue);
preferences.end();
// Verifizieren
- preferences.begin(NVS_NAMESPACE, true);
+ preferences.begin(NVS_NAMESPACE_SCALE, true);
float verifyValue = preferences.getFloat(NVS_KEY_CALIBRATION, 0);
preferences.end();
diff --git a/src/website.cpp b/src/website.cpp
index 0ff02db..d554235 100644
--- a/src/website.cpp
+++ b/src/website.cpp
@@ -10,6 +10,7 @@
#include
#include "display.h"
#include "ota.h"
+#include "config.h"
#ifndef VERSION
#define VERSION "1.1.0"
@@ -195,6 +196,9 @@ void setupWebserver(AsyncWebServer &server) {
Serial.print("Geladene Spoolman-URL: ");
Serial.println(spoolmanUrl);
+ // Load Bamb credentials:
+ loadBambuCredentials();
+
// Route für about
server.on("/about", HTTP_GET, [](AsyncWebServerRequest *request){
Serial.println("Anfrage für /about erhalten");
@@ -254,31 +258,11 @@ void setupWebserver(AsyncWebServer &server) {
html.replace("{{spoolmanOctoUrl}}", (octoUrl != "") ? octoUrl : "");
html.replace("{{spoolmanOctoToken}}", (octoToken != "") ? octoToken : "");
- JsonDocument doc;
- if (loadJsonValue("/bambu_credentials.json", doc) && doc["bambu_ip"].is())
- {
- String bambuIp = doc["bambu_ip"].as();
- String bambuSerial = doc["bambu_serialnr"].as();
- String bambuCode = doc["bambu_accesscode"].as();
- autoSendToBambu = doc["autoSendToBambu"].as();
- bambuIp.trim();
- bambuSerial.trim();
- bambuCode.trim();
-
- html.replace("{{bambuIp}}", bambuIp ? bambuIp : "");
- html.replace("{{bambuSerial}}", bambuSerial ? bambuSerial : "");
- html.replace("{{bambuCode}}", bambuCode ? bambuCode : "");
- html.replace("{{autoSendToBambu}}", autoSendToBambu ? "checked" : "");
- html.replace("{{autoSendTime}}", String(autoSetBambuAmsCounter));
- }
- else
- {
- html.replace("{{bambuIp}}", "");
- html.replace("{{bambuSerial}}", "");
- html.replace("{{bambuCode}}", "");
- html.replace("{{autoSendToBambu}}", "");
- html.replace("{{autoSendTime}}", String(autoSetBambuAmsCounter));
- }
+ html.replace("{{bambuIp}}", bambuCredentials.ip);
+ html.replace("{{bambuSerial}}", bambuCredentials.serial);
+ html.replace("{{bambuCode}}", bambuCredentials.accesscode ? bambuCredentials.accesscode : "");
+ html.replace("{{autoSendToBambu}}", bambuCredentials.autosend_enable ? "checked" : "");
+ html.replace("{{autoSendTime}}", (bambuCredentials.autosend_time != 0) ? String(bambuCredentials.autosend_time) : String(BAMBU_DEFAULT_AUTOSEND_TIME));
request->send(200, "text/html", html);
});