Compare commits
	
		
			28 Commits
		
	
	
		
			v2.0.2-bet
			...
			301109c37b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 301109c37b | |||
| d43fceebbc | |||
| 2c435e5c98 | |||
| f9aa7f2e6b | |||
| f810bc5352 | |||
| 043c2d4fa8 | |||
| f5a1debd7d | |||
| 37309da185 | |||
| bcb7c039e2 | |||
| 98ec5b9846 | |||
| f0d1692ae1 | |||
| 10587276c2 | |||
| e74f6076b2 | |||
| 2ee60ce430 | |||
| 5db80d3670 | |||
| 2b195ed9ea | |||
| 45a623cff6 | |||
| b4a06d0f2a | |||
| 85cff3923c | |||
| d9469eaa42 | |||
| 16c3a65cca | |||
| 51335456e3 | |||
| 77fbacc681 | |||
| b4f1fc3b0a | |||
| 3a82175bb6 | |||
| b80184bf23 | |||
| 0f63880d1f | |||
| 0baa1d286e | 
							
								
								
									
										147
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										147
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -1,5 +1,152 @@
 | 
			
		||||
# Changelog
 | 
			
		||||
 | 
			
		||||
## [2.0.4-beta2] - 2025-09-03
 | 
			
		||||
### Changed
 | 
			
		||||
- adjust auto tare counter threshold and reposition tare check in scale loop
 | 
			
		||||
- improve auto tare logic and reset conditions in scale handling
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [2.0.4-beta1] - 2025-09-03
 | 
			
		||||
### Changed
 | 
			
		||||
- improve auto tare logic and reset conditions in scale handling
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [2.0.4] - 2025-09-02
 | 
			
		||||
### Changed
 | 
			
		||||
- filter out automatic release documentation commits in changelog categorization
 | 
			
		||||
- disable auto tare and weight filter reset in scale loop
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [2.0.3] - 2025-09-02
 | 
			
		||||
### Added
 | 
			
		||||
- add updateOctoSpoolId for OctoPrint integration and change autoSetToBambuSpoolId type to uint16_t
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
- update platformio.ini for version v2.0.3
 | 
			
		||||
- update changelog and header for version v2.0.2-beta6
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta6
 | 
			
		||||
- update changelog and header for version v2.0.2-beta5
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta5
 | 
			
		||||
- update changelog and header for version v2.0.2-beta4
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta4
 | 
			
		||||
- update changelog and header for version v2.0.2-beta3
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta3
 | 
			
		||||
- update changelog and header for version v2.0.2-beta2
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta2
 | 
			
		||||
- update changelog and header for version v2.0.2-beta1
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta1
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
- set scale tare request to true in setup function
 | 
			
		||||
- correct assignment operator in scale tare request handling
 | 
			
		||||
- correct tare scale request handling in tareScale function
 | 
			
		||||
- reset weight filter after tare scale operation
 | 
			
		||||
- correct tare scale function to set scaleTareRequest flag
 | 
			
		||||
- reset weight counter logic and update spool ID in loop function
 | 
			
		||||
- reduce delay in start_scale function and reset weight after tare
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [2.0.2-beta6] - 2025-09-02
 | 
			
		||||
### Added
 | 
			
		||||
- add updateOctoSpoolId for OctoPrint integration and change autoSetToBambuSpoolId type to uint16_t
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta6
 | 
			
		||||
- update changelog and header for version v2.0.2-beta5
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta5
 | 
			
		||||
- update changelog and header for version v2.0.2-beta4
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta4
 | 
			
		||||
- update changelog and header for version v2.0.2-beta3
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta3
 | 
			
		||||
- update changelog and header for version v2.0.2-beta2
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta2
 | 
			
		||||
- update changelog and header for version v2.0.2-beta1
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta1
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
- set scale tare request to true in setup function
 | 
			
		||||
- correct assignment operator in scale tare request handling
 | 
			
		||||
- correct tare scale request handling in tareScale function
 | 
			
		||||
- reset weight filter after tare scale operation
 | 
			
		||||
- correct tare scale function to set scaleTareRequest flag
 | 
			
		||||
- reset weight counter logic and update spool ID in loop function
 | 
			
		||||
- reduce delay in start_scale function and reset weight after tare
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [2.0.2-beta5] - 2025-09-02
 | 
			
		||||
### Added
 | 
			
		||||
- add updateOctoSpoolId for OctoPrint integration and change autoSetToBambuSpoolId type to uint16_t
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta5
 | 
			
		||||
- update changelog and header for version v2.0.2-beta4
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta4
 | 
			
		||||
- update changelog and header for version v2.0.2-beta3
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta3
 | 
			
		||||
- update changelog and header for version v2.0.2-beta2
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta2
 | 
			
		||||
- update changelog and header for version v2.0.2-beta1
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta1
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
- correct tare scale request handling in tareScale function
 | 
			
		||||
- reset weight filter after tare scale operation
 | 
			
		||||
- correct tare scale function to set scaleTareRequest flag
 | 
			
		||||
- reset weight counter logic and update spool ID in loop function
 | 
			
		||||
- reduce delay in start_scale function and reset weight after tare
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [2.0.2-beta4] - 2025-09-02
 | 
			
		||||
### Added
 | 
			
		||||
- add updateOctoSpoolId for OctoPrint integration and change autoSetToBambuSpoolId type to uint16_t
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta4
 | 
			
		||||
- update changelog and header for version v2.0.2-beta3
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta3
 | 
			
		||||
- update changelog and header for version v2.0.2-beta2
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta2
 | 
			
		||||
- update changelog and header for version v2.0.2-beta1
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta1
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
- reset weight filter after tare scale operation
 | 
			
		||||
- correct tare scale function to set scaleTareRequest flag
 | 
			
		||||
- reset weight counter logic and update spool ID in loop function
 | 
			
		||||
- reduce delay in start_scale function and reset weight after tare
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [2.0.2-beta3] - 2025-09-02
 | 
			
		||||
### Added
 | 
			
		||||
- add updateOctoSpoolId for OctoPrint integration and change autoSetToBambuSpoolId type to uint16_t
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta3
 | 
			
		||||
- update changelog and header for version v2.0.2-beta2
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta2
 | 
			
		||||
- update changelog and header for version v2.0.2-beta1
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta1
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
- correct tare scale function to set scaleTareRequest flag
 | 
			
		||||
- reset weight counter logic and update spool ID in loop function
 | 
			
		||||
- reduce delay in start_scale function and reset weight after tare
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [2.0.2-beta2] - 2025-09-02
 | 
			
		||||
### Added
 | 
			
		||||
- add updateOctoSpoolId for OctoPrint integration and change autoSetToBambuSpoolId type to uint16_t
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta2
 | 
			
		||||
- update changelog and header for version v2.0.2-beta1
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta1
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
- reset weight counter logic and update spool ID in loop function
 | 
			
		||||
- reduce delay in start_scale function and reset weight after tare
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [2.0.2-beta1] - 2025-09-02
 | 
			
		||||
### Changed
 | 
			
		||||
- update platformio.ini for beta version v2.0.2-beta1
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
; https://docs.platformio.org/page/projectconf.html
 | 
			
		||||
 | 
			
		||||
[common]
 | 
			
		||||
version = "2.0.2-beta1"
 | 
			
		||||
version = "2.0.4-beta2"
 | 
			
		||||
to_old_version = "1.5.10"
 | 
			
		||||
 | 
			
		||||
##
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,12 @@ def categorize_commit(commit_msg):
 | 
			
		||||
    """Categorize commit messages based on conventional commits"""
 | 
			
		||||
    lower_msg = commit_msg.lower()
 | 
			
		||||
    
 | 
			
		||||
    # Filter out automatic release documentation commits
 | 
			
		||||
    if ('docs:' in lower_msg and 
 | 
			
		||||
        ('update changelog and header for version' in lower_msg or 
 | 
			
		||||
         'update platformio.ini for' in lower_msg)):
 | 
			
		||||
        return None  # Skip these commits
 | 
			
		||||
    
 | 
			
		||||
    # Check for breaking changes first
 | 
			
		||||
    if ('!' in commit_msg and any(x in lower_msg for x in ['feat!', 'fix!', 'chore!', 'refactor!'])) or \
 | 
			
		||||
       'breaking change' in lower_msg or 'breaking:' in lower_msg:
 | 
			
		||||
@@ -77,11 +83,12 @@ def get_changes_from_git():
 | 
			
		||||
        for commit in commits:
 | 
			
		||||
            if commit:
 | 
			
		||||
                category = categorize_commit(commit)
 | 
			
		||||
                # Clean up commit message
 | 
			
		||||
                clean_msg = re.sub(r'^(feat|fix|chore|docs|style|refactor|perf|test)(\(.*\))?!?:', '', commit).strip()
 | 
			
		||||
                # Remove BREAKING CHANGE prefix if present
 | 
			
		||||
                clean_msg = re.sub(r'^breaking change:\s*', '', clean_msg, flags=re.IGNORECASE).strip()
 | 
			
		||||
                changes[category].append(clean_msg)
 | 
			
		||||
                if category is not None:  # Skip commits that return None (filtered out)
 | 
			
		||||
                    # Clean up commit message
 | 
			
		||||
                    clean_msg = re.sub(r'^(feat|fix|chore|docs|style|refactor|perf|test)(\(.*\))?!?:', '', commit).strip()
 | 
			
		||||
                    # Remove BREAKING CHANGE prefix if present
 | 
			
		||||
                    clean_msg = re.sub(r'^breaking change:\s*', '', clean_msg, flags=re.IGNORECASE).strip()
 | 
			
		||||
                    changes[category].append(clean_msg)
 | 
			
		||||
                
 | 
			
		||||
    except subprocess.CalledProcessError:
 | 
			
		||||
        print("Error: Failed to get git commits")
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@ uint16_t foundVendorId = 0;    // Store ID of found vendor
 | 
			
		||||
uint16_t foundFilamentId = 0;  // Store ID of found filament
 | 
			
		||||
uint16_t createdFilamentId = 0;  // Store ID of newly created filament
 | 
			
		||||
uint16_t createdSpoolId = 0;  // Store ID of newly created spool
 | 
			
		||||
uint16_t updateOctoSpoolId = 0; // Store spool ID for OctoPrint update
 | 
			
		||||
bool spoolmanConnected = false;
 | 
			
		||||
bool spoolmanExtraFieldsChecked = false;
 | 
			
		||||
TaskHandle_t* apiTask;
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,7 @@ extern bool sendOctoUpdate;
 | 
			
		||||
extern String octoUrl;
 | 
			
		||||
extern String octoToken;
 | 
			
		||||
extern bool spoolmanConnected;
 | 
			
		||||
extern uint16_t updateOctoSpoolId;
 | 
			
		||||
 | 
			
		||||
bool checkSpoolmanInstance();
 | 
			
		||||
bool saveSpoolmanUrl(const String& url, bool octoOn, const String& octoWh, const String& octoTk);
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ TaskHandle_t BambuMqttTask;
 | 
			
		||||
bool bambuDisabled = false;
 | 
			
		||||
 | 
			
		||||
bool bambu_connected = false;
 | 
			
		||||
int autoSetToBambuSpoolId = 0;
 | 
			
		||||
uint16_t autoSetToBambuSpoolId = 0;
 | 
			
		||||
 | 
			
		||||
BambuCredentials bambuCredentials;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ extern bool bambu_connected;
 | 
			
		||||
extern int ams_count;
 | 
			
		||||
extern AMSData ams_data[MAX_AMS];
 | 
			
		||||
//extern bool autoSendToBambu;
 | 
			
		||||
extern int autoSetToBambuSpoolId;
 | 
			
		||||
extern uint16_t autoSetToBambuSpoolId;
 | 
			
		||||
extern bool bambuDisabled;
 | 
			
		||||
extern BambuCredentials bambuCredentials;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/main.cpp
									
									
									
									
									
								
							@@ -59,6 +59,7 @@ void setup() {
 | 
			
		||||
 | 
			
		||||
  // Scale
 | 
			
		||||
  start_scale(touchSensorConnected);
 | 
			
		||||
  scaleTareRequest = true;
 | 
			
		||||
 | 
			
		||||
  // WDT initialisieren mit 10 Sekunden Timeout
 | 
			
		||||
  bool panic = true; // Wenn true, löst ein WDT-Timeout einen System-Panik aus
 | 
			
		||||
@@ -196,17 +197,6 @@ void loop() {
 | 
			
		||||
    {
 | 
			
		||||
      lastWeightReadTime = currentMillis;
 | 
			
		||||
 | 
			
		||||
      // Prüfen ob die Waage korrekt genullt ist
 | 
			
		||||
      // Abweichung von 2g ignorieren
 | 
			
		||||
      if (autoTare && (weight > 2 && weight < 7) || weight < -2)
 | 
			
		||||
      {
 | 
			
		||||
        scale_tare_counter++;
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
        scale_tare_counter = 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      // Prüfen ob das Gewicht gleich bleibt und dann senden
 | 
			
		||||
      if (abs(weight - lastWeight) <= 2 && weight > 5)
 | 
			
		||||
      {
 | 
			
		||||
@@ -242,6 +232,10 @@ void loop() {
 | 
			
		||||
        {
 | 
			
		||||
          autoSetToBambuSpoolId = activeSpoolId.toInt();
 | 
			
		||||
        }
 | 
			
		||||
        if (octoEnabled) 
 | 
			
		||||
        {
 | 
			
		||||
          updateOctoSpoolId = activeSpoolId.toInt();
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
@@ -271,7 +265,7 @@ void loop() {
 | 
			
		||||
 | 
			
		||||
    if(octoEnabled && sendOctoUpdate && spoolmanApiState == API_IDLE)
 | 
			
		||||
    {
 | 
			
		||||
      updateSpoolOcto(activeSpoolId.toInt());
 | 
			
		||||
      updateSpoolOcto(updateOctoSpoolId);
 | 
			
		||||
      sendOctoUpdate = false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -141,7 +141,7 @@ uint8_t setAutoTare(bool autoTareValue) {
 | 
			
		||||
uint8_t tareScale() {
 | 
			
		||||
  Serial.println("Tare scale");
 | 
			
		||||
  scale.tare();
 | 
			
		||||
  resetWeightFilter(); // Reset stabilization filter after tare
 | 
			
		||||
  resetWeightFilter();
 | 
			
		||||
  
 | 
			
		||||
  return 1;
 | 
			
		||||
}
 | 
			
		||||
@@ -151,6 +151,7 @@ void scale_loop(void * parameter) {
 | 
			
		||||
  Serial.println("Scale Loop started");
 | 
			
		||||
  Serial.println("++++++++++++++++++++++++++++++");
 | 
			
		||||
 | 
			
		||||
  //scaleTareRequest == true;
 | 
			
		||||
  // Initialize weight filter
 | 
			
		||||
  resetWeightFilter();
 | 
			
		||||
  lastMeasurementTime = millis();
 | 
			
		||||
@@ -162,17 +163,8 @@ void scale_loop(void * parameter) {
 | 
			
		||||
    if (currentTime - lastMeasurementTime >= MEASUREMENT_INTERVAL_MS) {
 | 
			
		||||
      if (scale.is_ready()) 
 | 
			
		||||
      {
 | 
			
		||||
        // Waage automatisch Taren, wenn zu lange Abweichung
 | 
			
		||||
        if (autoTare && scale_tare_counter >= 5) 
 | 
			
		||||
        {
 | 
			
		||||
          Serial.println("Auto Tare scale");
 | 
			
		||||
          scale.tare();
 | 
			
		||||
          resetWeightFilter(); // Reset filter after auto tare
 | 
			
		||||
          scale_tare_counter = 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Waage manuell Taren
 | 
			
		||||
        if (scaleTareRequest == true) 
 | 
			
		||||
        if (scaleTareRequest == true || (autoTare && scale_tare_counter >= 20)) 
 | 
			
		||||
        {
 | 
			
		||||
          Serial.println("Re-Tare scale");
 | 
			
		||||
          oledShowMessage("TARE Scale");
 | 
			
		||||
@@ -182,6 +174,8 @@ void scale_loop(void * parameter) {
 | 
			
		||||
          vTaskDelay(pdMS_TO_TICKS(1000));
 | 
			
		||||
          oledShowWeight(0);
 | 
			
		||||
          scaleTareRequest = false;
 | 
			
		||||
          scale_tare_counter = 0;
 | 
			
		||||
          weight = 0; // Reset global weight variable after tare
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Get raw weight reading
 | 
			
		||||
@@ -195,6 +189,17 @@ void scale_loop(void * parameter) {
 | 
			
		||||
          weight = stabilizedWeight;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // Prüfen ob die Waage korrekt genullt ist
 | 
			
		||||
        // Abweichung von 2g ignorieren
 | 
			
		||||
        if (autoTare && (rawWeight > 2 && rawWeight < 7) || rawWeight < -2)
 | 
			
		||||
        {
 | 
			
		||||
          scale_tare_counter++;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          scale_tare_counter = 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Debug output for monitoring (can be removed in production)
 | 
			
		||||
        static unsigned long lastDebugTime = 0;
 | 
			
		||||
        if (currentTime - lastDebugTime > 2000) { // Print every 2 seconds
 | 
			
		||||
@@ -257,11 +262,6 @@ void start_scale(bool touchSensorConnected) {
 | 
			
		||||
  // Display Gewicht
 | 
			
		||||
  oledShowWeight(0);
 | 
			
		||||
 | 
			
		||||
  vTaskDelay(500 / portTICK_PERIOD_MS);
 | 
			
		||||
  scale.tare();
 | 
			
		||||
  vTaskDelay(500 / portTICK_PERIOD_MS);
 | 
			
		||||
  weight = 0;
 | 
			
		||||
 | 
			
		||||
  Serial.println("starte Scale Task");
 | 
			
		||||
  BaseType_t result = xTaskCreatePinnedToCore(
 | 
			
		||||
    scale_loop, /* Function to implement the task */
 | 
			
		||||
 
 | 
			
		||||
@@ -81,7 +81,9 @@ void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventTyp
 | 
			
		||||
        else if (doc["type"] == "scale") {
 | 
			
		||||
            uint8_t success = 0;
 | 
			
		||||
            if (doc["payload"] == "tare") {
 | 
			
		||||
                success = tareScale();
 | 
			
		||||
                scaleTareRequest = true;
 | 
			
		||||
                success = 1;
 | 
			
		||||
                //success = tareScale();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (doc["payload"] == "calibrate") {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user