homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
1,202 lines (932 loc) • 210 kB
Markdown
# Change Log
All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
## v5.24.0 (2026-05-31)
### UI Changes
- chore: migrate v4-style font awesome icons to v6 syntax
- fix: linking accessory to shared child bridge fails protocol guard
- fix: restore autofocus on username field at login page load
- feat: add toolbar with search/download/clear to Homebridge Logs widget
- fix(accessories): add screen reader live regions to HAP sensor tiles (@rfiorentino1)
- fix(accessories): add ARIA labels, live regions, and keyboard handlers to HAP/matter tiles (@rfiorentino1)
- fix(plugins): improve screen reader support in plugin card, manage, uninstall, config modals (@rfiorentino1)
- fix(plugins): include plugin name in info button label and convert donate anchor (@rfiorentino1)
- chore(i18n): translate new plugin a11y labels (@rfiorentino1)
- fix(status): add aria-hidden to icons and convert anchors to buttons in dashboard widgets (@rfiorentino1)
- fix(layout): mark active sidebar item and hide decorative icons (@rfiorentino1)
- fix(settings): hide decorative icons and group backup actions for screen readers (@rfiorentino1)
- fix(a11y): improve screen-reader announcements for xterm and plugin install completion (@rfiorentino1)
- fix(plugins): tighten screen-reader coverage for plugins page and bridge modal (@rfiorentino1)
- fix(status): tighten screen-reader coverage for status widgets (@rfiorentino1)
- fix(logs): wire search button aria-expanded + hide decorative toolbar icons (@rfiorentino1)
- fix(settings): wire search button aria-expanded + hide redundant row labels (@rfiorentino1)
- fix(accessories): apply switch a11y pattern to matter on/off variants (@rfiorentino1)
- fix(status): add screen-reader expand/collapse to terminal widget (@rfiorentino1)
- fix(plugins): announce install/uninstall/update progress to screen readers (@rfiorentino1)
- fix(plugins): tighten xterm screen-reader behaviour in plugin-logs modal (@rfiorentino1)
- fix(status): announce bridge restart completion to screen readers (@rfiorentino1)
- fix(settings): make restart-required toast keyboard accessible (@rfiorentino1)
- fix(status): add keyboard-driven widget reorder mode (@rfiorentino1)
- fix(accessories): extend a11y pattern to 9 remaining matter types (@rfiorentino1)
- fix(login): hide decorative icons from screen readers
- fix(setup-wizard): tighten icons and convert restore-backup anchor to button
- fix(support): hide decorative icons and add keyboard activation to section headers
- fix(accessories): hide decorative icons from screen readers
- fix(users): hide decorative icons and make 2FA copy button accessible
- fix(power-options): hide decorative power-off icon from screen readers
- fix(accessory-info): make copy buttons accessible
- fix(plugins): hide decorative icons across plugin and shared modals
- fix(settings): add keyboard activation to collapsible section headers
- fix(spinner): announce loading state to screen readers
- fix(layout): use buttons for sidebar items and trim duplicate menu announcements (@rfiorentino1)
- fix(status): announce bridge rows as one button with status + matter + restart (@rfiorentino1)
- fix(status): announce matter state on all rows when matter support is enabled (@rfiorentino1)
- fix(status): drop duplicate text and widget-name announcements in show/hide widgets modal (@rfiorentino1)
- fix(a11y): hide xterm helper textarea from screen readers on read-only terminals (@rfiorentino1)
- fix(plugins): drop redundant plugin name from info button aria-label (@rfiorentino1)
- fix(layout): announce active sidebar item as "current page" (@rfiorentino1)
- fix(lint): restore HTML comments and silence false `spaced-comment` rule
- fix(a11y): use real <button> for collapsible disclosure sections (settings, support)
- fix(plugins): drop shell-injection vector in `cleanNpmCache`
- fix(backup): block path-traversal and symlink entries in restores
- fix(backup): reject concurrent restore uploads via a singleton slot
- fix(installer): validate `--user` before writing sudoers entries
- fix(installer): switch Win32 nssm/sc to `execFileSync` arg arrays
- fix(auth): reject JWTs with stale `instanceId` (except live wizard)
- fix(auth): enforce `instanceId` check on WS + WS-admin guards
- fix(auth): tighten route guards on auth/setup/admin transitions
- fix(plugins): flip `hasInstalledPlugins` flag locally on first install
- fix(auth): re-decode user payload on session refresh
- fix(routing): cancel route activation when a resolver fails
- fix(ws): repair socket cache lifecycle and token rotation
- fix(plugins): guard restart modal against missing `affectedBridges`
- fix(status): only apply dashboard layout on first connect
- fix(users): clear stale `matchPassword` error when mismatch resolves
- fix(users): case-insensitive duplicate-username form validation
- fix(config-editor): sync Monaco model on save and dispose on destroy
- fix(accessories): write new rooms reference on inner services reorder
- fix(config-editor): write `config.json` atomically
- fix(config-editor): treat restart-info IPC as best-effort
- fix(plugins): cache npm-managed plugin list until after npm exits
- fix(config-editor): gate writes on bootstrap migration completion
- fix(child-bridges): send the correct IPC event from Start
- chore(setup-wizard): remove dead duplicate /backup gateway
- fix(ipc): de-duplicate restartHomebridge SIGKILL timers and listeners
- fix(log): scope the tail-ending flag per client
- fix(custom-plugins): make custom-UI cleanup idempotent
- fix(server): require admin to PUT /server/restart
- fix(auth): reserve OTP cache slot before verifying
- fix(installer): await start() in macOS / Windows restart()
- fix(installer): harden macOS install command
- fix(installer): fix FreeBSD rc script for custom service names
- fix(hb-service): cork log stream around truncate sequence
- fix(hb-service): validate plugin version and use execFileSync for CLI install
- fix(backup): re-register scheduled backup cron when the toggle changes
- fix(toast): centralise error toasts on a shared helper
- fix(server): allowlist restart/shutdown commands and use spawn-array
- fix(fs): serialise JSON mutations through a shared JsonFileStore
- fix(plugins): translate install/update toast template
- fix(accessories): show lightbulb modal when adaptive lighting is absent
- fix(config-editor): reject prototype-chain keys in UI property patch
- fix(plugins): strip secret-shaped env vars from npm spawn
- fix(backup): write `config.json` atomically during restore
- fix(plugins): build plugin-list caches in locals before swapping refs
- fix(ipc): clean up `requestResponse` listener when `sendMessage` throws
- fix(scheduler): catch and log rejections from fire-and-forget cron callbacks
- fix(accessories): route Matter IPC replies through a single shared dispatcher
- fix(accessories): short-circuit accessory loads after client disconnect
- fix(backup): only self-kill the UI after Homebridge SIGKILL is delivered
- fix(plugins): reject dynamic schema paths that escape `storagePath`
- fix(status): skip post-unsubscribe emit on disconnected stats clients
- fix(plugins): validate plugin version regex on install/update DTO
- fix(accessories): drop double-subscribe in lock-mechanism slider
- fix(accessories): keep live-update streams alive across reloads
- fix(auth): global HTTP 401 interceptor triggers clean logout
- fix(auth): invalidate token cache on cross-tab storage events
- fix(layout): block ESC on version-mismatch and restart-required modals
- fix(terminal): defer xterm FitAddon.fit() to next tick inside modals
- fix(setup-wizard): reject oversized backup archives in the file picker
- fix(settings): reject oversized wallpaper uploads in the file picker
- fix(settings): bind HAP/Matter toggle valueChanges to component lifecycle
- fix(setup-wizard): tie post-restore poll interval to component lifecycle
- fix(plugins): bind manage-version update-pref subscribe to component lifecycle
- fix(terminal): strip stacked socket listeners on terminal remount
- fix(layout): tear down the app namespace socket on layout destroy
- fix(restart): bind reconnect handler in RestartComponent to lifecycle
- fix(schema-form): track `lastDataReference` on the internal-change skip path
- fix(config-editor): prompt before navigating away with unsaved changes
- fix(accessories): surface a warning toast when the accessory cache fails to load
- fix(users): surface errors when the users list fails to reload
- fix(custom-plugins): fall back to en.json when locale require() fails
- fix(routing): reload the app on chunk-load failures after a deploy
- fix(auth): clamp inactivity timer to the setTimeout 32-bit ms limit
- fix(layout): throttle reconnect-driven checkToken to dampen restart storms
- fix(config-editor): drop hard-coded `restartRequired` field from restart-info response
- fix(setup): use `crypto.randomInt` for HomeKit PIN and bridge username
- fix(server): validate cache file name on delete-cached-accessory endpoints
- fix(config-editor): sort config backups by numeric timestamp
- fix(ipc): log when SIGTERM/SIGKILL delivery to Homebridge is refused
- fix(hb-service): cache `isAvahiDaemonRunning` result for the install session
- fix(installer): skip `chmod a+x` on Linux start when already executable
- fix(auth): throw `WsException` on WS guard auth failure
- fix(backup): return `+1` from scheduled-backups sort comparator
- fix(hb-service): line-buffer Homebridge stdout/stderr to prevent log interleave
- chore(terminal): drop per-byte debug logs from terminal service
- fix(custom-plugins): attach custom-UI request handler before cleanup listeners
- fix(ws): cap socket.io reconnect attempts and delay
- fix(status): surface dashboard init errors as a toast
- fix(layout): clean up color-scheme and sidebar resize listeners on destroy
- fix(config-editor): guard `_bridge?.username` before `.toUpperCase()`
- fix(login): default empty `target_route` to `/`
- fix(i18n): persist selected language to bootstrap before server settings
- fix(auth): clear expired stored token quietly on bootstrap
- fix(auth): cap the noauth-mode auto-reload retries per session
- fix(auth): expose `tokenReady` so loginGuard waits for stored-token load
- fix(settings): use `*` target origin for theme postMessage to plugin iframes
- fix(status): use `setInput()` for the widget signal input on dynamic widgets
- fix(config-editor): add plain-text editor option for screen reader users (@rfiorentino1)
- fix(toast): announce each toast once for screen readers
- feat(plugins): hide child bridge set-up per plugin
- fix(search): focus the search input when opening the search bar
- fix(accessories): skip matter ipc when matter isn't configured
- fix(status): show all update-info tiles immediately on load
- fix(log): release the tail-log guard on early exits so logs aren't blank after navigating
- feat: allow disabling both HAP and Matter on main and child bridges
- feat(matter): allow disabling natter in place, preserving commissioning
- fix(toast): rework restart-required toast into a shared, keyboard-accessible component
- fix(accessories): hide eve history service exposed by hap-client v5
- fix(accessories): re-render tile immediately after editing custom type
- fix(a11y): announce disclosure state on schema-form sections and docker widget (@rfiorentino1)
- fix(accessories): gate first matter accessories load on core monitoring ack
- feat(accessories): show current consumption on outlet-compatible hap tiles
- feat(plugins): use new font-awesome `venmo-v` icon for donate modal
- fix(status): add screen-reader-only collapse to homebridge logs widget (@rfiorentino1)
- fix(plugins): drop duplicate aria-label on plugin actions dropdown menu (@rfiorentino1)
- feat: support nested hap config and externalsOnly mode
- fix(ui): show plugin JSON config option on mobile
- fix(ui): preserve child bridge config when saving plugin settings
### Other Changes
- chore: drop `lodash` from backend deps
- chore: replace `ngx-md` with a small in-house markdown component
- enable dependabot for dependency and github-action updates (#2811) (@NorthernMan54)
- chore: register only the `chart.js` components the widgets use
- chore: replace 168kb homebridge logo `svg` with 10kb `webp`
- chore: subset font awesome fonts to icons used in the ui
- chore: patch `@ng-formworks` to import `lodash-es`
- chore: replace `emoji-js` with a generated short-name lookup
- chore: small fix in deprecate-past-releases workflow
- chore: add some extra eslint rules for test files
- chore(format): apply prettier formatting to a11y-touched templates
- chore(test): pin runningOnRaspberryPi=false in flaky status-gateway test
- chore(api): validate port-range bodies with a class-validator DTO
- test(audit): cover audit coverage gaps and close concurrent-PATCH race they exposed
- chore(test): use type cast for private logger spy
- fix(matter): type fabricId and nodeId as strings
- chore(plugins): align npm search result types with the live registry response
- chore: update deprecation script from homebridge repo
- chore(deps): bump the actions group with 2 updates (#2831) (@dependabot)
- test: stop linux platform-tools e2e from shutting down the CI runner
- chore: dependency updates
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v5.0.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.2.4`
## v5.23.0 (2026-05-12)
### UI Changes
- i18n: updates to the `de.json` language file (#2793) (@michi-onl)
- feat: support disabling hap on main and child bridges
- fix: ssl keycert upload requires both files at once
- fix: remove beta badge - terminal theme + log search
- feat: highlight matching accessory in remove-from-cache list
- fix: accessory layout drag-drop reorders wrong tile
- fix: blank terminal on navigate-back after v5.21
- fix: repeated socket emits after navigating between pages
- fix: plugin cards briefly flash "needs setup" icon when navigating
### Other Changes
- chore: bump minimum node version to v22.12.0
- ci: bump version of `viperproject/create-nightly-release` to `v2` (@NorthernMan54)
- chore: dependency updates
- docs: create claude info file
- chore: update `engines.homebridge` for homebridge 2.0
- fix: feature flags ignore homebridge prerelease versions
- fix: write `hideMatterAlert` to local cache on matter toggle
- fix: configured `lang` ignored on refresh
- fix: remove dead `message2` block from information modal
- docs: factual touch-up of `README`
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v4.0.4`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.2.3`
## v5.22.0 (2026-04-19)
### UI Changes
- fix: matter icon conditions in reset accessories modal
- feat: show release notes for all plugin versions
- fix: attempt to fix terminal cursor not focusing
- refactor: replace `@angular/animations` with css transitions
- feat: restyle port overview modal to match ui
### Other Changes
- fix: plugin config - sync data on array item reorder
- chore: bump `@antfu/eslint-config` from `v7` to `v8`
- chore: bump `typescript` from `v5` to `v6` (backend)
- fix: order of ops. deleting matter child bridge
- fix: restart page stuck when server restarts quickly
- fix: various type fixes in angular `.html` files
- fix: fall back to tarball when `nodesource` is on 32-bit `arm` (@copilot)
- fix: skip plugin dirs missing `package.json` during discovery
- tests: add more backend tests; improve coverage to >50%
- fix: enable `strictTemplates` and fix template type errors
- fix: hide `BridgeNode` matter devices on accessories page
- fix: hide titles when matching items not rendered
- chore: bump `typescript` from `v5` to `v6` (frontend)
- chore: change typescript targets to `esnext`
- fix: string spread corrupting accessory blacklist
- fix: `return` exceptions instead of `throw`
- fix: inverted log colour removal logic
- fix: `networkInterfaces()` not awaited in backup restore
- fix: duplicate viewport event listener in config editor
- fix: missing translation fallback for non-english users
- fix: path traversal in cached accessory deletion
- fix: xss via `innerHTML` in setup wizard
- fix: xss via plugin metadata in custom ui html
- fix: ssl passphrase exposed to frontend api
- fix: `setItem` missing forbidden key validation
- fix: terminal buffer growing unbounded without config
- fix: expired token data set after `logout()`
- fix: unsubscribed observables in multiple components
- fix: xterm not disposed on restore modal close
- tests: add tests covering recent bug fixes
- fix: accessory control list should filter matter
- fix: widget options disable save on no changes
- fix: hide humidity sliders when no auto mode
- fix: hide heating sliders when no auto mode
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v4.0.3`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.2.3`
## v5.21.0 (2026-03-30)
### Important Notes
- ⚠️ This is a large update with significant changes under the hood. While we have tested, if you are running a mission-critical Homebridge instance, consider waiting a few days after release before updating.
- You can report any issues you encounter on [GitHub](https://github.com/homebridge/homebridge-config-ui-x/issues), please check first as your issue may have already been reported.
- ⚠️ Homebridge UI now supports the last two versions of Chrome, Edge, Firefox and Safari.
- This does not necessarily mean that the UI will not work on older browser versions.
### UI Changes
- upgrade `xterm` to `v6` + style improvements
- added option: global terminal/log window settings
- improvements to add/edit/remove accessory ui rooms
- improvements to add/edit/delete user forms and ui
- use new font-awesome `ko-fi` icon for donate modal
- add more entries to the credits modal
- update remove all accessories component
- improvements to matter components
- feat: air quality sensor matter device
- accessory tile + modal improvements/fixes
- improve keyboard loading on terminals
- apply save button to accessory info modal
- bring widget mobile visibility into visibility modal
### Other Changes
- fix: prioritise scoped plugins in plugin search results
- fix: validate `version` parameter type in `triggerUpdate`
- fix: validate backup ID format to prevent path traversal
- fix: validate device ID format to prevent path traversal
- chore: consolidate regex into shared file (backend)
- chore: consolidate regex into shared file (frontend)
- chore: refresh some screenshots in `screenshots` folder
- fix: add `username`/`password` attributes to login form
- angular `v20` to `v21` code migration
- add new component for required field indicator
- improve search term matching on settings page
- lint: apply `angular/template` rules
- prioritise scoped plugins in plugin search results
- `configChanged` events keep `updatePluginConfig`() changes
- fix duplicate restart modals showing + not hiding
- refresh users screenshot in `screenshots` folder
- use state labels for `CurrentMediaState`
- enable `strict` mode in `./ui` tsconfig + code fixes
- fix: plugin config - sync data on array item removal
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v4.0.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.2.3`
## v5.20.0 (2026-03-21)
### UI Changes
- updates to the `th.json` language file (#2742) (@tomzt)
### Other Changes
- plugins: check for default `CHANGELOG` when no releases (#2746) (@dnicolson)
- code improvements for updated lint rules
- dependency updates + fix imports
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v4.0.1`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.2.2`
## v5.19.0 (2026-03-04)
### UI Changes
- info widget - remove margin on small table (#2727) (@dnicolson)
- create the `vi.json` language file (@khanhnd88)
- 🗺️ The Homebridge UI is now available in 29 different languages!
- dependency + lint updates
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.4.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.2.1`
## v5.18.0 (2026-02-22)
### UI Changes
- updates to the `uk.json` language file (#2724) (@xrust83)
- improve loading spinner on backup restore
- promote scheduled cron feature from beta
- promote advertise via mdns feature from beta
- promote inactivity based session from beta
- run angular migrations `ngclass-to-class` + `style`
- a11y: improvements to custom plugins modal (from #2677) (@rfiorentino1)
- add bridge filter dropdown to accessories page
- a11y: improvements to config restore modal (from #2677) (@rfiorentino1)
- a11y: improvements to terminal component (from #2677) (@rfiorentino1)
- merge accessory combos of fan+heater/humidifier (see #2713)
### Other Changes
- fixed installing plugins from backup restore
- update types for github plugin lists
- list angular eslint rules in config for the future
- updated dependencies
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.3.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.2.0`
## v5.17.0 (2026-02-14)
### UI Changes
- improvements for homebridge v2
- add a link to unmaintained plugins in dev support
### Other Changes
- fix deprecation github workflow script
- update to use `v2` release plugin bundles
- replace accessories screenshot in readme
- updated dependencies
- use angular eslint rules in ui folder + fix lint
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.3.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.2.0`
## v5.16.0 (2026-02-08)
### ⚠️ Update Info Widget Changes
- If you had previously set an update preference for Homebridge or Homebridge UI, you will need to set this preference again.
Please open the _Manage Version_ modal (by clicking on _Homebridge_ or _Homebridge UI_ in the _Update Info Widget_) and set your preference again in the _Update Preferences_ section.
- The _Hide Node Info_ widget setting on the _Update Info Widget_ has been removed.
Please open the _Node Info_ modal (by clicking on _Node.js_) and set a preference in the _Update Preferences_ section for the same functionality.
### UI Changes
- adjust settings session timeout input elements (#2716) (@dnicolson)
- fix settings display of mdns advertise option
- refactor homebridge/ui update settings
- show plugin icons on homebridge v2 update modal
- update min version for homebridge v2
### Other Changes
- dependency updates
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.3`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.3`
## v5.15.2 (2026-01-31)
### UI Changes
- updates to the `uk.json` language file (#2715) (@xrust83)
- fix docker update modal styles in dark mode
### Other Changes
- dependency updates
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.2`
## v5.15.1 (2026-01-23)
### ⚠️ 2FA Updates
If you have two-factor authentication (2FA) enabled and set it up with an older version of the UI,
you may see a notification asking you to upgrade your 2FA secret for improved security.
Your current 2FA should continue to work, but we recommend following the prompt to disable
and re-enable 2FA to upgrade to a more secure secret format. This is a one-time process
and only affects users who initially set up 2FA before the recent security library update.
If you do not use 2FA, or you do not see any prompts, no action is needed.
### UI Changes
- i18n: add missing 'clear' language string (#2700) (@rfiorentino1)
- fix support legacy otp secrets after `otplib` upgrade
### Other Changes
- dependency updates
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.2`
## v5.15.0 (2026-01-17)
### UI Changes
- feat: node update preferences + dev docs improvements (#2685) (@seidnerj)
- fix disable plugin showing incorrect `keepOrphans` (#2692) (@copilot)
- feat: add separate beta preferences for plugins (#2687) (@seidnerj)
- further tweaks for node + plugin update preferences
- fix manage plugin show back btn after plugin install
- open accessory info on tile loading icon click
- a11y: improvements to plugin markdown directive (from #2677) (@rfiorentino1)
- first step of improvements to https settings (@donavanbecker)
- a11y: improvements to plugin json schema forms (from #2677) (@rfiorentino1)
### Other Changes
- update `@antfu/eslint-config` lint package to `v7`
- upgrade `otplib` to `v13` + migrate code
- weather widget: put text into strings for i18n
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.2`
## v5.14.0 (2026-01-02)
Wishing all our users a very happy and fulfilling 2026! 🎉
### UI Changes
- fix lock accessory info with no linked services
- accessory info + icon for access code service
- use back btn from release notes to manage version
- a11y: button label improvements on manage version
### Other Changes
- remove unused import from security system component
- optimise api calls on opening uninstall component
- dependency updates
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.2`
## v5.13.1 (2025-12-27)
### UI Changes
- apply patch to `@ng-formworks/core` to fix condition issue
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.2`
## v5.13.0 (2025-12-27)
### UI Changes
- add `NFCAccess` as hidden accessory service
- add status to security system modal
- move reset status layout button into row
- expose unique id on accessory info modal + copy icon (@NorthernMan54)
- add support for plugin ui i18n (from #2597) (@justjam2013)
- add cpu temperature to widget on mac systems
- don't show `pointer: cursor;` on pending accessory tiles
- a11y: improvements to accessory info/tile + add room (from #2677) (@rfiorentino1)
### Other Changes
- fix discord notifications on publish new version
- add node/glib version references in `linux.ts` (@NorthernMan54)
- use `curly': ['error', 'all']` eslint rule
- dependency updates
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.2`
## v5.12.0 (2025-12-15)
### UI Changes
- updates to the `it.json` language file (#2664) (@g-flex)
- updates to the `de.json` language file (#2665) (@michi-onl)
- move control list setting to under insecure mode setting
- never hide the search button on the plugins page
- added log search facility on main logs page
- convert main spinner animation from `svg` to `css`
- use transitions when changing between light and dark backgrounds
- add a couple more post-update messages
- show spinner when backing up before updating hb/ui
- restore required field indicators in plugin config forms
- make loading spinners consistent across the ui
### Other Changes
- update npm publish process for `oidc` auth
- update npm publish process for `oidc` auth (fix)
- fix: adjusted timeout for npm requests to 30 seconds (@NorthernMan54) (#2655, #2656)
- recommend update to node 24 when available
- dependency updates
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.2`
## v5.11.2 (2025-12-06)
### UI Changes
- updates to the `th.json` language file (#2659) (@tomzt)
### Other Changes
- dependency updates
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.2`
## v5.11.1 (2025-11-27)
### Other Changes
- fix required csp for monaco web workers
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.2`
## v5.11.0 (2025-11-25)
### UI Changes
- fix: plugins/accessories not displaying
- fix: show all child bridge details, not just first
- fix: fix removing listeners events from sidebar
- update `monaco-editor` to `v0.55.1` + more deps
### Other Changes
- replace badges in readme, use `shields.io`
- run angular migration - use self-closing tags
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.2`
## v5.10.0 (2025-11-16)
### UI Changes
- updates to the `uk.json` language file (#2618) (@xrust83)
- updates to the `th.json` language file (#2628) (@tomzt)
- fix german welcome translation typo
- add spinners for loading data widget values
- hide ssl settings when on hb raspbian image
- hide accessory widget if insecure mode disabled
- rename insecure option to accessory control
- improve json schema for ui settings section
- avoid refreshing after changing widget setting
- avoid refresh after plugin install/setting change
- shorten arrow button for same row height
- monospace input font for relevant options
- scheduled restart option for (child) bridges
### Other Changes
- add method to determine if running on raspbian image
- fix node deprecation `DEP0190` (shell option)
- config editor - fix restart case of no child bridges
- code styling chore - consistent code spacing
- extract 'extract' string to language files
- lift from beta - custom types, betas, terminal
- convert repo to esm modules
- enable nestjs logging when in dev mode
- add api endpoint for updating a package
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.1`
## v5.9.0 (2025-11-01)
### UI Changes
- updates to the `th.json` language file (#2592) (@tomzt)
- updates to the `zh-cn.json` language file (#2594) (@honue)
- consistent sizing of input fields and select fields
- status qr code widget - show pin in monospace
- bridges widget - show bridges as restarting on full restart
- do not hide search button when no search results found
- close settings restart toast if any restart button clicked
- change session timeout from seconds to days, hours, minutes
- updated various dependencies
- support `dynamicDefaults` in config schema forms
- use homebridge icon for child bridges
- refactor child bridge screen with config alerts
- hide widgets that do not exist in const list
### Other Changes
- implement simple feature flags system dependent on hb version
- fix type import in config editor test file
- improve schemas and types for bridges
- get available port function should adhere to configured range
- update versions of actions, remove `macos-13`
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.8.0 (2025-09-27)
### UI Changes
- remove accessory focus style (#2582) (@dnicolson)
- updates to the `uk.json` language file (#2584) (@xrust83)
- updates to the `th.json` language file (#2590) (@tomzt)
- detect full restart needed after config (editor) update
- fix microphone active state on accessory tile
- fix air purifier off switch in control modal
- fix infinite loading spinner on authentication expiry (@copilot)
- added config option to advertise the ui over mdns
- added config option to for inactivity-based session timeout
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.7.0 (2025-09-20)
### UI Changes
- fix sidebar scrollbars (#2574) (@dnicolson)
- refreshed icons: heater, cooler, de/humidifier + thermostat
- put services types into translatable strings
- prevent url-based settings from being changed from a pwa
- add search bar on settings page for filtering options
- implement html page titles on section pages (#2579)
- fix for custom uis showing schema form
### Other Changes
- remove logging of every `MessageEvent` (#2575) (@dnicolson)
- preserve custom service info for undiscovered accessories
- improvements to backend types and organisation
- add GET endpoint for disabled update notifications API (#2580)
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.6.1 (2025-09-13)
### UI Changes
- updates to the `th.json` language file (#2564) (@tomzt)
- updates to the `ja.json` language file (#2570) (@FreeWiFi7749)
- add node 24 info to node modal + prevent node 24 upgrades on 32-bit systems
### Other Changes
- add pull request targeting guidelines to copilot instructions (#2563) (@NorthernMan54)
- include `homebridge` check with prefer betas settings
- hide updates for the ui when running in dev mode
- temporary fix for `@ng-formworks/core` for schemas
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.2`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.6.0 (2025-09-06)
### UI Changes
- refreshed icons: lightbulb, switch, outlet + unknown
- update `monaco-editor` from `v0.21.3` to `v0.52.2`
- allow user to choose config comparison view type
- the default view is the **new inline view**, which shows the differences together
- a new button allows switching between the inline view and the **existing side-by-side view**
- improvements to frontend route auth, guards and auth services
- improvements to schema and translations in config editor
- add schema info and validation to manual plugin config editor
- show plugin schema header and footer in plugin json editor
- hide search button when no plugins installed
- show help on accessories when no plugins installed
- add config option to always show beta versions of plugins
- fix ios safari burger menu viewport issue
- update to use font-awesome v7
- fix: no `TouchEvent` in safari to fix toggles
- fix floating-point precision issues in temperature display
### Other Changes
- minor performance updates
- added copilot instructions file (#2544) (copilot)
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.1`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.5.0 (2025-08-28)
### UI Changes
- updates to the `th.json` language file (#2528) (@tomzt)
- updates to the `uk.json` language file (#2532) (@xrust83)
- refreshed icons: security system
- refreshed icons: lock mechanism
- refreshed icons: irrigation system + valves
- refreshed icons: light, leak, motion, occ., hum. sensor
- expand/collapse state saving for update information - docker information (#2529) (@NorthernMan54)
- updates to the credits modal
- recommend child bridges for accessory-based plugins
- fix for accessory control issue on android-edge/chrome
- page loading spinner should not block access to menus
- fix link to swagger docs in development mode
- fix host and reverse proxy host settings not showing current value
- fix instructions on login page for recovering admin account
- show system info table rows when data is ready per row
- allow show/hide widgets and widget config on mobile
### Other Changes
- ignore some host settings in dev mode for compatibility
- refactor function to detect changes to json config on save
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.1`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.4.1 (2025-08-05)
### UI Changes
- updates to the `pl.json` language file (#2522, #2523) (@mkz212)
- reduce font size in accessory label by 1px
- updates to the credits modal
- make red restart child bridge button on plugin log modal
- refreshed icons: stateless programmable switch
### Other Changes
- fix custom uis which use ui translation strings
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.1`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.4.0 (2025-08-02)
### UI Changes
- updates to the `th.json` language file (#2520) (@tomzt)
- json config editor to offer child bridge restarts where possible
- improvements to the restore config file modal
- terminal session persistence and macos shell optimization (#2493) (@seidnerj)
- big thank you to @seidnerj for this contribution!
- to read more info about these changes, see the [pull request](https://github.com/homebridge/homebridge-config-ui-x/pull/2493#issue-3226899065)
- small tweaks to persistent terminal integration
- show/copy user qr code secrets when setting up 2fa
- fix json schema icons from font awesome update
- disable plugin notes now based on keep orphans setting
- text clarification in users support modal
- remove glibc checks as node 18 is now unsupported
- add restart child bridges option to plugin log modal
- node version modal: show hb/ui/plugin compatibility
- air purifier tile: update icon to match new style
- robot vacuum tile: use css to use a single svg file
- custom types: expose a switch/outlet as a garage door and vice versa
- garage door tile: show when obstruction detected
- air quality sensor tile: update icon to match new style
- show in sys info widget if arch is 32-bit or 64-bit
- fix for custom ui colouring in dark mode
- updated icons: co, co2, smoke, contact, garage
- thermostat accessory: show target slider when available
- updated icon for door, window and window covering services
- accessory info: show props on characteristic click
- credits modal: added new section for translations
- custom types: expose a switch/outlet as a washing machine
- refreshed icons for fan, television, speaker + filter
- added confirmation modal for shutting down
### Other Changes
- added `arm` runners to the ui workflows for testing
- make 'keep orphans' setting available in ui settings service
- improve types for widgets
- upgrade `@ngx-translate/core` from `v16` to `v17`
- fix get pairings, ignore `.json.bak` files
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.1`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.3.0 (2025-07-23)
### UI Changes
- update 'on' colour for sliding checkbox in dark grey theme
- custom types: expose a switch/outlet as a lock and vice versa
- update `monaco-editor` from `0.18.1` to `0.21.3`
- fix new users created are always created as admins
- disable edit user form if no changes are made
- hide terminal widget for non-admin users
- hide bridge restart buttons in widget for non-admin users
- hide unauthorised controls on accessories page for non-admin users
- re-enable logs for non-admin users, but hide unauthorised controls
- hide power options page for non-admin users
- allow non-admin users read-only access to the plugins page
- validate login redirect route for non-admin users
- hide unauthorised controls on status page for non-admin users
- add text on show/hide widget modal to explain layout is shared across all users
- grammar: replace 'unchargeable' with 'not chargeable' on battery tile
- show admin/non-admin icon on user cards for easier identification
- added support icon and modal on users page
- use a new component for support modal footers for suggestions
### Other Changes
- set the minimum wanted version of node to `v20.19.0`
- fix undefined `error.error` instances in various places
- revert to using angular http `withInterceptorsFromDi`
- fix type of ngbtooltip `openDelay` in angular templates
- updated dependencies
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.1`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.2.0 (2025-07-17)
### Node.js Version
- ️⚠️ The `hb-service` backend now has a stricter Node.js version requirement:
- if you are running Node.js `v20`, then you must be running at least `v20.19.0`
- if you are running Node.js `v22`, then you must be running at least `v22.12.0`
- if you are running Node.js `v24`, then you must be running at least `v24.0.0`
- although remember that `v24` is not officially supported yet
- The UI will not allow you to update to UI `v5.2.0` if you are running an unsupported version of Node.js
- Check the [Homebridge Wiki](https://github.com/homebridge/homebridge/wiki/How-To-Update-Node.js) for instructions on how to update Node.js on your system
### Other Changes
- update node engines to `^20.19.0 || ^22.12.0 || ^24.0.0`
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.0.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.1.0 (2025-07-17)
### UI Changes
- only show hbv2 readiness icon when ready to show
- migrate to use `fetch()` for http requests
- Fix alignment of Plugin Updates in Horizontal Mode (#2495) (@NorthernMan54)
- offer to download a backup before updating homebridge/ui
- updates to the `he.json` language file (@seidnerj)
- pass through plugin display name to logs after update
- fix accidental hiding of startup settings section
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.0.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v5.0.0 (2025-07-13)
### ⚠️ Breaking Changes
- This version of the Homebridge UI:
- Is compatible with Homebridge `v1` and `v2-beta`, with no plans to drop support for Homebridge `v1` in the near future.
- Drops support for Node.js `v18` and earlier, so please update to `v20` or `v22` - [more info on updating](https://github.com/homebridge/homebridge/wiki/How-To-Update-Node.js)
- Drops support for Raspberry Pi devices running on the `armv6` architecture (like the Pi 1 and Pi Zero) - please update your hardware
- Drops support for instances using `pnpm` as the package manager - consider updating your Homebridge instance to use npm instead - [more info on updating](https://github.com/homebridge/homebridge-apt-pkg/blob/latest/README.md#using-apt)
### UI Changes
- updates to the `fi.json` language file (#2253) (@l1500s)
- update default dashboard layout
- add support for dark mode switching with custom plugin uis (@NorthernMan54)
- Display Docker Version Details in the Update Information Box (#2488) (@NorthernMan54)
- allow to reinstall installed versions of plugins
### Other Changes
- improvements to the deprecate versions workflow
- retire use of `pnpm` and code references
- bump the default node version from 20 to 22
- make terminal enabled by default on new macOS hb-service installs
- set service mode as default, remove standalone
- Initial support for NodeJS 24 in preparation for LTS in Fall of 2025 (#2451) (@NorthernMan54)
- update `fastify` and `nestjs` dependencies
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.0.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v4.80.0 (2025-07-12)
- This version of Homebridge UI is likely to be the **last minor version** on the `v4.x` branch.
- The `4.x` branch will continue to receive security updates and bug fixes for the foreseeable future.
### Other Changes
- update github url for plugin bundle downloads
- allow displaying some accessories with a robot vacuum icon in the ui
- do not return deprecated versions of npm packages across the ui
- add workflow for deprecating old versions of Homebridge UI
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v4.79.0 (2025-07-09)
### UI Changes
- updates to the `th.json` language file (#2482) (@tomzt)
- updates to the `th.json` language file (#2483) (@tomzt)
- updates to the `nl.json` language file (#2487) (@hendriksen-mark)
- various updates to the backup/restore modal
- fix list of selected network adapters in modal
- battery - style as green when charging
- thermostat - open control modal on long click
- show release notes when npm and gh release match
- add control modal for filter to reset filter life
- show bool characteristic descriptions in info modals
- show colour temp values in mired and kelvin
- add saturation control to lightbulb control modal
- add transparency to slider handles in accessory control modals
- obtain hb/ui changelog from the most recent github tag
- add plugin support button and modal
- add plugin search button, hide bar by default
- add tab in plugins showing plugin analytics in `iframe`
- allow applying a custom service to an accessory's service
- change between `Switch`, `Outlet`, `Lightbulb`, `Fan`, `Television`, `Valve`, `AirPurifier`, `Heater`, `Cooler`, `Humidifier`, `Dehumidifier` for these accessory types
- change between `Door`, `Window`, `WindowCovering` for these accessory types
- change between `Doorbell`, `Microphone`, `Speaker`, `SmartSpeaker` for these accessory types
- this can be set in the accessory info modal, more options to come in the future
- custom service changing - add more to group one
- add option to show `npm` version with node version
- this can be enabled in the update info widget settings by clicking the spanner icon in the top right corner of the widget on hover (from a desktop, when in unlocked mode)
- add control modal for smart speaker accessories
- prevent accessory control modal open when loading
- add control modal for doorbell accessories
- add control modal for microphone accessories
- allow custom type changing - doorbell, microphone, speaker
### Other Changes
- code cleanup inside angular module files
- refactor ui types into interface files
- rename hap icon files for consistency
- rename accessory type component files for consistency
- angular-wide code refactoring and cleanup
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v4.78.1 (2025-07-03)
### Other Changes
- when updating plugin, obtain latest changelog from github
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v4.78.0 (2025-07-03)
### UI Changes
- fix accessory control modals closing on clicking outside the modal
- small tweaks to various accessory status tiles
- revert display of triggered state in security control modal
- show spinner on settings page until all settings are loaded
- show both version notes and full changelog beforehand on plugin update
### Other Changes
- remove bridge id from control blacklist when removing a bridge
- fix regex for blacklist in config schema file
- bring runner list for actions up-to-date with github availability
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v4.77.0 (2025-06-29)
### ⚠️ Default Theme Change:
- The default theme for Homebridge UI has been changed from `orange` to `deep-purple`.
- If you want to change the theme back to `orange`, you can do so in the settings page.
### UI Changes
- updates to the `th.json` language file (#2472) (@tomzt)
- auto restart after version change of hb or ui
- redesigned setup wizard page
- style HBv2/UIv5 icons on status page based on readiness
- security system modal only show valid modes
- refactor settings page with immediate saving
- add support for `uiSchema` within plugin configurations
- add option to hide update notifications for specific plugins
- improve plugin search and result ordering (@justjam2013)
- add icon and tile for filter maintenance accessory
### Other Changes
- Removed redundant Google Smart Home components (@NorthernMan54)
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v3.1.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v4.76.0 (2025-06-07)
### ⚠️ Config Property Change:
- The `loginWallpaper` UI config property has been renamed to `wallpaper`
- This was detected after the release of v4.76.0, and is being documented here post-release.
### UI Changes
- updates to the `th.json` language file (#2443) (@tomzt)
- improvements to various accessory tiles and modals
- fix occasional issue in backup/restore, revert recent change
- improvements to plugin config validation
- use `ajv-keywords` to allow validation of unique properties in arrays
- fix form field error state font colour (make it red)
- redesigned login page
- improve wallpaper selection with new modal to upload a file
- refactor HBv2 and UIv5 readiness modals
- move backup settings from ui advanced settings to backup/restore modal
- show lock management service info on lock mechanism info modal
- show characteristic descriptions in info modal when available
### Other Changes
- upgrade to angular `v20`
- bump `plugin-ui-utils` for new theme method
### Homebridge Dependencies
- `@homebridge/hap-client` @ `v2.2.0`
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
## v4.75.0 (20