All notable changes to the Home Assistant Entity Visualizer will be documented in this file.
- 🔧 Template Compiler Integration: Now uses Home Assistant's built-in template compiler for dependency detection
- ✨ More Reliable: Uses
Template.async_render_to_info()- the same method Developer Tools uses - 📊 Better Coverage: Handles complex templates with multi-line syntax, nested structures, all Jinja2 features
- Template Select Entities: Now correctly detects dependencies in template select helpers (Issue #15)
- All Template Types: Improved detection for sensors, binary sensors, switches, buttons, numbers, text
- Automation Templates: Better handling of template conditions in automations and scripts
- Complex Templates: Reliably parses templates that regex patterns would miss
- Added
_extract_template_entities_using_ha()usingTemplate.async_render_to_info() - Updated all template parsing to use HA's compiler instead of regex
- Graceful fallback to regex parsing if template compilation fails
- Template dependency detection now stays in sync with HA's capabilities
- 🎛️ Config Flow Enabled: Integration can now be added via Settings → Integrations → Add Integration → Entity Visualizer
- 🔧 Root Cause Solution: Fixed the core issue where
config_flow: falseprevented integration initialization for most users - 📱 User-Friendly Setup: Clear, helpful messages guide users through the setup process
- ✨ Setup Description: Rich description in config flow explains what users get and how to use it
- 🎯 Clear Instructions: Step-by-step guidance from installation to accessing the panel
- 🔄 Backward Compatibility: Existing YAML configurations still supported via automatic import
- 📊 Enhanced Logging: Comprehensive diagnostics to help troubleshoot any remaining issues
- 🔍 File Verification: Automatic checks for missing frontend files with clear error messages
- ✅ Setup Confirmation: Clear success messages with emojis to confirm successful installation
- 🧹 Better Cleanup: Improved error handling and cleanup on failed installations
- Config Flow Implementation: Added user-friendly
config_flow.pywith detailed setup messaging - Dual Setup Support: Handles both UI config entries and YAML imports seamlessly
- Frontend File Validation: Checks for missing www directory and JS files before panel registration
- Diagnostic Logging: All setup steps now logged with clear success/failure indicators
- 📍 Panel Registration Robustness: Attempted fix for side menu/panel not appearing after installation (Issue #11)
- 🔄 Setup Logic Improvement: Made panel registration more robust to handle edge cases during HA restarts
⚠️ Experimental: This is an attempted fix based on code analysis - unable to reproduce the issue locally
- Added
_ensure_panel_registered()function to retry panel registration in edge case scenarios - Modified setup logic to always verify panel registration even when services are already initialized
- Enhanced error handling and logging around panel registration
- Note: If issue persists, we need more detailed reproduction steps and log files
- 🔄 Persistent User Preferences: Show Areas, Depth, and Layout settings now remembered between sessions
- 💾 Client-Side Storage: All preferences stored locally using browser localStorage - completely private
- ⚡ Instant Preference Saving: Settings automatically saved as soon as user changes them
- 🎯 Smart Defaults: Preferences gracefully fall back to sensible defaults when localStorage unavailable
- 🛡️ Error Resilience: Comprehensive error handling for localStorage edge cases and corrupted data
- 📱 Cross-Session Experience: Your preferred settings persist across browser restarts and HA reboots
- Added
loadUserPreferences(),saveUserPreferences(), andapplyUserPreferences()methods - Implemented localStorage-based preference management with validation and sanitization
- Enhanced all option event handlers to save preferences immediately on change
- Removed hardcoded HTML defaults in favor of dynamic preference application
- "No visualisations" Error: Fixed critical error where graph visualization failed with "'NoneType' object is not iterable" (Issue #10)
- Defensive Programming: Added comprehensive error handling and validation in both WebSocket API and graph service
- Safe Fallbacks: Graph service now returns empty safe results on any error instead of corrupted data
- Added try-catch blocks around all graph building methods in
graph_service.py - Added validation for nodes and edges data structures in
websocket_api.py - Enhanced error logging to help identify root causes of graph building failures
- Improved data structure validation before JSON serialization
- CRITICAL: Home Assistant Boot Failures: Fixed critical issue where v0.8.8 prevented HA from starting
- Safer Auto-Initialization: Restored safety checks while preserving automatic sidebar setup
- Duplicate Initialization Prevention: Added checks to prevent conflicts between setup methods
- Comprehensive Error Handling: Proper cleanup on initialization failures
- Restored early return checks in
async_setup()for safer initialization - Implemented shared
_setup_integration()logic to prevent YAML/config entry conflicts - Added comprehensive error handling and cleanup on failures
- Preserved automatic sidebar functionality with safer implementation
- Bidirectional Automation Relationships: Fixed automation relationships not working from devices, areas, zones, labels, and scenes (Issue #5)
- Automatic Sidebar Setup: Removed config flow requirement - sidebar now appears automatically after installation (Issues #8, #9)
- Added automation relationship checks to all special node handlers to prevent early return bugs
- Removed
config_flow: trueand made integration auto-setup when files are present - Architectural fix ensures universal relationship detection across all node types
- Zone Self-References: Zones no longer show relationships to themselves (Issue #6)
- Device Reference Detection: Enhanced automation parsing to detect device ID references
- Added self-reference filtering in zone relationship methods
- Improved device ID detection in automation configurations
- Double-Click Navigation: Fixed regression where double-click stopped working after adding entity dialogs (Issue #4)
- Implemented proper click/double-click event handling with 300ms timeout
- Single-click opens dialogs, double-click navigates, no conflicts
- Scene Entity Relationships: Enhanced scene parsing to handle multiple configuration formats (Issue #3)
- Support for
entity_data,states, andsnapshotscene formats - UUID resolution for scene entities
- Comprehensive debug logging for scene troubleshooting
- Native HA Entity Dialogs: Single-click entities to open Home Assistant more-info dialogs
- Seamless integration with Home Assistant's native UI
- Technical debug panel (production-ready interface)
- Dialog z-index layering issues
- Event handling conflicts between dialogs and navigation
- Label System Integration: Complete support for Home Assistant labels
- Label nodes appear in graph with 🏷️ icon and light yellow styling
- Search functionality includes labels with usage statistics
- Bidirectional navigation: click labels to see labeled items, click items to see their labels
- Support for entity labels, device labels, and area labels
- Cross-version compatibility with manual filtering fallbacks
- Label registry compatibility errors across different Home Assistant versions
- Entity validation for label nodes to prevent "not found" errors
- Import scope issues with registry helper functions
- Added label registry integration with
_get_*_for_labelcompatibility methods - Implemented manual filtering approach for universal HA version support
- Updated frontend visualization to support label relationship patterns
- Enhanced WebSocket API to handle label node validation
- Professional visual design overhaul with entity icons
- Advanced layout algorithms with edge crossing minimization
- Project organization with proper test/debug structure
- Comprehensive documentation update
- Automation relationship detection with UUID resolution
- Symmetrical navigation for all relationship types
- Visual design consistency across all node types
- Complete automation relationship support
- Symmetrical bidirectional navigation
- Focus node highlighting
- Advanced error handling and logging
- Visual design improvements
- Entity icons and clean styling
- Enhanced user interface
- 2-level neighborhood depth
- Zone support and geographic relationships
- Consistent arrow directions
- Device and area node support
- Initial release
- Basic entity relationship visualization
- Search functionality
- Device and area relationships