What's Changed
EntityMap v1.1.0 turns the graph panel into a full exploration tool and makes scanning faster and more reliable, plus it fixes the sidebar panel auth issue from v1.0.x.
✨ New
- Graph export service
entitymap.exportreturns the full graph, fragility findings, and last-scan metadata as a service response. - Graph panel exploration: node sizing by importance, search-match highlighting, focus mode (double-click a node to isolate its neighborhood), area and domain filters, path-finding between two nodes, an on-canvas minimap, zoom controls (in / out / fit / reset), PNG export, a "showing N of M nodes" notice for capped graphs, and a performance mode for very large graphs.
- Accessibility and theming: full keyboard navigation, a screen-reader live region, dark-mode polish, a colorblind-safe palette toggle, and a compact density toggle (palette and density are remembered).
- Clearer edges: curved routing for parallel edges and direction arrowheads.
- New
Last scanattributes:status,duration_seconds, andadapter_errors. - Summary sensors restore their last value across restarts, so the dashboard is not blank while the first post-restart scan runs.
- Broader test coverage for the automation, script, scene, and template adapters, plus the hierarchy builder, sensors, and graph builder.
🛠️ Improved
- Template entities that reference other entities no longer appear unconnected (the template adapter now resolves references from each helper's own config entry).
- The first scan runs immediately when the integration is added while Home Assistant is already running.
- Registry-change rescans are debounced (15 second cooldown) so a burst of changes collapses into a single scan.
- Fragility findings are computed once per scan and reused by the sensors, panel, and Repairs.
- Shorter summary-sensor names: Nodes, Dependencies, Issues, Last scan.
🐛 Fixed
- Sidebar panel loads without an auth error: the module is served as a public static frontend path. Resolves #1.
- Detail drawer no longer stays open and empty when switching tabs or changing filters.
- Type filters now apply consistently in the Issues view and are hidden in the Hierarchy view.
🧹 Internal
- WebSocket API moved to
websocket.py, hierarchy builder tohierarchy.py, shared adapter parsing toadapters/_config_parse.py. - Frontend panel split into ES-module mixins; several large functions broken into smaller single-purpose units (no behavior change).
Upgrade notes
- Update through HACS, then restart Home Assistant so the new code loads. Summary sensors keep their last values across the restart.
- The graph panel loads D3.js from a CDN (cdn.jsdelivr.net) on first load, so the visualization will not render on a fully offline instance.
- Requires Home Assistant 2025.1.0 or newer. One config entry per installation.
Full Changelog: v1.0.1...v1.1.0