Compare commits
	
		
			8 Commits
		
	
	
		
			v1.3.97
			...
			492bf6cdb8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 492bf6cdb8 | |||
| b0317f4001 | |||
| 58ff6458b0 | |||
| d9c40f5124 | |||
| 68bc31e29a | |||
| 9b23ac5fd2 | |||
| d31bff14c3 | |||
| 150f92484a | 
							
								
								
									
										10
									
								
								.github/workflows/gitea-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/gitea-release.yml
									
									
									
									
										vendored
									
									
								
							@@ -41,16 +41,16 @@ jobs:
 | 
			
		||||
      run: |
 | 
			
		||||
        VERSION=$(grep '^version = ' platformio.ini | cut -d'"' -f2)
 | 
			
		||||
        
 | 
			
		||||
        # Build firmware and SPIFFS
 | 
			
		||||
        echo "Building firmware and SPIFFS..."
 | 
			
		||||
        # Build firmware and LittleFS
 | 
			
		||||
        echo "Building firmware and LittleFS..."
 | 
			
		||||
        pio run -e esp32dev
 | 
			
		||||
        pio run -t buildfs
 | 
			
		||||
        
 | 
			
		||||
        # Copy firmware binary
 | 
			
		||||
        cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/upgrade_filaman_firmware_v${VERSION}.bin
 | 
			
		||||
        
 | 
			
		||||
        # Create SPIFFS binary - direct copy without header
 | 
			
		||||
        cp .pio/build/esp32dev/spiffs.bin .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
 | 
			
		||||
        # Create LittleFS binary - direct copy without header
 | 
			
		||||
        cp .pio/build/esp32dev/littlefs.bin .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
 | 
			
		||||
        
 | 
			
		||||
        # Create full binary
 | 
			
		||||
        (cd .pio/build/esp32dev && 
 | 
			
		||||
@@ -63,7 +63,7 @@ jobs:
 | 
			
		||||
          0x1000 bootloader.bin \
 | 
			
		||||
          0x8000 partitions.bin \
 | 
			
		||||
          0x10000 firmware.bin \
 | 
			
		||||
          0x3D0000 spiffs.bin)
 | 
			
		||||
          0x3D0000 littlefs.bin)
 | 
			
		||||
        
 | 
			
		||||
        # Verify file sizes
 | 
			
		||||
        echo "File sizes:"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/github-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/github-release.yml
									
									
									
									
										vendored
									
									
								
							@@ -39,16 +39,16 @@ jobs:
 | 
			
		||||
      run: |
 | 
			
		||||
        VERSION=$(grep '^version = ' platformio.ini | cut -d'"' -f2)
 | 
			
		||||
        
 | 
			
		||||
        # Always build firmware and SPIFFS
 | 
			
		||||
        echo "Building firmware and SPIFFS..."
 | 
			
		||||
        # Always build firmware and LittleFS
 | 
			
		||||
        echo "Building firmware and LittleFS..."
 | 
			
		||||
        pio run -e esp32dev
 | 
			
		||||
        pio run -t buildfs
 | 
			
		||||
        
 | 
			
		||||
        # Copy firmware binary
 | 
			
		||||
        cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/upgrade_filaman_firmware_v${VERSION}.bin
 | 
			
		||||
        
 | 
			
		||||
        # Create SPIFFS binary - direct copy without header
 | 
			
		||||
        cp .pio/build/esp32dev/spiffs.bin .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
 | 
			
		||||
        # Create LittleFS binary - direct copy without header
 | 
			
		||||
        cp .pio/build/esp32dev/littlefs.bin .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
 | 
			
		||||
        
 | 
			
		||||
        # Create full binary (always)
 | 
			
		||||
        (cd .pio/build/esp32dev && 
 | 
			
		||||
@@ -61,7 +61,7 @@ jobs:
 | 
			
		||||
          0x1000 bootloader.bin \
 | 
			
		||||
          0x8000 partitions.bin \
 | 
			
		||||
          0x10000 firmware.bin \
 | 
			
		||||
          0x3D0000 spiffs.bin)
 | 
			
		||||
          0x3D0000 littlefs.bin)
 | 
			
		||||
        
 | 
			
		||||
        # Verify file sizes
 | 
			
		||||
        echo "File sizes:"
 | 
			
		||||
@@ -131,7 +131,7 @@ jobs:
 | 
			
		||||
          FILES_TO_UPLOAD="$FILES_TO_UPLOAD upgrade_filaman_firmware_v${VERSION}.bin"
 | 
			
		||||
        fi
 | 
			
		||||
        
 | 
			
		||||
        # Add SPIFFS and full binary only if they exist
 | 
			
		||||
        # Add LittleFS and full binary only if they exist
 | 
			
		||||
        if [ -f "upgrade_filaman_website_v${VERSION}.bin" ]; then
 | 
			
		||||
          FILES_TO_UPLOAD="$FILES_TO_UPLOAD upgrade_filaman_website_v${VERSION}.bin"
 | 
			
		||||
        fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										54
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										54
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							@@ -1,54 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
    "files.associations": {
 | 
			
		||||
        "algorithm": "cpp",
 | 
			
		||||
        "vector": "cpp",
 | 
			
		||||
        "cmath": "cpp",
 | 
			
		||||
        "array": "cpp",
 | 
			
		||||
        "atomic": "cpp",
 | 
			
		||||
        "*.tcc": "cpp",
 | 
			
		||||
        "bitset": "cpp",
 | 
			
		||||
        "cctype": "cpp",
 | 
			
		||||
        "clocale": "cpp",
 | 
			
		||||
        "cstdarg": "cpp",
 | 
			
		||||
        "cstddef": "cpp",
 | 
			
		||||
        "cstdint": "cpp",
 | 
			
		||||
        "cstdio": "cpp",
 | 
			
		||||
        "cstdlib": "cpp",
 | 
			
		||||
        "cstring": "cpp",
 | 
			
		||||
        "ctime": "cpp",
 | 
			
		||||
        "cwchar": "cpp",
 | 
			
		||||
        "cwctype": "cpp",
 | 
			
		||||
        "deque": "cpp",
 | 
			
		||||
        "unordered_map": "cpp",
 | 
			
		||||
        "unordered_set": "cpp",
 | 
			
		||||
        "exception": "cpp",
 | 
			
		||||
        "functional": "cpp",
 | 
			
		||||
        "iterator": "cpp",
 | 
			
		||||
        "map": "cpp",
 | 
			
		||||
        "memory": "cpp",
 | 
			
		||||
        "memory_resource": "cpp",
 | 
			
		||||
        "numeric": "cpp",
 | 
			
		||||
        "optional": "cpp",
 | 
			
		||||
        "random": "cpp",
 | 
			
		||||
        "regex": "cpp",
 | 
			
		||||
        "string": "cpp",
 | 
			
		||||
        "string_view": "cpp",
 | 
			
		||||
        "system_error": "cpp",
 | 
			
		||||
        "tuple": "cpp",
 | 
			
		||||
        "type_traits": "cpp",
 | 
			
		||||
        "utility": "cpp",
 | 
			
		||||
        "fstream": "cpp",
 | 
			
		||||
        "initializer_list": "cpp",
 | 
			
		||||
        "iomanip": "cpp",
 | 
			
		||||
        "iosfwd": "cpp",
 | 
			
		||||
        "istream": "cpp",
 | 
			
		||||
        "limits": "cpp",
 | 
			
		||||
        "new": "cpp",
 | 
			
		||||
        "ostream": "cpp",
 | 
			
		||||
        "sstream": "cpp",
 | 
			
		||||
        "stdexcept": "cpp",
 | 
			
		||||
        "streambuf": "cpp",
 | 
			
		||||
        "cinttypes": "cpp",
 | 
			
		||||
        "typeinfo": "cpp"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -1,5 +1,19 @@
 | 
			
		||||
# Changelog
 | 
			
		||||
 | 
			
		||||
## [1.3.99] - 2025-02-28
 | 
			
		||||
### Changed
 | 
			
		||||
- update platformio.ini for version v1.3.99
 | 
			
		||||
- update workflows to build firmware with LittleFS instead of SPIFFS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [1.3.98] - 2025-02-28
 | 
			
		||||
### Changed
 | 
			
		||||
- update platformio.ini for version v1.3.98
 | 
			
		||||
- migrate from SPIFFS to LittleFS for file handling
 | 
			
		||||
- remove unused VSCode settings file
 | 
			
		||||
- remove commented-out spoolman and filaman data from api.cpp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [1.3.97] - 2025-02-28
 | 
			
		||||
### Added
 | 
			
		||||
- füge Bestätigungsmeldung für Spool-Einstellung hinzu
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
; https://docs.platformio.org/page/projectconf.html
 | 
			
		||||
 | 
			
		||||
[common]
 | 
			
		||||
version = "1.3.97"
 | 
			
		||||
version = "1.3.99"
 | 
			
		||||
##
 | 
			
		||||
[env:esp32dev]
 | 
			
		||||
platform = espressif32
 | 
			
		||||
@@ -33,7 +33,8 @@ lib_deps =
 | 
			
		||||
    digitaldragon/SSLClient @ ^1.3.2
 | 
			
		||||
    
 | 
			
		||||
; Enable SPIFFS upload
 | 
			
		||||
board_build.filesystem = spiffs
 | 
			
		||||
#board_build.filesystem = spiffs
 | 
			
		||||
board_build.filesystem = littlefs
 | 
			
		||||
; Update partition settings
 | 
			
		||||
board_build.partitions = partitions.csv
 | 
			
		||||
board_upload.flash_size = 4MB
 | 
			
		||||
@@ -44,13 +45,13 @@ build_flags =
 | 
			
		||||
    -Os
 | 
			
		||||
    -ffunction-sections
 | 
			
		||||
    -fdata-sections
 | 
			
		||||
    -DNDEBUG
 | 
			
		||||
    #-DNDEBUG
 | 
			
		||||
    -mtext-section-literals
 | 
			
		||||
    -DVERSION=\"${common.version}\"
 | 
			
		||||
    -DASYNCWEBSERVER_REGEX
 | 
			
		||||
    -DCORE_DEBUG_LEVEL=3
 | 
			
		||||
    #-DCORE_DEBUG_LEVEL=3
 | 
			
		||||
    -DCONFIG_ARDUHAL_LOG_COLORS=1
 | 
			
		||||
    -DOTA_DEBUG=1
 | 
			
		||||
    #-DOTA_DEBUG=1
 | 
			
		||||
    -DCONFIG_OPTIMIZATION_LEVEL_DEBUG=1
 | 
			
		||||
    -DBOOT_APP_PARTITION_OTA_0=1
 | 
			
		||||
    -DCONFIG_LWIP_TCP_MSL=60000
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										25
									
								
								src/api.cpp
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								src/api.cpp
									
									
									
									
									
								
							@@ -12,31 +12,6 @@ struct SendToApiParams {
 | 
			
		||||
    String updatePayload;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
    // Spoolman Data
 | 
			
		||||
    {
 | 
			
		||||
        "version":"1.0",
 | 
			
		||||
        "protocol":"openspool",
 | 
			
		||||
        "color_hex":"AF7933",
 | 
			
		||||
        "type":"ABS",
 | 
			
		||||
        "min_temp":175,
 | 
			
		||||
        "max_temp":275,
 | 
			
		||||
        "brand":"Overture"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // FilaMan Data
 | 
			
		||||
    {
 | 
			
		||||
        "version":"1.0",
 | 
			
		||||
        "protocol":"openspool",
 | 
			
		||||
        "color_hex":"AF7933",
 | 
			
		||||
        "type":"ABS",
 | 
			
		||||
        "min_temp":175,
 | 
			
		||||
        "max_temp":275,
 | 
			
		||||
        "brand":"Overture",
 | 
			
		||||
        "sm_id": 
 | 
			
		||||
    }
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
JsonDocument fetchSingleSpoolInfo(int spoolId) {
 | 
			
		||||
    HTTPClient http;
 | 
			
		||||
    String spoolsUrl = spoolmanUrl + apiUrl + "/spool/" + spoolId;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
#include "commonFS.h"
 | 
			
		||||
#include <SPIFFS.h>
 | 
			
		||||
#include <LittleFS.h>
 | 
			
		||||
 | 
			
		||||
bool saveJsonValue(const char* filename, const JsonDocument& doc) {
 | 
			
		||||
    File file = SPIFFS.open(filename, "w");
 | 
			
		||||
    File file = LittleFS.open(filename, "w");
 | 
			
		||||
    if (!file) {
 | 
			
		||||
        Serial.print("Fehler beim Öffnen der Datei zum Schreiben: ");
 | 
			
		||||
        Serial.println(filename);
 | 
			
		||||
@@ -20,7 +20,7 @@ bool saveJsonValue(const char* filename, const JsonDocument& doc) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool loadJsonValue(const char* filename, JsonDocument& doc) {
 | 
			
		||||
    File file = SPIFFS.open(filename, "r");
 | 
			
		||||
    File file = LittleFS.open(filename, "r");
 | 
			
		||||
    if (!file) {
 | 
			
		||||
        Serial.print("Fehler beim Öffnen der Datei zum Lesen: ");
 | 
			
		||||
        Serial.println(filename);
 | 
			
		||||
@@ -36,12 +36,12 @@ bool loadJsonValue(const char* filename, JsonDocument& doc) {
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void initializeSPIFFS() {
 | 
			
		||||
    if (!SPIFFS.begin(true, "/spiffs", 10, "spiffs")) {
 | 
			
		||||
        Serial.println("SPIFFS Mount Failed");
 | 
			
		||||
void initializeFileSystem() {
 | 
			
		||||
    if (!LittleFS.begin(true)) {
 | 
			
		||||
        Serial.println("LittleFS Mount Failed");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    Serial.printf("SPIFFS Total: %u bytes\n", SPIFFS.totalBytes());
 | 
			
		||||
    Serial.printf("SPIFFS Used: %u bytes\n", SPIFFS.usedBytes());
 | 
			
		||||
    Serial.printf("SPIFFS Free: %u bytes\n", SPIFFS.totalBytes() - SPIFFS.usedBytes());
 | 
			
		||||
    Serial.printf("LittleFS Total: %u bytes\n", LittleFS.totalBytes());
 | 
			
		||||
    Serial.printf("LittleFS Used: %u bytes\n", LittleFS.usedBytes());
 | 
			
		||||
    Serial.printf("LittleFS Free: %u bytes\n", LittleFS.totalBytes() - LittleFS.usedBytes());
 | 
			
		||||
}
 | 
			
		||||
@@ -2,11 +2,11 @@
 | 
			
		||||
#define COMMONFS_H
 | 
			
		||||
 | 
			
		||||
#include <Arduino.h>
 | 
			
		||||
#include <SPIFFS.h>
 | 
			
		||||
#include <ArduinoJson.h>
 | 
			
		||||
#include <LittleFS.h>
 | 
			
		||||
 | 
			
		||||
bool saveJsonValue(const char* filename, const JsonDocument& doc);
 | 
			
		||||
bool loadJsonValue(const char* filename, JsonDocument& doc);
 | 
			
		||||
void initializeSPIFFS();
 | 
			
		||||
void initializeFileSystem();
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										61
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								src/main.cpp
									
									
									
									
									
								
							@@ -24,7 +24,7 @@ void setup() {
 | 
			
		||||
  Serial.printf("%08X\n", (uint32_t)chipid); //print Low 4bytes.
 | 
			
		||||
 | 
			
		||||
  // Initialize SPIFFS
 | 
			
		||||
  initializeSPIFFS();
 | 
			
		||||
  initializeFileSystem();
 | 
			
		||||
 | 
			
		||||
  // Start Display
 | 
			
		||||
  setupDisplay();
 | 
			
		||||
@@ -74,6 +74,21 @@ void setup() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Safe interval check that handles millis() overflow
 | 
			
		||||
 * @param currentTime Current millis() value
 | 
			
		||||
 * @param lastTime Last recorded time
 | 
			
		||||
 * @param interval Desired interval in milliseconds
 | 
			
		||||
 * @return True if interval has elapsed
 | 
			
		||||
 */
 | 
			
		||||
bool intervalElapsed(unsigned long currentTime, unsigned long &lastTime, unsigned long interval) {
 | 
			
		||||
  if (currentTime - lastTime >= interval || currentTime < lastTime) {
 | 
			
		||||
    lastTime = currentTime;
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unsigned long lastWeightReadTime = 0;
 | 
			
		||||
const unsigned long weightReadInterval = 1000; // 1 second
 | 
			
		||||
 | 
			
		||||
@@ -81,9 +96,6 @@ unsigned long lastAutoSetBambuAmsTime = 0;
 | 
			
		||||
const unsigned long autoSetBambuAmsInterval = 1000; // 1 second
 | 
			
		||||
uint8_t autoAmsCounter = 0;
 | 
			
		||||
 | 
			
		||||
unsigned long lastAmsSendTime = 0;
 | 
			
		||||
const unsigned long amsSendInterval = 60000; // 1 minute
 | 
			
		||||
 | 
			
		||||
uint8_t weightSend = 0;
 | 
			
		||||
int16_t lastWeight = 0;
 | 
			
		||||
 | 
			
		||||
@@ -95,41 +107,34 @@ void loop() {
 | 
			
		||||
  unsigned long currentMillis = millis();
 | 
			
		||||
 | 
			
		||||
  // Überprüfe regelmäßig die WLAN-Verbindung
 | 
			
		||||
  if (millis() - lastWifiCheckTime > wifiCheckInterval) {
 | 
			
		||||
  if (intervalElapsed(currentMillis, lastWifiCheckTime, wifiCheckInterval)) {
 | 
			
		||||
    checkWiFiConnection();
 | 
			
		||||
    lastWifiCheckTime = millis();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Send AMS Data min every Minute
 | 
			
		||||
  if (currentMillis - lastAmsSendTime >= amsSendInterval) 
 | 
			
		||||
  {
 | 
			
		||||
    lastAmsSendTime = currentMillis;
 | 
			
		||||
    //sendAmsData(nullptr);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Wenn Bambu auto set Spool aktiv
 | 
			
		||||
  if (autoSendToBambu && autoSetToBambuSpoolId > 0 && currentMillis - lastAutoSetBambuAmsTime >= autoSetBambuAmsInterval) 
 | 
			
		||||
  {
 | 
			
		||||
    if (hasReadRfidTag == 0)
 | 
			
		||||
  if (autoSendToBambu && autoSetToBambuSpoolId > 0) {
 | 
			
		||||
    if (intervalElapsed(currentMillis, lastAutoSetBambuAmsTime, autoSetBambuAmsInterval)) 
 | 
			
		||||
    {
 | 
			
		||||
      lastAutoSetBambuAmsTime = currentMillis;
 | 
			
		||||
      oledShowMessage("Auto Set         " + String(autoSetBambuAmsCounter - autoAmsCounter) + "s");
 | 
			
		||||
      autoAmsCounter++;
 | 
			
		||||
 | 
			
		||||
      if (autoAmsCounter >= autoSetBambuAmsCounter) 
 | 
			
		||||
      if (hasReadRfidTag == 0)
 | 
			
		||||
      {
 | 
			
		||||
        lastAutoSetBambuAmsTime = currentMillis;
 | 
			
		||||
        oledShowMessage("Auto Set         " + String(autoSetBambuAmsCounter - autoAmsCounter) + "s");
 | 
			
		||||
        autoAmsCounter++;
 | 
			
		||||
 | 
			
		||||
        if (autoAmsCounter >= autoSetBambuAmsCounter) 
 | 
			
		||||
        {
 | 
			
		||||
          autoSetToBambuSpoolId = 0;
 | 
			
		||||
          autoAmsCounter = 0;
 | 
			
		||||
          oledShowWeight(weight);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
        autoSetToBambuSpoolId = 0;
 | 
			
		||||
        autoAmsCounter = 0;
 | 
			
		||||
        oledShowWeight(weight);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      autoAmsCounter = 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  // Wenn Waage nicht Kalibriert
 | 
			
		||||
  if (scaleCalibrated == 3) 
 | 
			
		||||
  {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/ota.cpp
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/ota.cpp
									
									
									
									
									
								
							@@ -17,8 +17,8 @@ static bool isSpiffsUpdate = false;
 | 
			
		||||
 | 
			
		||||
void backupJsonConfigs() {
 | 
			
		||||
    // Bambu Credentials backup
 | 
			
		||||
    if (SPIFFS.exists("/bambu_credentials.json")) {
 | 
			
		||||
        File file = SPIFFS.open("/bambu_credentials.json", "r");
 | 
			
		||||
    if (LittleFS.exists("/bambu_credentials.json")) {
 | 
			
		||||
        File file = LittleFS.open("/bambu_credentials.json", "r");
 | 
			
		||||
        if (file) {
 | 
			
		||||
            bambuCredentialsBackup = file.readString();
 | 
			
		||||
            file.close();
 | 
			
		||||
@@ -27,8 +27,8 @@ void backupJsonConfigs() {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Spoolman URL backup
 | 
			
		||||
    if (SPIFFS.exists("/spoolman_url.json")) {
 | 
			
		||||
        File file = SPIFFS.open("/spoolman_url.json", "r");
 | 
			
		||||
    if (LittleFS.exists("/spoolman_url.json")) {
 | 
			
		||||
        File file = LittleFS.open("/spoolman_url.json", "r");
 | 
			
		||||
        if (file) {
 | 
			
		||||
            spoolmanUrlBackup = file.readString();
 | 
			
		||||
            file.close();
 | 
			
		||||
@@ -40,7 +40,7 @@ void backupJsonConfigs() {
 | 
			
		||||
void restoreJsonConfigs() {
 | 
			
		||||
    // Restore Bambu credentials
 | 
			
		||||
    if (bambuCredentialsBackup.length() > 0) {
 | 
			
		||||
        File file = SPIFFS.open("/bambu_credentials.json", "w");
 | 
			
		||||
        File file = LittleFS.open("/bambu_credentials.json", "w");
 | 
			
		||||
        if (file) {
 | 
			
		||||
            file.print(bambuCredentialsBackup);
 | 
			
		||||
            file.close();
 | 
			
		||||
@@ -51,7 +51,7 @@ void restoreJsonConfigs() {
 | 
			
		||||
 | 
			
		||||
    // Restore Spoolman URL
 | 
			
		||||
    if (spoolmanUrlBackup.length() > 0) {
 | 
			
		||||
        File file = SPIFFS.open("/spoolman_url.json", "w");
 | 
			
		||||
        File file = LittleFS.open("/spoolman_url.json", "w");
 | 
			
		||||
        if (file) {
 | 
			
		||||
            file.print(spoolmanUrlBackup);
 | 
			
		||||
            file.close();
 | 
			
		||||
 
 | 
			
		||||
@@ -113,12 +113,12 @@ void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventTyp
 | 
			
		||||
// Funktion zum Laden und Ersetzen des Headers in einer HTML-Datei
 | 
			
		||||
String loadHtmlWithHeader(const char* filename) {
 | 
			
		||||
    Serial.println("Lade HTML-Datei: " + String(filename));
 | 
			
		||||
    if (!SPIFFS.exists(filename)) {
 | 
			
		||||
    if (!LittleFS.exists(filename)) {
 | 
			
		||||
        Serial.println("Fehler: Datei nicht gefunden!");
 | 
			
		||||
        return "Fehler: Datei nicht gefunden!";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    File file = SPIFFS.open(filename, "r");
 | 
			
		||||
    File file = LittleFS.open(filename, "r");
 | 
			
		||||
    String html = file.readString();
 | 
			
		||||
    file.close();
 | 
			
		||||
 | 
			
		||||
@@ -195,7 +195,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
    // Route für about
 | 
			
		||||
    server.on("/about", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        Serial.println("Anfrage für /about erhalten");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/index.html.gz", "text/html");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/index.html.gz", "text/html");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
@@ -204,7 +204,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
    // Route für Waage
 | 
			
		||||
    server.on("/waage", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        Serial.println("Anfrage für /waage erhalten");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/waage.html.gz", "text/html");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/waage.html.gz", "text/html");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
@@ -213,7 +213,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
    // Route für RFID
 | 
			
		||||
    server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        Serial.println("Anfrage für /rfid erhalten");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/rfid.html.gz", "text/html");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/rfid.html.gz", "text/html");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
@@ -229,7 +229,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
    // Route für WiFi
 | 
			
		||||
    server.on("/wifi", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        Serial.println("Anfrage für /wifi erhalten");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/wifi.html.gz", "text/html");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/wifi.html.gz", "text/html");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
@@ -322,7 +322,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
    // Route für das Laden der CSS-Datei
 | 
			
		||||
    server.on("/style.css", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        Serial.println("Lade style.css");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/style.css.gz", "text/css");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/style.css.gz", "text/css");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
@@ -331,7 +331,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
 | 
			
		||||
    // Route für das Logo
 | 
			
		||||
    server.on("/logo.png", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/logo.png.gz", "image/png");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/logo.png.gz", "image/png");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
@@ -340,7 +340,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
 | 
			
		||||
    // Route für Favicon
 | 
			
		||||
    server.on("/favicon.ico", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/favicon.ico", "image/x-icon");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/favicon.ico", "image/x-icon");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
        Serial.println("favicon.ico gesendet");
 | 
			
		||||
@@ -348,7 +348,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
 | 
			
		||||
    // Route für spool_in.png
 | 
			
		||||
    server.on("/spool_in.png", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/spool_in.png.gz", "image/png");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/spool_in.png.gz", "image/png");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
@@ -357,7 +357,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
 | 
			
		||||
    // Route für set_spoolman.png
 | 
			
		||||
    server.on("/set_spoolman.png", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/set_spoolman.png.gz", "image/png");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/set_spoolman.png.gz", "image/png");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
@@ -367,7 +367,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
    // Route für JavaScript Dateien
 | 
			
		||||
    server.on("/spoolman.js", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        Serial.println("Anfrage für /spoolman.js erhalten");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/spoolman.js.gz", "text/javascript");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/spoolman.js.gz", "text/javascript");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
@@ -376,7 +376,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
 | 
			
		||||
    server.on("/rfid.js", HTTP_GET, [](AsyncWebServerRequest *request){
 | 
			
		||||
        Serial.println("Anfrage für /rfid.js erhalten");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS,"/rfid.js.gz", "text/javascript");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS,"/rfid.js.gz", "text/javascript");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", CACHE_CONTROL);
 | 
			
		||||
        request->send(response);
 | 
			
		||||
@@ -385,7 +385,7 @@ void setupWebserver(AsyncWebServer &server) {
 | 
			
		||||
 | 
			
		||||
    // Vereinfachter Update-Handler
 | 
			
		||||
    server.on("/upgrade", HTTP_GET, [](AsyncWebServerRequest *request) {
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/upgrade.html.gz", "text/html");
 | 
			
		||||
        AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/upgrade.html.gz", "text/html");
 | 
			
		||||
        response->addHeader("Content-Encoding", "gzip");
 | 
			
		||||
        response->addHeader("Cache-Control", "no-store");
 | 
			
		||||
        request->send(response);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user