Skip to content

Releases: delgusto/ha-bulk-entity-editor

v0.2.0 — Mobile, native-app dropdowns, dead-entity filter

Choose a tag to compare

@delgusto delgusto released this 19 Apr 02:51

Big UX pass. Highlights:

Added

  • "Never received data" activity filter and a dashed-grey "No data" state pill — spot entities that exist in the registry but whose integration has never pushed a value. Handy for culling dead entities from integrations like FoxESS after hardware changes.
  • Mobile-responsive layout — 56px app bar with a hamburger that opens the sidebar, filters collapse to a single "Filters" button with an active-count badge, entity table hides secondary columns with the entity ID shown inline under the name, action bar is a clean 2×2 grid.
  • Version footerv0.2.0 · built <time> line at the bottom of the panel in your local timezone, so you can always verify which build is loaded.
  • Custom dropdown component replacing native <select> in dialogs and the filter bar. Fixes two WKWebView bugs in the iOS/macOS HA apps: picking an option no longer closes the parent modal, and the dropdown reopens correctly after a selection.
  • Clear (×) button inside the filter search input.

Changed

  • Panel styling matches HA native pages — uses --app-header-*, --ha-card-*, and --primary-background-color theme variables so the panel inherits whichever theme the user has set.
  • Filter bar collapse breakpoint raised to 1440px. Below that, the 5 dropdowns crowd each other; they now collapse to a single Filters button until there's genuinely room for them inline.
  • Asset URL cache-bust — the panel JS is served through a dynamic HTTP view that sets Cache-Control: no-cache + an ETag derived from the bundle's mtime, so dropping a new bundle over Samba and hard-refreshing Just Works without an HA restart.

Fixed

  • Selecting an option in a native <select> inside a modal no longer closes the whole modal (macOS + iOS).
  • Rename dialog's prefix/suffix text field no longer balloons to 180px tall.
  • Entity table rows align cleanly even with long entity IDs.

Upgrade notes: no breaking changes. Minimum HA version is still 2026.3.0.

v0.1.1 — Brand assets

Choose a tag to compare

@delgusto delgusto released this 18 Apr 11:50

Added

  • Brand assets (icon + logo) shipped in-repo so Home Assistant renders the integration's icon in HACS, Settings, and the sidebar.

Changed

  • Minimum Home Assistant version bumped to 2026.3.0 to support the in-repo brand assets introduced in that release. (Older HA versions can still install but will not display the icon.)

v0.1.0 — Initial release

Choose a tag to compare

@delgusto delgusto released this 18 Apr 10:00

Initial release of Bulk Entity Editor — a Home Assistant custom integration that adds a sidebar panel for multi-selecting entities and bulk-editing them.

Features

  • Filter by search, domain, area, integration, state, and activity (including "Never received data" for finding dead entities).
  • Multi-select with sticky selection across filter changes.
  • Bulk actions:
    • Change area
    • Enable / disable
    • Show / hide
    • Rename — friendly name or entity_id, with prefix, suffix, and find/replace (plain or regex). Live preview, collision detection, and a warning banner before renaming IDs.
  • Progress + retry — parallel execution (8 concurrent updates), per-entity results, retry-just-the-failures.
  • Live updates — subscribes to entity/area/device registry events for real-time table refresh.
  • Virtualized table — handles thousands of entities.
  • Admin-only access.

Install via HACS

HACS → Integrations → ⋮ → Custom repositories → add https://github.com/delgusto/ha-bulk-entity-editor with category Integration → install → restart HA → Settings → Devices & Services → Add Integration → "Bulk Entity Editor".

Requirements

Home Assistant 2024.7.0 or later.

Known notes

  • Renaming entity_ids does not auto-update automations/scripts/dashboards — the rename dialog shows a warning banner before you confirm.
  • The "Never received data" filter reflects state at the moment the panel loaded.