A powerful Home Assistant custom integration that visualizes your smart home as an interactive graph, revealing the hidden relationships between your entities, devices, areas, automations, groups, and zones.
Visualizing relationships in an en suite bathroom setup - showing devices, entities, areas, and their connections
Exploring solar system entities with templates, sensors, and automation relationships
- Clean Design: Consistent rounded boxes with subtle light color palette
- Entity Icons: Visual icons for each domain (π‘ lights, π switches, π€ automations, etc.)
- Focus Highlighting: Enhanced visual feedback for the currently selected entity
- Dual Layout Modes: Hierarchical for simple graphs, force-directed for complex networks
- Native HA Integration: Single-click opens Home Assistant entity details dialogs
- Double-Click Navigation: Smooth, intuitive entity exploration through relationship networks
- Device Relationships: Physical device to entity mappings
- Area & Zone Hierarchies: Spatial organization and containment with optional filtering
- Group Support: Light groups, switch groups, media player groups, and traditional groups
- Label Organization: Home Assistant label-based groupings and classifications
- Automation Dependencies: Complete trigger and control relationship chains with UUID resolution
- Template References: Advanced parsing for complex multi-line Jinja2 templates
- Alert Monitoring: Home Assistant alert entity relationships
- Bidirectional Navigation: True symmetrical relationship discovery and visualization
- Interactive Navigation: Double-click any node to explore its neighborhood smoothly
- 2-Level Depth: Rich context showing extended relationship networks
- Intelligent Layout Selection: Automatic hierarchical vs force-directed algorithm selection
- Area Filtering: Toggle areas on/off to simplify or expand relationship views
- Search & Discovery: Powerful search across entities, devices, areas, zones, groups, and labels
- Enhanced Edge Bundling: Clean handling of bidirectional relationships with proper grouping
- Consistent Arrows: Logical relationship directions (container β contained, actor β target)
- UUID Resolution: Handles complex automation configurations correctly
- Entity Type Recognition: Supports all HA entity domains with appropriate styling
- Real-time Updates: Live WebSocket API integration
- Professional Integration: Native HA sidebar panel with authentication
- Impact Analysis: Understand which entities are connected before making changes
- Automation Debugging: Visualize trigger β automation β control chains
- Device Organization: See device-to-entity mappings and area hierarchies
- Label Management: Explore label-based groupings and organizational structures
- Orphan Detection: Identify isolated or unused entities
- Area Planning: Visualize and optimize room/area organization
- Label Strategy: Design and refine your labeling system for better organization
- Automation Design: Understand existing patterns before creating new automations
- Template Dependencies: See which entities your templates depend on
- System Understanding: Get a bird's-eye view of your smart home ecosystem
- Broken Automations: Trace automation dependencies and control flows
- Missing Relationships: Identify entities that should be connected but aren't
- Complex Debugging: Navigate multi-level entity relationships quickly
- Install HACS if you haven't already
- Add this repository to HACS as a custom repository
- Download "Home Assistant Entity Visualizer"
- Restart Home Assistant
- β "Entity Visualizer" appears automatically in your sidebar
- Copy the
custom_components/ha_visualiser/
directory to your HAcustom_components/
folder - Restart Home Assistant
- β "Entity Visualizer" appears automatically in your sidebar
Note: As of v0.8.8, the integration sets up automatically after file installation. No manual configuration through Settings > Integrations is required!
- Open the Panel: Click "Entity Visualizer" in your HA sidebar
- Search: Type in the search box to find entities, devices, areas, zones, or labels
- Entity Details: Single-click any entity to open its native Home Assistant details dialog
- Navigate: Double-click any node to explore its neighborhood relationships
- Explore: Continue navigating through different areas of your smart home
- Nodes: Represent entities, devices, areas, zones, labels, and automations
- Arrows: Show relationship directions (container β contained, label β labeled, trigger β automation β control)
- Icons: Visual indicators for entity types (π‘ππ€π ππ·οΈ)
- Colors: Subtle color coding by domain with light, professional palette
- Focus: Selected entities are highlighted with enhanced borders and styling
- 2-Level Exploration: See not just direct relationships but extended networks
- Area Filtering: "Show Areas" checkbox to toggle area relationships on/off (detailed documentation)
- Layout Toggle: Switch between hierarchical and force-directed layouts for optimal visualization
- Symmetrical Navigation: Relationships work bidirectionally for complete context
- Group Support: Comprehensive support for all Home Assistant group types
- Enhanced Template Parsing: Support for complex multi-line Jinja2 templates with advanced regex
- Real-time Updates: Live reflection of changes in your HA setup
- Home Assistant: 2023.7 or later
- Browser: Modern web browser with JavaScript enabled
- Network: WebSocket support (standard in all modern browsers)
- Backend: Python integration using HA's native APIs
- Frontend: JavaScript with vis.js for graph visualization
- Communication: Real-time WebSocket API
- Data Sources: Entity registry, device registry, area registry, label registry, automation configs
- Device β Entity: Physical device contains multiple entities
- Area β Device/Entity: Spatial organization and room assignments (with filtering)
- Zone β Entity: Geographic/proximity-based relationships
- Label β Entity/Device/Area: Organizational labeling and classification
- Group β Entity: Group containment (light groups, switch groups, media player groups)
- Entity β Group: Group membership relationships (bidirectional)
- Entity β Automation: Trigger relationships (state changes activate automations)
- Automation β Entity: Control relationships (automations modify entity states)
- Template β Entity: Dependency relationships (templates reference other entities)
- Alert β Entity: Alert monitoring relationships
- Lazy Loading: Only loads neighborhoods on demand
- Efficient Algorithms: Optimized graph traversal and layout algorithms
- Caching: Smart caching of relationship data
- Responsive: Handles large smart home setups efficiently
This project includes comprehensive testing infrastructure:
# Run unit tests
python tests/test_runner.py
# Validate code syntax
python tests/validate_code.py
# Test file serving
bash tests/test_file_serving.sh
See /tests/README.md
for detailed testing documentation.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork and clone the repository
- Copy to your HA
custom_components/
directory for testing - Make your changes
- Run the test suite
- Submit a pull request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Please use the GitHub Issues to report bugs or request features.
- Built on the excellent vis.js visualization library
- Inspired by the Home Assistant community's need for better entity relationship visualization
- Thanks to all contributors and users who provided feedback and testing
This project is actively maintained and production-ready. Current version: 0.8.10
- π§ Graph Loading Fix: Fixed critical "'NoneType' object is not iterable" error preventing visualization
- π‘οΈ Defensive Programming: Added comprehensive error handling throughout graph building pipeline
- π Safe Fallbacks: Graph service returns empty results instead of crashing on errors
- π§ Boot Failure Fix: Fixed critical issue where v0.8.8 prevented Home Assistant from starting
- π‘οΈ Safe Auto-Setup: Restored initialization safety checks while preserving automatic sidebar functionality
- β‘ Same-Day Fix: Immediate hotfix release with comprehensive error handling and cleanup
- β Bidirectional Relationships Fixed: Automation relationships now work properly from devices, areas, zones, labels, and scenes
- β Automatic Installation: Sidebar appears automatically after file installation - no manual setup required
- ποΈ Architecture: Fixed early return bugs that prevented universal relationship detection
- π±οΈ Native HA Entity Dialogs (v0.8.4): Single-click entities to open Home Assistant details dialogs
- π Double-Click Navigation (v0.8.6): Fixed regression where double-click navigation stopped working
- π Enhanced Scene Support (v0.8.5): Comprehensive scene entity relationship detection
- π Zone Self-Reference Fix (v0.8.7): Zones no longer show confusing relationships to themselves
- β HACS Compliance & Scene Support (v0.8.3): Fixed HACS path conflicts and scene relationships
- β Comprehensive Group Support: Light groups, switch groups, media player groups
- β Advanced Template Parsing: Complex multi-line Jinja2 template support
- β Helper Entity Detection: Change-type helpers and proxy relationships
- β Enhanced Navigation: Bidirectional relationship discovery
- π Performance optimization for very large installations (>1000 entities)
- π Dashboard entity relationships
- π Custom relationship definitions
- π Saved views and layouts