Skip to content

Releases: nickknissen/HomeAssistantCommandPalette

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 06:41

Entity lists open quickly on large Home Assistant instances.

Performance

Opening a page with a thousand entities took several seconds, every time, and the extension's memory grew with each refresh. Two causes:

  • The details pane was built for every row up front, so each numeric sensor fetched 24 hours of history and each camera fetched a snapshot before you had selected anything. Details are now built when you select a row.
  • Every entity was handed to Command Palette on every render, which costs roughly 19 cross-process property reads per row. Entity pages now hand over 100 rows at a time and reuse the same row objects between renders, which also stops the memory growth.

Changes you will notice

  • All Entities opens on the most recently changed entities and loads more as you scroll.
  • Search runs inside the extension across every entity, and now matches the entity ID and area as well as the friendly name. Ranking is exact name, then prefix, then word start, then substring, then entity ID, then area. Every word you type has to match.
  • Sensor trend lines and camera snapshots load when you select a row, so the details pane fills in a moment later.
  • Camera rows on mixed pages (such as All Entities) show a camera icon instead of a live thumbnail until selected. The Cameras page is unchanged.

Fixes

  • History requests that failed, for example when the recorder integration is disabled, were retried on every render. They are now cached briefly.
  • A busy instance could postpone the list refresh indefinitely, rebuilding the list underneath you while typing.

Install

  • Sideload signed MSIX: download HomeAssistantCommandPalette_1.1.0.0.msixbundle below and run Add-AppxPackage .\HomeAssistantCommandPalette_1.1.0.0.msixbundle.
  • Microsoft Store: search for "Home Assistant Command Palette".

Thanks to @Chaphasilor for reporting the slowness in #32.

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 28 May 12:30

Initial release of Home Assistant Command Palette — a PowerToys Command Palette extension for searching and controlling your Home Assistant instance from the keyboard.

Features

  • Per-domain pages: All Entities, Lights, Switches, Covers, Fans, Media Players, Scenes, Scripts, Automations, Sensors, Binary Sensors, Climate, Buttons, Persons, Zones, Cameras, Vacuums, Helpers, Updates, Weather, plus device-class filters (Batteries, Doors, Windows, Motions).
  • Right default action per domain: toggle for lights/switches/fans/covers/media players, turn_on for scenes and scripts, press for buttons, dashboard open for everything else.
  • Calendar page listing upcoming events from configured HA calendars.
  • Assist page for free-form natural-language commands via /api/conversation/process.
  • Run Action page that calls any HA service with form-collected fields.
  • Dock band surfacing pending Repairs and Updates with a live pending-count tag.
  • Camera and entity-picture previews inside the list.
  • Connection Check page for setup diagnostics.
  • Custom HTTP headers (e.g., for Cloudflare Access).
  • Optional "ignore TLS certificate errors" toggle for self-signed LAN certs.

Install

Privacy

Local-only. No telemetry, no analytics. The extension only contacts the Home Assistant URL you configure. Full policy: https://s-nissen.dk/privacy/homeassistant-command-palette.html

Acknowledgements

Inspired by the Raycast Home Assistant extension by tonka3000.

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 02 May 18:37

Highlights

  • Refactored entity-icon dispatch behind a pure rules + asset-fetcher pipeline. Adding a new domain icon is now a one-line registration; rich rules are sealed sync classes that take only an HaEntity.
  • Connection Check now shows the extension version (with commit hash) at the top, so bug reports include it automatically.

Internal

  • New Pages/Domains/IconPipeline/ module: IIconRules (pure), IEntityAssetFetcher (impure port for person avatars), CompositeIconResolver.
  • 18 BuildIcon overrides removed from behaviors; page-level ResolveEntityIcon collapses into the fetcher adapter.
  • 195 tests passing.

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 01 May 20:27

New top-level commands

  • Calendar — flat upcoming-events page across all calendars for the next 7 days, sorted chronologically. Per-calendar coloured tags, day labels (Today / Tomorrow / weekday).
  • Assist — free-form HA Assist conversation. CmdPal search bar acts as the input; speech response renders in the details side pane as Markdown.

New domain actions

  • Lights — RGB colour picker (Red/Orange/Yellow/Green/Cyan/Blue/Purple/Pink/White), gated by supported_color_modes. Color-temp Kelvin range row (mireds fallback for older bulbs).
  • Media players — Shuffle toggle, Repeat (off/one/all), Source / Sound-mode submenus. Position / Duration as M:SS / M:SS, advances client-side from media_position_updated_at while playing.
  • Climate — Set swing mode submenu, min/max range row, target low/high (heat_cool dual setpoint).
  • Covers — Tilt position presets (gated by SET_TILT_POSITION), working flag in details.
  • Vacuums — cleaning time formatted as duration, last error message.

Fixes

  • RGB details row no longer renders the .NET list type name.

Maintenance

  • Stale camera/picture snapshots are swept on extension startup.
  • MSIX icon assets regenerated from the no-margins logomark — the HA logo no longer reads small in CmdPal's row icon slot.
  • Service-call serializer handles IEnumerable so list-valued service params (e.g. rgb_color) emit as JSON arrays.

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 01 May 18:47

Configurable dashboard path, Show Entity IDs setting, area-name resolution fix (works on stricter Jinja sandboxes), area diagnostics in Connection Check, GitHub Actions release pipeline.