Compare commits
	
		
			18 Commits
		
	
	
		
			v2.0.0-bet
			...
			v2.0.0-bet
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 458bd2e67b | |||
| e6a5cb29a9 | |||
| 6502bb7185 | |||
| 63fafa2463 | |||
| f664e85933 | |||
| 7bf9868d79 | |||
| b9e488d675 | |||
| 2e3fc19741 | |||
| 4d84169b29 | |||
| 10aeb9bc52 | |||
| 00b9bc08af | |||
| dfe9e4dbe9 | |||
| 79eacae225 | |||
| d5d7358f58 | |||
| 9b362b3c73 | |||
| bc51956793 | |||
| 5666a58da2 | |||
| a35f15eca5 | 
							
								
								
									
										417
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										417
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -1,5 +1,422 @@ | ||||
| # Changelog | ||||
|  | ||||
| ## [2.0.0-beta9] - 2025-08-30 | ||||
| ### Breaking Changes | ||||
| - enhance commit categorization for breaking changes | ||||
| - Handling of Spools with Tags from Vendors. fix: improve get_last_tag function to handle non-beta tags and fallback to newest tag | ||||
|  | ||||
| ### Added | ||||
| - add handling for successful NFC tag writes to send weight to Spoolman without auto-sending to Bambu | ||||
| - implement robust page reading with error recovery for NFC tags | ||||
| - enhance NFC tag reading with robust error recovery and JSON optimization for fast-path detection | ||||
| - implement robust page reading and safe tag detection with error recovery | ||||
| - add Manufacturer Tags support documentation in German and English | ||||
| - add display delay for vendor, filament, and spool creation processes | ||||
| - add progress bar updates for vendor and filament creation processes | ||||
| - update vendor and filament ID handling to use NULL and add delays for stability | ||||
| - add delay to ensure proper setting of vendor and filament IDs after API state changes | ||||
| - enhance NDEF decoding with detailed validation and debugging output | ||||
| - enhance NDEF decoding to validate structure and extract JSON payload | ||||
| - add logging for decoded JSON data in NFC processing | ||||
| - implement filament and spool creation in Spoolman API | ||||
| - Add JSON structure comments for filament and spool creation | ||||
| - Add vendor and filament management to API; implement recycling factory handling in NFC | ||||
|  | ||||
| ### Changed | ||||
| - update platformio.ini for beta version v2.0.0-beta9 | ||||
| - update changelog and header for version v2.0.0-beta8 | ||||
| - update platformio.ini for beta version v2.0.0-beta8 | ||||
| - update changelog and header for version v2.0.0-beta7 | ||||
| - update platformio.ini for beta version v2.0.0-beta7 | ||||
| - update changelog and header for version v2.0.0-beta6 | ||||
| - update changelog and header for version v2.0.0-beta6 | ||||
| - update platformio.ini for beta version v2.0.0-beta6 | ||||
| - update changelog and header for version v2.0.0-beta5 | ||||
| - update platformio.ini for beta version v2.0.0-beta5 | ||||
| - update changelog and header for version v2.0.0-beta4 | ||||
| - update platformio.ini for beta version v2.0.0-beta4 | ||||
| - update changelog and header for version v2.0.0-beta3 | ||||
| - update platformio.ini for beta version v2.0.0-beta3 | ||||
| - update createVendor and checkVendor functions to accept JsonDocument payload | ||||
| - update changelog and header for version v2.0.0-beta2 | ||||
| - update platformio.ini for beta version v2.0.0-beta2 | ||||
| - clarify product URL description for Manufacturer Tags in German and English documentation | ||||
| - update changelog and header for version v2.0.0-beta1 | ||||
| - update platformio.ini for beta version v2.0.0-beta1 | ||||
| - update version to 2.0.0 in platformio.ini | ||||
| - update changelog and header for version v1.5.12-beta18 | ||||
| - update platformio.ini for beta version v1.5.12-beta18 | ||||
| - update changelog and header for version v1.5.12-beta17 | ||||
| - update platformio.ini for beta version v1.5.12-beta17 | ||||
| - optimize page limit detection and remove redundant verification code | ||||
| - update changelog and header for version v1.5.12-beta16 | ||||
| - update platformio.ini for beta version v1.5.12-beta16 | ||||
| - Refactor NFC interface handling and improve error diagnostics | ||||
| - update changelog and header for version v1.5.12-beta15 | ||||
| - update platformio.ini for beta version v1.5.12-beta15 | ||||
| - enhance NFC write operation diagnostics and improve error handling | ||||
| - enhance NFC write operation handling and prevent tag operations during write | ||||
| - update changelog and header for version v1.5.12-beta14 | ||||
| - update platformio.ini for beta version v1.5.12-beta14 | ||||
| - optimize JSON payload structure and enhance NFC tag validation process | ||||
| - update changelog and header for version v1.5.12-beta13 | ||||
| - update platformio.ini for beta version v1.5.12-beta13 | ||||
| - reorganize clearUserDataArea function for improved clarity and safety | ||||
| - update changelog and header for version v1.5.12-beta12 | ||||
| - update platformio.ini for beta version v1.5.12-beta12 | ||||
| - update changelog and header for version v1.5.12-beta11 | ||||
| - update platformio.ini for beta version v1.5.12-beta11 | ||||
| - update changelog and header for version v1.5.12-beta10 | ||||
| - update platformio.ini for beta version v1.5.12-beta10 | ||||
| - streamline task creation in checkVendor and checkFilament functions | ||||
| - update changelog and header for version v1.5.12-beta9 | ||||
| - update platformio.ini for beta version v1.5.12-beta9 | ||||
| - update changelog and header for version v1.5.12-beta8 | ||||
| - update platformio.ini for beta version v1.5.12-beta8 | ||||
| - update changelog and header for version v1.5.12-beta7 | ||||
| - update platformio.ini for beta version v1.5.12-beta7 | ||||
| - update changelog and header for version v1.5.12-beta6 | ||||
| - update platformio.ini for beta version v1.5.12-beta6 | ||||
| - improve task synchronization in vendor, filament, and spool creation functions | ||||
| - update changelog and header for version v1.5.12-beta5 | ||||
| - update platformio.ini for beta version v1.5.12-beta5 | ||||
| - update changelog and header for version v1.5.12-beta4 | ||||
| - update platformio.ini for beta version v1.5.12-beta4 | ||||
| - update changelog and header for version v1.5.12-beta3 | ||||
| - update platformio.ini for beta version v1.5.12-beta3 | ||||
| - update changelog and header for version v1.5.12-beta2 | ||||
| - update platformio.ini for beta version v1.5.12-beta2 | ||||
| - update changelog and header for version v1.5.12-beta1 | ||||
| - update platformio.ini for beta version v1.5.12-beta1 | ||||
| - Merge branch 'main' into recyclingfabrik | ||||
| - Merge branch 'main' into recyclingfabrik | ||||
|  | ||||
| ### Fixed | ||||
| - call scale.tare() in setup after starting scale | ||||
| - update createVendor function to use external_id as comment instead of static text | ||||
| - update to_old_version in platformio.ini to reflect correct previous version | ||||
| - increase delay in start_scale function for improved stability | ||||
| - replace progress bar with message display for remaining weight in sendToApi function | ||||
| - update vendor check to use shorthand key in payload | ||||
| - reset NFC state on API send failure to allow retry | ||||
| - update createdFilamentId reset value to 65535 for better task handling | ||||
| - update createdVendorId reset value to 65535 for improved API handling | ||||
| - update spoolman ID reset values to 65535 for better API response detection | ||||
| - correct color_hex key usage and comment out unused date fields in spool creation | ||||
| - improve API state handling and vendor name formatting | ||||
| - enhance filament creation logic to include dynamic comments based on payload | ||||
|  | ||||
|  | ||||
| ## [2.0.0-beta8] - 2025-08-30 | ||||
| ### Breaking Changes | ||||
| - enhance commit categorization for breaking changes | ||||
| - Handling of Spools with Tags from Vendors. fix: improve get_last_tag function to handle non-beta tags and fallback to newest tag | ||||
|  | ||||
| ### Added | ||||
| - implement robust page reading with error recovery for NFC tags | ||||
| - enhance NFC tag reading with robust error recovery and JSON optimization for fast-path detection | ||||
| - implement robust page reading and safe tag detection with error recovery | ||||
| - add Manufacturer Tags support documentation in German and English | ||||
| - add display delay for vendor, filament, and spool creation processes | ||||
| - add progress bar updates for vendor and filament creation processes | ||||
| - update vendor and filament ID handling to use NULL and add delays for stability | ||||
| - add delay to ensure proper setting of vendor and filament IDs after API state changes | ||||
| - enhance NDEF decoding with detailed validation and debugging output | ||||
| - enhance NDEF decoding to validate structure and extract JSON payload | ||||
| - add logging for decoded JSON data in NFC processing | ||||
| - implement filament and spool creation in Spoolman API | ||||
| - Add JSON structure comments for filament and spool creation | ||||
| - Add vendor and filament management to API; implement recycling factory handling in NFC | ||||
|  | ||||
| ### Changed | ||||
| - update platformio.ini for beta version v2.0.0-beta8 | ||||
| - update changelog and header for version v2.0.0-beta7 | ||||
| - update platformio.ini for beta version v2.0.0-beta7 | ||||
| - update changelog and header for version v2.0.0-beta6 | ||||
| - update changelog and header for version v2.0.0-beta6 | ||||
| - update platformio.ini for beta version v2.0.0-beta6 | ||||
| - update changelog and header for version v2.0.0-beta5 | ||||
| - update platformio.ini for beta version v2.0.0-beta5 | ||||
| - update changelog and header for version v2.0.0-beta4 | ||||
| - update platformio.ini for beta version v2.0.0-beta4 | ||||
| - update changelog and header for version v2.0.0-beta3 | ||||
| - update platformio.ini for beta version v2.0.0-beta3 | ||||
| - update createVendor and checkVendor functions to accept JsonDocument payload | ||||
| - update changelog and header for version v2.0.0-beta2 | ||||
| - update platformio.ini for beta version v2.0.0-beta2 | ||||
| - clarify product URL description for Manufacturer Tags in German and English documentation | ||||
| - update changelog and header for version v2.0.0-beta1 | ||||
| - update platformio.ini for beta version v2.0.0-beta1 | ||||
| - update version to 2.0.0 in platformio.ini | ||||
| - update changelog and header for version v1.5.12-beta18 | ||||
| - update platformio.ini for beta version v1.5.12-beta18 | ||||
| - update changelog and header for version v1.5.12-beta17 | ||||
| - update platformio.ini for beta version v1.5.12-beta17 | ||||
| - optimize page limit detection and remove redundant verification code | ||||
| - update changelog and header for version v1.5.12-beta16 | ||||
| - update platformio.ini for beta version v1.5.12-beta16 | ||||
| - Refactor NFC interface handling and improve error diagnostics | ||||
| - update changelog and header for version v1.5.12-beta15 | ||||
| - update platformio.ini for beta version v1.5.12-beta15 | ||||
| - enhance NFC write operation diagnostics and improve error handling | ||||
| - enhance NFC write operation handling and prevent tag operations during write | ||||
| - update changelog and header for version v1.5.12-beta14 | ||||
| - update platformio.ini for beta version v1.5.12-beta14 | ||||
| - optimize JSON payload structure and enhance NFC tag validation process | ||||
| - update changelog and header for version v1.5.12-beta13 | ||||
| - update platformio.ini for beta version v1.5.12-beta13 | ||||
| - reorganize clearUserDataArea function for improved clarity and safety | ||||
| - update changelog and header for version v1.5.12-beta12 | ||||
| - update platformio.ini for beta version v1.5.12-beta12 | ||||
| - update changelog and header for version v1.5.12-beta11 | ||||
| - update platformio.ini for beta version v1.5.12-beta11 | ||||
| - update changelog and header for version v1.5.12-beta10 | ||||
| - update platformio.ini for beta version v1.5.12-beta10 | ||||
| - streamline task creation in checkVendor and checkFilament functions | ||||
| - update changelog and header for version v1.5.12-beta9 | ||||
| - update platformio.ini for beta version v1.5.12-beta9 | ||||
| - update changelog and header for version v1.5.12-beta8 | ||||
| - update platformio.ini for beta version v1.5.12-beta8 | ||||
| - update changelog and header for version v1.5.12-beta7 | ||||
| - update platformio.ini for beta version v1.5.12-beta7 | ||||
| - update changelog and header for version v1.5.12-beta6 | ||||
| - update platformio.ini for beta version v1.5.12-beta6 | ||||
| - improve task synchronization in vendor, filament, and spool creation functions | ||||
| - update changelog and header for version v1.5.12-beta5 | ||||
| - update platformio.ini for beta version v1.5.12-beta5 | ||||
| - update changelog and header for version v1.5.12-beta4 | ||||
| - update platformio.ini for beta version v1.5.12-beta4 | ||||
| - update changelog and header for version v1.5.12-beta3 | ||||
| - update platformio.ini for beta version v1.5.12-beta3 | ||||
| - update changelog and header for version v1.5.12-beta2 | ||||
| - update platformio.ini for beta version v1.5.12-beta2 | ||||
| - update changelog and header for version v1.5.12-beta1 | ||||
| - update platformio.ini for beta version v1.5.12-beta1 | ||||
| - Merge branch 'main' into recyclingfabrik | ||||
| - Merge branch 'main' into recyclingfabrik | ||||
|  | ||||
| ### Fixed | ||||
| - call scale.tare() in setup after starting scale | ||||
| - update createVendor function to use external_id as comment instead of static text | ||||
| - update to_old_version in platformio.ini to reflect correct previous version | ||||
| - increase delay in start_scale function for improved stability | ||||
| - replace progress bar with message display for remaining weight in sendToApi function | ||||
| - update vendor check to use shorthand key in payload | ||||
| - reset NFC state on API send failure to allow retry | ||||
| - update createdFilamentId reset value to 65535 for better task handling | ||||
| - update createdVendorId reset value to 65535 for improved API handling | ||||
| - update spoolman ID reset values to 65535 for better API response detection | ||||
| - correct color_hex key usage and comment out unused date fields in spool creation | ||||
| - improve API state handling and vendor name formatting | ||||
| - enhance filament creation logic to include dynamic comments based on payload | ||||
|  | ||||
|  | ||||
| ## [2.0.0-beta7] - 2025-08-30 | ||||
| ### Breaking Changes | ||||
| - enhance commit categorization for breaking changes | ||||
| - Handling of Spools with Tags from Vendors. fix: improve get_last_tag function to handle non-beta tags and fallback to newest tag | ||||
|  | ||||
| ### Added | ||||
| - enhance NFC tag reading with robust error recovery and JSON optimization for fast-path detection | ||||
| - implement robust page reading and safe tag detection with error recovery | ||||
| - add Manufacturer Tags support documentation in German and English | ||||
| - add display delay for vendor, filament, and spool creation processes | ||||
| - add progress bar updates for vendor and filament creation processes | ||||
| - update vendor and filament ID handling to use NULL and add delays for stability | ||||
| - add delay to ensure proper setting of vendor and filament IDs after API state changes | ||||
| - enhance NDEF decoding with detailed validation and debugging output | ||||
| - enhance NDEF decoding to validate structure and extract JSON payload | ||||
| - add logging for decoded JSON data in NFC processing | ||||
| - implement filament and spool creation in Spoolman API | ||||
| - Add JSON structure comments for filament and spool creation | ||||
| - Add vendor and filament management to API; implement recycling factory handling in NFC | ||||
|  | ||||
| ### Changed | ||||
| - update platformio.ini for beta version v2.0.0-beta7 | ||||
| - update changelog and header for version v2.0.0-beta6 | ||||
| - update changelog and header for version v2.0.0-beta6 | ||||
| - update platformio.ini for beta version v2.0.0-beta6 | ||||
| - update changelog and header for version v2.0.0-beta5 | ||||
| - update platformio.ini for beta version v2.0.0-beta5 | ||||
| - update changelog and header for version v2.0.0-beta4 | ||||
| - update platformio.ini for beta version v2.0.0-beta4 | ||||
| - update changelog and header for version v2.0.0-beta3 | ||||
| - update platformio.ini for beta version v2.0.0-beta3 | ||||
| - update createVendor and checkVendor functions to accept JsonDocument payload | ||||
| - update changelog and header for version v2.0.0-beta2 | ||||
| - update platformio.ini for beta version v2.0.0-beta2 | ||||
| - clarify product URL description for Manufacturer Tags in German and English documentation | ||||
| - update changelog and header for version v2.0.0-beta1 | ||||
| - update platformio.ini for beta version v2.0.0-beta1 | ||||
| - update version to 2.0.0 in platformio.ini | ||||
| - update changelog and header for version v1.5.12-beta18 | ||||
| - update platformio.ini for beta version v1.5.12-beta18 | ||||
| - update changelog and header for version v1.5.12-beta17 | ||||
| - update platformio.ini for beta version v1.5.12-beta17 | ||||
| - optimize page limit detection and remove redundant verification code | ||||
| - update changelog and header for version v1.5.12-beta16 | ||||
| - update platformio.ini for beta version v1.5.12-beta16 | ||||
| - Refactor NFC interface handling and improve error diagnostics | ||||
| - update changelog and header for version v1.5.12-beta15 | ||||
| - update platformio.ini for beta version v1.5.12-beta15 | ||||
| - enhance NFC write operation diagnostics and improve error handling | ||||
| - enhance NFC write operation handling and prevent tag operations during write | ||||
| - update changelog and header for version v1.5.12-beta14 | ||||
| - update platformio.ini for beta version v1.5.12-beta14 | ||||
| - optimize JSON payload structure and enhance NFC tag validation process | ||||
| - update changelog and header for version v1.5.12-beta13 | ||||
| - update platformio.ini for beta version v1.5.12-beta13 | ||||
| - reorganize clearUserDataArea function for improved clarity and safety | ||||
| - update changelog and header for version v1.5.12-beta12 | ||||
| - update platformio.ini for beta version v1.5.12-beta12 | ||||
| - update changelog and header for version v1.5.12-beta11 | ||||
| - update platformio.ini for beta version v1.5.12-beta11 | ||||
| - update changelog and header for version v1.5.12-beta10 | ||||
| - update platformio.ini for beta version v1.5.12-beta10 | ||||
| - streamline task creation in checkVendor and checkFilament functions | ||||
| - update changelog and header for version v1.5.12-beta9 | ||||
| - update platformio.ini for beta version v1.5.12-beta9 | ||||
| - update changelog and header for version v1.5.12-beta8 | ||||
| - update platformio.ini for beta version v1.5.12-beta8 | ||||
| - update changelog and header for version v1.5.12-beta7 | ||||
| - update platformio.ini for beta version v1.5.12-beta7 | ||||
| - update changelog and header for version v1.5.12-beta6 | ||||
| - update platformio.ini for beta version v1.5.12-beta6 | ||||
| - improve task synchronization in vendor, filament, and spool creation functions | ||||
| - update changelog and header for version v1.5.12-beta5 | ||||
| - update platformio.ini for beta version v1.5.12-beta5 | ||||
| - update changelog and header for version v1.5.12-beta4 | ||||
| - update platformio.ini for beta version v1.5.12-beta4 | ||||
| - update changelog and header for version v1.5.12-beta3 | ||||
| - update platformio.ini for beta version v1.5.12-beta3 | ||||
| - update changelog and header for version v1.5.12-beta2 | ||||
| - update platformio.ini for beta version v1.5.12-beta2 | ||||
| - update changelog and header for version v1.5.12-beta1 | ||||
| - update platformio.ini for beta version v1.5.12-beta1 | ||||
| - Merge branch 'main' into recyclingfabrik | ||||
| - Merge branch 'main' into recyclingfabrik | ||||
|  | ||||
| ### Fixed | ||||
| - call scale.tare() in setup after starting scale | ||||
| - update createVendor function to use external_id as comment instead of static text | ||||
| - update to_old_version in platformio.ini to reflect correct previous version | ||||
| - increase delay in start_scale function for improved stability | ||||
| - replace progress bar with message display for remaining weight in sendToApi function | ||||
| - update vendor check to use shorthand key in payload | ||||
| - reset NFC state on API send failure to allow retry | ||||
| - update createdFilamentId reset value to 65535 for better task handling | ||||
| - update createdVendorId reset value to 65535 for improved API handling | ||||
| - update spoolman ID reset values to 65535 for better API response detection | ||||
| - correct color_hex key usage and comment out unused date fields in spool creation | ||||
| - improve API state handling and vendor name formatting | ||||
| - enhance filament creation logic to include dynamic comments based on payload | ||||
|  | ||||
|  | ||||
| ## [2.0.0-beta6] - 2025-08-30 | ||||
| ### Breaking Changes | ||||
| - enhance commit categorization for breaking changes | ||||
| - Handling of Spools with Tags from Vendors. fix: improve get_last_tag function to handle non-beta tags and fallback to newest tag | ||||
|  | ||||
| ### Added | ||||
| - implement robust page reading and safe tag detection with error recovery | ||||
| - add Manufacturer Tags support documentation in German and English | ||||
| - add display delay for vendor, filament, and spool creation processes | ||||
| - add progress bar updates for vendor and filament creation processes | ||||
| - update vendor and filament ID handling to use NULL and add delays for stability | ||||
| - add delay to ensure proper setting of vendor and filament IDs after API state changes | ||||
| - enhance NDEF decoding with detailed validation and debugging output | ||||
| - enhance NDEF decoding to validate structure and extract JSON payload | ||||
| - add logging for decoded JSON data in NFC processing | ||||
| - implement filament and spool creation in Spoolman API | ||||
| - Add JSON structure comments for filament and spool creation | ||||
| - Add vendor and filament management to API; implement recycling factory handling in NFC | ||||
|  | ||||
| ### Changed | ||||
| - update changelog and header for version v2.0.0-beta6 | ||||
| - update platformio.ini for beta version v2.0.0-beta6 | ||||
| - update changelog and header for version v2.0.0-beta5 | ||||
| - update platformio.ini for beta version v2.0.0-beta5 | ||||
| - update changelog and header for version v2.0.0-beta4 | ||||
| - update platformio.ini for beta version v2.0.0-beta4 | ||||
| - update changelog and header for version v2.0.0-beta3 | ||||
| - update platformio.ini for beta version v2.0.0-beta3 | ||||
| - update createVendor and checkVendor functions to accept JsonDocument payload | ||||
| - update changelog and header for version v2.0.0-beta2 | ||||
| - update platformio.ini for beta version v2.0.0-beta2 | ||||
| - clarify product URL description for Manufacturer Tags in German and English documentation | ||||
| - update changelog and header for version v2.0.0-beta1 | ||||
| - update platformio.ini for beta version v2.0.0-beta1 | ||||
| - update version to 2.0.0 in platformio.ini | ||||
| - update changelog and header for version v1.5.12-beta18 | ||||
| - update platformio.ini for beta version v1.5.12-beta18 | ||||
| - update changelog and header for version v1.5.12-beta17 | ||||
| - update platformio.ini for beta version v1.5.12-beta17 | ||||
| - optimize page limit detection and remove redundant verification code | ||||
| - update changelog and header for version v1.5.12-beta16 | ||||
| - update platformio.ini for beta version v1.5.12-beta16 | ||||
| - Refactor NFC interface handling and improve error diagnostics | ||||
| - update changelog and header for version v1.5.12-beta15 | ||||
| - update platformio.ini for beta version v1.5.12-beta15 | ||||
| - enhance NFC write operation diagnostics and improve error handling | ||||
| - enhance NFC write operation handling and prevent tag operations during write | ||||
| - update changelog and header for version v1.5.12-beta14 | ||||
| - update platformio.ini for beta version v1.5.12-beta14 | ||||
| - optimize JSON payload structure and enhance NFC tag validation process | ||||
| - update changelog and header for version v1.5.12-beta13 | ||||
| - update platformio.ini for beta version v1.5.12-beta13 | ||||
| - reorganize clearUserDataArea function for improved clarity and safety | ||||
| - update changelog and header for version v1.5.12-beta12 | ||||
| - update platformio.ini for beta version v1.5.12-beta12 | ||||
| - update changelog and header for version v1.5.12-beta11 | ||||
| - update platformio.ini for beta version v1.5.12-beta11 | ||||
| - update changelog and header for version v1.5.12-beta10 | ||||
| - update platformio.ini for beta version v1.5.12-beta10 | ||||
| - streamline task creation in checkVendor and checkFilament functions | ||||
| - update changelog and header for version v1.5.12-beta9 | ||||
| - update platformio.ini for beta version v1.5.12-beta9 | ||||
| - update changelog and header for version v1.5.12-beta8 | ||||
| - update platformio.ini for beta version v1.5.12-beta8 | ||||
| - update changelog and header for version v1.5.12-beta7 | ||||
| - update platformio.ini for beta version v1.5.12-beta7 | ||||
| - update changelog and header for version v1.5.12-beta6 | ||||
| - update platformio.ini for beta version v1.5.12-beta6 | ||||
| - improve task synchronization in vendor, filament, and spool creation functions | ||||
| - update changelog and header for version v1.5.12-beta5 | ||||
| - update platformio.ini for beta version v1.5.12-beta5 | ||||
| - update changelog and header for version v1.5.12-beta4 | ||||
| - update platformio.ini for beta version v1.5.12-beta4 | ||||
| - update changelog and header for version v1.5.12-beta3 | ||||
| - update platformio.ini for beta version v1.5.12-beta3 | ||||
| - update changelog and header for version v1.5.12-beta2 | ||||
| - update platformio.ini for beta version v1.5.12-beta2 | ||||
| - update changelog and header for version v1.5.12-beta1 | ||||
| - update platformio.ini for beta version v1.5.12-beta1 | ||||
| - Merge branch 'main' into recyclingfabrik | ||||
| - Merge branch 'main' into recyclingfabrik | ||||
|  | ||||
| ### Fixed | ||||
| - call scale.tare() in setup after starting scale | ||||
| - update createVendor function to use external_id as comment instead of static text | ||||
| - update to_old_version in platformio.ini to reflect correct previous version | ||||
| - increase delay in start_scale function for improved stability | ||||
| - replace progress bar with message display for remaining weight in sendToApi function | ||||
| - update vendor check to use shorthand key in payload | ||||
| - reset NFC state on API send failure to allow retry | ||||
| - update createdFilamentId reset value to 65535 for better task handling | ||||
| - update createdVendorId reset value to 65535 for improved API handling | ||||
| - update spoolman ID reset values to 65535 for better API response detection | ||||
| - correct color_hex key usage and comment out unused date fields in spool creation | ||||
| - improve API state handling and vendor name formatting | ||||
| - enhance filament creation logic to include dynamic comments based on payload | ||||
|  | ||||
| ## [2.0.0-beta5] - 2025-08-30 | ||||
| ### Changed | ||||
| - update platformio.ini for beta version v2.0.0-beta5 | ||||
|  | ||||
| ### Fixed | ||||
| - call scale.tare() in setup after starting scale | ||||
|  | ||||
|  | ||||
| ## [2.0.0-beta4] - 2025-08-29 | ||||
| ### Changed | ||||
| - update platformio.ini for beta version v2.0.0-beta4 | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
| ; https://docs.platformio.org/page/projectconf.html | ||||
|  | ||||
| [common] | ||||
| version = "2.0.0-beta4" | ||||
| version = "2.0.0-beta9" | ||||
| to_old_version = "1.5.10" | ||||
|  | ||||
| ## | ||||
|   | ||||
| @@ -14,17 +14,39 @@ def get_version(): | ||||
|         return version_match.group(1) if version_match else None | ||||
|  | ||||
| def get_last_tag(): | ||||
|     """Get the last non-beta tag for changelog generation""" | ||||
|     try: | ||||
|         result = subprocess.run(['git', 'describe', '--tags', '--abbrev=0'],  | ||||
|         # Get all tags sorted by version | ||||
|         result = subprocess.run(['git', 'tag', '-l', '--sort=-version:refname'],  | ||||
|                               capture_output=True, text=True) | ||||
|         return result.stdout.strip() | ||||
|         if result.returncode != 0: | ||||
|             return None | ||||
|              | ||||
|         tags = result.stdout.strip().split('\n') | ||||
|          | ||||
|         # Find the first (newest) non-beta tag | ||||
|         for tag in tags: | ||||
|             if tag and not '-beta' in tag.lower(): | ||||
|                 print(f"Using last stable tag for changelog: {tag}") | ||||
|                 return tag | ||||
|          | ||||
|         # Fallback: if no non-beta tags found, use the newest tag | ||||
|         print("No stable tags found, using newest tag") | ||||
|         if tags and tags[0]: | ||||
|             return tags[0] | ||||
|         return None | ||||
|     except subprocess.CalledProcessError: | ||||
|         return None | ||||
|  | ||||
| def categorize_commit(commit_msg): | ||||
|     """Categorize commit messages based on conventional commits""" | ||||
|     lower_msg = commit_msg.lower() | ||||
|     if any(x in lower_msg for x in ['feat', 'add', 'new']): | ||||
|      | ||||
|     # 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: | ||||
|         return 'Breaking Changes' | ||||
|     elif any(x in lower_msg for x in ['feat', 'add', 'new']): | ||||
|         return 'Added' | ||||
|     elif any(x in lower_msg for x in ['fix', 'bug']): | ||||
|         return 'Fixed' | ||||
| @@ -34,6 +56,7 @@ def categorize_commit(commit_msg): | ||||
| def get_changes_from_git(): | ||||
|     """Get changes from git commits since last tag""" | ||||
|     changes = { | ||||
|         'Breaking Changes': [], | ||||
|         'Added': [], | ||||
|         'Changed': [], | ||||
|         'Fixed': [] | ||||
| @@ -55,7 +78,9 @@ def get_changes_from_git(): | ||||
|             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() | ||||
|                 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: | ||||
|   | ||||
							
								
								
									
										20
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								src/main.cpp
									
									
									
									
									
								
							| @@ -59,6 +59,7 @@ void setup() { | ||||
|  | ||||
|   // Scale | ||||
|   start_scale(touchSensorConnected); | ||||
|   scale.tare(); | ||||
|  | ||||
|   // WDT initialisieren mit 10 Sekunden Timeout | ||||
|   bool panic = true; // Wenn true, löst ein WDT-Timeout einen System-Panik aus | ||||
| @@ -249,6 +250,25 @@ void loop() { | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     // Handle successful tag write: Send weight to Spoolman but NEVER auto-send to Bambu | ||||
|     if (activeSpoolId != "" && weigthCouterToApi > 3 && weightSend == 0 && nfcReaderState == NFC_WRITE_SUCCESS && tagProcessed == false && spoolmanApiState == API_IDLE)  | ||||
|     { | ||||
|       // set the current tag as processed to prevent it beeing processed again | ||||
|       tagProcessed = true; | ||||
|  | ||||
|       if (updateSpoolWeight(activeSpoolId, weight))  | ||||
|       { | ||||
|         weightSend = 1; | ||||
|         Serial.println("Tag written: Weight sent to Spoolman, but NO auto-send to Bambu"); | ||||
|         // INTENTIONALLY do NOT set autoSetToBambuSpoolId here to prevent Bambu auto-send | ||||
|       } | ||||
|       else | ||||
|       { | ||||
|         oledShowIcon("failed"); | ||||
|         vTaskDelay(2000 / portTICK_PERIOD_MS); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     if(octoEnabled && sendOctoUpdate && spoolmanApiState == API_IDLE) | ||||
|     { | ||||
|       updateSpoolOcto(autoSetToBambuSpoolId); | ||||
|   | ||||
							
								
								
									
										174
									
								
								src/nfc.cpp
									
									
									
									
									
								
							
							
						
						
									
										174
									
								
								src/nfc.cpp
									
									
									
									
									
								
							| @@ -108,6 +108,37 @@ bool formatNdefTag() { | ||||
|   return buffer[2]*8; | ||||
| } | ||||
|  | ||||
| // Robust page reading with error recovery | ||||
| bool robustPageRead(uint8_t page, uint8_t* buffer) { | ||||
|     const int MAX_READ_ATTEMPTS = 3; | ||||
|      | ||||
|     for (int attempt = 0; attempt < MAX_READ_ATTEMPTS; attempt++) { | ||||
|         esp_task_wdt_reset(); | ||||
|         yield(); | ||||
|          | ||||
|         if (nfc.ntag2xx_ReadPage(page, buffer)) { | ||||
|             return true; | ||||
|         } | ||||
|          | ||||
|         Serial.printf("Page %d read failed, attempt %d/%d\n", page, attempt + 1, MAX_READ_ATTEMPTS); | ||||
|          | ||||
|         // Try to stabilize connection between attempts | ||||
|         if (attempt < MAX_READ_ATTEMPTS - 1) { | ||||
|             vTaskDelay(pdMS_TO_TICKS(25)); | ||||
|              | ||||
|             // Re-verify tag presence with quick check | ||||
|             uint8_t uid[7]; | ||||
|             uint8_t uidLength; | ||||
|             if (!nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 100)) { | ||||
|                 Serial.println("Tag lost during read operation"); | ||||
|                 return false; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     return false; | ||||
| } | ||||
|  | ||||
| String detectNtagType() | ||||
| { | ||||
|   // Read capability container from page 3 to determine exact NTAG type | ||||
| @@ -1285,10 +1316,11 @@ bool quickSpoolIdCheck(String uidString) { | ||||
|     memset(ndefData, 0, 20); | ||||
|      | ||||
|     for (uint8_t page = 4; page < 9; page++) { | ||||
|         if (!nfc.ntag2xx_ReadPage(page, ndefData + (page - 4) * 4)) { | ||||
|             Serial.print("Failed to read page "); | ||||
|             Serial.println(page); | ||||
|             return false; // Fall back to full read | ||||
|         if (!robustPageRead(page, ndefData + (page - 4) * 4)) { | ||||
|             Serial.print("FAST-PATH: Failed to read page "); | ||||
|             Serial.print(page); | ||||
|             Serial.println(" - falling back to full read"); | ||||
|             return false; // Fall back to full read if any page read fails | ||||
|         } | ||||
|     } | ||||
|      | ||||
| @@ -1358,10 +1390,11 @@ bool quickSpoolIdCheck(String uidString) { | ||||
|         memset(extraData, 0, 16); | ||||
|          | ||||
|         for (uint8_t page = 9; page < 13; page++) { | ||||
|             if (!nfc.ntag2xx_ReadPage(page, extraData + (page - 9) * 4)) { | ||||
|                 Serial.print("Failed to read additional page "); | ||||
|                 Serial.println(page); | ||||
|                 return false; | ||||
|             if (!robustPageRead(page, extraData + (page - 9) * 4)) { | ||||
|                 Serial.print("FAST-PATH: Failed to read additional page "); | ||||
|                 Serial.print(page); | ||||
|                 Serial.println(" - falling back to full read"); | ||||
|                 return false; // Fall back to full read if extended read fails | ||||
|             } | ||||
|         } | ||||
|          | ||||
| @@ -1655,10 +1688,60 @@ void writeJsonToTag(void *parameter) { | ||||
|   vTaskDelete(NULL); | ||||
| } | ||||
|  | ||||
| // Ensures sm_id is always the first key in JSON for fast-path detection | ||||
| String optimizeJsonForFastPath(const char* payload) { | ||||
|     JsonDocument inputDoc; | ||||
|     DeserializationError error = deserializeJson(inputDoc, payload); | ||||
|      | ||||
|     if (error) { | ||||
|         Serial.print("JSON optimization failed: "); | ||||
|         Serial.println(error.c_str()); | ||||
|         return String(payload); // Return original if parsing fails | ||||
|     } | ||||
|      | ||||
|     // Create optimized JSON with sm_id first | ||||
|     JsonDocument optimizedDoc; | ||||
|      | ||||
|     // Always add sm_id first (even if it's "0" for brand filaments) | ||||
|     if (inputDoc["sm_id"].is<String>()) { | ||||
|         optimizedDoc["sm_id"] = inputDoc["sm_id"].as<String>(); | ||||
|         Serial.print("Optimizing JSON: sm_id found = "); | ||||
|         Serial.println(inputDoc["sm_id"].as<String>()); | ||||
|     } else { | ||||
|         optimizedDoc["sm_id"] = "0"; // Default for brand filaments | ||||
|         Serial.println("Optimizing JSON: No sm_id found, setting to '0'"); | ||||
|     } | ||||
|      | ||||
|     // Add all other keys in original order | ||||
|     for (JsonPair kv : inputDoc.as<JsonObject>()) { | ||||
|         String key = kv.key().c_str(); | ||||
|         if (key != "sm_id") { // Skip sm_id as it's already added first | ||||
|             optimizedDoc[key] = kv.value(); | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     String optimizedJson; | ||||
|     serializeJson(optimizedDoc, optimizedJson); | ||||
|      | ||||
|     Serial.println("JSON optimized for fast-path detection:"); | ||||
|     Serial.print("Original:  "); | ||||
|     Serial.println(payload); | ||||
|     Serial.print("Optimized: "); | ||||
|     Serial.println(optimizedJson); | ||||
|      | ||||
|     inputDoc.clear(); | ||||
|     optimizedDoc.clear(); | ||||
|      | ||||
|     return optimizedJson; | ||||
| } | ||||
|  | ||||
| void startWriteJsonToTag(const bool isSpoolTag, const char* payload) { | ||||
|   // Optimize JSON to ensure sm_id is first key for fast-path detection | ||||
|   String optimizedPayload = optimizeJsonForFastPath(payload); | ||||
|    | ||||
|   NfcWriteParameterType* parameters = new NfcWriteParameterType(); | ||||
|   parameters->tagType = isSpoolTag; | ||||
|   parameters->payload = strdup(payload); | ||||
|   parameters->payload = strdup(optimizedPayload.c_str()); // Use optimized payload | ||||
|    | ||||
|   // Task nicht mehrfach starten | ||||
|   if (nfcReaderState == NFC_IDLE || nfcReaderState == NFC_READ_ERROR || nfcReaderState == NFC_READ_SUCCESS) { | ||||
| @@ -1678,9 +1761,44 @@ void startWriteJsonToTag(const bool isSpoolTag, const char* payload) { | ||||
|   } | ||||
| } | ||||
|  | ||||
| // Safe tag detection with manual retry logic and short timeouts | ||||
| bool safeTagDetection(uint8_t* uid, uint8_t* uidLength) { | ||||
|     const int MAX_ATTEMPTS = 3; | ||||
|     const int SHORT_TIMEOUT = 100; // Very short timeout to prevent hanging | ||||
|      | ||||
|     for (int attempt = 0; attempt < MAX_ATTEMPTS; attempt++) { | ||||
|         // Watchdog reset on each attempt | ||||
|         esp_task_wdt_reset(); | ||||
|         yield(); | ||||
|          | ||||
|         // Use short timeout to avoid blocking | ||||
|         bool success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, uidLength, SHORT_TIMEOUT); | ||||
|          | ||||
|         if (success) { | ||||
|             Serial.printf("✓ Tag detected on attempt %d with %dms timeout\n", attempt + 1, SHORT_TIMEOUT); | ||||
|             return true; | ||||
|         } | ||||
|          | ||||
|         // Short pause between attempts | ||||
|         vTaskDelay(pdMS_TO_TICKS(25)); | ||||
|          | ||||
|         // Refresh RF field after failed attempt (but not on last attempt) | ||||
|         if (attempt < MAX_ATTEMPTS - 1) { | ||||
|             nfc.SAMConfig(); | ||||
|             vTaskDelay(pdMS_TO_TICKS(10)); | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     return false; | ||||
| } | ||||
|  | ||||
| void scanRfidTask(void * parameter) { | ||||
|   Serial.println("RFID Task gestartet"); | ||||
|   for(;;) { | ||||
|     // Regular watchdog reset | ||||
|     esp_task_wdt_reset(); | ||||
|     yield(); | ||||
|      | ||||
|     // Skip scanning during write operations, but keep NFC interface active | ||||
|     if (nfcReaderState != NFC_WRITING && !nfcWriteInProgress && !nfcReadingTaskSuspendRequest && !booting) | ||||
|     { | ||||
| @@ -1691,10 +1809,16 @@ void scanRfidTask(void * parameter) { | ||||
|       uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };  // Buffer to store the returned UID | ||||
|       uint8_t uidLength; | ||||
|  | ||||
|       success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 500); | ||||
|       // Use safe tag detection instead of blocking readPassiveTargetID | ||||
|       success = safeTagDetection(uid, &uidLength); | ||||
|  | ||||
|       foundNfcTag(nullptr, success); | ||||
|        | ||||
|       // Reset activeSpoolId immediately when no tag is detected to prevent stale autoSet | ||||
|       if (!success) { | ||||
|         activeSpoolId = ""; | ||||
|       } | ||||
|        | ||||
|       // As long as there is still a tag on the reader, do not try to read it again | ||||
|       if (success && nfcReaderState == NFC_IDLE) | ||||
|       { | ||||
| @@ -1708,9 +1832,9 @@ void scanRfidTask(void * parameter) { | ||||
|  | ||||
|         oledShowProgressBar(0, octoEnabled?5:4, "Reading", "Detecting tag"); | ||||
|  | ||||
|         // Wait 1 second after tag detection to stabilize connection | ||||
|         Serial.println("Tag detected, waiting 1 second for stabilization..."); | ||||
|         vTaskDelay(1000 / portTICK_PERIOD_MS); | ||||
|         // Reduced stabilization time for better responsiveness | ||||
|         Serial.println("Tag detected, minimal stabilization..."); | ||||
|         vTaskDelay(200 / portTICK_PERIOD_MS); // Reduced from 1000ms to 200ms | ||||
|  | ||||
|         // create Tag UID string | ||||
|         String uidString = ""; | ||||
| @@ -1753,9 +1877,10 @@ void scanRfidTask(void * parameter) { | ||||
|              | ||||
|             for (uint8_t i = 4; i < 4+numPages; i++) { | ||||
|                | ||||
|               if (!nfc.ntag2xx_ReadPage(i, data+(i-4) * 4)) | ||||
|               if (!robustPageRead(i, data+(i-4) * 4)) | ||||
|               { | ||||
|                 break; // Stop if reading fails | ||||
|                 Serial.printf("Failed to read page %d after retries, stopping\n", i); | ||||
|                 break; // Stop if reading fails after retries | ||||
|               } | ||||
|               | ||||
|               // Check for NDEF message end | ||||
| @@ -1767,8 +1892,8 @@ void scanRfidTask(void * parameter) { | ||||
|  | ||||
|               yield(); | ||||
|               esp_task_wdt_reset(); | ||||
|               // Increased delay to ensure stable reading | ||||
|               vTaskDelay(pdMS_TO_TICKS(5)); // Increased from 1ms to 5ms | ||||
|               // Reduced delay for faster reading | ||||
|               vTaskDelay(pdMS_TO_TICKS(2)); // Reduced from 5ms to 2ms | ||||
|             } | ||||
|              | ||||
|             Serial.println("Tag reading completed, starting NDEF decode..."); | ||||
| @@ -1789,6 +1914,9 @@ void scanRfidTask(void * parameter) { | ||||
|           { | ||||
|             oledShowProgressBar(1, 1, "Failure", "Tag read error"); | ||||
|             nfcReaderState = NFC_READ_ERROR; | ||||
|             // Reset activeSpoolId when tag reading fails to prevent autoSet | ||||
|             activeSpoolId = ""; | ||||
|             Serial.println("Tag read failed - activeSpoolId reset to prevent autoSet"); | ||||
|           } | ||||
|         } | ||||
|         else | ||||
| @@ -1796,6 +1924,9 @@ void scanRfidTask(void * parameter) { | ||||
|           //TBD: Show error here?! | ||||
|           oledShowProgressBar(1, 1, "Failure", "Unkown tag type"); | ||||
|           Serial.println("This doesn't seem to be an NTAG2xx tag (UUID length != 7 bytes)!"); | ||||
|           // Reset activeSpoolId when tag type is unknown to prevent autoSet | ||||
|           activeSpoolId = ""; | ||||
|           Serial.println("Unknown tag type - activeSpoolId reset to prevent autoSet"); | ||||
|         } | ||||
|       } | ||||
|  | ||||
| @@ -1815,10 +1946,13 @@ void scanRfidTask(void * parameter) { | ||||
|         Serial.println("Tag nach erfolgreichem Lesen entfernt - bereit für nächsten Tag"); | ||||
|       } | ||||
|  | ||||
|       // Add a longer pause after successful reading to prevent immediate re-reading | ||||
|       // Add a pause after successful reading to prevent immediate re-reading | ||||
|       if (nfcReaderState == NFC_READ_SUCCESS) { | ||||
|         Serial.println("Tag erfolgreich gelesen - warte 5 Sekunden vor nächstem Scan"); | ||||
|         vTaskDelay(5000 / portTICK_PERIOD_MS); // 5 second pause | ||||
|         Serial.println("Tag erfolgreich gelesen - warte 3 Sekunden vor nächstem Scan"); | ||||
|         vTaskDelay(3000 / portTICK_PERIOD_MS); // Reduced from 5 seconds to 3 seconds | ||||
|       } else { | ||||
|         // Faster scanning when no tag or idle state | ||||
|         vTaskDelay(150 / portTICK_PERIOD_MS); // Faster scan interval | ||||
|       } | ||||
|  | ||||
|       // aktualisieren der Website wenn sich der Status ändert | ||||
|   | ||||
| @@ -122,8 +122,8 @@ void start_scale(bool touchSensorConnected) { | ||||
|   } | ||||
|  | ||||
|   scale.set_scale(calibrationValue); | ||||
|   vTaskDelay(pdMS_TO_TICKS(5000)); | ||||
|   scale.tare(); | ||||
|   //vTaskDelay(pdMS_TO_TICKS(5000)); | ||||
|   //scale.tare(); | ||||
|  | ||||
|   // Display Gewicht | ||||
|   oledShowWeight(0); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user