MCPcopy Index your code
hub / github.com/TheIcelandicguy/entity-manager

github.com/TheIcelandicguy/entity-manager @v3.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.0.0 ↗ · + Follow
500 symbols 1,798 edges 14 files 101 documented · 20% updated 2d agov3.1.0 · 2026-07-06★ 1111 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Entity Manager for Home Assistant

A powerful, feature-rich Home Assistant integration for managing entities across all your integrations. View, enable, disable, rename, analyze, and bulk-manage entities and firmware updates from a single modern interface. Version Home Assistant Downloads HACS License


Table of Contents


Features

Entity Management

  • View all entities organized by Integration > Device > Entity
  • Enable or disable individual entities with one click
  • Bulk enable/disable with confirmation dialogs (up to 500 entities at once)
  • Real-time entity state display with color-coded status badges
  • Alphabetically sorted integrations for easy navigation
  • Device grouping with entity counts per device and integration
  • One-click reveal — expanding an integration with exactly one device shows its entities immediately, no extra click on the device row
  • Every integration row carries a three-box header without needing to expand: Categories (Controls/Sensors/Configuration/Diagnostic/Connectivity counts), Hardware (device-type counts: ⚡ Hardware, ☁️ Cloud, 🔧 Virtual, 📱 Mobile, 🏠 System, ❓ Unknown), and Areas & Labels (area/floor chips + a deduped HA Label rollup)
  • Row actions (View Enabled / View Disabled / Enable All / Disable All / Accent color) live in a compact ⋯ menu on each integration and device card
  • Opt-in accent colors — integrations stay neutral by default; give the ones that matter a colored bar + tinted logo from the ⋯ menu (with a None option to remove it)
  • Device types you control — click an ❓ Unknown chip or badge to assign a type, reset to Auto anytime, and create your own types (name + color) that show up in chips, badges, and the Devices-view type filter
  • Bulk Rename (✎✎) and Bulk Labels (🏷️) buttons on every entity card — greyed out until 2+ entities are selected, then activate instantly as you check boxes

Entity Renaming

  • Click-to-rename any entity directly from the panel
  • Domain preservation -- the sensor., light., etc. prefix is locked and stays intact
  • Automatic propagation across automations, scripts, and helpers
  • Conflict validation prevents duplicate entity IDs
  • Bulk Rename panel — opens as a full-width inline view with a split layout: entity picker on the left (grouped by integration → device, collapsible, with per-group checkboxes) and the rename queue on the right
  • Live preview in the queue — each entry shows the original entity ID, an editable new name field, and a live preview of the resulting ID (turns green when changed)
  • Find & Replace at the top filters the entity picker in real time as you type; supports regex and case-sensitive matching
  • Domain preservation — the sensor., light., etc. prefix is always locked
  • Automatic propagation across automations, scripts, and helpers
  • Conflict validation prevents duplicate entity IDs

Search & Filtering

Entity Manager provides multiple ways to find exactly what you need:

Filter Type Description
Fuzzy Search Smart search with fuzzy matching -- type "snr" to find "sensor", matches characters in order across entity IDs, names, integrations, and devices
Text Search Instant search across entity IDs, names, integrations, and devices with real-time filtering
Domain Filter Dropdown to filter by entity type (sensor, light, switch, binary_sensor, etc.)
State Filter Toggle between All, Enabled, or Disabled with live entity counts
Integration Filter Click an integration in the sidebar to show only its entities
Label Filter Filter by Home Assistant labels
Filter Presets Save and load your favorite filter combinations

All filter buttons show live counts with color-coded indicators: green for enabled, red for disabled, amber for updates.

Sidebar Navigation

A collapsible sidebar provides quick access to every feature: - Actions -- ↺ History (combined undo/redo timeline dialog), Export, Import, Favorites, 🕐 Last Activity (recorder-backed timeline view), Activity Log, Column Settings; bulk selection actions: Enable Selected, Disable Selected, Assign Area (includes floor), View Selected, Deselect All - Labels -- Browse and filter by Home Assistant labels grouped by Devices, Areas, Automations, Scripts, Scenes, and Entities - Groups -- Switch between grouping modes: Integration (default), Room, Type, Floor, Device Name - Domains -- Filter by entity domain - Integrations -- Quick-filter list with integration icons from Home Assistant Brands - Help -- Built-in two-column guide with clickable table of contents Toggle the sidebar with the mobile menu button. Each section's collapse state is remembered between sessions.

Grouping

Group entities by different criteria to get the view you need: - Integration (default) -- organized by integration and device - Room / Area -- grouped by Home Assistant area assignments - Type -- grouped by entity domain (all sensors together, all lights together, etc.) - Floor -- grouped by Floor → Area → Device hierarchy - Device Name -- all devices with matching names merged into one group Switch modes from the Groups sidebar section. Your preference is saved between sessions.

Favorites

  • Star any entity to mark it as a favorite
  • Dedicated Favorites filter in the sidebar shows only starred entities
  • Favorites count displayed in the sidebar
  • Add/remove via right-click context menu or bulk selection
  • Persisted in browser local storage

Entity Aliases

  • Create custom display names for entities without renaming them
  • Non-destructive -- the actual entity ID is unchanged
  • Set aliases through the right-click context menu
  • Persisted in browser local storage

Labels Integration

  • View and filter by Home Assistant's built-in label system
  • Create new labels directly from Entity Manager
  • Labels sidebar split into six sub-groups: Devices, Areas, Automations, Scripts, Scenes, Entities — only shown when labels of that type exist
  • Clicking a label filters the main view, merging entity IDs from all matching groups
  • Label Suggestions in the Suggestions dialog — 21 semantic categories (Lights, Dimmable Lights, Switches, Temperature Sensors, Motion Sensors, etc.), including Power Monitoring, Energy Consumed, Energy Returned, and generic Energy Monitoring as four separate rows; one-click "Apply to N" creates and assigns the label in HA
  • Custom color picker — every label color picker (label editor, bulk labels, Assign dialog) offers the 19 HA presets plus a custom-hex swatch
  • Expandable list with refresh capability; label data cached for performance

Entity Analysis

Click any entity card to open the Entity Details dialog, whose tabs cover deep analysis: - Related tab -- other entities on the same device, plus Automation Impact: automations and scripts that appear to reference the entity - Registry tab -- detailed entity properties, metadata, and configuration - History tab -- entity state changes over the last 30 days

Activity Log

  • Reads real Home Assistant state history — shows every entity state change across your entire HA instance, not just Entity Manager actions
  • Events grouped by Room → Device → Entity with three collapsible levels
  • Time range: 1h (default), 6h, 24h, 7d
  • Search bar filters by entity ID, device, room, or state value
  • Room filter chips with All / None buttons — select specific rooms to focus on; selection persisted between sessions
  • Accessible from the Actions sidebar section

Last Activity Timeline

A dedicated inline view showing recorder-backed "last active" timestamps for every entity, automation, script, helper, template, and more — in one consolidated, searchable, filterable list: - 🕐 Last Activity button in the Actions sidebar section opens the full inline view - Entities split into 15 domain-based sections: 🤖 Automations, ⚡ Scripts, 🎛️ Helpers, 🧩 Templates, 💡 Lights, 🔌 Switches, 🌡️ Sensors, 🔍 Binary Sensors, 📺 Media Players, ❄️ Climate & Environment, 🔒 Security, 📷 Cameras, 📍 People & Tracking, 🔘 Controls, ⬆️ Updates, ⚙️ Other (sub-grouped by integration) - 9 time-range filter pills: All · Today · This Week · 1 Month · 3 Months · 6 Months · 1 Year · Older · Never — filter selection persisted between sessions - Live search across entity ID, friendly name, device name, and integration with 200ms debounce - Live count badge in the header updates as you filter/search - Timestamps come from the HA recorder database — survive HA restarts (unlike in-memory last_changed which resets when entities briefly go unavailable) - Automations and scripts use last_triggered from HA state attributes - Refresh button invalidates the 1-hour localStorage cache and fetches fresh recorder data - Clicking any row opens the full entity detail dialog

Undo / Redo

Full operation history with combined timeline dialog: - ↺ History button in the sidebar opens a combined undo/redo timeline dialog - Shows the full action history: redo actions (top, muted) → current state divider → undo actions (bottom) - Click any row in the dialog to jump to that point in history; the list refreshes in-place - Clear History button wipes both stacks (with confirmation) - Supports: enable, disable, rename, display name change, label changes, device/area assignment, config import, and all bulk operations - History survives page refresh (localStorage persistence)

Filter Presets

  • Save your current filter configuration (domain, search term, state) as a named preset
  • Load any saved preset to instantly restore a filter combination
  • Delete presets you no longer need
  • Quick-access buttons for each saved preset

Column Customization

Choose which columns to display in the entity table: - Entity ID - State - Device - Entity Category - Disabled By - Automations Count - Alias Toggle columns from the sidebar Columns button. Preferences are saved between sessions.

Devices View

A dedicated Devices tab shows all devices sorted alphabetically and organised by category: - Every device card has the same rich header as integration rows: name + stats, Categories / Hardware / Areas & Labels boxes, and a ⋯ actions menu (View Enabled / View Disabled / Enable All / Disable All) - Device type filter in the toolbar: ⚡ Hardware, ☁️ Cloud, 🔧 Virtual, 📱 Mobile, 🏠 HA System, ❓ Unknown — plus any custom types you've created - Assignable device types — Unknown badges are clickable; pick one of the built-in types, one of your own custom types, or Auto (heuristic detection). Manually assigned badges show a ✎ and can be changed or reset anytime - Devices with the same display name are merged into a single group — useful for Shelly multi-relay devices where all channels share one name - Every device (and same-name group) is split into standard HA category cards: ⚡ Controls, 📊 Sensors, ⚙️ Configuration, 🔧 Diagnostic, 📡 Connectivity with per-card entity counts and enabled/disabled breakdowns - Cards are independently collapsible — opening one never affects others - Entities whose device has a configuration_url show a 🔗 button to open the device web UI in a new tab - Offline only toggle to focus on devices whose entities are all unavailable

Entity Detail Dialog

Click any entity card (not a button or checkbox) to open a full detail dialog with everything Home Assistant knows about that entity — organised as a pinned hero + five tabs.

Hero Header (always visible while tab content scrolls): - Type chips top-left: domain, platform, Disabled badge (if applicable), Area name - Friendly name centered, with an inline pencil to rename (saves via update_entity_display_name) - Entity ID in monospace below the name - State displayed as a colour-coded pill (green for on/open, orange for unavailable/unknown, grey for off), with an inline Toggle / Press button for controllable entities, and Last changed / Last updated timestamps in locale-aware format

Tabs (count badges show attribute/related/history totals; the Related badge fills in as the automation scan complete

Core symbols most depended-on inside this repo

_escapeHtml
called by 316
custom_components/entity_manager/frontend/entity-manager-panel.js
_icon
called by 223
custom_components/entity_manager/frontend/entity-manager-panel.js
_showToast
called by 212
custom_components/entity_manager/frontend/entity-manager-panel.js
_escapeAttr
called by 185
custom_components/entity_manager/frontend/entity-manager-panel.js
add
called by 81
custom_components/entity_manager/frontend/entity-manager-panel.js
updateView
called by 46
custom_components/entity_manager/frontend/entity-manager-panel.js
_collGroup
called by 41
custom_components/entity_manager/frontend/entity-manager-panel.js
_saveToStorage
called by 38
custom_components/entity_manager/frontend/entity-manager-panel.js

Shape

Method 399
Function 89
Route 7
Class 5

Languages

TypeScript80%
Python20%

Modules by API surface

custom_components/entity_manager/frontend/entity-manager-panel.js398 symbols
tests/test_websocket_api.py43 symbols
custom_components/entity_manager/websocket_api.py39 symbols
custom_components/entity_manager/voice_assistant.py5 symbols
custom_components/entity_manager/__init__.py5 symbols
tests/test_const.py4 symbols
custom_components/entity_manager/frontend/tests/entity-manager-panel.test.js3 symbols
custom_components/entity_manager/config_flow.py2 symbols
custom_components/entity_manager/frontend/tests/vitest.setup.js1 symbols

For agents

$ claude mcp add entity-manager \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page