Repository navigation
Releases: nickknissen/HomeAssistantCommandPalette
Release list
v1.1.0
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.msixbundlebelow and runAdd-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
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_onfor scenes and scripts,pressfor 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
- Sideload signed MSIX: download
HomeAssistantCommandPalette_1.0.0.0.msixbundlebelow and runAdd-AppxPackage .\HomeAssistantCommandPalette_1.0.0.0.msixbundle. - Microsoft Store: https://apps.microsoft.com/detail/9PLX81TTCZ6H
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
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
BuildIconoverrides removed from behaviors; page-levelResolveEntityIconcollapses into the fetcher adapter. - 195 tests passing.
v0.2.0
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 frommedia_position_updated_atwhile 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),
workingflag 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
IEnumerableso list-valued service params (e.g.rgb_color) emit as JSON arrays.
v0.1.0
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.