3.0.0
Major New Features & User Experience Improvements
Complete UI/UX Overhaul
New Modern Setup Flow:
- Implemented a step-by-step wizard interface with progress tracking
- Added visual feedback with icons and status indicators
- Streamlined the setup process with better validation and error handling
- Added timezone selection with automatic DST handling
- Improved WiFi network scanning with signal strength indicators
Redesigned Settings Page:
- Created a modern sidebar navigation system
- Organized settings into logical sections: Overview, Connections, Firmware, Advanced, etc.
- Added real-time WebSocket updates for live data
- Implemented dark mode support with persistent theme selection
- Added responsive design for mobile devices
Enhanced Connection Management:
- Replaced basic checkboxes with modern toggle switches (Bootstrap-style)
- Added switches directly on connection cards for quick enable/disable
- Implemented unsaved changes tracking with confirmation dialogs
- Added visual feedback for modified settings (yellow border/glow)
- Save button appears only when changes are made
Robust OTA Update System
Memory-Optimized OTA Process:
- Implemented reboot-based OTA to maximize available heap memory
- OTA now sets pending flags and reboots before downloading
- Minimal services run during OTA to prevent memory exhaustion
OTA Rollback Protection:
- Added ESP-IDF rollback protection with automatic image verification
- Dual storage of OTA state in both NVS and LittleFS for redundancy
- Boot loop detection - automatically rolls back after 3 failed boots
- 60-second stability check before marking new firmware as valid
- Tracks boot count to detect and prevent boot loops
Enhanced User Feedback:
- Real-time OTA progress via WebSocket
- Persistent loading overlay that survives page refreshes
- Automatic page refresh at key points during update
- Clear status messages throughout the update process
Security & Certificate Updates
Updated TLS Certificates:
- Added new root CA certificates for secure connections
- Improved certificate validation for OTA updates
- Enhanced security for cloud service connections
JWT Authentication:
- Implemented proper JWT token handling for API security
- Added session management with secure token storage
- Password-protected settings with session persistence
Code Architecture Improvements
Major Refactoring:
- Separated HTTP routes into modular files for better maintainability
- Created dedicated modules for different functionality areas
- Improved error handling and logging throughout
- Better memory management with heap defragmentation
WebSocket Implementation:
- Real-time updates for power flow data
- Live connection status monitoring
- OTA progress tracking
- Automatic reconnection with exponential backoff
Task Management:
- Improved FreeRTOS task coordination
- Better synchronization with event groups
- Reduced stack usage and memory footprint
Fixes & Improvements
Critical Boot Issue:
- Fixed crash when device gets IP address during OTA pending boot
- Resolved mdns_group event group initialization order
- Added skip_hostname_setup flag for OTA boot path
WebSocket Stability:
- Fixed WebSocket disconnection handling during OTA
- Improved reconnection logic with better error handling
- Added connection state persistence across page refreshes
UI/UX Fixes:
- Fixed "Check Updates" button to navigate to correct firmware section
- Improved form validation and error messages
- Better handling of offline mode restrictions
Memory Management:
- Fixed memory leaks in WebSocket handling
- Improved heap fragmentation management
- Better resource cleanup on task deletion
Technical Enhancements
Network Improvements:
- Better WiFi reconnection logic
- Improved Ethernet support
- Enhanced mDNS service discovery
API Enhancements:
- New redirect routes for legacy URLs
- Better error responses with proper HTTP status codes
- Improved JSON parsing and validation
Monitoring & Diagnostics:
- Enhanced logging with better categorization
- Improved error reporting
- Better system health monitoring
Migration Notes
- Users upgrading from 2.x will experience a completely new interface
- All settings are preserved during upgrade
- OTA updates now require a reboot cycle for safety
- Legacy URLs (/standard_settings, /ota, /offline_settings) redirect to new interface